RFR: 8268261: C2: assert(n != __null) failed: Bad immediate dominator info.

Vladimir Ivanov vlivanov at openjdk.java.net
Fri Jul 23 18:43:05 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.

Looks good.

-------------

Marked as reviewed by vlivanov (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/4879


More information about the hotspot-compiler-dev mailing list