[PATCH] Statepoint infrastructure for garbage collection

Kevin Modzelewski kmod at dropbox.com
Wed Oct 15 23:48:37 PDT 2014


Sorry yes, I am comparing this approach to gc.root; it seems like gc.root and statepoints are similar in that they both take a spill+reload "reduce the code generator's ability to use copies" approach as compared to a hypothetical "track all copies so that they can be updated in place".  It seems like gc.root provides much of the same functionality as statepoint -- gc.root definitely should be able to support a relocating GC as well, and I guess I haven't heard of it being "fundamentally broken" outside of a late-safepoint-placement strategy.  So far the arguments I've seen for statepoints over gc.root are
- easier to save roots in callee-save registers
- easier to automatically generate gc annotations on arbitrary IR, such as post-compiler-optimizations.

I guess I'm wondering if I'm missing other benefits, and what your thoughts are on whether this would be enough to save statepoints from the same fate as gc.root.

http://reviews.llvm.org/D5683






More information about the llvm-commits mailing list