Igor Gomon via llvm-dev
2020-May-23 18:22 UTC
[llvm-dev] Assertion triggered when running simple hello-world code on iOS device using ORC/LLLazyJIT
Hello,
I am trying to run this basic C++ hello-world code in my iOS app that has
LLVM libraries linked in (the app runs on the actual device - iPad Pro, iOS
13.4.1).
#include <iostream>
int main (int argh, char *argv[]) {
std::cout << "Hello World!" << std::endl;
return 0;
}
So below is the break down of the steps that I do:
First I compile this code to an instance of llvm::Module by using the logic
borrowed from the lli tool.
Once I have the Module instance I construct an instance of orc::LLLazyJIT
(J), configure it (again closely following the logic in lli tool)
to which I then add the module like this:
// Add the main module.
ExitOnErr(J->addLazyIRModule(orc::ThreadSafeModule(std::move(MainModule),
TSCtx)));
Finally the module is executed like this:
// Run main.
auto MainSym = ExitOnErr(J->lookup("main"));
typedef int (*MainFnPtr)(int, char *[]);
auto Result = orc::runAsMain(
jitTargetAddressToFunction<MainFnPtr>(MainSym.getAddress()), Args,
StringRef("lli"));
The Xcode halts the execution when an assertion is triggered in
llvm::jitlink::Symbol::constructNamedDef
(the full call stack is below).
The line that triggers the assertion is this:
assert(Offset < Base.getSize() && "Symbol offset is outside
block");
because both Offset and Base.getSize() evaluate to 0).
The data referred to by the Base block is "Hello World!".
I don't understand why this assertion happens. Should the Base block size
be > 0 ?
I am relatively new to LLVM, I did read the documentation on OCR Design and
Implementation - but still can't figure out what's going on.
If there is any additional documentation I can read on running code using
ORC/JIT APIs that would shed more light on the internals/implementation?
Any help would be greatly appreciated.
Thank you.
--
Best,
Igor
#4 0x0000000106696d70 in llvm::jitlink::Symbol::constructNamedDef(void*,
llvm::jitlink::Block&, unsigned long long, llvm::StringRef, unsigned long
long, llvm::jitlink::Linkage, llvm::jitlink::Scope, bool, bool) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:366
#5 0x0000000106691e8c in
llvm::jitlink::LinkGraph::addDefinedSymbol(llvm::jitlink::Block&, unsigned
long long, llvm::StringRef, unsigned long long, llvm::jitlink::Linkage,
llvm::jitlink::Scope, bool, bool) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:897
#6 0x000000010668f654 in
llvm::jitlink::MachOLinkGraphBuilder::graphifyRegularSymbols() at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp:502
#7 0x000000010668d16c in llvm::jitlink::MachOLinkGraphBuilder::buildGraph()
at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp:36
#8 0x000000010666cd08 in
llvm::jitlink::MachOJITLinker_arm64::buildGraph(llvm::MemoryBufferRef) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:493
#9 0x00000001066236bc in
llvm::jitlink::JITLinkerBase::linkPhase1(std::__1::unique_ptr<llvm::jitlink::JITLinkerBase,
std::__1::default_delete<llvm::jitlink::JITLinkerBase> >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp:28
#10 0x000000010665fc10 in void
llvm::jitlink::JITLinker<llvm::jitlink::MachOJITLinker_arm64>::link<std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
std::__1::default_delete<llvm::jitlink::JITLinkContext> >,
llvm::jitlink::PassConfiguration>(std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
std::__1::default_delete<llvm::jitlink::JITLinkContext> >&&,
llvm::jitlink::PassConfiguration&&) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:139
#11 0x000000010665f93c in
llvm::jitlink::jitLink_MachO_arm64(std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:685
#12 0x000000010665e604 in
llvm::jitlink::jitLink_MachO(std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO.cpp:69
#13 0x0000000106616f58 in
llvm::jitlink::jitLink(std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLink.cpp:306
#14 0x00000001063db144 in
llvm::orc::ObjectLinkingLayer::emit(llvm::orc::MaterializationResponsibility,
std::__1::unique_ptr<llvm::MemoryBuffer,
std::__1::default_delete<llvm::MemoryBuffer> >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:343
#15 0x00000001064044f4 in
llvm::orc::ObjectTransformLayer::emit(llvm::orc::MaterializationResponsibility,
std::__1::unique_ptr<llvm::MemoryBuffer,
std::__1::default_delete<llvm::MemoryBuffer> >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp:35
#16 0x000000010638e9c8 in
llvm::orc::IRCompileLayer::emit(llvm::orc::MaterializationResponsibility,
llvm::orc::ThreadSafeModule) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp:35
#17 0x000000010638ff64 in
llvm::orc::IRTransformLayer::emit(llvm::orc::MaterializationResponsibility,
llvm::orc::ThreadSafeModule) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp:25
#18 0x00000001062b2b5c in
llvm::orc::CompileOnDemandLayer::emitPartition(llvm::orc::MaterializationResponsibility,
llvm::orc::ThreadSafeModule, std::__1::map<llvm::orc::SymbolStringPtr,
llvm::GlobalValue*, std::__1::less<llvm::orc::SymbolStringPtr>,
std::__1::allocator<std::__1::pair<llvm::orc::SymbolStringPtr const,
llvm::GlobalValue*> > >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:320
#19 0x00000001062b8470 in
llvm::orc::PartitioningIRMaterializationUnit::materialize(llvm::orc::MaterializationResponsibility)
at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:86
#20 0x00000001062e2844 in
llvm::orc::MaterializationUnit::doMaterialize(llvm::orc::JITDylib&) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:563
#21 0x00000001062db744 in
llvm::orc::ExecutionSession::materializeOnCurrentThread(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1212
#22 0x00000001062eaf98 in decltype(std::__1::forward<void
(*&)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit>>)>(fp)(std::__1::forward<llvm::orc::JITDylib&>(fp0),
std::__1::forward<std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> > >(fp0)))
std::__1::__invoke<void (*&)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void
(*&)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4425
#23 0x00000001062eaef8 in void
std::__1::__invoke_void_return_wrapper<void>::__call<void
(*&)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void
(*&)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:348
#24 0x00000001062eae94 in std::__1::__function::__alloc_func<void
(*)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
std::__1::allocator<void (*)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void
(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit>>)>::operator()(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1533
#25 0x00000001062e980c in std::__1::__function::__func<void
(*)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
std::__1::allocator<void (*)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void
(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit>>)>::operator()(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1707
#26 0x00000001062e2314 in std::__1::__function::__value_func<void
(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit>>)>::operator()(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
const at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1860
#27 0x00000001062e2198 in std::__1::function<void (llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit>>)>::operator()(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >) const at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2419
#28 0x00000001062d76b4 in
llvm::orc::ExecutionSession::dispatchMaterialization(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1198
#29 0x00000001062d955c in llvm::orc::ExecutionSession::runOutstandingMUs()
at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2161
#30 0x00000001062d623c in
llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind,
std::__1::vector<std::__1::pair<llvm::orc::JITDylib*,
llvm::orc::JITDylibLookupFlags>,
std::__1::allocator<std::__1::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::__1::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
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2058
#31 0x00000001063e5128 in
llvm::orc::ObjectLinkingLayerJITLinkContext::lookup(llvm::DenseMap<llvm::StringRef,
llvm::jitlink::SymbolLookupFlags, llvm::DenseMapInfo<llvm::StringRef>,
llvm::detail::DenseMapPair<llvm::StringRef,
llvm::jitlink::SymbolLookupFlags> > const&,
std::__1::unique_ptr<llvm::jitlink::JITLinkAsyncLookupContinuation,
std::__1::default_delete<llvm::jitlink::JITLinkAsyncLookupContinuation>
>)
at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:87
#32 0x0000000106623bac in
llvm::jitlink::JITLinkerBase::linkPhase1(std::__1::unique_ptr<llvm::jitlink::JITLinkerBase,
std::__1::default_delete<llvm::jitlink::JITLinkerBase> >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp:77
#33 0x000000010665fc10 in void
llvm::jitlink::JITLinker<llvm::jitlink::MachOJITLinker_arm64>::link<std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
std::__1::default_delete<llvm::jitlink::JITLinkContext> >,
llvm::jitlink::PassConfiguration>(std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
std::__1::default_delete<llvm::jitlink::JITLinkContext> >&&,
llvm::jitlink::PassConfiguration&&) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:139
#34 0x000000010665f93c in
llvm::jitlink::jitLink_MachO_arm64(std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:685
#35 0x000000010665e604 in
llvm::jitlink::jitLink_MachO(std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO.cpp:69
#36 0x0000000106616f58 in
llvm::jitlink::jitLink(std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLink.cpp:306
#37 0x00000001063db144 in
llvm::orc::ObjectLinkingLayer::emit(llvm::orc::MaterializationResponsibility,
std::__1::unique_ptr<llvm::MemoryBuffer,
std::__1::default_delete<llvm::MemoryBuffer> >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:343
#38 0x00000001064044f4 in
llvm::orc::ObjectTransformLayer::emit(llvm::orc::MaterializationResponsibility,
std::__1::unique_ptr<llvm::MemoryBuffer,
std::__1::default_delete<llvm::MemoryBuffer> >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp:35
#39 0x000000010638e9c8 in
llvm::orc::IRCompileLayer::emit(llvm::orc::MaterializationResponsibility,
llvm::orc::ThreadSafeModule) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp:35
#40 0x000000010638ff64 in
llvm::orc::IRTransformLayer::emit(llvm::orc::MaterializationResponsibility,
llvm::orc::ThreadSafeModule) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp:25
#41 0x00000001062b2b5c in
llvm::orc::CompileOnDemandLayer::emitPartition(llvm::orc::MaterializationResponsibility,
llvm::orc::ThreadSafeModule, std::__1::map<llvm::orc::SymbolStringPtr,
llvm::GlobalValue*, std::__1::less<llvm::orc::SymbolStringPtr>,
std::__1::allocator<std::__1::pair<llvm::orc::SymbolStringPtr const,
llvm::GlobalValue*> > >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:320
#42 0x00000001062b8470 in
llvm::orc::PartitioningIRMaterializationUnit::materialize(llvm::orc::MaterializationResponsibility)
at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:86
#43 0x00000001062e2844 in
llvm::orc::MaterializationUnit::doMaterialize(llvm::orc::JITDylib&) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:563
#44 0x00000001062db744 in
llvm::orc::ExecutionSession::materializeOnCurrentThread(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1212
#45 0x00000001062eaf98 in decltype(std::__1::forward<void
(*&)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit>>)>(fp)(std::__1::forward<llvm::orc::JITDylib&>(fp0),
std::__1::forward<std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> > >(fp0)))
std::__1::__invoke<void (*&)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void
(*&)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4425
#46 0x00000001062eaef8 in void
std::__1::__invoke_void_return_wrapper<void>::__call<void
(*&)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void
(*&)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:348
#47 0x00000001062eae94 in std::__1::__function::__alloc_func<void
(*)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
std::__1::allocator<void (*)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void
(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit>>)>::operator()(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1533
#48 0x00000001062e980c in std::__1::__function::__func<void
(*)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
std::__1::allocator<void (*)(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void
(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit>>)>::operator()(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1707
#49 0x00000001062e2314 in std::__1::__function::__value_func<void
(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit>>)>::operator()(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
const at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1860
#50 0x00000001062e2198 in std::__1::function<void (llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit>>)>::operator()(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >) const at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2419
#51 0x00000001062d76b4 in
llvm::orc::ExecutionSession::dispatchMaterialization(llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
std::__1::default_delete<llvm::orc::MaterializationUnit> >) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1198
#52 0x00000001062d955c in llvm::orc::ExecutionSession::runOutstandingMUs()
at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2161
#53 0x00000001062d623c in
llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind,
std::__1::vector<std::__1::pair<llvm::orc::JITDylib*,
llvm::orc::JITDylibLookupFlags>,
std::__1::allocator<std::__1::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::__1::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
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2058
#54 0x00000001062dc4b0 in
llvm::orc::ExecutionSession::lookup(std::__1::vector<std::__1::pair<llvm::orc::JITDylib*,
llvm::orc::JITDylibLookupFlags>,
std::__1::allocator<std::__1::pair<llvm::orc::JITDylib*,
llvm::orc::JITDylibLookupFlags> > > const&,
llvm::orc::SymbolLookupSet
const&, llvm::orc::LookupKind, llvm::orc::SymbolState,
std::__1::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
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2095
#55 0x00000001062dc6f8 in
llvm::orc::ExecutionSession::lookup(std::__1::vector<std::__1::pair<llvm::orc::JITDylib*,
llvm::orc::JITDylibLookupFlags>,
std::__1::allocator<std::__1::pair<llvm::orc::JITDylib*,
llvm::orc::JITDylibLookupFlags> > > const&,
llvm::orc::SymbolStringPtr) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2120
#56 0x0000000106392c40 in
llvm::orc::LazyCallThroughManager::callThroughToSymbol(unsigned long long)
at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp:54
#57 0x00000001063a07a8 in llvm::Error
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
long long)::operator()(unsigned long long) const at
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h:120
#58 0x00000001063a0760 in decltype(std::__1::forward<llvm::Error
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
long long)&>(fp)(std::__1::forward<unsigned long long>(fp0)))
std::__1::__invoke<llvm::Error
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
long long)&, unsigned long long>(llvm::Error
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
long long)&, unsigned long long&&) at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4425
#59 0x00000001063a06f4 in unsigned long long
std::__1::__invoke_void_return_wrapper<unsigned long
long>::__call<llvm::Error
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
long long)&, unsigned long long>(llvm::Error
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
long long)&, unsigned long long&&) at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:317
#60 0x00000001063a06a8 in std::__1::__function::__alloc_func<llvm::Error
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
long long), std::__1::allocator<llvm::Error
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
long long)>, unsigned long long (unsigned long long)>::operator()(unsigned
long long&&) at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1533
#61 0x000000010639f038 in std::__1::__function::__func<llvm::Error
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
long long), std::__1::allocator<llvm::Error
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
long long)>, unsigned long long (unsigned long long)>::operator()(unsigned
long long&&) at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1707
#62 0x0000000106349f94 in std::__1::__function::__value_func<unsigned long
long (unsigned long long)>::operator()(unsigned long long&&) const at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1860
#63 0x0000000106349f30 in std::__1::function<unsigned long long (unsigned
long long)>::operator()(unsigned long long) const at
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2419
#64 0x0000000106349858 in
llvm::orc::LocalTrampolinePool<llvm::orc::OrcAArch64>::reenter(void*,
void*) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:111
#65 0x0000000117634090 in 0x117634090 ()
#66 0x0000000106323a08 in llvm::orc::runAsMain(int (*)(int, char**),
llvm::ArrayRef<std::__1::basic_string<char,
std::__1::char_traits<char>,
std::__1::allocator<char> > >,
llvm::Optional<llvm::StringRef>) at
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp:45
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20200523/9ebbc6d3/attachment-0001.html>
David Blaikie via llvm-dev
2020-May-25 21:47 UTC
[llvm-dev] Assertion triggered when running simple hello-world code on iOS device using ORC/LLLazyJIT
+Lang for ORC stuff On Mon, May 25, 2020 at 2:35 PM Igor Gomon via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Hello, > > I am trying to run this basic C++ hello-world code in my iOS app that has > LLVM libraries linked in (the app runs on the actual device - iPad Pro, iOS > 13.4.1). > > #include <iostream> > int main (int argh, char *argv[]) { > std::cout << "Hello World!" << std::endl; > return 0; > } > > So below is the break down of the steps that I do: > First I compile this code to an instance of llvm::Module by using the > logic borrowed from the lli tool. > Once I have the Module instance I construct an instance of orc::LLLazyJIT > (J), configure it (again closely following the logic in lli tool) > to which I then add the module like this: > > // Add the main module. > > > ExitOnErr(J->addLazyIRModule(orc::ThreadSafeModule(std::move(MainModule), > TSCtx))); > > > Finally the module is executed like this: > > // Run main. > > auto MainSym = ExitOnErr(J->lookup("main")); > > > typedef int (*MainFnPtr)(int, char *[]); > > auto Result = orc::runAsMain( > > jitTargetAddressToFunction<MainFnPtr>(MainSym.getAddress()), Args, > > StringRef("lli")); > > > The Xcode halts the execution when an assertion is triggered in llvm::jitlink::Symbol::constructNamedDef > (the full call stack is below). > > The line that triggers the assertion is this: > > > assert(Offset < Base.getSize() && "Symbol offset is outside block"); > > > because both Offset and Base.getSize() evaluate to 0). > > The data referred to by the Base block is "Hello World!". > > > I don't understand why this assertion happens. Should the Base block size > be > 0 ? > > I am relatively new to LLVM, I did read the documentation on OCR Design > and Implementation - but still can't figure out what's going on. > > If there is any additional documentation I can read on running code using > ORC/JIT APIs that would shed more light on the internals/implementation? > > > Any help would be greatly appreciated. > > Thank you. > > > -- > > Best, > > Igor > > > > #4 0x0000000106696d70 in llvm::jitlink::Symbol::constructNamedDef(void*, > llvm::jitlink::Block&, unsigned long long, llvm::StringRef, unsigned long > long, llvm::jitlink::Linkage, llvm::jitlink::Scope, bool, bool) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:366 > > #5 0x0000000106691e8c in > llvm::jitlink::LinkGraph::addDefinedSymbol(llvm::jitlink::Block&, unsigned > long long, llvm::StringRef, unsigned long long, llvm::jitlink::Linkage, > llvm::jitlink::Scope, bool, bool) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:897 > > #6 0x000000010668f654 in > llvm::jitlink::MachOLinkGraphBuilder::graphifyRegularSymbols() at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp:502 > > #7 0x000000010668d16c in > llvm::jitlink::MachOLinkGraphBuilder::buildGraph() at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp:36 > > #8 0x000000010666cd08 in > llvm::jitlink::MachOJITLinker_arm64::buildGraph(llvm::MemoryBufferRef) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:493 > > #9 0x00000001066236bc in > llvm::jitlink::JITLinkerBase::linkPhase1(std::__1::unique_ptr<llvm::jitlink::JITLinkerBase, > std::__1::default_delete<llvm::jitlink::JITLinkerBase> >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp:28 > > #10 0x000000010665fc10 in void > llvm::jitlink::JITLinker<llvm::jitlink::MachOJITLinker_arm64>::link<std::__1::unique_ptr<llvm::jitlink::JITLinkContext, > std::__1::default_delete<llvm::jitlink::JITLinkContext> >, > llvm::jitlink::PassConfiguration>(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, > std::__1::default_delete<llvm::jitlink::JITLinkContext> >&&, > llvm::jitlink::PassConfiguration&&) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:139 > > #11 0x000000010665f93c in > llvm::jitlink::jitLink_MachO_arm64(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, > std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:685 > > #12 0x000000010665e604 in > llvm::jitlink::jitLink_MachO(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, > std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO.cpp:69 > > #13 0x0000000106616f58 in > llvm::jitlink::jitLink(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, > std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLink.cpp:306 > > #14 0x00000001063db144 in > llvm::orc::ObjectLinkingLayer::emit(llvm::orc::MaterializationResponsibility, > std::__1::unique_ptr<llvm::MemoryBuffer, > std::__1::default_delete<llvm::MemoryBuffer> >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:343 > > #15 0x00000001064044f4 in > llvm::orc::ObjectTransformLayer::emit(llvm::orc::MaterializationResponsibility, > std::__1::unique_ptr<llvm::MemoryBuffer, > std::__1::default_delete<llvm::MemoryBuffer> >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp:35 > > #16 0x000000010638e9c8 in > llvm::orc::IRCompileLayer::emit(llvm::orc::MaterializationResponsibility, > llvm::orc::ThreadSafeModule) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp:35 > > #17 0x000000010638ff64 in > llvm::orc::IRTransformLayer::emit(llvm::orc::MaterializationResponsibility, > llvm::orc::ThreadSafeModule) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp:25 > > #18 0x00000001062b2b5c in > llvm::orc::CompileOnDemandLayer::emitPartition(llvm::orc::MaterializationResponsibility, > llvm::orc::ThreadSafeModule, std::__1::map<llvm::orc::SymbolStringPtr, > llvm::GlobalValue*, std::__1::less<llvm::orc::SymbolStringPtr>, > std::__1::allocator<std::__1::pair<llvm::orc::SymbolStringPtr const, > llvm::GlobalValue*> > >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:320 > > #19 0x00000001062b8470 in > llvm::orc::PartitioningIRMaterializationUnit::materialize(llvm::orc::MaterializationResponsibility) > at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:86 > > #20 0x00000001062e2844 in > llvm::orc::MaterializationUnit::doMaterialize(llvm::orc::JITDylib&) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:563 > > #21 0x00000001062db744 in > llvm::orc::ExecutionSession::materializeOnCurrentThread(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1212 > > #22 0x00000001062eaf98 in decltype(std::__1::forward<void > (*&)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> > >)>(fp)(std::__1::forward<llvm::orc::JITDylib&>(fp0), > std::__1::forward<std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> > >(fp0))) > std::__1::__invoke<void (*&)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >), > llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void > (*&)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >), > llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4425 > > #23 0x00000001062eaef8 in void > std::__1::__invoke_void_return_wrapper<void>::__call<void > (*&)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >), > llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void > (*&)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >), > llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:348 > > #24 0x00000001062eae94 in std::__1::__function::__alloc_func<void > (*)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >), > std::__1::allocator<void (*)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void > (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> > >)>::operator()(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1533 > > #25 0x00000001062e980c in std::__1::__function::__func<void > (*)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >), > std::__1::allocator<void (*)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void > (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> > >)>::operator()(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1707 > > #26 0x00000001062e2314 in std::__1::__function::__value_func<void > (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> > >)>::operator()(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) const at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1860 > > #27 0x00000001062e2198 in std::__1::function<void (llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> > >)>::operator()(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >) const at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2419 > > #28 0x00000001062d76b4 in > llvm::orc::ExecutionSession::dispatchMaterialization(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1198 > > #29 0x00000001062d955c in > llvm::orc::ExecutionSession::runOutstandingMUs() at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2161 > > #30 0x00000001062d623c in > llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, > std::__1::vector<std::__1::pair<llvm::orc::JITDylib*, > llvm::orc::JITDylibLookupFlags>, > std::__1::allocator<std::__1::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::__1::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 > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2058 > > #31 0x00000001063e5128 in > llvm::orc::ObjectLinkingLayerJITLinkContext::lookup(llvm::DenseMap<llvm::StringRef, > llvm::jitlink::SymbolLookupFlags, llvm::DenseMapInfo<llvm::StringRef>, > llvm::detail::DenseMapPair<llvm::StringRef, > llvm::jitlink::SymbolLookupFlags> > const&, > std::__1::unique_ptr<llvm::jitlink::JITLinkAsyncLookupContinuation, > std::__1::default_delete<llvm::jitlink::JITLinkAsyncLookupContinuation> >) > at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:87 > > #32 0x0000000106623bac in > llvm::jitlink::JITLinkerBase::linkPhase1(std::__1::unique_ptr<llvm::jitlink::JITLinkerBase, > std::__1::default_delete<llvm::jitlink::JITLinkerBase> >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp:77 > > #33 0x000000010665fc10 in void > llvm::jitlink::JITLinker<llvm::jitlink::MachOJITLinker_arm64>::link<std::__1::unique_ptr<llvm::jitlink::JITLinkContext, > std::__1::default_delete<llvm::jitlink::JITLinkContext> >, > llvm::jitlink::PassConfiguration>(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, > std::__1::default_delete<llvm::jitlink::JITLinkContext> >&&, > llvm::jitlink::PassConfiguration&&) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:139 > > #34 0x000000010665f93c in > llvm::jitlink::jitLink_MachO_arm64(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, > std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:685 > > #35 0x000000010665e604 in > llvm::jitlink::jitLink_MachO(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, > std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO.cpp:69 > > #36 0x0000000106616f58 in > llvm::jitlink::jitLink(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, > std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLink.cpp:306 > > #37 0x00000001063db144 in > llvm::orc::ObjectLinkingLayer::emit(llvm::orc::MaterializationResponsibility, > std::__1::unique_ptr<llvm::MemoryBuffer, > std::__1::default_delete<llvm::MemoryBuffer> >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:343 > > #38 0x00000001064044f4 in > llvm::orc::ObjectTransformLayer::emit(llvm::orc::MaterializationResponsibility, > std::__1::unique_ptr<llvm::MemoryBuffer, > std::__1::default_delete<llvm::MemoryBuffer> >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp:35 > > #39 0x000000010638e9c8 in > llvm::orc::IRCompileLayer::emit(llvm::orc::MaterializationResponsibility, > llvm::orc::ThreadSafeModule) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp:35 > > #40 0x000000010638ff64 in > llvm::orc::IRTransformLayer::emit(llvm::orc::MaterializationResponsibility, > llvm::orc::ThreadSafeModule) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp:25 > > #41 0x00000001062b2b5c in > llvm::orc::CompileOnDemandLayer::emitPartition(llvm::orc::MaterializationResponsibility, > llvm::orc::ThreadSafeModule, std::__1::map<llvm::orc::SymbolStringPtr, > llvm::GlobalValue*, std::__1::less<llvm::orc::SymbolStringPtr>, > std::__1::allocator<std::__1::pair<llvm::orc::SymbolStringPtr const, > llvm::GlobalValue*> > >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:320 > > #42 0x00000001062b8470 in > llvm::orc::PartitioningIRMaterializationUnit::materialize(llvm::orc::MaterializationResponsibility) > at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:86 > > #43 0x00000001062e2844 in > llvm::orc::MaterializationUnit::doMaterialize(llvm::orc::JITDylib&) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:563 > > #44 0x00000001062db744 in > llvm::orc::ExecutionSession::materializeOnCurrentThread(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1212 > > #45 0x00000001062eaf98 in decltype(std::__1::forward<void > (*&)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> > >)>(fp)(std::__1::forward<llvm::orc::JITDylib&>(fp0), > std::__1::forward<std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> > >(fp0))) > std::__1::__invoke<void (*&)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >), > llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void > (*&)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >), > llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4425 > > #46 0x00000001062eaef8 in void > std::__1::__invoke_void_return_wrapper<void>::__call<void > (*&)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >), > llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void > (*&)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >), > llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:348 > > #47 0x00000001062eae94 in std::__1::__function::__alloc_func<void > (*)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >), > std::__1::allocator<void (*)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void > (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> > >)>::operator()(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1533 > > #48 0x00000001062e980c in std::__1::__function::__func<void > (*)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >), > std::__1::allocator<void (*)(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void > (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> > >)>::operator()(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1707 > > #49 0x00000001062e2314 in std::__1::__function::__value_func<void > (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> > >)>::operator()(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) const at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1860 > > #50 0x00000001062e2198 in std::__1::function<void (llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> > >)>::operator()(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >) const at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2419 > > #51 0x00000001062d76b4 in > llvm::orc::ExecutionSession::dispatchMaterialization(llvm::orc::JITDylib&, > std::__1::unique_ptr<llvm::orc::MaterializationUnit, > std::__1::default_delete<llvm::orc::MaterializationUnit> >) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1198 > > #52 0x00000001062d955c in > llvm::orc::ExecutionSession::runOutstandingMUs() at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2161 > > #53 0x00000001062d623c in > llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, > std::__1::vector<std::__1::pair<llvm::orc::JITDylib*, > llvm::orc::JITDylibLookupFlags>, > std::__1::allocator<std::__1::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::__1::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 > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2058 > > #54 0x00000001062dc4b0 in > llvm::orc::ExecutionSession::lookup(std::__1::vector<std::__1::pair<llvm::orc::JITDylib*, > llvm::orc::JITDylibLookupFlags>, > std::__1::allocator<std::__1::pair<llvm::orc::JITDylib*, > llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolLookupSet > const&, llvm::orc::LookupKind, llvm::orc::SymbolState, > std::__1::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 > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2095 > > #55 0x00000001062dc6f8 in > llvm::orc::ExecutionSession::lookup(std::__1::vector<std::__1::pair<llvm::orc::JITDylib*, > llvm::orc::JITDylibLookupFlags>, > std::__1::allocator<std::__1::pair<llvm::orc::JITDylib*, > llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolStringPtr) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2120 > > #56 0x0000000106392c40 in > llvm::orc::LazyCallThroughManager::callThroughToSymbol(unsigned long long) > at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp:54 > > #57 0x00000001063a07a8 in llvm::Error > llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned > long long)::operator()(unsigned long long) const at > /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h:120 > > #58 0x00000001063a0760 in decltype(std::__1::forward<llvm::Error > llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned > long long)&>(fp)(std::__1::forward<unsigned long long>(fp0))) > std::__1::__invoke<llvm::Error > llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned > long long)&, unsigned long long>(llvm::Error > llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned > long long)&, unsigned long long&&) at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4425 > > #59 0x00000001063a06f4 in unsigned long long > std::__1::__invoke_void_return_wrapper<unsigned long > long>::__call<llvm::Error > llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned > long long)&, unsigned long long>(llvm::Error > llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned > long long)&, unsigned long long&&) at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:317 > > #60 0x00000001063a06a8 in std::__1::__function::__alloc_func<llvm::Error > llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned > long long), std::__1::allocator<llvm::Error > llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned > long long)>, unsigned long long (unsigned long long)>::operator()(unsigned > long long&&) at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1533 > > #61 0x000000010639f038 in std::__1::__function::__func<llvm::Error > llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned > long long), std::__1::allocator<llvm::Error > llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned > long long)>, unsigned long long (unsigned long long)>::operator()(unsigned > long long&&) at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1707 > > #62 0x0000000106349f94 in std::__1::__function::__value_func<unsigned > long long (unsigned long long)>::operator()(unsigned long long&&) const at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1860 > > #63 0x0000000106349f30 in std::__1::function<unsigned long long (unsigned > long long)>::operator()(unsigned long long) const at > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2419 > > #64 0x0000000106349858 in > llvm::orc::LocalTrampolinePool<llvm::orc::OrcAArch64>::reenter(void*, > void*) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:111 > > #65 0x0000000117634090 in 0x117634090 () > > #66 0x0000000106323a08 in llvm::orc::runAsMain(int (*)(int, char**), > llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, > std::__1::allocator<char> > >, llvm::Optional<llvm::StringRef>) at > /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp:45 > > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200525/65adc3c4/attachment.html>
Lang Hames via llvm-dev
2020-Jun-01 18:01 UTC
[llvm-dev] Assertion triggered when running simple hello-world code on iOS device using ORC/LLLazyJIT
Hi Igor, Thanks for the walkthrough! This sounds like it might be a JITLink MachO parser bug. Are you able to share the module that causes the failure? It may also be interesting to run your tool with '-debug-only=jitlink' and capture the output. Regards, Lang. On Sun, May 31, 2020 at 2:08 PM Igor Gomon <igomonv at gmail.com> wrote:> Hello Lang, > > I was just wondering if you had a chance to look at my issue or maybe have > an idea what may have caused it. > Thanks! > > > — > Best Regards, > Igor Gomon > Sent from my iPad > > On May 25, 2020, at 5:48 PM, David Blaikie <dblaikie at gmail.com> wrote: > > > +Lang for ORC stuff > > On Mon, May 25, 2020 at 2:35 PM Igor Gomon via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> Hello, >> >> I am trying to run this basic C++ hello-world code in my iOS app that has >> LLVM libraries linked in (the app runs on the actual device - iPad Pro, iOS >> 13.4.1). >> >> #include <iostream> >> int main (int argh, char *argv[]) { >> std::cout << "Hello World!" << std::endl; >> return 0; >> } >> >> So below is the break down of the steps that I do: >> First I compile this code to an instance of llvm::Module by using the >> logic borrowed from the lli tool. >> Once I have the Module instance I construct an instance of orc::LLLazyJIT >> (J), configure it (again closely following the logic in lli tool) >> to which I then add the module like this: >> >> // Add the main module. >> >> >> ExitOnErr(J->addLazyIRModule(orc::ThreadSafeModule(std::move(MainModule), >> TSCtx))); >> >> >> Finally the module is executed like this: >> >> // Run main. >> >> auto MainSym = ExitOnErr(J->lookup("main")); >> >> >> typedef int (*MainFnPtr)(int, char *[]); >> >> auto Result = orc::runAsMain( >> >> jitTargetAddressToFunction<MainFnPtr>(MainSym.getAddress()), Args, >> >> StringRef("lli")); >> >> >> The Xcode halts the execution when an assertion is triggered in llvm::jitlink::Symbol::constructNamedDef >> (the full call stack is below). >> >> The line that triggers the assertion is this: >> >> >> assert(Offset < Base.getSize() && "Symbol offset is outside block"); >> >> >> because both Offset and Base.getSize() evaluate to 0). >> >> The data referred to by the Base block is "Hello World!". >> >> >> I don't understand why this assertion happens. Should the Base block size >> be > 0 ? >> >> I am relatively new to LLVM, I did read the documentation on OCR Design >> and Implementation - but still can't figure out what's going on. >> >> If there is any additional documentation I can read on running code >> using ORC/JIT APIs that would shed more light on the internals/ >> implementation? >> >> >> Any help would be greatly appreciated. >> >> Thank you. >> >> >> -- >> >> Best, >> >> Igor >> >> >> >> #4 0x0000000106696d70 in llvm::jitlink::Symbol::constructNamedDef(void*, >> llvm::jitlink::Block&, unsigned long long, llvm::StringRef, unsigned long >> long, llvm::jitlink::Linkage, llvm::jitlink::Scope, bool, bool) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:366 >> >> #5 0x0000000106691e8c in >> llvm::jitlink::LinkGraph::addDefinedSymbol(llvm::jitlink::Block&, unsigned >> long long, llvm::StringRef, unsigned long long, llvm::jitlink::Linkage, >> llvm::jitlink::Scope, bool, bool) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:897 >> >> #6 0x000000010668f654 in >> llvm::jitlink::MachOLinkGraphBuilder::graphifyRegularSymbols() at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp:502 >> >> #7 0x000000010668d16c in >> llvm::jitlink::MachOLinkGraphBuilder::buildGraph() at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp:36 >> >> #8 0x000000010666cd08 in >> llvm::jitlink::MachOJITLinker_arm64::buildGraph(llvm::MemoryBufferRef) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:493 >> >> #9 0x00000001066236bc in >> llvm::jitlink::JITLinkerBase::linkPhase1(std::__1::unique_ptr<llvm::jitlink::JITLinkerBase, >> std::__1::default_delete<llvm::jitlink::JITLinkerBase> >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp:28 >> >> #10 0x000000010665fc10 in void >> llvm::jitlink::JITLinker<llvm::jitlink::MachOJITLinker_arm64>::link<std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >> std::__1::default_delete<llvm::jitlink::JITLinkContext> >, >> llvm::jitlink::PassConfiguration>(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >> std::__1::default_delete<llvm::jitlink::JITLinkContext> >&&, >> llvm::jitlink::PassConfiguration&&) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:139 >> >> #11 0x000000010665f93c in >> llvm::jitlink::jitLink_MachO_arm64(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >> std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:685 >> >> #12 0x000000010665e604 in >> llvm::jitlink::jitLink_MachO(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >> std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO.cpp:69 >> >> #13 0x0000000106616f58 in >> llvm::jitlink::jitLink(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >> std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLink.cpp:306 >> >> #14 0x00000001063db144 in >> llvm::orc::ObjectLinkingLayer::emit(llvm::orc::MaterializationResponsibility, >> std::__1::unique_ptr<llvm::MemoryBuffer, >> std::__1::default_delete<llvm::MemoryBuffer> >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:343 >> >> #15 0x00000001064044f4 in >> llvm::orc::ObjectTransformLayer::emit(llvm::orc::MaterializationResponsibility, >> std::__1::unique_ptr<llvm::MemoryBuffer, >> std::__1::default_delete<llvm::MemoryBuffer> >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp:35 >> >> #16 0x000000010638e9c8 in >> llvm::orc::IRCompileLayer::emit(llvm::orc::MaterializationResponsibility, >> llvm::orc::ThreadSafeModule) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp:35 >> >> #17 0x000000010638ff64 in >> llvm::orc::IRTransformLayer::emit(llvm::orc::MaterializationResponsibility, >> llvm::orc::ThreadSafeModule) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp:25 >> >> #18 0x00000001062b2b5c in >> llvm::orc::CompileOnDemandLayer::emitPartition(llvm::orc::MaterializationResponsibility, >> llvm::orc::ThreadSafeModule, std::__1::map<llvm::orc::SymbolStringPtr, >> llvm::GlobalValue*, std::__1::less<llvm::orc::SymbolStringPtr>, >> std::__1::allocator<std::__1::pair<llvm::orc::SymbolStringPtr const, >> llvm::GlobalValue*> > >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:320 >> >> #19 0x00000001062b8470 in >> llvm::orc::PartitioningIRMaterializationUnit::materialize(llvm::orc::MaterializationResponsibility) >> at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:86 >> >> #20 0x00000001062e2844 in >> llvm::orc::MaterializationUnit::doMaterialize(llvm::orc::JITDylib&) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:563 >> >> #21 0x00000001062db744 in >> llvm::orc::ExecutionSession::materializeOnCurrentThread(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1212 >> >> #22 0x00000001062eaf98 in decltype(std::__1::forward<void >> (*&)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >> >)>(fp)(std::__1::forward<llvm::orc::JITDylib&>(fp0), >> std::__1::forward<std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> > >(fp0))) >> std::__1::__invoke<void (*&)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >> llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void >> (*&)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >> llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4425 >> >> #23 0x00000001062eaef8 in void >> std::__1::__invoke_void_return_wrapper<void>::__call<void >> (*&)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >> llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void >> (*&)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >> llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:348 >> >> #24 0x00000001062eae94 in std::__1::__function::__alloc_func<void >> (*)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >> std::__1::allocator<void (*)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void >> (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >> >)>::operator()(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1533 >> >> #25 0x00000001062e980c in std::__1::__function::__func<void >> (*)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >> std::__1::allocator<void (*)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void >> (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >> >)>::operator()(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1707 >> >> #26 0x00000001062e2314 in std::__1::__function::__value_func<void >> (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >> >)>::operator()(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) const at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1860 >> >> #27 0x00000001062e2198 in std::__1::function<void (llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >> >)>::operator()(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >) const at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2419 >> >> #28 0x00000001062d76b4 in >> llvm::orc::ExecutionSession::dispatchMaterialization(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1198 >> >> #29 0x00000001062d955c in >> llvm::orc::ExecutionSession::runOutstandingMUs() at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2161 >> >> #30 0x00000001062d623c in >> llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, >> std::__1::vector<std::__1::pair<llvm::orc::JITDylib*, >> llvm::orc::JITDylibLookupFlags>, >> std::__1::allocator<std::__1::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::__1::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 >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2058 >> >> #31 0x00000001063e5128 in >> llvm::orc::ObjectLinkingLayerJITLinkContext::lookup(llvm::DenseMap<llvm::StringRef, >> llvm::jitlink::SymbolLookupFlags, llvm::DenseMapInfo<llvm::StringRef>, >> llvm::detail::DenseMapPair<llvm::StringRef, >> llvm::jitlink::SymbolLookupFlags> > const&, >> std::__1::unique_ptr<llvm::jitlink::JITLinkAsyncLookupContinuation, >> std::__1::default_delete<llvm::jitlink::JITLinkAsyncLookupContinuation> >) >> at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:87 >> >> #32 0x0000000106623bac in >> llvm::jitlink::JITLinkerBase::linkPhase1(std::__1::unique_ptr<llvm::jitlink::JITLinkerBase, >> std::__1::default_delete<llvm::jitlink::JITLinkerBase> >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp:77 >> >> #33 0x000000010665fc10 in void >> llvm::jitlink::JITLinker<llvm::jitlink::MachOJITLinker_arm64>::link<std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >> std::__1::default_delete<llvm::jitlink::JITLinkContext> >, >> llvm::jitlink::PassConfiguration>(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >> std::__1::default_delete<llvm::jitlink::JITLinkContext> >&&, >> llvm::jitlink::PassConfiguration&&) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:139 >> >> #34 0x000000010665f93c in >> llvm::jitlink::jitLink_MachO_arm64(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >> std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:685 >> >> #35 0x000000010665e604 in >> llvm::jitlink::jitLink_MachO(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >> std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO.cpp:69 >> >> #36 0x0000000106616f58 in >> llvm::jitlink::jitLink(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >> std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLink.cpp:306 >> >> #37 0x00000001063db144 in >> llvm::orc::ObjectLinkingLayer::emit(llvm::orc::MaterializationResponsibility, >> std::__1::unique_ptr<llvm::MemoryBuffer, >> std::__1::default_delete<llvm::MemoryBuffer> >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:343 >> >> #38 0x00000001064044f4 in >> llvm::orc::ObjectTransformLayer::emit(llvm::orc::MaterializationResponsibility, >> std::__1::unique_ptr<llvm::MemoryBuffer, >> std::__1::default_delete<llvm::MemoryBuffer> >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp:35 >> >> #39 0x000000010638e9c8 in >> llvm::orc::IRCompileLayer::emit(llvm::orc::MaterializationResponsibility, >> llvm::orc::ThreadSafeModule) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp:35 >> >> #40 0x000000010638ff64 in >> llvm::orc::IRTransformLayer::emit(llvm::orc::MaterializationResponsibility, >> llvm::orc::ThreadSafeModule) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp:25 >> >> #41 0x00000001062b2b5c in >> llvm::orc::CompileOnDemandLayer::emitPartition(llvm::orc::MaterializationResponsibility, >> llvm::orc::ThreadSafeModule, std::__1::map<llvm::orc::SymbolStringPtr, >> llvm::GlobalValue*, std::__1::less<llvm::orc::SymbolStringPtr>, >> std::__1::allocator<std::__1::pair<llvm::orc::SymbolStringPtr const, >> llvm::GlobalValue*> > >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:320 >> >> #42 0x00000001062b8470 in >> llvm::orc::PartitioningIRMaterializationUnit::materialize(llvm::orc::MaterializationResponsibility) >> at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:86 >> >> #43 0x00000001062e2844 in >> llvm::orc::MaterializationUnit::doMaterialize(llvm::orc::JITDylib&) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:563 >> >> #44 0x00000001062db744 in >> llvm::orc::ExecutionSession::materializeOnCurrentThread(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1212 >> >> #45 0x00000001062eaf98 in decltype(std::__1::forward<void >> (*&)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >> >)>(fp)(std::__1::forward<llvm::orc::JITDylib&>(fp0), >> std::__1::forward<std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> > >(fp0))) >> std::__1::__invoke<void (*&)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >> llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void >> (*&)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >> llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4425 >> >> #46 0x00000001062eaef8 in void >> std::__1::__invoke_void_return_wrapper<void>::__call<void >> (*&)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >> llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void >> (*&)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >> llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:348 >> >> #47 0x00000001062eae94 in std::__1::__function::__alloc_func<void >> (*)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >> std::__1::allocator<void (*)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void >> (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >> >)>::operator()(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1533 >> >> #48 0x00000001062e980c in std::__1::__function::__func<void >> (*)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >> std::__1::allocator<void (*)(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void >> (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >> >)>::operator()(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1707 >> >> #49 0x00000001062e2314 in std::__1::__function::__value_func<void >> (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >> >)>::operator()(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) const at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1860 >> >> #50 0x00000001062e2198 in std::__1::function<void (llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >> >)>::operator()(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >) const at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2419 >> >> #51 0x00000001062d76b4 in >> llvm::orc::ExecutionSession::dispatchMaterialization(llvm::orc::JITDylib&, >> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >> std::__1::default_delete<llvm::orc::MaterializationUnit> >) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1198 >> >> #52 0x00000001062d955c in >> llvm::orc::ExecutionSession::runOutstandingMUs() at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2161 >> >> #53 0x00000001062d623c in >> llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, >> std::__1::vector<std::__1::pair<llvm::orc::JITDylib*, >> llvm::orc::JITDylibLookupFlags>, >> std::__1::allocator<std::__1::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::__1::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 >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2058 >> >> #54 0x00000001062dc4b0 in >> llvm::orc::ExecutionSession::lookup(std::__1::vector<std::__1::pair<llvm::orc::JITDylib*, >> llvm::orc::JITDylibLookupFlags>, >> std::__1::allocator<std::__1::pair<llvm::orc::JITDylib*, >> llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolLookupSet >> const&, llvm::orc::LookupKind, llvm::orc::SymbolState, >> std::__1::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 >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2095 >> >> #55 0x00000001062dc6f8 in >> llvm::orc::ExecutionSession::lookup(std::__1::vector<std::__1::pair<llvm::orc::JITDylib*, >> llvm::orc::JITDylibLookupFlags>, >> std::__1::allocator<std::__1::pair<llvm::orc::JITDylib*, >> llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolStringPtr) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2120 >> >> #56 0x0000000106392c40 in >> llvm::orc::LazyCallThroughManager::callThroughToSymbol(unsigned long long) >> at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp:54 >> >> #57 0x00000001063a07a8 in llvm::Error >> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >> long long)::operator()(unsigned long long) const at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h:120 >> >> #58 0x00000001063a0760 in decltype(std::__1::forward<llvm::Error >> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >> long long)&>(fp)(std::__1::forward<unsigned long long>(fp0))) >> std::__1::__invoke<llvm::Error >> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >> long long)&, unsigned long long>(llvm::Error >> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >> long long)&, unsigned long long&&) at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4425 >> >> #59 0x00000001063a06f4 in unsigned long long >> std::__1::__invoke_void_return_wrapper<unsigned long >> long>::__call<llvm::Error >> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >> long long)&, unsigned long long>(llvm::Error >> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >> long long)&, unsigned long long&&) at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:317 >> >> #60 0x00000001063a06a8 in std::__1::__function::__alloc_func<llvm::Error >> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >> long long), std::__1::allocator<llvm::Error >> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >> long long)>, unsigned long long (unsigned long long)>::operator()(unsigned >> long long&&) at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1533 >> >> #61 0x000000010639f038 in std::__1::__function::__func<llvm::Error >> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >> long long), std::__1::allocator<llvm::Error >> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >> long long)>, unsigned long long (unsigned long long)>::operator()(unsigned >> long long&&) at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1707 >> >> #62 0x0000000106349f94 in std::__1::__function::__value_func<unsigned >> long long (unsigned long long)>::operator()(unsigned long long&&) const at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1860 >> >> #63 0x0000000106349f30 in std::__1::function<unsigned long long >> (unsigned long long)>::operator()(unsigned long long) const at >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2419 >> >> #64 0x0000000106349858 in >> llvm::orc::LocalTrampolinePool<llvm::orc::OrcAArch64>::reenter(void*, >> void*) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:111 >> >> #65 0x0000000117634090 in 0x117634090 () >> >> #66 0x0000000106323a08 in llvm::orc::runAsMain(int (*)(int, char**), >> llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, >> std::__1::allocator<char> > >, llvm::Optional<llvm::StringRef>) at >> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp:45 >> >> >> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200601/d9e0c9a3/attachment-0001.html>
Lang Hames via llvm-dev
2020-Jun-02 16:07 UTC
[llvm-dev] Assertion triggered when running simple hello-world code on iOS device using ORC/LLLazyJIT
Hi Igor, The -debug-only option should be provided to your tool's main function, rather than to the JIT'd main. As long as you're calling: cl::ParseCommandLineOptions(argc, argv, "<tool name>"); in your tool's code that should handle the '-debug-only' option. Regards, Lang. On Mon, Jun 1, 2020 at 9:03 PM Igor Gomon <igomonv at gmail.com> wrote:> Hi Lang, > > Sure. Please find attached is the bitcode file along with the source cpp. > I also followed your suggestion and provided the '-debug-only=jitlink' > option to the orc::runAsMain() function call but I didn't see any > meaningful output produced other than: > > *Assertion failed: (Offset < Base.getSize() && "Symbol offset is outside > block"), function constructNamedDef, file > /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h, > line 366.* > > Thanks for your help! > > -- > Best Regards, > Igor > > On Mon, Jun 1, 2020 at 2:01 PM Lang Hames <lhames at gmail.com> wrote: > >> Hi Igor, >> >> Thanks for the walkthrough! This sounds like it might be a JITLink MachO >> parser bug. Are you able to share the module that causes the failure? It >> may also be interesting to run your tool with '-debug-only=jitlink' and >> capture the output. >> >> Regards, >> Lang. >> >> On Sun, May 31, 2020 at 2:08 PM Igor Gomon <igomonv at gmail.com> wrote: >> >>> Hello Lang, >>> >>> I was just wondering if you had a chance to look at my issue or maybe >>> have an idea what may have caused it. >>> Thanks! >>> >>> >>> — >>> Best Regards, >>> Igor Gomon >>> Sent from my iPad >>> >>> On May 25, 2020, at 5:48 PM, David Blaikie <dblaikie at gmail.com> wrote: >>> >>> >>> +Lang for ORC stuff >>> >>> On Mon, May 25, 2020 at 2:35 PM Igor Gomon via llvm-dev < >>> llvm-dev at lists.llvm.org> wrote: >>> >>>> Hello, >>>> >>>> I am trying to run this basic C++ hello-world code in my iOS app that >>>> has LLVM libraries linked in (the app runs on the actual device - iPad Pro, >>>> iOS 13.4.1). >>>> >>>> #include <iostream> >>>> int main (int argh, char *argv[]) { >>>> std::cout << "Hello World!" << std::endl; >>>> return 0; >>>> } >>>> >>>> So below is the break down of the steps that I do: >>>> First I compile this code to an instance of llvm::Module by using the >>>> logic borrowed from the lli tool. >>>> Once I have the Module instance I construct an instance of orc::LLLazyJIT >>>> (J), configure it (again closely following the logic in lli tool) >>>> to which I then add the module like this: >>>> >>>> // Add the main module. >>>> >>>> >>>> ExitOnErr(J->addLazyIRModule(orc::ThreadSafeModule(std::move(MainModule), >>>> TSCtx))); >>>> >>>> >>>> Finally the module is executed like this: >>>> >>>> // Run main. >>>> >>>> auto MainSym = ExitOnErr(J->lookup("main")); >>>> >>>> >>>> typedef int (*MainFnPtr)(int, char *[]); >>>> >>>> auto Result = orc::runAsMain( >>>> >>>> jitTargetAddressToFunction<MainFnPtr>(MainSym.getAddress()), Args, >>>> >>>> StringRef("lli")); >>>> >>>> >>>> The Xcode halts the execution when an assertion is triggered in llvm::jitlink::Symbol::constructNamedDef >>>> (the full call stack is below). >>>> >>>> The line that triggers the assertion is this: >>>> >>>> >>>> assert(Offset < Base.getSize() && "Symbol offset is outside block" >>>> ); >>>> >>>> >>>> because both Offset and Base.getSize() evaluate to 0). >>>> >>>> The data referred to by the Base block is "Hello World!". >>>> >>>> >>>> I don't understand why this assertion happens. Should the Base block >>>> size be > 0 ? >>>> >>>> I am relatively new to LLVM, I did read the documentation on OCR Design >>>> and Implementation - but still can't figure out what's going on. >>>> >>>> If there is any additional documentation I can read on running code >>>> using ORC/JIT APIs that would shed more light on the internals/ >>>> implementation? >>>> >>>> >>>> Any help would be greatly appreciated. >>>> >>>> Thank you. >>>> >>>> >>>> -- >>>> >>>> Best, >>>> >>>> Igor >>>> >>>> >>>> >>>> #4 0x0000000106696d70 in >>>> llvm::jitlink::Symbol::constructNamedDef(void*, llvm::jitlink::Block&, >>>> unsigned long long, llvm::StringRef, unsigned long long, >>>> llvm::jitlink::Linkage, llvm::jitlink::Scope, bool, bool) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:366 >>>> >>>> #5 0x0000000106691e8c in >>>> llvm::jitlink::LinkGraph::addDefinedSymbol(llvm::jitlink::Block&, unsigned >>>> long long, llvm::StringRef, unsigned long long, llvm::jitlink::Linkage, >>>> llvm::jitlink::Scope, bool, bool) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:897 >>>> >>>> #6 0x000000010668f654 in >>>> llvm::jitlink::MachOLinkGraphBuilder::graphifyRegularSymbols() at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp:502 >>>> >>>> #7 0x000000010668d16c in >>>> llvm::jitlink::MachOLinkGraphBuilder::buildGraph() at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp:36 >>>> >>>> #8 0x000000010666cd08 in >>>> llvm::jitlink::MachOJITLinker_arm64::buildGraph(llvm::MemoryBufferRef) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:493 >>>> >>>> #9 0x00000001066236bc in >>>> llvm::jitlink::JITLinkerBase::linkPhase1(std::__1::unique_ptr<llvm::jitlink::JITLinkerBase, >>>> std::__1::default_delete<llvm::jitlink::JITLinkerBase> >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp:28 >>>> >>>> #10 0x000000010665fc10 in void >>>> llvm::jitlink::JITLinker<llvm::jitlink::MachOJITLinker_arm64>::link<std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >>>> std::__1::default_delete<llvm::jitlink::JITLinkContext> >, >>>> llvm::jitlink::PassConfiguration>(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >>>> std::__1::default_delete<llvm::jitlink::JITLinkContext> >&&, >>>> llvm::jitlink::PassConfiguration&&) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:139 >>>> >>>> #11 0x000000010665f93c in >>>> llvm::jitlink::jitLink_MachO_arm64(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >>>> std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:685 >>>> >>>> #12 0x000000010665e604 in >>>> llvm::jitlink::jitLink_MachO(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >>>> std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO.cpp:69 >>>> >>>> #13 0x0000000106616f58 in >>>> llvm::jitlink::jitLink(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >>>> std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLink.cpp:306 >>>> >>>> #14 0x00000001063db144 in >>>> llvm::orc::ObjectLinkingLayer::emit(llvm::orc::MaterializationResponsibility, >>>> std::__1::unique_ptr<llvm::MemoryBuffer, >>>> std::__1::default_delete<llvm::MemoryBuffer> >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:343 >>>> >>>> #15 0x00000001064044f4 in >>>> llvm::orc::ObjectTransformLayer::emit(llvm::orc::MaterializationResponsibility, >>>> std::__1::unique_ptr<llvm::MemoryBuffer, >>>> std::__1::default_delete<llvm::MemoryBuffer> >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp:35 >>>> >>>> #16 0x000000010638e9c8 in >>>> llvm::orc::IRCompileLayer::emit(llvm::orc::MaterializationResponsibility, >>>> llvm::orc::ThreadSafeModule) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp:35 >>>> >>>> #17 0x000000010638ff64 in >>>> llvm::orc::IRTransformLayer::emit(llvm::orc::MaterializationResponsibility, >>>> llvm::orc::ThreadSafeModule) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp:25 >>>> >>>> #18 0x00000001062b2b5c in >>>> llvm::orc::CompileOnDemandLayer::emitPartition(llvm::orc::MaterializationResponsibility, >>>> llvm::orc::ThreadSafeModule, std::__1::map<llvm::orc::SymbolStringPtr, >>>> llvm::GlobalValue*, std::__1::less<llvm::orc::SymbolStringPtr>, >>>> std::__1::allocator<std::__1::pair<llvm::orc::SymbolStringPtr const, >>>> llvm::GlobalValue*> > >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:320 >>>> >>>> #19 0x00000001062b8470 in >>>> llvm::orc::PartitioningIRMaterializationUnit::materialize(llvm::orc::MaterializationResponsibility) >>>> at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:86 >>>> >>>> #20 0x00000001062e2844 in >>>> llvm::orc::MaterializationUnit::doMaterialize(llvm::orc::JITDylib&) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:563 >>>> >>>> #21 0x00000001062db744 in >>>> llvm::orc::ExecutionSession::materializeOnCurrentThread(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1212 >>>> >>>> #22 0x00000001062eaf98 in decltype(std::__1::forward<void >>>> (*&)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >>>> >)>(fp)(std::__1::forward<llvm::orc::JITDylib&>(fp0), >>>> std::__1::forward<std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> > >(fp0))) >>>> std::__1::__invoke<void (*&)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >>>> llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void >>>> (*&)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >>>> llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4425 >>>> >>>> #23 0x00000001062eaef8 in void >>>> std::__1::__invoke_void_return_wrapper<void>::__call<void >>>> (*&)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >>>> llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void >>>> (*&)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >>>> llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:348 >>>> >>>> #24 0x00000001062eae94 in std::__1::__function::__alloc_func<void >>>> (*)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >>>> std::__1::allocator<void (*)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void >>>> (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >>>> >)>::operator()(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1533 >>>> >>>> #25 0x00000001062e980c in std::__1::__function::__func<void >>>> (*)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >>>> std::__1::allocator<void (*)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void >>>> (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >>>> >)>::operator()(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1707 >>>> >>>> #26 0x00000001062e2314 in std::__1::__function::__value_func<void >>>> (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >>>> >)>::operator()(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) const at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1860 >>>> >>>> #27 0x00000001062e2198 in std::__1::function<void >>>> (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >>>> >)>::operator()(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >) const at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2419 >>>> >>>> #28 0x00000001062d76b4 in >>>> llvm::orc::ExecutionSession::dispatchMaterialization(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1198 >>>> >>>> #29 0x00000001062d955c in >>>> llvm::orc::ExecutionSession::runOutstandingMUs() at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2161 >>>> >>>> #30 0x00000001062d623c in >>>> llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, >>>> std::__1::vector<std::__1::pair<llvm::orc::JITDylib*, >>>> llvm::orc::JITDylibLookupFlags>, >>>> std::__1::allocator<std::__1::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::__1::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 >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2058 >>>> >>>> #31 0x00000001063e5128 in >>>> llvm::orc::ObjectLinkingLayerJITLinkContext::lookup(llvm::DenseMap<llvm::StringRef, >>>> llvm::jitlink::SymbolLookupFlags, llvm::DenseMapInfo<llvm::StringRef>, >>>> llvm::detail::DenseMapPair<llvm::StringRef, >>>> llvm::jitlink::SymbolLookupFlags> > const&, >>>> std::__1::unique_ptr<llvm::jitlink::JITLinkAsyncLookupContinuation, >>>> std::__1::default_delete<llvm::jitlink::JITLinkAsyncLookupContinuation> >) >>>> at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:87 >>>> >>>> #32 0x0000000106623bac in >>>> llvm::jitlink::JITLinkerBase::linkPhase1(std::__1::unique_ptr<llvm::jitlink::JITLinkerBase, >>>> std::__1::default_delete<llvm::jitlink::JITLinkerBase> >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp:77 >>>> >>>> #33 0x000000010665fc10 in void >>>> llvm::jitlink::JITLinker<llvm::jitlink::MachOJITLinker_arm64>::link<std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >>>> std::__1::default_delete<llvm::jitlink::JITLinkContext> >, >>>> llvm::jitlink::PassConfiguration>(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >>>> std::__1::default_delete<llvm::jitlink::JITLinkContext> >&&, >>>> llvm::jitlink::PassConfiguration&&) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:139 >>>> >>>> #34 0x000000010665f93c in >>>> llvm::jitlink::jitLink_MachO_arm64(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >>>> std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:685 >>>> >>>> #35 0x000000010665e604 in >>>> llvm::jitlink::jitLink_MachO(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >>>> std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO.cpp:69 >>>> >>>> #36 0x0000000106616f58 in >>>> llvm::jitlink::jitLink(std::__1::unique_ptr<llvm::jitlink::JITLinkContext, >>>> std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLink.cpp:306 >>>> >>>> #37 0x00000001063db144 in >>>> llvm::orc::ObjectLinkingLayer::emit(llvm::orc::MaterializationResponsibility, >>>> std::__1::unique_ptr<llvm::MemoryBuffer, >>>> std::__1::default_delete<llvm::MemoryBuffer> >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:343 >>>> >>>> #38 0x00000001064044f4 in >>>> llvm::orc::ObjectTransformLayer::emit(llvm::orc::MaterializationResponsibility, >>>> std::__1::unique_ptr<llvm::MemoryBuffer, >>>> std::__1::default_delete<llvm::MemoryBuffer> >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp:35 >>>> >>>> #39 0x000000010638e9c8 in >>>> llvm::orc::IRCompileLayer::emit(llvm::orc::MaterializationResponsibility, >>>> llvm::orc::ThreadSafeModule) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp:35 >>>> >>>> #40 0x000000010638ff64 in >>>> llvm::orc::IRTransformLayer::emit(llvm::orc::MaterializationResponsibility, >>>> llvm::orc::ThreadSafeModule) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp:25 >>>> >>>> #41 0x00000001062b2b5c in >>>> llvm::orc::CompileOnDemandLayer::emitPartition(llvm::orc::MaterializationResponsibility, >>>> llvm::orc::ThreadSafeModule, std::__1::map<llvm::orc::SymbolStringPtr, >>>> llvm::GlobalValue*, std::__1::less<llvm::orc::SymbolStringPtr>, >>>> std::__1::allocator<std::__1::pair<llvm::orc::SymbolStringPtr const, >>>> llvm::GlobalValue*> > >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:320 >>>> >>>> #42 0x00000001062b8470 in >>>> llvm::orc::PartitioningIRMaterializationUnit::materialize(llvm::orc::MaterializationResponsibility) >>>> at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:86 >>>> >>>> #43 0x00000001062e2844 in >>>> llvm::orc::MaterializationUnit::doMaterialize(llvm::orc::JITDylib&) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:563 >>>> >>>> #44 0x00000001062db744 in >>>> llvm::orc::ExecutionSession::materializeOnCurrentThread(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1212 >>>> >>>> #45 0x00000001062eaf98 in decltype(std::__1::forward<void >>>> (*&)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >>>> >)>(fp)(std::__1::forward<llvm::orc::JITDylib&>(fp0), >>>> std::__1::forward<std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> > >(fp0))) >>>> std::__1::__invoke<void (*&)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >>>> llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void >>>> (*&)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >>>> llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4425 >>>> >>>> #46 0x00000001062eaef8 in void >>>> std::__1::__invoke_void_return_wrapper<void>::__call<void >>>> (*&)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >>>> llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void >>>> (*&)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >>>> llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:348 >>>> >>>> #47 0x00000001062eae94 in std::__1::__function::__alloc_func<void >>>> (*)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >>>> std::__1::allocator<void (*)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void >>>> (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >>>> >)>::operator()(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1533 >>>> >>>> #48 0x00000001062e980c in std::__1::__function::__func<void >>>> (*)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >), >>>> std::__1::allocator<void (*)(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void >>>> (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >>>> >)>::operator()(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1707 >>>> >>>> #49 0x00000001062e2314 in std::__1::__function::__value_func<void >>>> (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >>>> >)>::operator()(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >&&) const at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1860 >>>> >>>> #50 0x00000001062e2198 in std::__1::function<void >>>> (llvm::orc::JITDylib&, std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >>>> >)>::operator()(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >) const at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2419 >>>> >>>> #51 0x00000001062d76b4 in >>>> llvm::orc::ExecutionSession::dispatchMaterialization(llvm::orc::JITDylib&, >>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit, >>>> std::__1::default_delete<llvm::orc::MaterializationUnit> >) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1198 >>>> >>>> #52 0x00000001062d955c in >>>> llvm::orc::ExecutionSession::runOutstandingMUs() at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2161 >>>> >>>> #53 0x00000001062d623c in >>>> llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind, >>>> std::__1::vector<std::__1::pair<llvm::orc::JITDylib*, >>>> llvm::orc::JITDylibLookupFlags>, >>>> std::__1::allocator<std::__1::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::__1::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 >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2058 >>>> >>>> #54 0x00000001062dc4b0 in >>>> llvm::orc::ExecutionSession::lookup(std::__1::vector<std::__1::pair<llvm::orc::JITDylib*, >>>> llvm::orc::JITDylibLookupFlags>, >>>> std::__1::allocator<std::__1::pair<llvm::orc::JITDylib*, >>>> llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolLookupSet >>>> const&, llvm::orc::LookupKind, llvm::orc::SymbolState, >>>> std::__1::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 >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2095 >>>> >>>> #55 0x00000001062dc6f8 in >>>> llvm::orc::ExecutionSession::lookup(std::__1::vector<std::__1::pair<llvm::orc::JITDylib*, >>>> llvm::orc::JITDylibLookupFlags>, >>>> std::__1::allocator<std::__1::pair<llvm::orc::JITDylib*, >>>> llvm::orc::JITDylibLookupFlags> > > const&, llvm::orc::SymbolStringPtr) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2120 >>>> >>>> #56 0x0000000106392c40 in >>>> llvm::orc::LazyCallThroughManager::callThroughToSymbol(unsigned long long) >>>> at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp:54 >>>> >>>> #57 0x00000001063a07a8 in llvm::Error >>>> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >>>> long long)::operator()(unsigned long long) const at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h:120 >>>> >>>> #58 0x00000001063a0760 in decltype(std::__1::forward<llvm::Error >>>> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >>>> long long)&>(fp)(std::__1::forward<unsigned long long>(fp0))) >>>> std::__1::__invoke<llvm::Error >>>> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >>>> long long)&, unsigned long long>(llvm::Error >>>> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >>>> long long)&, unsigned long long&&) at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4425 >>>> >>>> #59 0x00000001063a06f4 in unsigned long long >>>> std::__1::__invoke_void_return_wrapper<unsigned long >>>> long>::__call<llvm::Error >>>> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >>>> long long)&, unsigned long long>(llvm::Error >>>> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >>>> long long)&, unsigned long long&&) at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:317 >>>> >>>> #60 0x00000001063a06a8 in >>>> std::__1::__function::__alloc_func<llvm::Error >>>> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >>>> long long), std::__1::allocator<llvm::Error >>>> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >>>> long long)>, unsigned long long (unsigned long long)>::operator()(unsigned >>>> long long&&) at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1533 >>>> >>>> #61 0x000000010639f038 in std::__1::__function::__func<llvm::Error >>>> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >>>> long long), std::__1::allocator<llvm::Error >>>> llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned >>>> long long)>, unsigned long long (unsigned long long)>::operator()(unsigned >>>> long long&&) at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1707 >>>> >>>> #62 0x0000000106349f94 in std::__1::__function::__value_func<unsigned >>>> long long (unsigned long long)>::operator()(unsigned long long&&) const at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1860 >>>> >>>> #63 0x0000000106349f30 in std::__1::function<unsigned long long >>>> (unsigned long long)>::operator()(unsigned long long) const at >>>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2419 >>>> >>>> #64 0x0000000106349858 in >>>> llvm::orc::LocalTrampolinePool<llvm::orc::OrcAArch64>::reenter(void*, >>>> void*) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:111 >>>> >>>> #65 0x0000000117634090 in 0x117634090 () >>>> >>>> #66 0x0000000106323a08 in llvm::orc::runAsMain(int (*)(int, char**), >>>> llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, >>>> std::__1::allocator<char> > >, llvm::Optional<llvm::StringRef>) at >>>> /Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp:45 >>>> >>>> >>>> >>>> _______________________________________________ >>>> LLVM Developers mailing list >>>> llvm-dev at lists.llvm.org >>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >>>> >>>-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200602/3692cdae/attachment-0001.html>
Igor Gomon via llvm-dev
2020-Jun-06 16:06 UTC
[llvm-dev] Assertion triggered when running simple hello-world code on iOS device using ORC/LLLazyJIT
Hi Lang,
Please see below is the trace.
--
Thanks,
Igor
*2020-06-06 12:05:21.016705-0400 CppDevProCompiler[6613:3000073] Running...*
*jitLink_MachO: magic = 0xfeedfacf, identifier
"llvm-link.submodule-jitted-objectbuffer"*
*jitLink_MachO: cputype = 0x0100000c, cpusubtype = 0x00000000*
*Creating normalized sections...*
* __text: 0x0000000000000000 -- 0x0000000000000064, align: 4, index: 0*
* __compact_unwind: 0x0000000000000068 -- 0x0000000000000088, align: 8,
index: 1*
*Creating normalized symbols...*
* ltmp0: value = 0x0000000000000000, type = 0x0e, desc = 0x0000, sect = 0*
* ltmp1: value = 0x0000000000000068, type = 0x0e, desc = 0x0000, sect = 1*
* _main: value = 0x0000000000000000, type = 0x0f, desc = 0x0000, sect = 0*
* __ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPFRS3_S4_E: value
0x0000000000000000, type = 0x01, desc = 0x0000, sect = none*
* __ZNSt3__14coutE: value = 0x0000000000000000, type = 0x01, desc 0x0000, sect
= none*
* __ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_:
value = 0x0000000000000000, type = 0x01, desc = 0x0000, sect = none*
* __ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc:
value = 0x0000000000000000, type = 0x01, desc = 0x0000, sect = none*
* ___orc_lcl..str.0: value = 0x0000000000000000, type = 0x01, desc 0x0000, sect
= none*
*Creating graph symbols...*
* Processing section __text...*
* Creating block for 0x0000000000000000 -- 0x0000000000000064: __text +
0x0000000000000000 with 2 symbol(s)...*
* 0x0000000000000000 -- 0x0000000000000064: _main*
* 0x0000000000000000 -- 0x0000000000000064: ltmp0 [non-canonical]*
* Processing section __compact_unwind...*
* Creating block for 0x0000000000000068 -- 0x0000000000000088:
__compact_unwind + 0x0000000000000000 with 1 symbol(s)...*
* 0x0000000000000068 -- 0x0000000000000088: ltmp1*
*Processing Branch26 relocation at 0x000000000000004c*
*edge at 0x000000000000004c: 0x0000000000000000 + 76 -- Branch26 ->
<__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPFRS3_S4_E: flags SD-,
size = 0x00000000, addr = 0x0000000000000000 (0x0000000000000000 +
0x00000000)> + 0*
*Processing Branch26 relocation at 0x0000000000000044*
*edge at 0x0000000000000044: 0x0000000000000000 + 68 -- Branch26 ->
<__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc: flags
= SD-, size = 0x00000000, addr = 0x0000000000000000 (0x0000000000000000 +
0x00000000)> + 0*
*Processing PageOffset12 relocation at 0x0000000000000024*
*edge at 0x0000000000000024: 0x0000000000000000 + 36 -- PageOffset12 ->
<__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_:
flags = SD-, size = 0x00000000, addr = 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
*Processing Page21 relocation at 0x0000000000000020*
*edge at 0x0000000000000020: 0x0000000000000000 + 32 -- Page21 ->
<__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_:
flags = SD-, size = 0x00000000, addr = 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
*Processing PageOffset12 relocation at 0x000000000000001c*
*edge at 0x000000000000001c: 0x0000000000000000 + 28 -- PageOffset12 ->
<___orc_lcl..str.0: flags = SD-, size = 0x00000000, addr 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
*Processing Page21 relocation at 0x0000000000000018*
*edge at 0x0000000000000018: 0x0000000000000000 + 24 -- Page21 ->
<___orc_lcl..str.0: flags = SD-, size = 0x00000000, addr 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
*Processing GOTPageOffset12 relocation at 0x0000000000000014*
*edge at 0x0000000000000014: 0x0000000000000000 + 20 -- GOTPageOffset12 ->
<__ZNSt3__14coutE: flags = SD-, size = 0x00000000, addr 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
*Processing GOTPage21 relocation at 0x0000000000000010*
*edge at 0x0000000000000010: 0x0000000000000000 + 16 -- GOTPage21 ->
<__ZNSt3__14coutE: flags = SD-, size = 0x00000000, addr 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
*Processing Pointer64Anon relocation at 0x0000000000000068*
*edge at 0x0000000000000068: 0x0000000000000068 + 0 -- Pointer64Anon ->
<_main: flags = SD-, size = 0x00000064, addr = 0x0000000000000000
(0x0000000000000000 + 0x00000000 __text)> + 0*
*Link graph "llvm-link.submodule-jitted-objectbuffer" pre-pruning:*
*Symbols:*
* 0x0000000000000000: <_main: flags = SD+, size = 0x00000064, addr
0x0000000000000000 (0x0000000000000000 + 0x00000000 __text)>*
* edge at 0x000000000000004c: 0x0000000000000000 + 76 -- Branch26 ->
<__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPFRS3_S4_E: flags SD-,
size = 0x00000000, addr = 0x0000000000000000 (0x0000000000000000 +
0x00000000)> + 0*
* edge at 0x0000000000000044: 0x0000000000000000 + 68 -- Branch26 ->
<__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc: flags
= SD-, size = 0x00000000, addr = 0x0000000000000000 (0x0000000000000000 +
0x00000000)> + 0*
* edge at 0x0000000000000024: 0x0000000000000000 + 36 -- PageOffset12 ->
<__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_:
flags = SD-, size = 0x00000000, addr = 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* edge at 0x0000000000000020: 0x0000000000000000 + 32 -- Page21 ->
<__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_:
flags = SD-, size = 0x00000000, addr = 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* edge at 0x000000000000001c: 0x0000000000000000 + 28 -- PageOffset12 ->
<___orc_lcl..str.0: flags = SD-, size = 0x00000000, addr 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* edge at 0x0000000000000018: 0x0000000000000000 + 24 -- Page21 ->
<___orc_lcl..str.0: flags = SD-, size = 0x00000000, addr 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* edge at 0x0000000000000014: 0x0000000000000000 + 20 -- GOTPageOffset12
->
<__ZNSt3__14coutE: flags = SD-, size = 0x00000000, addr 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* edge at 0x0000000000000010: 0x0000000000000000 + 16 -- GOTPage21 ->
<__ZNSt3__14coutE: flags = SD-, size = 0x00000000, addr 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* 0x0000000000000000: <ltmp0: flags = SL-, size = 0x00000064, addr
0x0000000000000000 (0x0000000000000000 + 0x00000000 __text)>*
* edge at 0x000000000000004c: 0x0000000000000000 + 76 -- Branch26 ->
<__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPFRS3_S4_E: flags SD-,
size = 0x00000000, addr = 0x0000000000000000 (0x0000000000000000 +
0x00000000)> + 0*
* edge at 0x0000000000000044: 0x0000000000000000 + 68 -- Branch26 ->
<__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc: flags
= SD-, size = 0x00000000, addr = 0x0000000000000000 (0x0000000000000000 +
0x00000000)> + 0*
* edge at 0x0000000000000024: 0x0000000000000000 + 36 -- PageOffset12 ->
<__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_:
flags = SD-, size = 0x00000000, addr = 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* edge at 0x0000000000000020: 0x0000000000000000 + 32 -- Page21 ->
<__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_:
flags = SD-, size = 0x00000000, addr = 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* edge at 0x000000000000001c: 0x0000000000000000 + 28 -- PageOffset12 ->
<___orc_lcl..str.0: flags = SD-, size = 0x00000000, addr 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* edge at 0x0000000000000018: 0x0000000000000000 + 24 -- Page21 ->
<___orc_lcl..str.0: flags = SD-, size = 0x00000000, addr 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* edge at 0x0000000000000014: 0x0000000000000000 + 20 -- GOTPageOffset12
->
<__ZNSt3__14coutE: flags = SD-, size = 0x00000000, addr 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* edge at 0x0000000000000010: 0x0000000000000000 + 16 -- GOTPage21 ->
<__ZNSt3__14coutE: flags = SD-, size = 0x00000000, addr 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* 0x0000000000000068: <ltmp1: flags = SL-, size = 0x00000020, addr
0x0000000000000068 (0x0000000000000068 + 0x00000000 __compact_unwind)>*
* edge at 0x0000000000000068: 0x0000000000000068 + 0 -- Pointer64Anon ->
<_main: flags = SD+, size = 0x00000064, addr = 0x0000000000000000
(0x0000000000000000 + 0x00000000 __text)> + 0*
*Absolute symbols:*
*External symbols:*
* 0x0000000000000000:
<__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc: flags
= SD-, size = 0x00000000, addr = 0x0000000000000000 (0x0000000000000000 +
0x00000000)>*
* 0x0000000000000000: <__ZNSt3__14coutE: flags = SD-, size = 0x00000000,
addr = 0x0000000000000000 (0x0000000000000000 + 0x00000000)>*
* 0x0000000000000000: <___orc_lcl..str.0: flags = SD-, size = 0x00000000,
addr = 0x0000000000000000 (0x0000000000000000 + 0x00000000)>*
* 0x0000000000000000:
<__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_:
flags = SD-, size = 0x00000000, addr = 0x0000000000000000
(0x0000000000000000 + 0x00000000)>*
* 0x0000000000000000:
<__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPFRS3_S4_E: flags SD-,
size = 0x00000000, addr = 0x0000000000000000 (0x0000000000000000 +
0x00000000)>*
*Dead-stripping symbols:*
* <ltmp0: flags = SL-, size = 0x00000064, addr = 0x0000000000000000
(0x0000000000000000 + 0x00000000 __text)>...*
* <ltmp1: flags = SL-, size = 0x00000020, addr = 0x0000000000000068
(0x0000000000000068 + 0x00000000 __compact_unwind)>...*
*Dead-stripping blocks:*
* 0x0000000000000068 -- 0x0000000000000088: content, align = 8, align-ofs
= 0, section = __compact_unwind...*
*Link graph "llvm-link.submodule-jitted-objectbuffer" post-pruning:*
*Symbols:*
* 0x0000000000000000: <_main: flags = SD+, size = 0x00000064, addr
0x0000000000000000 (0x0000000000000000 + 0x00000000 __text)>*
* edge at 0x000000000000004c: 0x0000000000000000 + 76 -- Branch26 ->
<__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPFRS3_S4_E: flags SD-,
size = 0x00000000, addr = 0x0000000000000000 (0x0000000000000000 +
0x00000000)> + 0*
* edge at 0x0000000000000044: 0x0000000000000000 + 68 -- Branch26 ->
<__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc: flags
= SD-, size = 0x00000000, addr = 0x0000000000000000 (0x0000000000000000 +
0x00000000)> + 0*
* edge at 0x0000000000000024: 0x0000000000000000 + 36 -- PageOffset12 ->
<__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_:
flags = SD-, size = 0x00000000, addr = 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* edge at 0x0000000000000020: 0x0000000000000000 + 32 -- Page21 ->
<__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_:
flags = SD-, size = 0x00000000, addr = 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* edge at 0x000000000000001c: 0x0000000000000000 + 28 -- PageOffset12 ->
<___orc_lcl..str.0: flags = SD-, size = 0x00000000, addr 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* edge at 0x0000000000000018: 0x0000000000000000 + 24 -- Page21 ->
<___orc_lcl..str.0: flags = SD-, size = 0x00000000, addr 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* edge at 0x0000000000000014: 0x0000000000000000 + 20 -- GOTPageOffset12
->
<__ZNSt3__14coutE: flags = SD-, size = 0x00000000, addr 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
* edge at 0x0000000000000010: 0x0000000000000000 + 16 -- GOTPage21 ->
<__ZNSt3__14coutE: flags = SD-, size = 0x00000000, addr 0x0000000000000000
(0x0000000000000000 + 0x00000000)> + 0*
*Absolute symbols:*
*External symbols:*
* 0x0000000000000000:
<__ZNSt3__1lsINS_11char_traitsIcEEEERNS_13basic_ostreamIcT_EES6_PKc: flags
= SD-, size = 0x00000000, addr = 0x0000000000000000 (0x0000000000000000 +
0x00000000)>*
* 0x0000000000000000: <__ZNSt3__14coutE: flags = SD-, size = 0x00000000,
addr = 0x0000000000000000 (0x0000000000000000 + 0x00000000)>*
* 0x0000000000000000: <___orc_lcl..str.0: flags = SD-, size = 0x00000000,
addr = 0x0000000000000000 (0x0000000000000000 + 0x00000000)>*
* 0x0000000000000000:
<__ZNSt3__14endlIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_:
flags = SD-, size = 0x00000000, addr = 0x0000000000000000
(0x0000000000000000 + 0x00000000)>*
* 0x0000000000000000:
<__ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPFRS3_S4_E: flags SD-,
size = 0x00000000, addr = 0x0000000000000000 (0x0000000000000000 +
0x00000000)>*
*Segment ordering:*
* Segment R-X:*
* content block:*
* 0x0000000000000000 -- 0x0000000000000064: content, align = 4,
align-ofs = 0, section = __text*
* 0x0000000000000000 -- 0x0000000000000008: content, align = 1,
align-ofs = 0, section = $__STUBS*
* 0x0000000000000000 -- 0x0000000000000008: content, align = 1,
align-ofs = 0, section = $__STUBS*
* zero-fill block:*
* Segment R--:*
* content block:*
* 0x0000000000000000 -- 0x0000000000000008: content, align = 8,
align-ofs = 0, section = $__GOT*
* 0x0000000000000000 -- 0x0000000000000008: content, align = 8,
align-ofs = 0, section = $__GOT*
* 0x0000000000000000 -- 0x0000000000000008: content, align = 8,
align-ofs = 0, section = $__GOT*
* zero-fill block:*
*JIT linker requesting: { R-X: alignment = 4, content size = 116, zero-fill
size = 0; R--: alignment = 8, content size = 24, zero-fill size = 0 }*
*JIT linker got working memory:*
* R-X: 0x1235dc000*
* R--: 0x1235e0000*
*jitLink_MachO: magic = 0xfeedfacf, identifier
"llvm-link.submodule-jitted-objectbuffer"*
*jitLink_MachO: cputype = 0x0100000c, cpusubtype = 0x00000000*
*Creating normalized sections...*
* __text: 0x0000000000000000 -- 0x0000000000000000, align: 1, index: 0*
* __const: 0x0000000000000000 -- 0x000000000000000d, align: 1, index: 1*
*Creating normalized symbols...*
* ltmp0: value = 0x0000000000000000, type = 0x0e, desc = 0x0000, sect = 0*
* ltmp1: value = 0x0000000000000000, type = 0x0e, desc = 0x0000, sect = 1*
* ___orc_lcl..str.0: value = 0x0000000000000000, type = 0x1f, desc 0x0000, sect
= 1*
*Creating graph symbols...*
* Processing section __text...*
* Creating block for 0x0000000000000000 -- 0x0000000000000000: __text +
0x0000000000000000 with 1 symbol(s)...*
* 0x0000000000000000 -- 0x0000000000000000: ltmp0*
*Assertion failed: (Offset < Base.getSize() && "Symbol offset is
outside
block"), function constructNamedDef, file
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h,
line 366.*
On Tue, Jun 2, 2020 at 12:07 PM Lang Hames <lhames at gmail.com> wrote:
> Hi Igor,
>
> The -debug-only option should be provided to your tool's main function,
> rather than to the JIT'd main. As long as you're calling:
>
> cl::ParseCommandLineOptions(argc, argv, "<tool name>");
>
> in your tool's code that should handle the '-debug-only'
option.
>
> Regards,
> Lang.
>
> On Mon, Jun 1, 2020 at 9:03 PM Igor Gomon <igomonv at gmail.com>
wrote:
>
>> Hi Lang,
>>
>> Sure. Please find attached is the bitcode file along with the source
cpp.
>> I also followed your suggestion and provided the
'-debug-only=jitlink'
>> option to the orc::runAsMain() function call but I didn't see any
>> meaningful output produced other than:
>>
>> *Assertion failed: (Offset < Base.getSize() && "Symbol
offset is outside
>> block"), function constructNamedDef, file
>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h,
>> line 366.*
>>
>> Thanks for your help!
>>
>> --
>> Best Regards,
>> Igor
>>
>> On Mon, Jun 1, 2020 at 2:01 PM Lang Hames <lhames at gmail.com>
wrote:
>>
>>> Hi Igor,
>>>
>>> Thanks for the walkthrough! This sounds like it might be a JITLink
MachO
>>> parser bug. Are you able to share the module that causes the
failure? It
>>> may also be interesting to run your tool with
'-debug-only=jitlink' and
>>> capture the output.
>>>
>>> Regards,
>>> Lang.
>>>
>>> On Sun, May 31, 2020 at 2:08 PM Igor Gomon <igomonv at
gmail.com> wrote:
>>>
>>>> Hello Lang,
>>>>
>>>> I was just wondering if you had a chance to look at my issue or
maybe
>>>> have an idea what may have caused it.
>>>> Thanks!
>>>>
>>>>
>>>> —
>>>> Best Regards,
>>>> Igor Gomon
>>>> Sent from my iPad
>>>>
>>>> On May 25, 2020, at 5:48 PM, David Blaikie <dblaikie at
gmail.com> wrote:
>>>>
>>>>
>>>> +Lang for ORC stuff
>>>>
>>>> On Mon, May 25, 2020 at 2:35 PM Igor Gomon via llvm-dev <
>>>> llvm-dev at lists.llvm.org> wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> I am trying to run this basic C++ hello-world code in my
iOS app that
>>>>> has LLVM libraries linked in (the app runs on the actual
device - iPad Pro,
>>>>> iOS 13.4.1).
>>>>>
>>>>> #include <iostream>
>>>>> int main (int argh, char *argv[]) {
>>>>> std::cout << "Hello World!" <<
std::endl;
>>>>> return 0;
>>>>> }
>>>>>
>>>>> So below is the break down of the steps that I do:
>>>>> First I compile this code to an instance of llvm::Module by
using the
>>>>> logic borrowed from the lli tool.
>>>>> Once I have the Module instance I construct an instance of
orc::LLLazyJIT
>>>>> (J), configure it (again closely following the logic in lli
tool)
>>>>> to which I then add the module like this:
>>>>>
>>>>> // Add the main module.
>>>>>
>>>>>
>>>>>
ExitOnErr(J->addLazyIRModule(orc::ThreadSafeModule(std::move(MainModule),
>>>>> TSCtx)));
>>>>>
>>>>>
>>>>> Finally the module is executed like this:
>>>>>
>>>>> // Run main.
>>>>>
>>>>> auto MainSym =
ExitOnErr(J->lookup("main"));
>>>>>
>>>>>
>>>>> typedef int (*MainFnPtr)(int, char *[]);
>>>>>
>>>>> auto Result = orc::runAsMain(
>>>>>
>>>>>
jitTargetAddressToFunction<MainFnPtr>(MainSym.getAddress()), Args,
>>>>>
>>>>> StringRef("lli"));
>>>>>
>>>>>
>>>>> The Xcode halts the execution when an assertion is
triggered in llvm::jitlink::Symbol::constructNamedDef
>>>>> (the full call stack is below).
>>>>>
>>>>> The line that triggers the assertion is this:
>>>>>
>>>>>
>>>>> assert(Offset < Base.getSize() &&
"Symbol offset is outside block"
>>>>> );
>>>>>
>>>>>
>>>>> because both Offset and Base.getSize() evaluate to 0).
>>>>>
>>>>> The data referred to by the Base block is "Hello
World!".
>>>>>
>>>>>
>>>>> I don't understand why this assertion happens. Should
the Base block
>>>>> size be > 0 ?
>>>>>
>>>>> I am relatively new to LLVM, I did read the documentation
on OCR
>>>>> Design and Implementation - but still can't figure out
what's going on.
>>>>>
>>>>> If there is any additional documentation I can read on
running code
>>>>> using ORC/JIT APIs that would shed more light on the
internals/
>>>>> implementation?
>>>>>
>>>>>
>>>>> Any help would be greatly appreciated.
>>>>>
>>>>> Thank you.
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> Best,
>>>>>
>>>>> Igor
>>>>>
>>>>>
>>>>>
>>>>> #4 0x0000000106696d70 in
>>>>> llvm::jitlink::Symbol::constructNamedDef(void*,
llvm::jitlink::Block&,
>>>>> unsigned long long, llvm::StringRef, unsigned long long,
>>>>> llvm::jitlink::Linkage, llvm::jitlink::Scope, bool, bool)
at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:366
>>>>>
>>>>> #5 0x0000000106691e8c in
>>>>>
llvm::jitlink::LinkGraph::addDefinedSymbol(llvm::jitlink::Block&, unsigned
>>>>> long long, llvm::StringRef, unsigned long long,
llvm::jitlink::Linkage,
>>>>> llvm::jitlink::Scope, bool, bool) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:897
>>>>>
>>>>> #6 0x000000010668f654 in
>>>>>
llvm::jitlink::MachOLinkGraphBuilder::graphifyRegularSymbols() at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp:502
>>>>>
>>>>> #7 0x000000010668d16c in
>>>>> llvm::jitlink::MachOLinkGraphBuilder::buildGraph() at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp:36
>>>>>
>>>>> #8 0x000000010666cd08 in
>>>>>
llvm::jitlink::MachOJITLinker_arm64::buildGraph(llvm::MemoryBufferRef) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:493
>>>>>
>>>>> #9 0x00000001066236bc in
>>>>>
llvm::jitlink::JITLinkerBase::linkPhase1(std::__1::unique_ptr<llvm::jitlink::JITLinkerBase,
>>>>>
std::__1::default_delete<llvm::jitlink::JITLinkerBase> >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp:28
>>>>>
>>>>> #10 0x000000010665fc10 in void
>>>>>
llvm::jitlink::JITLinker<llvm::jitlink::MachOJITLinker_arm64>::link<std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
>>>>>
std::__1::default_delete<llvm::jitlink::JITLinkContext> >,
>>>>>
llvm::jitlink::PassConfiguration>(std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
>>>>>
std::__1::default_delete<llvm::jitlink::JITLinkContext> >&&,
>>>>> llvm::jitlink::PassConfiguration&&) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:139
>>>>>
>>>>> #11 0x000000010665f93c in
>>>>>
llvm::jitlink::jitLink_MachO_arm64(std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
>>>>>
std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:685
>>>>>
>>>>> #12 0x000000010665e604 in
>>>>>
llvm::jitlink::jitLink_MachO(std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
>>>>>
std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO.cpp:69
>>>>>
>>>>> #13 0x0000000106616f58 in
>>>>>
llvm::jitlink::jitLink(std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
>>>>>
std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLink.cpp:306
>>>>>
>>>>> #14 0x00000001063db144 in
>>>>>
llvm::orc::ObjectLinkingLayer::emit(llvm::orc::MaterializationResponsibility,
>>>>> std::__1::unique_ptr<llvm::MemoryBuffer,
>>>>> std::__1::default_delete<llvm::MemoryBuffer> >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:343
>>>>>
>>>>> #15 0x00000001064044f4 in
>>>>>
llvm::orc::ObjectTransformLayer::emit(llvm::orc::MaterializationResponsibility,
>>>>> std::__1::unique_ptr<llvm::MemoryBuffer,
>>>>> std::__1::default_delete<llvm::MemoryBuffer> >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp:35
>>>>>
>>>>> #16 0x000000010638e9c8 in
>>>>>
llvm::orc::IRCompileLayer::emit(llvm::orc::MaterializationResponsibility,
>>>>> llvm::orc::ThreadSafeModule) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp:35
>>>>>
>>>>> #17 0x000000010638ff64 in
>>>>>
llvm::orc::IRTransformLayer::emit(llvm::orc::MaterializationResponsibility,
>>>>> llvm::orc::ThreadSafeModule) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp:25
>>>>>
>>>>> #18 0x00000001062b2b5c in
>>>>>
llvm::orc::CompileOnDemandLayer::emitPartition(llvm::orc::MaterializationResponsibility,
>>>>> llvm::orc::ThreadSafeModule,
std::__1::map<llvm::orc::SymbolStringPtr,
>>>>> llvm::GlobalValue*,
std::__1::less<llvm::orc::SymbolStringPtr>,
>>>>>
std::__1::allocator<std::__1::pair<llvm::orc::SymbolStringPtr const,
>>>>> llvm::GlobalValue*> > >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:320
>>>>>
>>>>> #19 0x00000001062b8470 in
>>>>>
llvm::orc::PartitioningIRMaterializationUnit::materialize(llvm::orc::MaterializationResponsibility)
>>>>> at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:86
>>>>>
>>>>> #20 0x00000001062e2844 in
>>>>>
llvm::orc::MaterializationUnit::doMaterialize(llvm::orc::JITDylib&) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:563
>>>>>
>>>>> #21 0x00000001062db744 in
>>>>>
llvm::orc::ExecutionSession::materializeOnCurrentThread(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1212
>>>>>
>>>>> #22 0x00000001062eaf98 in
decltype(std::__1::forward<void
>>>>> (*&)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit>
>>>>>
>)>(fp)(std::__1::forward<llvm::orc::JITDylib&>(fp0),
>>>>>
std::__1::forward<std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> > >(fp0)))
>>>>> std::__1::__invoke<void
(*&)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
>>>>> llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void
>>>>> (*&)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
>>>>> llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4425
>>>>>
>>>>> #23 0x00000001062eaef8 in void
>>>>>
std::__1::__invoke_void_return_wrapper<void>::__call<void
>>>>> (*&)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
>>>>> llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void
>>>>> (*&)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
>>>>> llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:348
>>>>>
>>>>> #24 0x00000001062eae94 in
std::__1::__function::__alloc_func<void
>>>>> (*)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
>>>>> std::__1::allocator<void (*)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void
>>>>> (llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit>
>>>>> >)>::operator()(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1533
>>>>>
>>>>> #25 0x00000001062e980c in
std::__1::__function::__func<void
>>>>> (*)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
>>>>> std::__1::allocator<void (*)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void
>>>>> (llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit>
>>>>> >)>::operator()(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1707
>>>>>
>>>>> #26 0x00000001062e2314 in
std::__1::__function::__value_func<void
>>>>> (llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit>
>>>>> >)>::operator()(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
const at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1860
>>>>>
>>>>> #27 0x00000001062e2198 in std::__1::function<void
>>>>> (llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit>
>>>>> >)>::operator()(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >) const at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2419
>>>>>
>>>>> #28 0x00000001062d76b4 in
>>>>>
llvm::orc::ExecutionSession::dispatchMaterialization(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1198
>>>>>
>>>>> #29 0x00000001062d955c in
>>>>> llvm::orc::ExecutionSession::runOutstandingMUs() at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2161
>>>>>
>>>>> #30 0x00000001062d623c in
>>>>> llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind,
>>>>> std::__1::vector<std::__1::pair<llvm::orc::JITDylib*,
>>>>> llvm::orc::JITDylibLookupFlags>,
>>>>>
std::__1::allocator<std::__1::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::__1::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
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2058
>>>>>
>>>>> #31 0x00000001063e5128 in
>>>>>
llvm::orc::ObjectLinkingLayerJITLinkContext::lookup(llvm::DenseMap<llvm::StringRef,
>>>>> llvm::jitlink::SymbolLookupFlags,
llvm::DenseMapInfo<llvm::StringRef>,
>>>>> llvm::detail::DenseMapPair<llvm::StringRef,
>>>>> llvm::jitlink::SymbolLookupFlags> > const&,
>>>>>
std::__1::unique_ptr<llvm::jitlink::JITLinkAsyncLookupContinuation,
>>>>>
std::__1::default_delete<llvm::jitlink::JITLinkAsyncLookupContinuation>
>)
>>>>> at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:87
>>>>>
>>>>> #32 0x0000000106623bac in
>>>>>
llvm::jitlink::JITLinkerBase::linkPhase1(std::__1::unique_ptr<llvm::jitlink::JITLinkerBase,
>>>>>
std::__1::default_delete<llvm::jitlink::JITLinkerBase> >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp:77
>>>>>
>>>>> #33 0x000000010665fc10 in void
>>>>>
llvm::jitlink::JITLinker<llvm::jitlink::MachOJITLinker_arm64>::link<std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
>>>>>
std::__1::default_delete<llvm::jitlink::JITLinkContext> >,
>>>>>
llvm::jitlink::PassConfiguration>(std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
>>>>>
std::__1::default_delete<llvm::jitlink::JITLinkContext> >&&,
>>>>> llvm::jitlink::PassConfiguration&&) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h:139
>>>>>
>>>>> #34 0x000000010665f93c in
>>>>>
llvm::jitlink::jitLink_MachO_arm64(std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
>>>>>
std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:685
>>>>>
>>>>> #35 0x000000010665e604 in
>>>>>
llvm::jitlink::jitLink_MachO(std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
>>>>>
std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/MachO.cpp:69
>>>>>
>>>>> #36 0x0000000106616f58 in
>>>>>
llvm::jitlink::jitLink(std::__1::unique_ptr<llvm::jitlink::JITLinkContext,
>>>>>
std::__1::default_delete<llvm::jitlink::JITLinkContext> >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/JITLink/JITLink.cpp:306
>>>>>
>>>>> #37 0x00000001063db144 in
>>>>>
llvm::orc::ObjectLinkingLayer::emit(llvm::orc::MaterializationResponsibility,
>>>>> std::__1::unique_ptr<llvm::MemoryBuffer,
>>>>> std::__1::default_delete<llvm::MemoryBuffer> >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp:343
>>>>>
>>>>> #38 0x00000001064044f4 in
>>>>>
llvm::orc::ObjectTransformLayer::emit(llvm::orc::MaterializationResponsibility,
>>>>> std::__1::unique_ptr<llvm::MemoryBuffer,
>>>>> std::__1::default_delete<llvm::MemoryBuffer> >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp:35
>>>>>
>>>>> #39 0x000000010638e9c8 in
>>>>>
llvm::orc::IRCompileLayer::emit(llvm::orc::MaterializationResponsibility,
>>>>> llvm::orc::ThreadSafeModule) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp:35
>>>>>
>>>>> #40 0x000000010638ff64 in
>>>>>
llvm::orc::IRTransformLayer::emit(llvm::orc::MaterializationResponsibility,
>>>>> llvm::orc::ThreadSafeModule) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp:25
>>>>>
>>>>> #41 0x00000001062b2b5c in
>>>>>
llvm::orc::CompileOnDemandLayer::emitPartition(llvm::orc::MaterializationResponsibility,
>>>>> llvm::orc::ThreadSafeModule,
std::__1::map<llvm::orc::SymbolStringPtr,
>>>>> llvm::GlobalValue*,
std::__1::less<llvm::orc::SymbolStringPtr>,
>>>>>
std::__1::allocator<std::__1::pair<llvm::orc::SymbolStringPtr const,
>>>>> llvm::GlobalValue*> > >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:320
>>>>>
>>>>> #42 0x00000001062b8470 in
>>>>>
llvm::orc::PartitioningIRMaterializationUnit::materialize(llvm::orc::MaterializationResponsibility)
>>>>> at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp:86
>>>>>
>>>>> #43 0x00000001062e2844 in
>>>>>
llvm::orc::MaterializationUnit::doMaterialize(llvm::orc::JITDylib&) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:563
>>>>>
>>>>> #44 0x00000001062db744 in
>>>>>
llvm::orc::ExecutionSession::materializeOnCurrentThread(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1212
>>>>>
>>>>> #45 0x00000001062eaf98 in
decltype(std::__1::forward<void
>>>>> (*&)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit>
>>>>>
>)>(fp)(std::__1::forward<llvm::orc::JITDylib&>(fp0),
>>>>>
std::__1::forward<std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> > >(fp0)))
>>>>> std::__1::__invoke<void
(*&)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
>>>>> llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void
>>>>> (*&)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
>>>>> llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4425
>>>>>
>>>>> #46 0x00000001062eaef8 in void
>>>>>
std::__1::__invoke_void_return_wrapper<void>::__call<void
>>>>> (*&)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
>>>>> llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> > >(void
>>>>> (*&)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
>>>>> llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:348
>>>>>
>>>>> #47 0x00000001062eae94 in
std::__1::__function::__alloc_func<void
>>>>> (*)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
>>>>> std::__1::allocator<void (*)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void
>>>>> (llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit>
>>>>> >)>::operator()(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1533
>>>>>
>>>>> #48 0x00000001062e980c in
std::__1::__function::__func<void
>>>>> (*)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >),
>>>>> std::__1::allocator<void (*)(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >)>, void
>>>>> (llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit>
>>>>> >)>::operator()(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1707
>>>>>
>>>>> #49 0x00000001062e2314 in
std::__1::__function::__value_func<void
>>>>> (llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit>
>>>>> >)>::operator()(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >&&)
const at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1860
>>>>>
>>>>> #50 0x00000001062e2198 in std::__1::function<void
>>>>> (llvm::orc::JITDylib&,
std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit>
>>>>> >)>::operator()(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >) const at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2419
>>>>>
>>>>> #51 0x00000001062d76b4 in
>>>>>
llvm::orc::ExecutionSession::dispatchMaterialization(llvm::orc::JITDylib&,
>>>>> std::__1::unique_ptr<llvm::orc::MaterializationUnit,
>>>>>
std::__1::default_delete<llvm::orc::MaterializationUnit> >) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Core.h:1198
>>>>>
>>>>> #52 0x00000001062d955c in
>>>>> llvm::orc::ExecutionSession::runOutstandingMUs() at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2161
>>>>>
>>>>> #53 0x00000001062d623c in
>>>>> llvm::orc::ExecutionSession::lookup(llvm::orc::LookupKind,
>>>>> std::__1::vector<std::__1::pair<llvm::orc::JITDylib*,
>>>>> llvm::orc::JITDylibLookupFlags>,
>>>>>
std::__1::allocator<std::__1::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::__1::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
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2058
>>>>>
>>>>> #54 0x00000001062dc4b0 in
>>>>>
llvm::orc::ExecutionSession::lookup(std::__1::vector<std::__1::pair<llvm::orc::JITDylib*,
>>>>> llvm::orc::JITDylibLookupFlags>,
>>>>>
std::__1::allocator<std::__1::pair<llvm::orc::JITDylib*,
>>>>> llvm::orc::JITDylibLookupFlags> > > const&,
llvm::orc::SymbolLookupSet
>>>>> const&, llvm::orc::LookupKind, llvm::orc::SymbolState,
>>>>> std::__1::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
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2095
>>>>>
>>>>> #55 0x00000001062dc6f8 in
>>>>>
llvm::orc::ExecutionSession::lookup(std::__1::vector<std::__1::pair<llvm::orc::JITDylib*,
>>>>> llvm::orc::JITDylibLookupFlags>,
>>>>>
std::__1::allocator<std::__1::pair<llvm::orc::JITDylib*,
>>>>> llvm::orc::JITDylibLookupFlags> > > const&,
llvm::orc::SymbolStringPtr) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/Core.cpp:2120
>>>>>
>>>>> #56 0x0000000106392c40 in
>>>>>
llvm::orc::LazyCallThroughManager::callThroughToSymbol(unsigned long long)
>>>>> at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp:54
>>>>>
>>>>> #57 0x00000001063a07a8 in llvm::Error
>>>>>
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
>>>>> long long)::operator()(unsigned long long) const at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h:120
>>>>>
>>>>> #58 0x00000001063a0760 in
decltype(std::__1::forward<llvm::Error
>>>>>
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
>>>>> long long)&>(fp)(std::__1::forward<unsigned long
long>(fp0)))
>>>>> std::__1::__invoke<llvm::Error
>>>>>
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
>>>>> long long)&, unsigned long long>(llvm::Error
>>>>>
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
>>>>> long long)&, unsigned long long&&) at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4425
>>>>>
>>>>> #59 0x00000001063a06f4 in unsigned long long
>>>>> std::__1::__invoke_void_return_wrapper<unsigned long
>>>>> long>::__call<llvm::Error
>>>>>
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
>>>>> long long)&, unsigned long long>(llvm::Error
>>>>>
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
>>>>> long long)&, unsigned long long&&) at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:317
>>>>>
>>>>> #60 0x00000001063a06a8 in
>>>>> std::__1::__function::__alloc_func<llvm::Error
>>>>>
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
>>>>> long long), std::__1::allocator<llvm::Error
>>>>>
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
>>>>> long long)>, unsigned long long (unsigned long
long)>::operator()(unsigned
>>>>> long long&&) at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1533
>>>>>
>>>>> #61 0x000000010639f038 in
std::__1::__function::__func<llvm::Error
>>>>>
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
>>>>> long long), std::__1::allocator<llvm::Error
>>>>>
llvm::orc::LocalLazyCallThroughManager::init<llvm::orc::OrcAArch64>()::'lambda'(unsigned
>>>>> long long)>, unsigned long long (unsigned long
long)>::operator()(unsigned
>>>>> long long&&) at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1707
>>>>>
>>>>> #62 0x0000000106349f94 in
std::__1::__function::__value_func<unsigned
>>>>> long long (unsigned long long)>::operator()(unsigned
long long&&) const at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1860
>>>>>
>>>>> #63 0x0000000106349f30 in std::__1::function<unsigned
long long
>>>>> (unsigned long long)>::operator()(unsigned long long)
const at
>>>>>
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2419
>>>>>
>>>>> #64 0x0000000106349858 in
>>>>>
llvm::orc::LocalTrampolinePool<llvm::orc::OrcAArch64>::reenter(void*,
>>>>> void*) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:111
>>>>>
>>>>> #65 0x0000000117634090 in 0x117634090 ()
>>>>>
>>>>> #66 0x0000000106323a08 in llvm::orc::runAsMain(int (*)(int,
char**),
>>>>> llvm::ArrayRef<std::__1::basic_string<char,
std::__1::char_traits<char>,
>>>>> std::__1::allocator<char> > >,
llvm::Optional<llvm::StringRef>) at
>>>>>
/Users/igorgomon/dev/third-party/llvm-project/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp:45
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> LLVM Developers mailing list
>>>>> llvm-dev at lists.llvm.org
>>>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>>>>
>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20200606/034516bc/attachment-0001.html>
Seemingly Similar Threads
- Assertion triggered when running simple hello-world code on iOS device using ORC/LLLazyJIT
- Assertion triggered when running simple hello-world code on iOS device using ORC/LLLazyJIT
- ORC Assertion failure
- JIT interaction with linkonce_odr global variables
- OrcV1 removal