RFR: 8273416: C2: assert(false) failed: bad AD file after JDK-8252372 with UseSSE={0,1}

Aleksey Shipilev shade at openjdk.java.net
Thu Oct 28 11:49:23 UTC 2021


See the bug report for reproducer and failure message. I think the newly added `CastDD`/`CastFF` nodes should handle the extended `regDPR`/`regFPR` (which includes FPU "registers") instead of just `regD`/`regF` to avoid this mismatch error when `UseSSE < 2`.

Unfortunately, we cannot just use `reg*PR` operands in existing match rules, because those operands are defined as `UseSSE < 2`, and using them as operands and `ideal_regs()` would break the matching on `UseSSE >= 2`. Therefore I had to add another pair of matches.

Additonal testing:
 - [x] Linux x86_32 `tier1` `-XX:UseAVX=0 -XX:UseSSE=0`
 - [x] Linux x86_32 `tier1` default
 - [x] Linux x86_64 `tier1` default

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

Commit messages:
 - Specialize match rules for UseSSE < 2
 - Attempt to fix

Changes: https://git.openjdk.java.net/jdk/pull/5386/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5386&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8273416
  Stats: 22 lines in 2 files changed: 20 ins; 0 del; 2 mod
  Patch: https://git.openjdk.java.net/jdk/pull/5386.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/5386/head:pull/5386

PR: https://git.openjdk.java.net/jdk/pull/5386


More information about the hotspot-compiler-dev mailing list