Integrated: 8305189: C2 failed "assert(_outcnt==1) failed: not unique"
Roland Westrelin
roland at openjdk.org
Fri May 26 09:09:07 UTC 2023
On Wed, 10 May 2023 11:27:06 GMT, Roland Westrelin <roland at openjdk.org> wrote:
> pre/main/post loops are created for an inner loop of a loop nest but
> assert predicates cause the main and post loops to be removed. The
> OpaqueZeroTripGuard nodes for the loops are not removed: there's no
> logic to trigger removal of the opaque nodes once the loops are no
> longer there. With the inner loops gone, the outer loop becomes
> candidate for optimizations and is unrolled which causes the zero trip
> guards of the now removed loops to be duplicated and the opaque nodes
> to have more than one use.
>
> The fix I propose is, using logic similar to
> `PhaseIdealLoop::eliminate_useless_predicates()`, to check during loop
> opts if every OpaqueZeroTripGuard node guards a loop and if not,
> remove it.
This pull request has now been integrated.
Changeset: bac02b6e
Author: Roland Westrelin <roland at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/bac02b6e9d9e1e93db27c7888188f29631e07f47
Stats: 154 lines in 5 files changed: 154 ins; 0 del; 0 mod
8305189: C2 failed "assert(_outcnt==1) failed: not unique"
Reviewed-by: chagedorn, thartmann
-------------
PR: https://git.openjdk.org/jdk/pull/13901
More information about the hotspot-compiler-dev
mailing list