RFR: 8263075: C2: simplify anti-dependence check in PhaseCFG::implicit_null_check()

brianjstafford duke at openjdk.java.net
Thu May 12 17:08:20 UTC 2022


The reporter for this issue (https://bugs.openjdk.java.net/browse/JDK-8263075) indicated that there's an assumption that we can rely on that the while loop in question will run exactly one time. Based on this, I've done the following:

- Asserted the condition that makes sure it runs at least once
- Asserted the condition that makes sure it runs only once
- Removed the `while` loop
- Changed a couple of `break` statements into `continue` statements. They no longer need to break out of the `while` loop, now that it's gone. However, they were early exits from the `while` loop that ended up resulting in `continue` statements for the larger enclosing loop. Thus we can just call `continue` directly.
- Removed the local variable `b`, as we no longer need to traverse the node hierarchy. We can use `mb` directly.

Passes jdk, langtools, and hotspot Tier 1 tests on Linux (x64 and ARM64) and macOS (x64 and ARM64). Most Tier 1 tests pass on Windows (x64 and ARM64), but there are a handful of failures unrelated to this change.

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

Commit messages:
 - Removed whitespace
 - This change simplifies the anti-dependence check in PhaseCFG::implicit_null_check(). JDK-8263075

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

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


More information about the hotspot-compiler-dev mailing list