RFR(S): 8230061: # assert(mode == ControlAroundStripMined && use == sfpt) failed: missed a node
Tobias Hartmann
tobias.hartmann at oracle.com
Wed Aug 28 09:07:15 UTC 2019
Hi Roland,
Why do you need a cast to Node* in node.cpp:711?
And wouldn't it be better to bail out of the loop and return false if u == root?
Thanks,
Tobias
On 28.08.19 10:09, Roland Westrelin wrote:
>
> http://cr.openjdk.java.net/~roland/8230061/webrev.00/
>
> 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.
>
> Roland.
>
More information about the hotspot-compiler-dev
mailing list