[llvm-dev] Building GC on statepoint-example
Philip Reames via llvm-dev
llvm-dev at lists.llvm.org
Thu Nov 8 09:23:19 PST 2018
Both should be fixed in 346416.
Philip
On 11/8/18 9:06 AM, Jordan Rudd wrote:
> Yes, that's more clear (you duplicated the word specified, minor typo).
>
> The other part that threw me off was that the section name was only
> identified "for Darwin." I was able to find the section via assembly
> inspection, but that threw me off a bit.
> ------------------------------------------------------------------------
> *From:* Philip Reames <listmail at philipreames.com>
> *Sent:* Thursday, November 8, 2018 7:21 AM
> *To:* Jordan Rudd; llvm-dev at lists.llvm.org
> *Subject:* Re: [llvm-dev] Building GC on statepoint-example
>
> Jordon,
>
>
> I just submitted a change to the docs to hopefully address your
> confusion. Can you take a look and let me know if you have further
> questions? Start with the revised Stack Map Format section.
>
>
> Philip
>
>
> p.s. I just submitted this and it'll take a few minutes to refresh.
> In the meantime, you could look at the diff for 346405.
>
>
> On 11/2/18 2:52 PM, Jordan Rudd via llvm-dev wrote:
>> Note: These instructions seem to be targeted towards people creating
>> a JIT. My compiler compiles to native. I suppose I just need a
>> reference to the stack location of the stack map, wherever that is.
>> ------------------------------------------------------------------------
>> *From:* llvm-dev <llvm-dev-bounces at lists.llvm.org>
>> <mailto:llvm-dev-bounces at lists.llvm.org> on behalf of Jordan Rudd via
>> llvm-dev <llvm-dev at lists.llvm.org> <mailto:llvm-dev at lists.llvm.org>
>> *Sent:* Thursday, November 1, 2018 2:06 PM
>> *To:* llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>> *Subject:* [llvm-dev] Building GC on statepoint-example
>> Hi,
>>
>> I'm trying to build a gc using the statepoint-example strategy.
>> However, after hours of searching, reading documentation and trying
>> to find code examples online, I cannot figure out how to access the
>> Stack Map.
>>
>> The documentation for statepoint-example says:
>>
>> /The stack map format generated by this GC strategy can be found in
>> theStack Map Section
>> <https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fllvm.org%2Fdocs%2FStackMaps.html%23stackmap-section&data=02%7C01%7C%7C0d564a3c7b9a42962e2608d6458de2c0%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636772873036011590&sdata=5TKPXTyU5xCrGx67PXW%2FfOHUxhmBJxLAFh1Qckj7jMk%3D&reserved=0>using
>> a format documentedhere
>> <https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fllvm.org%2Fdocs%2FStatepoints.html%23statepoint-stackmap-format&data=02%7C01%7C%7C0d564a3c7b9a42962e2608d6458de2c0%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636772873036011590&sdata=HXlqIsOn9UXV8kCW508RVYs4UaGk6sDG8VfjmzCHiOc%3D&reserved=0>.
>> This format is intended to be the standard format supported by LLVM
>> going forward./
>>
>> Ok, great, I see the format. But... how do I access the Stack Map
>> from my runtime? Where is it?
>>
>> The link seems to send me to this instruction:
>>
>> /A JIT compiler can easily access this section by providing its own
>> memory manager via the LLVM C
>> API|LLVMCreateSimpleMCJITMemoryManager()|. When creating the memory
>> manager, the JIT provides a
>> callback:|LLVMMemoryManagerAllocateDataSectionCallback()|. When LLVM
>> creates this section, it invokes the callback and passes the section
>> name./
>>
>> None of these API's are well-documented, so I'm kind of trying to
>> guess what to do here. As a proof of concept, I tried building a
>> do-nothing memory manager that
>> calls APILLVMCreateSimpleMCJITMemoryManager on static initialization
>> and passes the callbacks to it. I link the necessary llvm libs into
>> my runtime and fire it up.
>>
>> I can confirm that my safepoint poll code is getting hit. I can
>> confirm that creating the "memory manager" is called on runtime boot
>> and that it's succeeding. But the callbacks never get hit. Even if
>> they were, it's unclear how I would use the parameters of those
>> callbacks to locate the stack map.
>>
>> What am I missing?
>>
>> Thanks!
>> Jordan
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.llvm.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fllvm-dev&data=02%7C01%7C%7C0d564a3c7b9a42962e2608d6458de2c0%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636772873036011590&sdata=%2BRKrFLsD8wLLSHLi4zaXNbY2kOV5ElUbrNUjRkGEWj0%3D&reserved=0>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181108/702f09bc/attachment.html>
More information about the llvm-dev
mailing list