RFR(S): 8151818: C1: LIRGenerator::move_to_phi can't deal with illegal phi

Doerr, Martin martin.doerr at sap.com
Mon Mar 14 15:49:18 UTC 2016


Hi,

we found out that C1 can't deal with illegal Phi functions which propagate into other Phi functions.

Phi functions get illegal when their inputs have different types.
This was observed when we activated the JVMTI capability can_access_local_variables and restored the old behavior of BlockBegin::try_merge: invalidate the phi functions instead of bailing out.
The function LIRGenerator::move_to_phi crashes in this case.

Proposed fix is to bail out as this case happens extremely rarely. Seems like it was never observed with the new behavior of BlockBegin::try_merge.

I also improved some assertions to support locals with illegal types.

The webrev is here:
https://bugs.openjdk.java.net/browse/JDK-8151818

Please review. I will also need a sponsor if this change is desired.

Best regards,
Martin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20160314/e1aa754f/attachment.html>


More information about the hotspot-compiler-dev mailing list