# HG changeset patch # User Thomas Wuerthinger # Date 1366726792 -7200 # Node ID 4015295cc5f5823e081fab8c8cffedb63ff5e435 # Parent 5a43592b5112790a9bc281fbed6525998ff0d640# Parent 931bd99780a700516269ac60618433c23da9fa59 Merge. diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/FloatingReadTest.java --- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/FloatingReadTest.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/FloatingReadTest.java Tue Apr 23 16:19:52 2013 +0200 @@ -29,6 +29,7 @@ import com.oracle.graal.graph.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.extended.*; +import com.oracle.graal.nodes.spi.Lowerable.*; import com.oracle.graal.phases.common.*; public class FloatingReadTest extends GraphScheduleTest { @@ -57,7 +58,7 @@ public void run() { StructuredGraph graph = parse(snippet); - new LoweringPhase(null, runtime(), replacements, new Assumptions(false)).apply(graph); + new LoweringPhase(null, runtime(), replacements, new Assumptions(false), LoweringType.BEFORE_GUARDS).apply(graph); new FloatingReadPhase().apply(graph); ReturnNode returnNode = null; diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/MemoryScheduleTest.java --- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/MemoryScheduleTest.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/MemoryScheduleTest.java Tue Apr 23 16:19:52 2013 +0200 @@ -33,6 +33,7 @@ import com.oracle.graal.graph.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.extended.*; +import com.oracle.graal.nodes.spi.Lowerable.*; import com.oracle.graal.nodes.util.*; import com.oracle.graal.phases.*; import com.oracle.graal.phases.common.*; @@ -221,7 +222,7 @@ Assumptions assumptions = new Assumptions(false); new InliningPhase(runtime(), null, replacements, assumptions, null, getDefaultPhasePlan(), OptimisticOptimizations.ALL).apply(graph); } - new LoweringPhase(null, runtime(), replacements, new Assumptions(false)).apply(graph); + new LoweringPhase(null, runtime(), replacements, new Assumptions(false), LoweringType.BEFORE_GUARDS).apply(graph); if (mode == TestMode.WITHOUT_FRAMESTATES || mode == TestMode.INLINED_WITHOUT_FRAMESTATES) { for (Node node : graph.getNodes()) { if (node instanceof StateSplit) { diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/PushNodesThroughPiTest.java --- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/PushNodesThroughPiTest.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/PushNodesThroughPiTest.java Tue Apr 23 16:19:52 2013 +0200 @@ -32,6 +32,7 @@ import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.calc.*; import com.oracle.graal.nodes.extended.*; +import com.oracle.graal.nodes.spi.Lowerable.*; import com.oracle.graal.phases.common.*; public class PushNodesThroughPiTest extends GraalCompilerTest { @@ -82,7 +83,7 @@ private StructuredGraph compileTestSnippet(final String snippet) { StructuredGraph graph = parse(snippet); - new LoweringPhase(null, runtime(), replacements, new Assumptions(false)).apply(graph); + new LoweringPhase(null, runtime(), replacements, new Assumptions(false), LoweringType.BEFORE_GUARDS).apply(graph); new CanonicalizerPhase.Instance(runtime(), null).apply(graph); new PushThroughPiPhase().apply(graph); new CanonicalizerPhase.Instance(runtime(), null).apply(graph); diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ReadAfterCheckCastTest.java --- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ReadAfterCheckCastTest.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ReadAfterCheckCastTest.java Tue Apr 23 16:19:52 2013 +0200 @@ -32,6 +32,7 @@ import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.calc.*; import com.oracle.graal.nodes.extended.*; +import com.oracle.graal.nodes.spi.Lowerable.*; import com.oracle.graal.phases.common.*; /* consider @@ -85,7 +86,7 @@ // structure changes significantly public void run() { StructuredGraph graph = parse(snippet); - new LoweringPhase(null, runtime(), replacements, new Assumptions(false)).apply(graph); + new LoweringPhase(null, runtime(), replacements, new Assumptions(false), LoweringType.BEFORE_GUARDS).apply(graph); new FloatingReadPhase().apply(graph); new EliminatePartiallyRedundantGuardsPhase(true, false).apply(graph); new ReadEliminationPhase().apply(graph); diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/WriteBarrierAdditionTest.java --- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/WriteBarrierAdditionTest.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/WriteBarrierAdditionTest.java Tue Apr 23 16:19:52 2013 +0200 @@ -30,6 +30,7 @@ import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.extended.*; import com.oracle.graal.nodes.extended.WriteNode.WriteBarrierType; +import com.oracle.graal.nodes.spi.Lowerable.*; import com.oracle.graal.phases.common.*; public class WriteBarrierAdditionTest extends GraalCompilerTest { @@ -97,7 +98,7 @@ public void run() { StructuredGraph graph = parse(snippet); - new LoweringPhase(null, runtime(), replacements, new Assumptions(false)).apply(graph); + new LoweringPhase(null, runtime(), replacements, new Assumptions(false), LoweringType.BEFORE_GUARDS).apply(graph); new WriteBarrierAdditionPhase().apply(graph); Debug.dump(graph, "After Write Barrier Addition"); final int barriers = graph.getNodes(SerialWriteBarrier.class).count(); diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Tue Apr 23 16:19:52 2013 +0200 @@ -38,6 +38,7 @@ import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.cfg.*; import com.oracle.graal.nodes.spi.*; +import com.oracle.graal.nodes.spi.Lowerable.*; import com.oracle.graal.nodes.util.*; import com.oracle.graal.phases.*; import com.oracle.graal.phases.PhasePlan.PhasePosition; @@ -139,7 +140,7 @@ Suites.DEFAULT.getHighTier().apply(graph, highTierContext); - new LoweringPhase(target, runtime, replacements, assumptions).apply(graph); + new LoweringPhase(target, runtime, replacements, assumptions, LoweringType.BEFORE_GUARDS).apply(graph); MidTierContext midTierContext = new MidTierContext(runtime, assumptions, replacements); Suites.DEFAULT.getMidTier().apply(graph, midTierContext); @@ -153,7 +154,7 @@ plan.runPhases(PhasePosition.LOW_LEVEL, graph); - new LoweringPhase(target, runtime, replacements, assumptions).apply(graph); + new LoweringPhase(target, runtime, replacements, assumptions, LoweringType.AFTER_GUARDS).apply(graph); new FrameStateAssignmentPhase().apply(graph); diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CStringNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CStringNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CStringNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -44,7 +44,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { byte[] formatBytes = string.getBytes(); long cstring = unsafe.allocateMemory(formatBytes.length + 1); for (int i = 0; i < formatBytes.length; i++) { diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/HotSpotInstalledCodeExecuteNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/HotSpotInstalledCodeExecuteNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/HotSpotInstalledCodeExecuteNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -51,7 +51,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { if (code.isConstant() && code.asConstant().asObject() instanceof HotSpotInstalledCode) { HotSpotInstalledCode hsCode = (HotSpotInstalledCode) code.asConstant().asObject(); InvokeNode invoke = replaceWithInvoke(tool.getRuntime()); diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/InitializeArrayNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/InitializeArrayNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/InitializeArrayNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -82,7 +82,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/InitializeObjectNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/InitializeObjectNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/InitializeObjectNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -64,7 +64,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/TLABAllocateNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/TLABAllocateNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/TLABAllocateNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -45,7 +45,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPost.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPost.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPost.java Tue Apr 23 16:19:52 2013 +0200 @@ -58,7 +58,7 @@ this.precise = precise; } - public void lower(LoweringTool generator) { + public void lower(LoweringTool generator, LoweringType loweringType) { generator.getRuntime().lower(this, generator); } } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPre.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPre.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPre.java Tue Apr 23 16:19:52 2013 +0200 @@ -58,7 +58,7 @@ this.expectedObject = expectedObject; } - public void lower(LoweringTool generator) { + public void lower(LoweringTool generator, LoweringType loweringType) { generator.getRuntime().lower(this, generator); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CallSiteTargetNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CallSiteTargetNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CallSiteTargetNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -65,7 +65,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { StructuredGraph graph = (StructuredGraph) graph(); ConstantNode target = getConstantCallTarget(tool.getRuntime(), tool.assumptions()); diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DeoptimizeNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DeoptimizeNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DeoptimizeNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -51,7 +51,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -96,7 +96,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -93,7 +93,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -128,7 +128,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/SerialArrayRangeWriteBarrier.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/SerialArrayRangeWriteBarrier.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/SerialArrayRangeWriteBarrier.java Tue Apr 23 16:19:52 2013 +0200 @@ -51,7 +51,7 @@ } - public void lower(LoweringTool generator) { + public void lower(LoweringTool generator, LoweringType loweringType) { generator.getRuntime().lower(this, generator); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/SerialWriteBarrier.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/SerialWriteBarrier.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/SerialWriteBarrier.java Tue Apr 23 16:19:52 2013 +0200 @@ -53,7 +53,8 @@ } @Override - public void lower(LoweringTool generator) { + public void lower(LoweringTool generator, LoweringType loweringType) { + assert loweringType == LoweringType.AFTER_GUARDS; generator.getRuntime().lower(this, generator); } } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/UnwindNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/UnwindNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/UnwindNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -51,7 +51,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ConvertNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ConvertNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ConvertNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -162,7 +162,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerDivNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerDivNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerDivNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -103,7 +103,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerRemNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerRemNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerRemNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -60,7 +60,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NormalizeCompareNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NormalizeCompareNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NormalizeCompareNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -48,7 +48,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { StructuredGraph graph = (StructuredGraph) graph(); LogicNode equalComp; diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/UnsignedDivNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/UnsignedDivNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/UnsignedDivNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -61,7 +61,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/UnsignedRemNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/UnsignedRemNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/UnsignedRemNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -60,7 +60,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/debug/DynamicCounterNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/debug/DynamicCounterNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/debug/DynamicCounterNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -45,20 +45,24 @@ private static final int MAX_COUNTERS = 10 * 1024; private static final long[] COUNTERS = new long[MAX_COUNTERS]; + private static final long[] STATIC_COUNTERS = new long[MAX_COUNTERS]; + private static final String[] GROUPS = new String[MAX_COUNTERS]; private static final HashMap INDEXES = new HashMap<>(); public static String excludedClassPrefix = null; public static boolean enabled = false; private final String name; + private final String group; private final long increment; private final boolean addContext; - public DynamicCounterNode(String name, long increment, boolean addContext) { + public DynamicCounterNode(String name, String group, long increment, boolean addContext) { super(StampFactory.forVoid()); if (!enabled) { throw new GraalInternalError("dynamic counters not enabled"); } this.name = name; + this.group = group; this.increment = increment; this.addContext = addContext; } @@ -90,29 +94,51 @@ } public static synchronized void dump(PrintStream out, double seconds) { + for (String group : new HashSet<>(Arrays.asList(GROUPS))) { + dumpCounters(out, seconds, true, group); + dumpCounters(out, seconds, false, group); + } + out.println("============================"); + + clear(); + } + + private static void dumpCounters(PrintStream out, double seconds, boolean staticCounter, String group) { TreeMap sorted = new TreeMap<>(); + long[] array = staticCounter ? STATIC_COUNTERS : COUNTERS; long sum = 0; - for (int i = 0; i < MAX_COUNTERS; i++) { - sum += COUNTERS[i]; - } - long cutoff = sum / 1000; - int cnt = 0; for (Map.Entry entry : INDEXES.entrySet()) { - if (COUNTERS[entry.getValue()] > cutoff) { - sorted.put(COUNTERS[entry.getValue()] * MAX_COUNTERS + cnt++, entry.getKey()); + int index = entry.getValue(); + if (GROUPS[index].equals(group)) { + sum += array[index]; + sorted.put(array[index] * MAX_COUNTERS + index, entry.getKey()); } } - out.println("=========== dynamic counters, time = " + seconds + " s"); - for (Map.Entry entry : sorted.entrySet()) { - long counter = entry.getKey() / MAX_COUNTERS; - out.println((int) (counter / seconds) + "/s \t" + (counter * 100 / sum) + "% \t" + entry.getValue()); + long cutoff = sum / 1000; + long sum2 = 0; + if (staticCounter) { + out.println("=========== " + group + " static counters: "); + for (Map.Entry entry : sorted.entrySet()) { + long counter = entry.getKey() / MAX_COUNTERS; + sum2 += counter; + if (sum2 >= cutoff) { + out.println(counter + " \t" + ((counter * 200 + 1) / sum / 2) + "% \t" + entry.getValue()); + } + } + out.println(sum + ": total"); + } else { + out.println("=========== " + group + " dynamic counters, time = " + seconds + " s"); + for (Map.Entry entry : sorted.entrySet()) { + long counter = entry.getKey() / MAX_COUNTERS; + sum2 += counter; + if (sum2 >= cutoff) { + out.println((int) (counter / seconds) + "/s \t" + ((counter * 200 + 1) / sum / 2) + "% \t" + entry.getValue()); + } + } + out.println((int) (sum / seconds) + "/s: total"); } - out.println((int) (sum / seconds) + "/s: total"); - out.println("============================"); - - clear(); } public static void clear() { @@ -120,13 +146,15 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { if (!enabled) { throw new GraalInternalError("counter nodes shouldn't exist when not enabled"); } StructuredGraph graph = (StructuredGraph) graph(); if (excludedClassPrefix == null || !graph.method().getDeclaringClass().getName().startsWith(excludedClassPrefix)) { int index = addContext ? getIndex(name + " @ " + MetaUtil.format("%h.%n", ((StructuredGraph) graph()).method())) : getIndex(name); + STATIC_COUNTERS[index] += increment; + GROUPS[index] = group; ConstantNode arrayConstant = ConstantNode.forObject(COUNTERS, tool.getRuntime(), graph); ConstantNode indexConstant = ConstantNode.forInt(index, graph); @@ -140,10 +168,10 @@ graph.removeFixed(this); } - public static void addCounterBefore(String name, long increment, boolean addContext, FixedNode position) { + public static void addCounterBefore(String group, String name, long increment, boolean addContext, FixedNode position) { if (enabled) { StructuredGraph graph = (StructuredGraph) position.graph(); - DynamicCounterNode counter = graph.add(new DynamicCounterNode(name, increment, addContext)); + DynamicCounterNode counter = graph.add(new DynamicCounterNode(name, group, increment, addContext)); graph.addBeforeFixed(position, counter); } } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/debug/SurvivingCounterNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/debug/SurvivingCounterNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/debug/SurvivingCounterNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -35,8 +35,8 @@ @Input private ValueNode checkedValue; - public SurvivingCounterNode(String name, long increment, boolean addContext, ValueNode checkedValue) { - super(name, increment, addContext); + public SurvivingCounterNode(String group, String name, long increment, boolean addContext, ValueNode checkedValue) { + super(group, name, increment, addContext); this.checkedValue = checkedValue; } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BoxNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BoxNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BoxNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -52,7 +52,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/LoadHubNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/LoadHubNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/LoadHubNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -45,7 +45,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnboxNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnboxNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnboxNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -47,7 +47,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeLoadNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeLoadNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeLoadNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -50,7 +50,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeStoreNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeStoreNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeStoreNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -69,7 +69,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessFieldNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessFieldNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessFieldNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -83,7 +83,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessIndexedNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessIndexedNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessIndexedNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -64,7 +64,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ArrayLengthNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ArrayLengthNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ArrayLengthNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -62,7 +62,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastDynamicNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastDynamicNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastDynamicNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -47,7 +47,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -52,7 +52,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CompareAndSwapNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CompareAndSwapNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CompareAndSwapNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -105,7 +105,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ExceptionObjectNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ExceptionObjectNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ExceptionObjectNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -53,7 +53,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { if (isLowered()) { return; } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfDynamicNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfDynamicNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfDynamicNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -54,7 +54,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -52,7 +52,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadExceptionObjectNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadExceptionObjectNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadExceptionObjectNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -37,7 +37,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MonitorEnterNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MonitorEnterNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MonitorEnterNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -48,7 +48,7 @@ return new Object[]{LocationNode.ANY_LOCATION}; } - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MonitorExitNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MonitorExitNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MonitorExitNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -49,7 +49,7 @@ return new Object[]{LocationNode.ANY_LOCATION}; } - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewArrayNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewArrayNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewArrayNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -110,7 +110,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewInstanceNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewInstanceNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewInstanceNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -87,7 +87,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewMultiArrayNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewMultiArrayNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewMultiArrayNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -62,7 +62,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { tool.getRuntime().lower(this, tool); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/Lowerable.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/Lowerable.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/Lowerable.java Tue Apr 23 16:19:52 2013 +0200 @@ -24,5 +24,9 @@ public interface Lowerable { - void lower(LoweringTool tool); + public enum LoweringType { + BEFORE_GUARDS, AFTER_GUARDS + } + + void lower(LoweringTool tool, LoweringType loweringType); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/LoweringPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/LoweringPhase.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/LoweringPhase.java Tue Apr 23 16:19:52 2013 +0200 @@ -33,6 +33,7 @@ import com.oracle.graal.nodes.calc.*; import com.oracle.graal.nodes.cfg.*; import com.oracle.graal.nodes.spi.*; +import com.oracle.graal.nodes.spi.Lowerable.LoweringType; import com.oracle.graal.phases.*; import com.oracle.graal.phases.schedule.*; @@ -86,6 +87,9 @@ @Override public ValueNode createGuard(LogicNode condition, DeoptimizationReason deoptReason, DeoptimizationAction action, boolean negated) { + if (loweringType == LoweringType.AFTER_GUARDS) { + throw new GraalInternalError("Cannot create guards in after-guard lowering"); + } if (GraalOptions.OptEliminateGuards) { for (Node usage : condition.usages()) { if (!activeGuards.isNew(usage) && activeGuards.isMarked(usage) && ((GuardNode) usage).negated() == negated) { @@ -120,14 +124,16 @@ private final GraalCodeCacheProvider runtime; private final Replacements replacements; private final Assumptions assumptions; + private final LoweringType loweringType; private boolean deferred; - public LoweringPhase(TargetDescription target, GraalCodeCacheProvider runtime, Replacements replacements, Assumptions assumptions) { + public LoweringPhase(TargetDescription target, GraalCodeCacheProvider runtime, Replacements replacements, Assumptions assumptions, LoweringType loweringType) { this.target = target; this.runtime = runtime; this.replacements = replacements; this.assumptions = assumptions; + this.loweringType = loweringType; } private static boolean containsLowerable(NodeIterable nodes) { @@ -208,16 +214,16 @@ if (node.isAlive() && !processed.isMarked(node) && node instanceof Lowerable) { if (loweringTool.lastFixedNode() == null) { - // We cannot lower the node now because we don't have a fixed node to anchor the - // replacements. - // This can happen when previous lowerings in this lowering iteration deleted - // the BeginNode of this block. - // In the next iteration, we will have the new BeginNode available, and we can - // lower this node. + /* + * We cannot lower the node now because we don't have a fixed node to anchor the + * replacements. This can happen when previous lowerings in this lowering + * iteration deleted the BeginNode of this block. In the next iteration, we will + * have the new BeginNode available, and we can lower this node. + */ deferred = true; } else { processed.mark(node); - ((Lowerable) node).lower(loweringTool); + ((Lowerable) node).lower(loweringTool, loweringType); } } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/DirectObjectStoreNode.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/DirectObjectStoreNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/DirectObjectStoreNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -61,7 +61,7 @@ public static native void storeInt(Object obj, @ConstantNodeParameter int displacement, long offset, int value); @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { StructuredGraph graph = (StructuredGraph) this.graph(); IndexedLocationNode location = IndexedLocationNode.create(LocationNode.ANY_LOCATION, value.kind(), displacement, offset, graph, 1); WriteNode write = graph.add(new WriteNode(object, value, location, WriteBarrierType.NONE)); diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroNode.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -67,7 +67,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { StructuredGraph snippetGraph = getSnippetGraph(tool); InvokeNode invoke = replaceWithInvoke(); diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/nodes/CyclicMaterializeStoreNode.java --- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/nodes/CyclicMaterializeStoreNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/nodes/CyclicMaterializeStoreNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -68,7 +68,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { StructuredGraph graph = (StructuredGraph) graph(); ResolvedJavaType type = object.objectStamp().type(); FixedWithNextNode store; diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/nodes/MaterializeObjectNode.java --- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/nodes/MaterializeObjectNode.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/nodes/MaterializeObjectNode.java Tue Apr 23 16:19:52 2013 +0200 @@ -79,7 +79,7 @@ } @Override - public void lower(LoweringTool tool) { + public void lower(LoweringTool tool, LoweringType loweringType) { virtualObject.materializeAt(this, values, isDefault(), lockCount); } diff -r 5a43592b5112 -r 4015295cc5f5 graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/GraphEffectList.java --- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/GraphEffectList.java Tue Apr 23 15:44:50 2013 +0200 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/GraphEffectList.java Tue Apr 23 16:19:52 2013 +0200 @@ -33,7 +33,7 @@ public class GraphEffectList extends EffectList { - public void addCounterBefore(final String name, final int increment, final boolean addContext, final FixedNode position) { + public void addCounterBefore(final String group, final String name, final int increment, final boolean addContext, final FixedNode position) { if (!DynamicCounterNode.enabled) { return; } @@ -47,13 +47,13 @@ @Override public void apply(StructuredGraph graph, ArrayList obsoleteNodes) { assert position.isAlive(); - DynamicCounterNode node = graph.add(new DynamicCounterNode(name, increment, addContext)); + DynamicCounterNode node = graph.add(new DynamicCounterNode(group, name, increment, addContext)); graph.addBeforeFixed(position, node); } }); } - public void addSurvivingCounterBefore(final String name, final int increment, final boolean addContext, final ValueNode checkedValue, final FixedNode position) { + public void addSurvivingCounterBefore(final String group, final String name, final int increment, final boolean addContext, final ValueNode checkedValue, final FixedNode position) { if (!DynamicCounterNode.enabled) { return; } @@ -67,7 +67,7 @@ @Override public void apply(StructuredGraph graph, ArrayList obsoleteNodes) { assert position.isAlive(); - DynamicCounterNode node = graph.add(new SurvivingCounterNode(name, increment, addContext, checkedValue)); + DynamicCounterNode node = graph.add(new SurvivingCounterNode(group, name, increment, addContext, checkedValue)); graph.addBeforeFixed(position, node); } });