RFR(S): 8191887: assert(b->is_Bool()) in PhaseIdealLoop::clone_iff() due to Opaque4 node

Roland Westrelin rwestrel at redhat.com
Mon Nov 27 10:21:28 UTC 2017


http://cr.openjdk.java.net/~roland/8191887/webrev.00/

Following 8176506, we can have the following graph shape:

If->Opaque4->Bool->CmpP

When cloning the body of a loop, if the If is out of loop but the
Opaque4 is in the loop, an assert fires. I fixed that by adding special
handling for the graph shape above so the Opaque4->Bool->CmpP is cloned
out of loop. I also fixed the case where If->Opaque4 is out of loop but
Bool->CmpP is in the loop in a similar way.

Roland.


More information about the hotspot-compiler-dev mailing list