RFR (S): JDK-6991197 G1: specialize deal_with_reference() for narrowOop* (original) (raw)

Tony Printezis tprintezis at twitter.com
Wed Jan 29 20:34:36 UTC 2014


Thomas,

(if you need one more opinion) The latest webrev also looks good to me and I found it a nice improvement over the first one.

Can I take it a step (OK: two steps!) further, if you're interested (and feel free to ignore this)?

Why is clear_partial_array_mask() a template given that it should only work on oops*'s? (correct?)

Then, why is G1ParScanPartialArrayClosure::do_oop_nv(T* p) a template too (should only be called for T == oop). In fact, why is it a closure at all? Would it make sense to just move its body to a method with an oop* parameter and just call it directly from deal_with_reference()?

Tony

On 1/29/14, 3:50 AM, Thomas Schatzl wrote: > Hi all, >> On Tue, 2014-01-28 at 10:29 +0100, Bengt Rutisson wrote: >> Hi Thomas, >>>> The new webrev looks much better. I like that solution. >>>> Can we do something similar with setpartialarraymask()? It would be >> good if that one could not be called with a narrowOop. Maybe this works? >>> New webrev at > http://cr.openjdk.java.net/~tschatzl/6991197/webrev.2/ >> The "fix" is to simply to only implement setpartialarraymask() for > regular oops. The compiler will automatically complain if somebody tries > to use it with narrowOops then. >> Thanks a lot, > Thomas >>

Tony Printezis | JVM/GC Engineer / VM Team | Twitter

@TonyPrintezis tprintezis at twitter.com



More information about the hotspot-gc-dev mailing list