RFR(M): 8017065 C2 allows safepoint checks to leak into G1 pre-barriers

Igor Veresov igor.veresov at oracle.com
Mon Nov 4 01:55:12 PST 2013

As an unfortunate result of Safepoint not producing memory, raw loads must be treated specially. In particular the control edge of such a load bears not only the obvious control dependency information but a part of the memory state dependency as well. As a result of that we should be very conservative about changing control of such nodes.

The following change, extends the existing special treatment of raw pointer loads to all raw loads (which we have a bunch of in G1 barriers) and restricts the movement of raw loads dependent on range check in RCE.  Also I’ve added a verification pass to check consistency of the G1 pre-barriers, which should make easier to catch such things in the future.

Webrev: http://cr.openjdk.java.net/~iveresov/8017065/webrev.0

Testing: eyeballing graphs, CTW, Weblogic+Medrec

More information about the hotspot-compiler-dev mailing list