[LLVMdev] Garbage collection questions

Sandro Magi naasking at gmail.com
Sun Feb 26 16:17:29 PST 2006


Couple of questions:

1. void llvm_gc_write(void *V, void *ObjPtr, void **FieldPtr)

I haven't seen an adequate explanation of these, but I'm guessing:
  void *V: value being written to the field
  void *ObjPtr: current value of the field (ie. ObjPtr == *FieldPtr upon
entry to llvm_gc_write)
  void **FieldPtr: address of the field being written

2. The current semispace collector includes some code which says it should
be in a code-generator library. If I were to write a collector, should I
also include this code for the time being? Or will this soon be refactored
into an external interface?

3. void %llvm.gcroot(<ty>** %ptrloc, <ty2>* %metadata)

I don't see an implementation of the llvm.gcroot intrinsic in the semispace
collector, so is it implemented elsewhere? Semispace has a function with the
same signature, but it's not in the public GC interface (
http://llvm.cs.uiuc.edu/cvsweb/cvsweb.cgi/llvm/runtime/GC/GCInterface.h). Or
is this simply because the llvm_cg_walk_gcroots callback hasn't been
refactored as an external interface (as per #2 above)?

That's it for now. :-)

Sandro
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20060226/2e53a487/attachment.html>


More information about the llvm-dev mailing list