RFR(S): 8230061: # assert(mode == ControlAroundStripMined && use == sfpt) failed: missed a node

Roland Westrelin rwestrel at redhat.com
Wed Aug 28 08:09:06 UTC 2019


An LShiftI, that's in an outer strip mined loop because it's referenced
from the safepoint node, is transformed by
PhaseIdealLoop::remix_address_expressions(). This causes dead nodes to
be produced. In the same loop opts pass, the inner strip mined loop is
unrolled. When the loop body is cloned, C2 hits the dead nodes created
above (uses from the loop body in the outer strip mined loop not
referenced from the safepoint) and the assert fires. The fix I propose
is to relax the assert so it takes dead nodes into account.


More information about the hotspot-compiler-dev mailing list