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

Emanuel Peter epeter at openjdk.org
Mon Feb 20 16:47:10 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

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

Commit messages:
 - sve1 was a typo, fix that
 - 8302681: [IR Framework] Only allow cpuFeatures from a verified list

Changes: https://git.openjdk.org/jdk/pull/12669/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=12669&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8302681
  Stats: 28 lines in 2 files changed: 22 ins; 0 del; 6 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