RFR: 8287438: IGV: scheduling crashes on non-block-start Region with multiple predecessors

Roberto Castañeda Lozano rcastanedalo at openjdk.java.net
Fri May 27 12:57:28 UTC 2022


IGV scheduling crashes when breaking critical edges that target Region nodes not marked with the `is_block_start` property, by failing to create an appropriate basic block between the source and the destination of the critical edge (see the JBS bug report for more detail). This changeset ensures that such a basic block is created even when the destination node is not marked with `is_block_start`.

#### Testing

- Tested manually on the [graph](https://bugs.openjdk.java.net/secure/attachment/99125/failure.zip) reported in the JBS issue.

- Tested automatically that scheduling tens of thousands of graphs (by instrumenting IGV to schedule parsed graphs eagerly and running `java -Xcomp -XX:-TieredCompilation -XX:PrintIdealGraphLevel=4`) does trigger any exception or assertion failure.

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

Commit messages:
 - Always start a new block after a dummy node is visited

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

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


More information about the hotspot-compiler-dev mailing list