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

Coleen Phillimore coleen.phillimore at oracle.com
Thu Mar 3 02:58:00 UTC 2016



On 3/2/16 9:43 PM, David Holmes wrote:
> On 3/03/2016 2:03 AM, Dmitry Dmitriev wrote:
>> 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).
>
> I'm unclear on how the CHECK_UNHANDLED_OOPS case is handled in the 
> cast_from_oop. In the original we had to "unwrap" obj as obj.obj(), 
> but that no longer appears anywhere. ??

It's done implicitly.

Coleen
>
> Thanks,
> David
>
>> 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