-
Sub-task
-
Resolution: Fixed
-
P4
-
24
-
b22
For the complete fix for Assertion Predicates, we must be able to copy Template Assertion Predicates around efficiently. To do that, we eventually want to get rid of UCT for the fail path of Template Assertion Predicates and only create them with Halt nodes. Currently, we have both variants around which makes it somewhat difficult to match them.
On top of that, Opaque4 nodes are shared between Template Assertion Predicates and not null checks for intrinsics. To differentiate between them, we need to walk the graph to check if OpaqueLoop* nodes can be found (if so, it is a Template Assertion Predicate). This is somewhat cumbersome and slow. To simplified pattern matching, it would be a lot easier if we split the Opaque4 nodes into OpaqueTemplateAssertionPredicateNode for Template Assertion Predicates and OpaqueNotNullNode for non null checks with intrinsics. This is proposed with this task.
On top of that, Opaque4 nodes are shared between Template Assertion Predicates and not null checks for intrinsics. To differentiate between them, we need to walk the graph to check if OpaqueLoop* nodes can be found (if so, it is a Template Assertion Predicate). This is somewhat cumbersome and slow. To simplified pattern matching, it would be a lot easier if we split the Opaque4 nodes into OpaqueTemplateAssertionPredicateNode for Template Assertion Predicates and OpaqueNotNullNode for non null checks with intrinsics. This is proposed with this task.
- blocks
-
JDK-8342047 Create Template Assertion Predicates with Halt nodes only instead of uncommon traps
- Resolved
- relates to
-
JDK-8343137 C2: VerifyLoopOptimizations fails with "Was reachable in only one"
- Resolved
-
JDK-8343380 C2: assert(iff->in(1)->is_OpaqueNotNull()) failed: must be OpaqueNotNull
- Resolved
- links to
-
Commit(master) openjdk/jdk/7131f053
-
Review(master) openjdk/jdk/21608