RFR: 8268261: C2: assert(n != __null) failed: Bad immediate dominator info.
Vladimir Kozlov
kvn at openjdk.java.net
Thu Jul 22 20:50:07 UTC 2021
On Thu, 22 Jul 2021 19:41:28 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
> The control for AddP node is set on N483 loop exit projection. AddP is address for Load node from following loop N426.
> After unswithching N483 loop its exit become nested and does not dominate loop N426. Which cause failure during following loop N426 unroll which tries to update control for Load node by looking on controls of its inputs.
>
> I thought about not to place node on loop's exit projection as we do for loop's entry:
> https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/loopnode.cpp#L5354
> But it is not always possible.
>
> I suggest to exit current round of loopopts when loop is unswitched and do an other round to recalculate idom data.
> It should not affect compilation speed noticeable because unswitching is rare case.
>
> Tested tier1-3, xcomp. Currently running performance testing.
Thank you, Igor.
-------------
PR: https://git.openjdk.java.net/jdk/pull/4879
More information about the hotspot-compiler-dev
mailing list