RFR: Improve inlining of the update-refs closure. Implement update-refs verification.
rkennke at redhat.com
Thu Mar 30 11:48:49 UTC 2017
This makes the update-refs closure inline better.
It's done by adding a templated marked_object_oop_iterate() method that
uses a templated object->oop closure and call marked_object_iterate()
with that. The effect is that the call to obj->oop_iterate() can use a
non-virtual inlined call to the actual OopClosure.
I've also added a little verification routine that checks that no marked
object points to any to-space object after updating references.
(Notice the marked_object_oop_iterate() will also come handy for partial
collections: currently we're iterating all objects there, but only need
to actually see marked objects. Plus the inlining of course.)
Tested using specjvm and hotspot_gc_shenandoah.
More information about the shenandoah-dev