[llvm-dev] Assertion triggered when running simple hello-world code on iOS device using ORC/LLLazyJIT

Igor Gomon via llvm-dev llvm-dev at lists.llvm.org
Fri Jun 12 09:30:01 PDT 2020


Hi Lang,

Just wondering if you had a chance to look at the trace I sent you last
Saturday.
Thanks.

-
Best regards,
Igor

On Sat, Jun 6, 2020 at 12:06 PM Igor Gomon <igomonv at gmail.com> wrote:

> 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/20200612/fd03fbee/attachment-0001.html>


More information about the llvm-dev mailing list