RFR(S): 8136926: phi == NULL assert in PhaseIdealLoop::try_move_store_after_loop
Roland Westrelin
roland.westrelin at oracle.com
Thu Sep 24 09:19:17 UTC 2015
Thanks Vladimir & Michael for the reviews.
Roland.
> On Sep 22, 2015, at 9:31 PM, Berg, Michael C <michael.c.berg at intel.com> wrote:
>
> Roland, the code looks good. It happens so rarely anyways that doing the safe thing should never really cost us.
>
> Thanks,
> Michael
>
> -----Original Message-----
> From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf Of Roland Westrelin
> Sent: Tuesday, September 22, 2015 6:36 AM
> To: hotspot compiler
> Subject: RFR(S): 8136926: phi == NULL assert in PhaseIdealLoop::try_move_store_after_loop
>
> http://cr.openjdk.java.net/~roland/8136926/webrev.00/
>
> The crash happens when the code encounters 2 memory Phis as uses of the same store, both Phis have the loop head as control, both Phis are on the same memory slice (a field in an object). AFAICT, the graph is correct and we can indeed have 2 such memory Phis: the first one is created during parsing, the second one following EA when some locking/unlocking operations are removed and the memory graph is heavily simplified. Each Phi is used for a different execution path in the loop body.
>
> I tried to write a test case to reproduce the bug with no success.
>
> The fix I propose is to simply bail out of the optimization if 2 memory Phis are encountered.
>
> Roland.
More information about the hotspot-compiler-dev
mailing list