RFR: 8342043: Split Opaque4Node into OpaqueTemplateAssertionPredicateNode and OpaqueNotNullNode

Roland Westrelin roland at openjdk.org
Tue Oct 22 12:02:16 UTC 2024


On Tue, 22 Oct 2024 08:42:12 GMT, Christian Hagedorn <chagedorn at openjdk.org> wrote:

> The `OpaqueTemplateAssertionPredicate` is only used for a Template Assertion Predicate from which we create new Initialized Assertion Predicates from when splitting a loop during loop opts, for example for Loop Peeling. When we no longer split loops, we do not need to create new Initialized Assertion Predicates anymore. So, we replace the `OpaqueTemplateAssertionPredicate` nodes with true to let the Template Assertion Predicates be folded away in the post loop opts IGVN round. However, the `OpaqueInitializedAssertionPredicate` nodes, which accompany the Initialized Assertion Predicates and make sure control is also folded away, will be kept and are only removed during macro node expansion (like the `Opaque4` nodes before).

That makes sense. Thanks for the explanation.

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

PR Comment: https://git.openjdk.org/jdk/pull/21608#issuecomment-2429087421


More information about the hotspot-compiler-dev mailing list