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

Lang Hames via llvm-dev llvm-dev at lists.llvm.org
Fri Jun 19 10:11:56 PDT 2020


Hi Igor,

Thank you for that debugging output, and my apologies for the delayed reply
-- I'm afraid this got buried. I see from the output that the text section
contains a single block of zero size. I have not encountered this before in
my test cases, but it is perfectly legal -- I see no problem with the input
object itself. It tripped that assertion in JITLink because the assertion
required symbols to start before the end of the block, which is impossible
in an empty block. I've relaxed that assertion in 22d7a01dd72 to require
that symbols end on or before the end of their blocks. This allows for the
possibility of zero-sized symbols at the end of blocks (and at the start of
empty blocks).

I believe this should fix your issue, but if it does not please let me know
and we can dig in further.

Regards,
Lang.

On Sat, Jun 6, 2020 at 9:06 AM 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/20200619/bfde7a80/attachment-0001.html>


More information about the llvm-dev mailing list