RFR (S): JDK-6991197 G1: specialize deal_with_reference() for narrowOop*
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 set_partial_array_mask()? 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 set_partial_array_mask() 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