[LLVMdev] Accurate garbage collection
lost
lostfreeman at gmail.com
Tue Sep 21 06:07:04 PDT 2010
Does this mean that everything I should do to make simple GC working
is setting shadow stack as a GC for every function, calling GC's alloc
to allocate (and possible do garbage collection), and during garbage
collection I need to traverse shadow stack to get list of stack object
references?
If so, how can I access shadow stack pointer? Is there any function or
must I declare some external variable and then link llvm?
Best regards,
Victor Milovanov.
2010/9/17, nicolas geoffray <nicolas.geoffray at gmail.com>:
> Hi Victor,
>
> You can write your own GC or use other's GC with LLVM. What LLVM provides is
> a framework to generate a representation of objects locations in a method's
> frames. Right now, LLVM can emit the shadow stack (which dynamically updates
> the locations), or the ocaml format. If you have implemented a GC, you can
> parse the ocaml format to locate the objects.
>
> I think the web page needs to be updated, because you can make the GC work
> with the JIT. You can just use LLVM's internal representations of frames.
>
> Hope that helps,
> Nicolas
>
> On Thu, Sep 16, 2010 at 8:30 PM, lost <lostfreeman at gmail.com> wrote:
>
>> Hello!
>>
>> I'm looking at "Overview of available features" here:
>> http://llvm.org/docs/GarbageCollection.html#collector-algos and can't
>> understand something.
>> First, does table header mean that there are already some GC's
>> implemented besides "shadow stack"? E.g. can I just use them?
>> Second, does row "JIT", "NO" mean that GC is not compatible with jitting
>> at
>> all?
>>
>> Best regards,
>> Victor Milovanov.
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>
More information about the llvm-dev
mailing list