Statepoint patches have landed

Early this week, I was able to submit the majority of the changes to support Statepoints in LLVM.  Before anyone gets too excited, let me note a few things: This is the less interesting part of our GC work.  The more interesting parts of late safepoint insertion have not landed yet and are likely a …

Continue reading ‘Statepoint patches have landed’ »

Statepoints vs gcroot for representing call safepoints

I recent discussion on LLVM commits w.r.t. the statepoint changes which are up for review, I managed to get myself confused and made a couple of inaccurate statements regarding the existing capabilities of gcroots vs the newly proposed statepoints.  This post is a (hopefully correct) summary of the similarities and differences. For the purposes of …

Continue reading ‘Statepoints vs gcroot for representing call safepoints’ »

Statepoint changes up for review

Last week, the first set of patches for our work on garbage collection support in LLVM hit the mailing list.  The review process will probably take a few weeks, but hopefully these should have landed by the 2014 LLVM Developers Meeting at the end of this month.  At that conference, my co-worker Sanjoy and I …

Continue reading ‘Statepoint changes up for review’ »

IR Restrictions for Late Safepoint Placement

The late safepoint placement pass we released recently has a couple of restrictions on the IR it can handle.  I’ve described those restrictions a couple of different times now, so I figured it was time to put them up somewhere I could reference and that google might find.  A shorter version of this post will …

Continue reading ‘IR Restrictions for Late Safepoint Placement’ »

Code for late safepoint placement available

This post contains the text of an email I sent to the LLVMdev mailing list a few moments ago.  I would encourage you to direct technical questions and comments to that thread, though I will also respond to technical questions in comments posted here. As I’ve mentioned on the mailing list a couple of times …

Continue reading ‘Code for late safepoint placement available’ »

Late Safepoint Placement: An Update

A couple of weeks ago, I promised further detail on the late safepoint placement approach.  Since that hasn’t developed – yet – I wanted to give a small update. All along, we’ve had two designs in mind for representing safepoints.  One was “clearly the right one” for long term usage, but was a bit more …

Continue reading ‘Late Safepoint Placement: An Update’ »

Late Safepoint Placement Overview

In a previous post, I sketched out some of the problems with the existing gcroot mechanism for garbage collection in LLVM.  This post is going to layout the general approach of what we’ve started referring to as “late safepoint placement.”  This will be both fairly high level and fairly short.  Details will follow in future …

Continue reading ‘Late Safepoint Placement Overview’ »