RFR: 8302681: [IR Framework] Only allow cpuFeatures from a verified list [v7]
Christian Hagedorn
chagedorn at openjdk.org
Thu Feb 23 10:40:07 UTC 2023
On Thu, 23 Feb 2023 10:37:36 GMT, Emanuel Peter <epeter at openjdk.org> wrote:
>> Wrongly typed cpuFeatures can lead to an IR rule being ignored.
>> Example: https://github.com/openjdk/jdk/pull/12601 [JDK-8302668](https://bugs.openjdk.org/browse/JDK-8302668)
>>
>> We should have a list of verified cpuFeatures, and assert if one is used that is not in that list. That way, typos and bad copies can be avoided, and we make sure the tests run when intended.
>>
>> I verified the `intel` cpuFeatures by hand on my laptop. And for `asimd` and `sve` I asked @tobiasholenstein and @nick-arm .
>>
>> `sve1` seems to have been a typo, and I am changing it to `sve`.
>>
>> Note: cpu-features can be displayed like this: `./java -Xlog:os+cpu --version`
>>
>> On my machine, I get:
>>
>> cmov, fxsr, ht, mmx, 3dnowpref, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, lzcnt, tsc, tscinvbit, avx, avx2, aes, erms, clmul, bmi1, bmi2, adx, avx512f, avx512dq, avx512cd, avx512bw, avx512vl, sha, fma, vzeroupper, avx512_vpopcntdq, avx512_vpclmulqdq, avx512_vaes, avx512_vnni, clflush, clflushopt, clwb, avx512_vbmi2, avx512_vbmi, rdtscp, rdpid, fsrm, gfni, avx512_bitalg, f16c, pku, ospke, cet_ibt, cet_ss, avx512_ifma
>>
>>
>> @nick-arm got this on one of his machines:
>>
>> fp, asimd, evtstrm, aes, pmull, sha1, sha256, crc32, lse, dcpop, sha3, sha512, sve, paca
>>
>>
>> @tobiasholenstein got this:
>>
>> fp, asimd, aes, pmull, sha1, sha256, crc32, lse, sha3, sha512
>>
>>
>> I had to adapt a test that used a non-existent cpu feature. I replaced it with an impossible combination.
>
> Emanuel Peter has updated the pull request incrementally with one additional commit since the last revision:
>
> Added Vladimir K's request comment
Otherwise, looks good to me, too!
test/hotspot/jtreg/compiler/lib/ir_framework/test/IREncodingPrinter.java line 245:
> 243: // on this list, we will ignore tests and never execute them. Consult CPU_FEATURE_FLAGS
> 244: // in corresponding vm_version_.hpp file to find correct cpu feature's name.
> 245: List<String> verifiedCPUFeatures = new ArrayList<String>( Arrays.asList(
I suggest to convert this local variable to a private static final field.
-------------
Marked as reviewed by chagedorn (Reviewer).
PR: https://git.openjdk.org/jdk/pull/12669
More information about the hotspot-compiler-dev
mailing list