RFR: 8162865 Implementation of SPARC lzcnt

Trevor Watson trevor.d.watson at oracle.com
Fri Dec 2 14:23:35 UTC 2016


Hey Vladimir,

Sorry I missed the copyright thing. Too much copying of files ;)
I updated that and also tweaked the implementation of lzcnt for Integer 
to remove the use of the temp register after another reviewer suggested 
it could be done.

Revised code review is in the same place as the original.

I'll wait until JDK 10 repo is open before asking for a sponsor.

Cheers,
Trevor

On 30/11/16 19:19, Vladimir Kozlov wrote:
> Looks good. Only one small issue - new tests files should have only 2016
> year:
>
> * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
>
> Changes have to wait when JDK 10 repo is open. It is Enhancement and we
> done with new features in JDK 9 already.
>
> Thanks,
> Vladimir
>
> On 11/30/16 7:29 AM, Trevor Watson wrote:
>> Hi Vladimir,
>>
>> Thanks for the review. Comments inline below...
>>
>> On 22/11/16 20:04, Vladimir Kozlov wrote:
>>> Do you have performance numbers?
>>
>> I've spent a lot of time looking at performance and it's proving
>> verify difficult to precisely quantify either on a T5 or an S7.
>> However, overall, it would appear that using the native lzcnt
>> instruction is around 10% quicker than the current implementation
>> which uses POPC.
>>
>>> UseVIS is too wide flag to control only these instructions generation.
>>>
>>> To be consistent with x86 code please add
>>> UseCountLeadingZerosInstruction flag to globals_sparc.hpp and its
>>> setting in vm_version_sparc.cpp (based on has_vis3()) similar to what is
>>> done for x86.
>>
>> I've done this and it actually proved useful in testing as I was able
>> to turn off lzcnt and use popc and vice-versa :)
>>
>>> May be name new instructions *ZerosIvis instead of *ZerosI1 to be clear
>>> that VIS is used.
>>
>> Done.
>>
>>> Indention in the new test is all over place. Please, fix.
>>
>> I've fixed it (I hope) and broken the test up into separate Integer
>> and Long tests to be consistent with the rest of the BMI tests in that
>> directory.
>>
>> I've run the jtreg bmi tests on Solaris 12 SPARC and x86 and am
>> awaiting the results of a jprt (hotspot) run on all platforms.
>>
>> The code review is in the same place as before:
>>>> http://cr.openjdk.java.net/~alanbur/8162865/
>>
>> Thanks,
>> Trevor


More information about the hotspot-dev mailing list