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

Doerr, Martin martin.doerr at sap.com
Fri Mar 18 08:36:46 UTC 2016


Thanks for reviewing.

Can I get a second review and a sponsor, please?

Best regards,
Martin

From: Igor Veresov [mailto:igor.veresov at oracle.com]
Sent: Montag, 14. März 2016 20:16
To: Doerr, Martin <martin.doerr at sap.com<mailto:martin.doerr at sap.com>>
Cc: hotspot-compiler-dev at openjdk.java.net<mailto:hotspot-compiler-dev at openjdk.java.net>
Subject: Re: RFR(S): 8151818: C1: LIRGenerator::move_to_phi can't deal with illegal phi

Seems fine.

igor

On Mar 14, 2016, at 8:50 AM, Doerr, Martin <martin.doerr at sap.com<mailto:martin.doerr at sap.com>> wrote:

Sorry, I had pasted the wrong link to the webrev:
http://cr.openjdk.java.net/~mdoerr/8151818_c1_illegal_phi/webrev.00/

From: Doerr, Martin
Sent: Montag, 14. März 2016 16:49
To: hotspot-compiler-dev at openjdk.java.net<mailto:hotspot-compiler-dev at openjdk.java.net>
Subject: RFR(S): 8151818: C1: LIRGenerator::move_to_phi can't deal with illegal phi

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/20160318/106cb1c8/attachment.html>


More information about the hotspot-compiler-dev mailing list