RFR: 8327111: Replace remaining usage of create_bool_from_template_assertion_predicate() which requires additional OpaqueLoop*Nodes transformation strategies [v2]

Christian Hagedorn chagedorn at openjdk.org
Fri Apr 5 14:56:20 UTC 2024


> https://github.com/openjdk/jdk/pull/18293 started to replace `create_bool_from_template_assertion_predicate()` usages to fix an endless DFS traversal problem. This patch is a follow-up to replace the last usage of `create_bool_from_template_assertion_predicate()` in `clone_assertion_predicate_and_initialize()` to completely fix the problem.
> 
> Depending on where `clone_assertion_predicate_and_initialize()` is called from, we need to clone the Template Assertion Predicate Expression differently:
> - Create a new Template Assertion Predicate for a main loop: Clone everything except for the `OpaqueLoopInitNode` which needs to be replaced with a new `OpaqueLoopInitNode` (done with `clone_and_replace_init()`).
> - Create an Initialized Assertion Predicate for all other cases: Clone everything except for the `OpaqueLoop*Nodes` which are replaced with an actual init and stride value (done with `clone_and_replace_init_and_stride()`).
> 
> Note that it's incorrect to _not_ create new Template Assertion Predicates in case we split the loop further (for example after peeling a loop). This will be eventually fixed with [JDK-8288981](https://bugs.openjdk.org/browse/JDK-8288981).
> 
> I've extended the test added with https://github.com/openjdk/jdk/pull/18293 to also cover the now fixed cases. 
> 
> Thanks,
> Christian

Christian Hagedorn has updated the pull request incrementally with one additional commit since the last revision:

  remove othervm

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/18628/files
  - new: https://git.openjdk.org/jdk/pull/18628/files/15bc211d..5960e82b

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=18628&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=18628&range=00-01

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/18628.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18628/head:pull/18628

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


More information about the hotspot-compiler-dev mailing list