RFR: 8361144: Strenghten the Ideal Verification in PhaseIterGVN::verify_Ideal_for by comparing the hash of a node before and after Ideal

Benoît Maillard bmaillard at openjdk.org
Tue Jul 1 12:00:18 UTC 2025


This PR adds a node hash comparison after calling `Ideal` in `PhaseIterGVN::verify_Ideal_for` to introduce an additional layer of verification for missed optimizations. Previously, we relied on the return value of `Ideal`, which is expected to be `nullptr` if no transformation was done.

By also checking the node's hash before and after `Ideal`, we could catch inconsistencies in the implementation or unintended modifications to the graph. Both of these may indicate missed or incomplete optimizations.

### Testing
- [x] [GitHub Actions](https://github.com/benoitmaillard/jdk/actions?query=branch%3AJDK-8361144)
- [x] tier1-3, plus some internal testing

Thank you for reviewing!

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

Commit messages:
 - 8361144: remove unintentional line break
 - 8361144: move hash check after return value check and use same format as unique counter check
 - 8361144: add check for node hash after verifying ideal

Changes: https://git.openjdk.org/jdk/pull/26064/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26064&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8361144
  Stats: 11 lines in 1 file changed: 10 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/26064.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26064/head:pull/26064

PR: https://git.openjdk.org/jdk/pull/26064


More information about the hotspot-compiler-dev mailing list