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

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Mar 17 18:56:05 UTC 2020


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().

Thanks,
Vladimir K

On 3/17/20 9:25 AM, Roland Westrelin wrote:
> 
> http://cr.openjdk.java.net/~roland/8240335/webrev.00/
> 
> The node that is found in the outer strip mined loop but not referenced
> from the safepoint is a CastII. The CastII node is there because on
> unrolling of the inner loop, a region is created that merges the 2
> copies of the body. The region is later optimized out by the IGVN but if
> a Phi for that region is processed before, a cast node that cannot be
> removed later on can be created. The fix I propose, is to not create the
> cast if the phi's region or some of its inputs are still to be processed
> by the IGVN.
> 
> Roland.
> 


More information about the hotspot-compiler-dev mailing list