RFR(XS): 8149973: Optimize object alignment check in debug builds.

Dmitry Dmitriev dmitry.dmitriev at oracle.com
Wed Mar 2 16:03:52 UTC 2016


Hello Coleen,

I implement refactoring which removes repeating of '&' expression.
In g1OopClosures.inline.hpp and g1RemSet.inline.hpp I removed extracting 
of oopDesc* from oop and added call to check_obj_alignment instead.
Updated webrev.01: 
http://cr.openjdk.java.net/~ddmitriev/8149973/webrev.01/ 
<http://cr.openjdk.java.net/%7Eddmitriev/8149973/webrev.01/>
Testing: jprt, hotspot_all & vm.quick(still in progress, no new failures).

Thanks,
Dmitry


On 24.02.2016 15:35, Coleen Phillimore wrote:
>
> From
> http://cr.openjdk.java.net/~ddmitriev/8149973/webrev.00/src/share/vm/gc/g1/g1OopClosures.inline.hpp.udiff.html 
>
> http://cr.openjdk.java.net/~ddmitriev/8149973/webrev.00/src/share/vm/gc/g1/g1RemSet.inline.hpp.udiff.html 
>
>
> Can you just call
>
>    assert(check_obj_alignment(o), "not oop aligned");
>
> rather than repeating the & expression?   The check_obj_alignment is 
> inlined.
>
> Coleen
>
> On 2/24/16 5:42 AM, Dmitry Dmitriev wrote:
>> Hello,
>>
>> Please, review small optimization to the object alignment check in 
>> the debug builds. In this fix I replace division by 
>> MinObjAlignmentInBytes to bitwise AND operation with 
>> MinObjAlignmentInBytesMask, because MinObjAlignmentInBytes is a power 
>> of two. Suggested construction already used in MacroAssembler, e.g. 
>> hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp).
>>
>> JBS: https://bugs.openjdk.java.net/browse/JDK-8149973
>> webrev.00: http://cr.openjdk.java.net/~ddmitriev/8149973/webrev.00/ 
>> <http://cr.openjdk.java.net/%7Eddmitriev/8149973/webrev.00/>
>> Testing: jprt, hotspot_all
>>
>> Thanks,
>> Dmitry
>



More information about the hotspot-dev mailing list