[15] RFR (M): 8238681: Make -XX:UseSSE flag x86-specific

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Tue Feb 11 12:36:13 UTC 2020


>>> open/test > vi 
>>> ./hotspot/jtreg/compiler/cpuflags/TestAESIntrinsicsOnSupportedConfig.java 
>>>
>>>
>>> it has
>>>
>>>   @requires vm.cpu.features ~= ".*aes.*"
>>>
>>> rather than a text for x86/x64. Is that a more specific runtime test 
>>> for x86 capabilities?
>>
>> AES intrinsics are available on other platforms as well (e.g., AARCH64 
>> and SPARC have them) and CPU features are named uniformly [1] [2]. So, 
>> I don't see an immediate problem to fix here.
> 
> But the test uses the UseSSE flag so that would mean it is limited to 
> execution on x86 only - even if other platforms have AES. ??

The test has dynamic checks in platform-specific test cases:

    107     private void testUseAESUseSSE2() throws Throwable {
    108         if (Platform.isX86() || Platform.isX64()) {


    165     private void testUseAESUseVIS2() throws Throwable {
    166         if (Platform.isSparc()) {

Best regards,
Vladimir Ivanov

[1] 
http://hg.openjdk.java.net/jdk/jdk/file/tip/test/hotspot/jtreg/compiler/cpuflags/TestAESIntrinsicsOnSupportedConfig.java

>> But while looking at the test, I noted that verification I added in 
>> vm_version_x86.cpp requires some additional handling in CPUInfo [3] to 
>> ignore trailing dot. So, here's updated webrev:
>>
>>    http://cr.openjdk.java.net/~vlivanov/8238681/webrev.01/
>>
>> Best regards,
>> Vladimir Ivanov
>>
>> [1] 
>> http://hg.openjdk.java.net/jdk/jdk/file/8e6fa89397ca/src/hotspot/cpu/aarch64/vm_version_aarch64.cpp#l285 
>>
>>
>> [2] 
>> http://hg.openjdk.java.net/jdk/jdk/file/8e6fa89397ca/src/hotspot/cpu/sparc/vm_version_sparc.cpp#l233 
>>
>>
>> [3] 
>> http://hg.openjdk.java.net/jdk/jdk/file/8e6fa89397ca/test/lib/sun/hotspot/cpuinfo/CPUInfo.java 
>>
>>
>>>
>>> Thanks,
>>> David
>>>
>>> On 11/02/2020 3:08 pm, David Holmes wrote:
>>>> Hi Vladimir,
>>>>
>>>> On 11/02/2020 12:19 am, Vladimir Ivanov wrote:
>>>>> http://cr.openjdk.java.net/~vlivanov/8238681/webrev.00/
>>>>> https://bugs.openjdk.java.net/browse/JDK-8238681
>>>>>
>>>>> Turn UseSSE into x86-specific flag since it doesn't have any 
>>>>> meaning on non-x86 platforms.
>>>>
>>>> That part seems okay.
>>>>
>>>>> As a cleanup, I made all the code which assumes UseSSE<2 x86-32 
>>>>> specific. (x86-64 ABI requires SSE2.)
>>>>
>>>> This made things more obscure for me so I'll leave it to compiler 
>>>> folk to validate.
>>>>
>>>>> Also, as a precaution, I made UseSSE obsolete on non-x86 platforms.
>>>>
>>>> I took the liberty of filing a very short CSR request for this and 
>>>> added myself as Reviewer. Please change it to "Finalized" and await 
>>>> approval before pushing.
>>>>
>>>> Thanks,
>>>> David
>>>>
>>>>> Testing: hs-precheckin-comp, tier1-5, linux x86-32 fastdebug build.
>>>>>
>>>>> Thanks!
>>>>>
>>>>> Best regards,
>>>>> Vladimir Ivanov


More information about the hotspot-dev mailing list