RFR: 8327111: Replace remaining usage of create_bool_from_template_assertion_predicate() which requires additional OpaqueLoop*Nodes transformation strategies [v3]
Christian Hagedorn
chagedorn at openjdk.org
Fri Apr 5 15:52:29 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:
add comment and assert
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/18628/files
- new: https://git.openjdk.org/jdk/pull/18628/files/5960e82b..3af28fc4
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=18628&range=02
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=18628&range=01-02
Stats: 3 lines in 1 file changed: 3 ins; 0 del; 0 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