Closed maleadt closed 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)
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
Still happens on https://github.com/JuliaLang/julia/pull/38785, so unrelated to ORCv2.
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
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?
Ah didn't see that in time. Will do.
I believe the LLVM bump is merged. @maleadt can you confirm this is fixed?
Seems resolved, and Feather.jl also passes tests now.
From the recent PkgEval, and lists ORC in the backtrace, so maybe caused by https://github.com/JuliaLang/julia/pull/38008:
Also in Feather.jl
Possibly a failed assertion, so we should maybe do a PkgEval run with assertions enabled.