JuliaLang / julia

The Julia Programming Language
https://julialang.org/
MIT License
45.52k stars 5.46k forks source link

Segfault in LLVM #38773

Closed maleadt closed 3 years ago

maleadt commented 3 years ago

From the recent PkgEval, and lists ORC in the backtrace, so maybe caused by https://github.com/JuliaLang/julia/pull/38008:

in expression starting at /home/pkgeval/.julia/packages/YaoBlocks/a3uN9/test/primitive/measure.jl:76
_ZNK12_GLOBAL__N_116X86MCCodeEmitter16emitOpcodePrefixEiRKN4llvm6MCInstERKNS1_15MCSubtargetInfoERNS1_11raw_ostreamE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZNK12_GLOBAL__N_116X86MCCodeEmitter17encodeInstructionERKN4llvm6MCInstERNS1_11raw_ostreamERNS1_15SmallVectorImplINS1_7MCFixupEEERKNS1_15MCSubtargetInfoE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm13MCELFStreamer14emitInstToDataERKNS_6MCInstERKNS_15MCSubtargetInfoE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm16MCObjectStreamer19emitInstructionImplERKNS_6MCInstERKNS_15MCSubtargetInfoE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm16MCObjectStreamer15emitInstructionERKNS_6MCInstERKNS_15MCSubtargetInfoE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm13X86AsmPrinter23EmitAndCountInstructionERNS_6MCInstE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm13X86AsmPrinter15emitInstructionEPKNS_12MachineInstrE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm10AsmPrinter16emitFunctionBodyEv at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm13X86AsmPrinter20runOnMachineFunctionERNS_15MachineFunctionE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm19MachineFunctionPass13runOnFunctionERNS_8FunctionE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
operator() at /workspace/srcdir/src/jitlayers.cpp:591
_ZN4llvm3orc14IRCompileLayer4emitENS0_29MaterializationResponsibilityENS0_16ThreadSafeModuleE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm3orc31BasicIRLayerMaterializationUnit11materializeENS0_29MaterializationResponsibilityE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession26materializeOnCurrentThreadESt10unique_ptrINS0_19MaterializationUnitESt14default_deleteIS3_EENS0_29MaterializationResponsibilityE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZNSt17_Function_handlerIFvSt10unique_ptrIN4llvm3orc19MaterializationUnitESt14default_deleteIS3_EENS2_29MaterializationResponsibilityEEPS8_E9_M_invokeERKSt9_Any_dataOS6_OS7_ at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession17runOutstandingMUsEv at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupENS0_10LookupKindERKSt6vectorISt4pairIPNS0_8JITDylibENS0_19JITDylibLookupFlagsEESaIS8_EENS0_15SymbolLookupSetENS0_11SymbolStateENS_15unique_functionIFvNS_8ExpectedINS_8DenseMapINS0_15SymbolStringPtrENS_18JITEvaluatedSymbolENS_12DenseMapInfoISI_EENS_6detail12DenseMapPairISI_SJ_EEEEEEEEESt8functionIFvRKNSH_IS6_NS_8DenseSetISI_SL_EENSK_IS6_EENSN_IS6_SV_EEEEEE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupERKSt6vectorISt4pairIPNS0_8JITDylibENS0_19JITDylibLookupFlagsEESaIS7_EERKNS0_15SymbolLookupSetENS0_10LookupKindENS0_11SymbolStateESt8functionIFvRKNS_8DenseMapIS5_NS_8DenseSetINS0_15SymbolStringPtrENS_12DenseMapInfoISK_EEEENSL_IS5_EENS_6detail12DenseMapPairIS5_SN_EEEEEE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupERKSt6vectorISt4pairIPNS0_8JITDylibENS0_19JITDylibLookupFlagsEESaIS7_EENS0_15SymbolStringPtrENS0_11SymbolStateE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupENS_8ArrayRefIPNS0_8JITDylibEEENS0_15SymbolStringPtrENS0_11SymbolStateE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupENS_8ArrayRefIPNS0_8JITDylibEEENS_9StringRefENS0_11SymbolStateE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
addModule at /workspace/srcdir/src/jitlayers.cpp:766
jl_add_to_ee at /workspace/srcdir/src/jitlayers.cpp:1041 [inlined]
jl_add_to_ee at /workspace/srcdir/src/jitlayers.cpp:1085
jl_add_to_ee at /workspace/srcdir/src/jitlayers.cpp:1107 [inlined]
_jl_compile_codeinst at /workspace/srcdir/src/jitlayers.cpp:145
jl_generate_fptr at /workspace/srcdir/src/jitlayers.cpp:337
jl_compile_method_internal at /workspace/srcdir/src/gf.c:1957
jl_compile_method_internal at /workspace/srcdir/src/gf.c:2223 [inlined]
_jl_invoke at /workspace/srcdir/src/gf.c:2216 [inlined]
jl_apply_generic at /workspace/srcdir/src/gf.c:2406
jl_apply at /workspace/srcdir/src/julia.h:1701 [inlined]

Also in Feather.jl

signal (11): Segmentation fault
in expression starting at /home/pkgeval/.julia/packages/Feather/8ZDiW/test/runtests.jl:17
_ZNK12_GLOBAL__N_116X86MCCodeEmitter16emitOpcodePrefixEiRKN4llvm6MCInstERKNS1_15MCSubtargetInfoERNS1_11raw_ostreamE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZNK12_GLOBAL__N_116X86MCCodeEmitter17encodeInstructionERKN4llvm6MCInstERNS1_11raw_ostreamERNS1_15SmallVectorImplINS1_7MCFixupEEERKNS1_15MCSubtargetInfoE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm13MCELFStreamer14emitInstToDataERKNS_6MCInstERKNS_15MCSubtargetInfoE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm16MCObjectStreamer19emitInstructionImplERKNS_6MCInstERKNS_15MCSubtargetInfoE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm16MCObjectStreamer15emitInstructionERKNS_6MCInstERKNS_15MCSubtargetInfoE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm13X86AsmPrinter23EmitAndCountInstructionERNS_6MCInstE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm13X86AsmPrinter15emitInstructionEPKNS_12MachineInstrE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm10AsmPrinter16emitFunctionBodyEv at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm13X86AsmPrinter20runOnMachineFunctionERNS_15MachineFunctionE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm19MachineFunctionPass13runOnFunctionERNS_8FunctionE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
operator() at /workspace/srcdir/src/jitlayers.cpp:591
_ZN4llvm3orc14IRCompileLayer4emitENS0_29MaterializationResponsibilityENS0_16ThreadSafeModuleE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm3orc31BasicIRLayerMaterializationUnit11materializeENS0_29MaterializationResponsibilityE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession26materializeOnCurrentThreadESt10unique_ptrINS0_19MaterializationUnitESt14default_deleteIS3_EENS0_29MaterializationResponsibilityE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZNSt17_Function_handlerIFvSt10unique_ptrIN4llvm3orc19MaterializationUnitESt14default_deleteIS3_EENS2_29MaterializationResponsibilityEEPS8_E9_M_invokeERKSt9_Any_dataOS6_OS7_ at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession17runOutstandingMUsEv at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupENS0_10LookupKindERKSt6vectorISt4pairIPNS0_8JITDylibENS0_19JITDylibLookupFlagsEESaIS8_EENS0_15SymbolLookupSetENS0_11SymbolStateENS_15unique_functionIFvNS_8ExpectedINS_8DenseMapINS0_15SymbolStringPtrENS_18JITEvaluatedSymbolENS_12DenseMapInfoISI_EENS_6detail12DenseMapPairISI_SJ_EEEEEEEEESt8functionIFvRKNSH_IS6_NS_8DenseSetISI_SL_EENSK_IS6_EENSN_IS6_SV_EEEEEE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupERKSt6vectorISt4pairIPNS0_8JITDylibENS0_19JITDylibLookupFlagsEESaIS7_EERKNS0_15SymbolLookupSetENS0_10LookupKindENS0_11SymbolStateESt8functionIFvRKNS_8DenseMapIS5_NS_8DenseSetINS0_15SymbolStringPtrENS_12DenseMapInfoISK_EEEENSL_IS5_EENS_6detail12DenseMapPairIS5_SN_EEEEEE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupERKSt6vectorISt4pairIPNS0_8JITDylibENS0_19JITDylibLookupFlagsEESaIS7_EENS0_15SymbolStringPtrENS0_11SymbolStateE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupENS_8ArrayRefIPNS0_8JITDylibEEENS0_15SymbolStringPtrENS0_11SymbolStateE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
_ZN4llvm3orc16ExecutionSession6lookupENS_8ArrayRefIPNS0_8JITDylibEEENS_9StringRefENS0_11SymbolStateE at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
addModule at /workspace/srcdir/src/jitlayers.cpp:766

Possibly a failed assertion, so we should maybe do a PkgEval run with assertions enabled.

maleadt commented 3 years ago

Unmangled:

(anonymous namespace)::X86MCCodeEmitter::emitOpcodePrefix(int, llvm::MCInst const&, llvm::MCSubtargetInfo const&, llvm::raw_ostream&) const at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
(anonymous namespace)::X86MCCodeEmitter::encodeInstruction(llvm::MCInst const&, llvm::raw_ostream&, llvm::SmallVectorImpl<llvm::MCFixup>&, llvm::MCSubtargetInfo const&) const at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::MCELFStreamer::emitInstToData(llvm::MCInst const&, llvm::MCSubtargetInfo const&) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::MCObjectStreamer::emitInstructionImpl(llvm::MCInst const&, llvm::MCSubtargetInfo const&) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::MCObjectStreamer::emitInstruction(llvm::MCInst const&, llvm::MCSubtargetInfo const&) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::X86AsmPrinter::EmitAndCountInstruction(llvm::MCInst&) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::X86AsmPrinter::emitInstruction(llvm::MachineInstr const*) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::AsmPrinter::emitFunctionBody() at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::X86AsmPrinter::runOnMachineFunction(llvm::MachineFunction&) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::MachineFunctionPass::runOnFunction(llvm::Function&) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::FPPassManager::runOnFunction(llvm::Function&) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::FPPassManager::runOnModule(llvm::Module&) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::legacy::PassManagerImpl::run(llvm::Module&) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
operator() at /workspace/srcdir/src/jitlayers.cpp:591
llvm::orc::IRCompileLayer::emit(llvm::orc::MaterializationResponsibility, llvm::orc::ThreadSafeModule) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::orc::BasicIRLayerMaterializationUnit::materialize(llvm::orc::MaterializationResponsibility) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::orc::ExecutionSession::materializeOnCurrentThread(std::unique_ptr<llvm::orc::MaterializationUnit, std::default_delete<llvm::orc::MaterializationUnit> >, llvm::orc::MaterializationResponsibility) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
std::_Function_handler<void (std::unique_ptr<llvm::orc::MaterializationUnit, std::default_delete<llvm::orc::MaterializationUnit> >, llvm::orc::MaterializationResponsibility), void (*)(std::unique_ptr<llvm::orc::MaterializationUnit, std::default_delete<llvm::orc::MaterializationUnit> >, llvm::orc::MaterializationResponsibility)>::_M_invoke(std::_Any_data const&, std::unique_ptr<llvm::orc::MaterializationUnit, std::default_delete<llvm::orc::MaterializationUnit> >&&, llvm::orc::MaterializationResponsibility&&) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::orc::ExecutionSession::runOutstandingMUs() at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolLookupSet, llvm::orc::SymbolState, llvm::unique_function<void (llvm::Expected<llvm::DenseMap<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr>, llvm::detail::DenseMapPair<llvm::orc::SymbolStringPtr, llvm::JITEvaluatedSymbol> > >)>, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr> >, llvm::DenseMapInfo<llvm::orc::JITDylib*>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr> > > > const&)>) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::orc::ExecutionSession::lookup(std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolLookupSet const&, llvm::orc::LookupKind, llvm::orc::SymbolState, std::function<void (llvm::DenseMap<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr> >, llvm::DenseMapInfo<llvm::orc::JITDylib*>, llvm::detail::DenseMapPair<llvm::orc::JITDylib*, llvm::DenseSet<llvm::orc::SymbolStringPtr, llvm::DenseMapInfo<llvm::orc::SymbolStringPtr> > > > const&)>) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::orc::ExecutionSession::lookup(std::vector<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags>, std::allocator<std::pair<llvm::orc::JITDylib*, llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolStringPtr, llvm::orc::SymbolState) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::orc::ExecutionSession::lookup(llvm::ArrayRef<llvm::orc::JITDylib*>, llvm::orc::SymbolStringPtr, llvm::orc::SymbolState) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
llvm::orc::ExecutionSession::lookup(llvm::ArrayRef<llvm::orc::JITDylib*>, llvm::StringRef, llvm::orc::SymbolState) at /opt/julia/bin/../lib/julia/libLLVM-11jl.so (unknown line)
maleadt commented 3 years ago

An assertion indeed:

julia: /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/include/llvm/MC/MCInst.h:65: unsigned int llvm::MCOperand::getReg() const: Assertion `isReg() && "This is not a register operand!"' failed.

signal (6): Aborted
in expression starting at /run/user/1000/tmp.7ZpWsSxlvM/packages/Feather/8ZDiW/test/runtests.jl:17
gsignal at /nix/store/a6rnjp15qgp8a699dlffqj94hzy1nldg-glibc-2.32/lib/libc.so.6 (unknown line)
abort at /nix/store/a6rnjp15qgp8a699dlffqj94hzy1nldg-glibc-2.32/lib/libc.so.6 (unknown line)
__assert_fail_base.cold.0 at /nix/store/a6rnjp15qgp8a699dlffqj94hzy1nldg-glibc-2.32/lib/libc.so.6 (unknown line)
__assert_fail at /nix/store/a6rnjp15qgp8a699dlffqj94hzy1nldg-glibc-2.32/lib/libc.so.6 (unknown line)
getReg at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/include/llvm/MC/MCInst.h:65 [inlined]
getX86RegNum at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:274
getX86RegEncoding at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/include/llvm/ADT/SmallVector.h:180
isREXExtendedReg at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:288 [inlined]
operator() at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:1258 [inlined]
emitREXPrefix at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:1295 [inlined]
emitOpcodePrefix at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:1354 [inlined]
emitPrefixImpl at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:702
encodeInstruction at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp:1410
emitInstToData at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/MC/MCELFStreamer.cpp:519
emitInstructionImpl at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/MC/MCObjectStreamer.cpp:395
emitInstruction at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/MC/MCObjectStreamer.cpp:375
EmitAndCountInstruction at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/Target/X86/X86MCInstLower.cpp:126
emitInstruction at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/Target/X86/X86MCInstLower.cpp:2617
emitFunctionBody at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:1158
runOnMachineFunction at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/Target/X86/X86AsmPrinter.cpp:82
runOnFunction at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/CodeGen/MachineFunctionPass.cpp:73 [inlined]
runOnFunction at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/CodeGen/MachineFunctionPass.cpp:38
runOnFunction at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/IR/LegacyPassManager.cpp:1516
runOnModule at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/IR/LegacyPassManager.cpp:1552
runOnModule at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/IR/LegacyPassManager.cpp:1617 [inlined]
run at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/IR/LegacyPassManager.cpp:614
operator() at /home/tim/Julia/src/julia/src/jitlayers.cpp:591
withModuleDo<llvm::orc::IRCompileLayer::IRCompiler&> at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h:136 [inlined]
emit at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/ExecutionEngine/Orc/IRCompileLayer.cpp:32
materialize at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/ExecutionEngine/Orc/Layer.cpp:156
materializeOnCurrentThread at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/include/llvm/ExecutionEngine/Orc/Core.h:1269
_M_invoke at /nix/store/gqm07as49jn3gqmxlxrgpnqhzmm18374-gcc-9.3.0/include/c++/9.3.0/bits/std_function.h:300
operator() at /nix/store/gqm07as49jn3gqmxlxrgpnqhzmm18374-gcc-9.3.0/include/c++/9.3.0/bits/std_function.h:688 [inlined]
dispatchMaterialization at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/include/llvm/ExecutionEngine/Orc/Core.h:1255 [inlined]
runOutstandingMUs at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/ExecutionEngine/Orc/Core.cpp:2098
lookup at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/ExecutionEngine/Orc/Core.cpp:1990
lookup at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/ExecutionEngine/Orc/Core.cpp:2027
lookup at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/ExecutionEngine/Orc/Core.cpp:2053
lookup at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/ExecutionEngine/Orc/Core.cpp:2064
lookup at /home/tim/Julia/src/julia/deps/srccache/llvm-11.0.0/lib/ExecutionEngine/Orc/Core.cpp:2070
addModule at /home/tim/Julia/src/julia/src/jitlayers.cpp:766
maleadt commented 3 years ago

Still happens on https://github.com/JuliaLang/julia/pull/38785, so unrelated to ORCv2.

maleadt commented 3 years ago

Reduced from Feather.jl and Dataframes.jl to some code from CategoricalArrrays.jl:

function CategoricalPool(f)
    if length(f) > typemax(Int32)
        undef
    end
end

using InteractiveUtils
code_native(CategoricalPool, Tuple{Array})

Interestingly, trapping the IR as added to the EE didn't reproduce outside of Julia. So I jerry-rigged jl_add_to_ee with a script to llvm-reduce and after some manual clean-up:

target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

define i1 @foo(i64* %0) {
top:
  %1 = load i64, i64* %0, align 8, !range !0
  %2 = icmp ult i64 %1, 2147483648
  ret i1 %2
}

!0 = !{i64 0, i64 9223372036854775807}

This now does reproduce with llc. Filed upstream: https://bugs.llvm.org/show_bug.cgi?id=48458

Keno commented 3 years ago

Fixed by https://github.com/llvm/llvm-project/commit/5ff5cf8e057782e3e648ecf5ccf1d9990b53ee90 according to the upstream issue. @vchuravy can you pick this up in the LLVM bump you're setting up?

vchuravy commented 3 years ago

Ah didn't see that in time. Will do.

Edit: https://github.com/JuliaPackaging/Yggdrasil/pull/2241

Keno commented 3 years ago

I believe the LLVM bump is merged. @maleadt can you confirm this is fixed?

maleadt commented 3 years ago

Seems resolved, and Feather.jl also passes tests now.