diff graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java @ 8586:82f6a25321b8

modeling of lock state removed from LIR and runtime specific debug info for locks moved into runtime specific classes
author Doug Simon <doug.simon@oracle.com>
date Fri, 29 Mar 2013 12:31:42 +0100
parents 718c0304ffeb
children 480c564d90ef
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java	Fri Mar 29 12:22:27 2013 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java	Fri Mar 29 12:31:42 2013 +0100
@@ -1095,6 +1095,7 @@
 
         FrameState outerFrameState = null;
         double invokeProbability = invoke.node().probability();
+        int callerLockDepth = stateAfter.locksSize();
         for (Node node : duplicates.values()) {
             if (GraalOptions.ProbabilityAnalysis) {
                 if (node instanceof FixedNode) {
@@ -1138,6 +1139,10 @@
                     }
                 }
             }
+            if (callerLockDepth != 0 && node instanceof MonitorReference) {
+                MonitorReference monitor = (MonitorReference) node;
+                monitor.setLockDepth(monitor.getLockDepth() + callerLockDepth);
+            }
         }
 
         Node returnValue = null;