-
Bug
-
Resolution: Fixed
-
P4
-
17
-
master
vectorizedMismatch intrinsic creates a Region node that can have a single input, it can then be simplified away. During IGVN, a situation such as
```
Proj -> Region -> If -> ...
```
becomes
```
Proj -> Region (dead)
-> If -> ...
```
Yet, the Region node stays in the graph until the end of IGVN, despite being dead.
This makes an upcoming check of JDK-8350864 fail: control nodes must have one control successor (except for If, and similar). The node is dropped before the next round of loop optimization, as we then remove dead nodes.
Reproducer can be run with
```
java -Xcomp --add-exports java.base/jdk.internal.util=ALL-UNNAMED -XX:CompileCommand=compileonly,"Test::test*" Test.java
```
possibly with `-XX:PrintIdealGraphLevel=6` to see something, as it doesn't crash yet.
```
Proj -> Region -> If -> ...
```
becomes
```
Proj -> Region (dead)
-> If -> ...
```
Yet, the Region node stays in the graph until the end of IGVN, despite being dead.
This makes an upcoming check of JDK-8350864 fail: control nodes must have one control successor (except for If, and similar). The node is dropped before the next round of loop optimization, as we then remove dead nodes.
Reproducer can be run with
```
java -Xcomp --add-exports java.base/jdk.internal.util=ALL-UNNAMED -XX:CompileCommand=compileonly,"Test::test*" Test.java
```
possibly with `-XX:PrintIdealGraphLevel=6` to see something, as it doesn't crash yet.
- blocks
-
JDK-8350864 C2: verify structural invariants of the Ideal graph
-
- In Progress
-
- caused by
-
JDK-8266951 Partial in-lining for vectorized mismatch operation using AVX512 masked instructions
-
- Resolved
-
- links to
-
Commit(master) openjdk/jdk/b6ec93b0
-
Review(master) openjdk/jdk/25749