GCC/JIT and precise garbage collection support?

Jeff Law law@redhat.com
Fri Jul 10 18:34:00 GMT 2015


On 07/10/2015 09:04 AM, Armin Rigo wrote:
> Hi David,
>
> On 10 July 2015 at 16:11, David Malcolm <dmalcolm@redhat.com> wrote:
>> AIUI, we have CALL_INSN instructions all the way through the RTL phase
>> of the backend, so we can identify which locations in the generated code
>> are calls; presumably we'd need at each CALL_INSN to determine somehow
>> which RTL expressions tagged as being GC-aware are live (perhaps a
>> mixture of registers and fp-offset expressions?)
>>
>> So presumably we could use that information (maybe in the final pass) to
>> write out some metadata describing for each %pc callsite the relevant GC
>> roots.
>>
>> Armin: does this sound like what you need?
>
> Not quite.  I can understand that you're trying to find some solution
> with automatic discovery of the live variables of a "GC pointer" type
> and so on.  This is more than we need, and if
> we had that, then we'd need to work harder to remove the extra stuff.
> We only want the end result: attach to each CALL_INSN a list of
> variables which should be stored in the stack map for that call, and
> be ready to see these locations be modified from outside across the
> call if a GC occurs.
I wonder how much overlap there is between this need and what we're 
going to need to do for resumable functions which are being discussed in 
the ISO C++ standards meetings.

jeff



More information about the Gcc mailing list