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

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Nov 28 00:06:32 UTC 2017

Testing passed and I pushed changes (removed blank line in subnode.hpp).


On 11/27/17 10:55 AM, Vladimir Kozlov wrote:
> subnode.hpp is empty - please remove from changes.
> Looks good otherwise. I started testing. Please, send changeset.
> Thanks,
> Vladimir
> On 11/27/17 2:21 AM, Roland Westrelin wrote:
>> 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