-
Bug
-
Resolution: Fixed
-
P3
-
24, 25
-
b23
Before the Assertion Predicate refactorings, we rewired data dependencies either to the Initialized Assertion Predicate (for Loop Peeling) or to the zero trip guard (for main and post loops). Both was incomplete when we further split a lot - we missed to update these data dependencies accordingly.
We are now finally able to fix this by always rewiring the data dependencies to the Template Assertion Predicate which will be kept until either no more loop splitting can be done for a loop or until loop opts are over.
By failing to update the data dependencies, we could perform some loads too early and crash (not observable, though).
This was found by a new stress peeling mode (JDK-8355488) but I was able to extract a reproducer that does not use the new stressing.
We are now finally able to fix this by always rewiring the data dependencies to the Template Assertion Predicate which will be kept until either no more loop splitting can be done for a loop or until loop opts are over.
By failing to update the data dependencies, we could perform some loads too early and crash (not observable, though).
This was found by a new stress peeling mode (
- blocks
-
JDK-8355488 Add stress mode for C2 loop peeling
-
- Resolved
-
- links to
-
Commit(master) openjdk/jdk/ad07426f
-
Review(master) openjdk/jdk/25007