RFR(S): 8202950: C2: assert(found_sfpt) failed: no node in loop that's not input to safepoint
rwestrel at redhat.com
Fri May 18 15:51:16 UTC 2018
> Last question: why you check IgnoreStripMined?
> Why is_strip_minned() check is not enough?
mode == IgnoreStripMined is when cloning is performed for unrolling. In
that case, the control flow that joins the inner loop and its clone
together has a region right outside the inner loops, in the outer
loop. When mode != IgnoreStripMined (pre/post loop construction,
unswitching, peeling), the region is outside at least one outer
loop. Then if a load is outside both loops with control in the inner
loop, its control will be set to that region right outside the outer loop
and the verification code won't fail.
More information about the hotspot-compiler-dev