[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