-
Enhancement
-
Resolution: Fixed
-
P4
-
25
-
master
As suggested by [~roland]:
Quote:
Would it be possible and make sense to remove useless slow path loops the way it's done for predicates or zero trip guards? In PhaseIdealLoop::build_loop_late_post_work(), collect all OpaqueMultiversioningNode in a list. Then iterate over all loops the way it's done in PhaseIdealLoop::eliminate_useless_zero_trip_guard(), find loops marked as multi version, check we can get from the loop to the OpaqueMultiversioningNode and mark that one as useful. Eliminate all OpaqueMultiversioningNode not marked as useful. That way if some transformation such as peeling makes the loop non multi version or if the expected shape breaks for some reason, the slow loop is eliminated on next loop opts pass.
More info in the PR discussion here:
https://github.com/openjdk/jdk/pull/22016#issuecomment-2684365921
Quote:
Would it be possible and make sense to remove useless slow path loops the way it's done for predicates or zero trip guards? In PhaseIdealLoop::build_loop_late_post_work(), collect all OpaqueMultiversioningNode in a list. Then iterate over all loops the way it's done in PhaseIdealLoop::eliminate_useless_zero_trip_guard(), find loops marked as multi version, check we can get from the loop to the OpaqueMultiversioningNode and mark that one as useful. Eliminate all OpaqueMultiversioningNode not marked as useful. That way if some transformation such as peeling makes the loop non multi version or if the expected shape breaks for some reason, the slow loop is eliminated on next loop opts pass.
More info in the PR discussion here:
https://github.com/openjdk/jdk/pull/22016#issuecomment-2684365921
- blocks
-
JDK-8351170 C2 cleanup: unify eliminate_useless_... lists
-
- Open
-
- duplicates
-
JDK-8351008 C2 crash: assert(bol->Opcode() == Op_Bool) failed: Unexpected node
-
- Closed
-
- is blocked by
-
JDK-8323582 C2 SuperWord AlignVector: misaligned vector memory access with unaligned native memory
-
- Resolved
-
- relates to
-
JDK-8351392 C2 crash: failed: Expected Bool, but got OpaqueMultiversioning
-
- Resolved
-
- links to
-
Commit(master) openjdk/jdk/e82031ec
-
Review(master) openjdk/jdk/23865
(1 links to)