RFR(S): 8136926: phi == NULL assert in PhaseIdealLoop::try_move_store_after_loop

Roland Westrelin roland.westrelin at oracle.com
Tue Sep 22 13:36:22 UTC 2015


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