RFR(S): 8240335: C2: assert(found_sfpt) failed: no node in loop that's not input to safepoint

Tobias Hartmann tobias.hartmann at oracle.com
Fri Mar 20 08:49:26 UTC 2020


Hi Roland,

Very unfortunate that such a hack is required but I can't think of an alternative solution either.

Why did you add the check in cfgnode.cpp:1879 which is always true?

Please use consistent style in new code:
- cfgnode.hpp:139: Asterisk position
- cfgnode.cpp:1781, 1782, 1785: Asterisk position
- cfgnode.cpp:1786: Loop/whitespace formatting
- TestCastIIAfterUnrollingInOuterLoop.java:72: Whitespace

Testing (tier1-3, hs-precheckin-comp) passed.

I wonder if this is somehow related to
https://bugs.openjdk.java.net/browse/JDK-8233895

Best regards,
Tobias

On 18.03.20 19:22, Vladimir Kozlov wrote:
> On 3/18/20 3:46 AM, Roland Westrelin wrote:
>>
>> Thanks for reviewing this.
>>
>>> I think in wait_for_region_igvn() method it should be '} else if () {' if 'delay' set to 'true'
>>> to avoid additional checks:
>>>
>>> +        delay = true;
>>> +      } else if(...
>>>
>>>
>>> It is also better to use faster method worklist.member() instead of worklist.contains().
>>
>> Right. Do we want to overload contains() in Unique_Node_List to catch
>> such a mistake?
> 
> Yes, but not in this fix. We may need to run testing with it and fix all found places. File separate
> RFE.
> 
>>
>> http://cr.openjdk.java.net/~roland/8240335/webrev.01/
> 
> The rest is good. Please test.
> 
>>
>> Roland.
>>
> 
> Thanks,
> Vladimir


More information about the hotspot-compiler-dev mailing list