RFR(S): 8203425: assert(is_Loop()) failed: invalid node class
Nils Eliasson
nils.eliasson at oracle.com
Thu May 31 13:22:53 UTC 2018
Thank you Tobias!
// Nils
On 2018-05-31 15:18, Tobias Hartmann wrote:
> Hi Nils,
>
> this looks reasonable to me.
>
> Thanks,
> Tobias
>
> 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