RFR: 8305637: Remove Opaque1 nodes for Parse Predicates and clean up useless predicate elimination

Christian Hagedorn chagedorn at openjdk.org
Mon Aug 28 14:46:26 UTC 2023


This is the last clean-up PR before the complete fix for Assertion Predicates ([JDK-8288981](https://bugs.openjdk.org/browse/JDK-8288981)). 

This patch includes:
- Removal of `ConI`->`Opaque1`->`Conv2B` input nodes for `ParsePredicateNodes` with the following additional changes:
  - Adjusting `ParsePredicateNode` to block unwanted optimizations (added empty `ParsePredicateNode::Ideal()`).
  - Changing `Compile::_parse_predicate_opaqs` to not store `Opaque1Nodes` to keep track of Parse Predicates but instead storing `ParsePredicateNodes` directly. Renamed to `Compile::_parse_predicates` and adjusted related methods.
  - Removed asserts matching `Opaque1` -> `Conv2B` shape.
- Cleaning up `eliminate_useless_predicates()`:
  - Adjust code to find useful/useless Parse Predicates with the new `Compile::_parse_predicates` list with `ParsePredicateNodes` instead of `Opaque1Nodes`.
  - Changing `ParsePredicateNode` to carry a `_useless` state which simplifies the elimination of useless predicates with `eliminate_useless_predicates()` and during IGVN (added `ParsePredicateNode::Value()` for that which also removes the predicate once we are in post loop opts IGVN). 
- Some refactoring/clean-ups of involved code.
  
Testing: tier1-7 + some fuzzer testing

Thanks,
Christian

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

Commit messages:
 - 8305637: Remove Opaque1 nodes for Parse Predicates and clean up useless predicate elimination

Changes: https://git.openjdk.org/jdk/pull/15449/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15449&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8305637
  Stats: 319 lines in 13 files changed: 164 ins; 70 del; 85 mod
  Patch: https://git.openjdk.org/jdk/pull/15449.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15449/head:pull/15449

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


More information about the hotspot-compiler-dev mailing list