RFR(S): 8203425: assert(is_Loop()) failed: invalid node class

Tobias Hartmann tobias.hartmann at oracle.com
Thu May 31 13:18:45 UTC 2018

Hi Nils,

this looks reasonable to me.


On 23.05.2018 14:14, Nils Eliasson wrote:
> Hi,
> This is a follow up to JDK-8203215 that caused failures in testing.
> JDK-8203215 added a call to igvn.optimize after beautify_loops to handle phi-nodes that have lost
> their loop edge and now produce loop invariant data. In testing a failure came up - the
> igvn.optimize call can sometimes eliminate a loop node when the phis are all invariant.
> When fixing this I observed that a loop might be removed, and that another region that is a subset
> of the first is selected as new loop, and then there might be new loop invariant phis (not observed).
> This change introduces a fix point iteration for beautify_loops, until no more loop structure
> changes has been made. This might sound expensive but In practice beautify-loops is called one
> additional time at first insertion of loop-nodes. I have seen one case of cascading loop reductions
> when beautify_loops is called three times. The upside is that we reach fix point for PhaseIdealLoop
> faster since these changes would guarantee to trigger a major change in next iteration instead.
> https://bugs.openjdk.java.net/browse/JDK-8203425
> http://cr.openjdk.java.net/~neliasso/8203425/webrev.01/
> Regards,
> Nils Eliasson

More information about the hotspot-compiler-dev mailing list