JDK-8342043 : Split Opaque4Node into OpaqueTemplateAssertionPredicateNode and OpaqueNotNullNode
  • Type: Sub-task
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 24
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2024-10-14
  • Updated: 2024-10-28
  • Resolved: 2024-10-23
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 24
24 masterFixed
Related Reports
Blocks :  
Relates :  
Description
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.
Comments
Changeset: 7131f053 Branch: master Author: Christian Hagedorn <chagedorn@openjdk.org> Date: 2024-10-23 08:00:42 +0000 URL: https://git.openjdk.org/jdk/commit/7131f053b0d26b62cbf0d8376ec117d6e8d79f9e
23-10-2024

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk/pull/21608 Date: 2024-10-21 12:46:16 +0000
21-10-2024