RFR: 8302681: [IR Framework] Only allow cpuFeatures from a verified list [v8]

Emanuel Peter epeter at openjdk.org
Thu Feb 23 11:51:40 UTC 2023


> 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:

  Christian's review suggestion: private static final

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/12669/files
  - new: https://git.openjdk.org/jdk/pull/12669/files/adaed88f..64d36123

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=12669&range=07
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=12669&range=06-07

  Stats: 50 lines in 1 file changed: 25 ins; 25 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/12669.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/12669/head:pull/12669

PR: https://git.openjdk.org/jdk/pull/12669


More information about the hotspot-compiler-dev mailing list