RFR: 8162865 Implementation of SPARC lzcnt

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Nov 30 19:19:10 UTC 2016

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.


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