# HG changeset patch # User Christian Wimmer # Date 1367953401 25200 # Node ID 19c5a07c7843a34aa57ba8de236476e39ad9c737 # Parent 278a50fb49c774a2f398064c7e462c5e96f52fa6 Introduce a graph() method that returns a StructuredGraph, to make many explicit casts unnecessary diff -r 278a50fb49c7 -r 19c5a07c7843 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 May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/MemoryScheduleTest.java Tue May 07 12:03:21 2013 -0700 @@ -185,7 +185,7 @@ @Test public void testArrayCopy() { SchedulePhase schedule = getFinalSchedule("testArrayCopySnippet", TestMode.INLINED_WITHOUT_FRAMESTATES); - StructuredGraph graph = (StructuredGraph) schedule.getCFG().getStartBlock().getBeginNode().graph(); + StructuredGraph graph = schedule.getCFG().getStartBlock().getBeginNode().graph(); ReturnNode ret = graph.getNodes(ReturnNode.class).first(); assertTrue(ret.result() instanceof FloatingReadNode); assertEquals(schedule.getCFG().blockFor(ret), schedule.getCFG().blockFor(ret.result())); diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Tue May 07 12:03:21 2013 -0700 @@ -1125,7 +1125,7 @@ } private static ValueNode createBoundsCheck(AccessIndexedNode n, LoweringTool tool) { - StructuredGraph graph = (StructuredGraph) n.graph(); + StructuredGraph graph = n.graph(); ArrayLengthNode arrayLength = graph.add(new ArrayLengthNode(n.array())); ValueNode guard = tool.createGuard(graph.unique(new IntegerBelowThanNode(n.index(), arrayLength)), BoundsCheckException, InvalidateReprofile); diff -r 278a50fb49c7 -r 19c5a07c7843 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 May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CStringNode.java Tue May 07 12:03:21 2013 -0700 @@ -51,9 +51,8 @@ unsafe.putByte(cstring + i, formatBytes[i]); } unsafe.putByte(cstring + formatBytes.length, (byte) 0); - StructuredGraph graph = (StructuredGraph) graph(); - ConstantNode replacement = ConstantNode.forLong(cstring, graph); - graph.replaceFloating(this, replacement); + ConstantNode replacement = ConstantNode.forLong(cstring, graph()); + graph().replaceFloating(this, replacement); } @NodeIntrinsic diff -r 278a50fb49c7 -r 19c5a07c7843 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 May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/HotSpotInstalledCodeExecuteNode.java Tue May 07 12:03:21 2013 -0700 @@ -85,25 +85,24 @@ } final int verifiedEntryPointOffset = HotSpotReplacementsUtil.verifiedEntryPointOffset(); - StructuredGraph g = (StructuredGraph) graph(); - - LoadFieldNode loadCodeBlob = g.add(new LoadFieldNode(code, codeBlobField)); - UnsafeLoadNode load = g.add(new UnsafeLoadNode(loadCodeBlob, verifiedEntryPointOffset, ConstantNode.forLong(0, graph()), graalRuntime().getTarget().wordKind)); + LoadFieldNode loadCodeBlob = graph().add(new LoadFieldNode(code, codeBlobField)); + UnsafeLoadNode load = graph().add(new UnsafeLoadNode(loadCodeBlob, verifiedEntryPointOffset, ConstantNode.forLong(0, graph()), graalRuntime().getTarget().wordKind)); - LoadFieldNode loadMethod = g.add(new LoadFieldNode(code, methodField)); - LoadFieldNode loadmetaspaceMethod = g.add(new LoadFieldNode(loadMethod, metaspaceMethodField)); + LoadFieldNode loadMethod = graph().add(new LoadFieldNode(code, methodField)); + LoadFieldNode loadmetaspaceMethod = graph().add(new LoadFieldNode(loadMethod, metaspaceMethodField)); - HotSpotIndirectCallTargetNode callTarget = g.add(new HotSpotIndirectCallTargetNode(loadmetaspaceMethod, load, arguments, stamp(), signatureTypes, method, CallingConvention.Type.JavaCall)); + HotSpotIndirectCallTargetNode callTarget = graph().add( + new HotSpotIndirectCallTargetNode(loadmetaspaceMethod, load, arguments, stamp(), signatureTypes, method, CallingConvention.Type.JavaCall)); - InvokeNode invoke = g.add(new InvokeNode(callTarget, 0)); + InvokeNode invoke = graph().add(new InvokeNode(callTarget, 0)); invoke.setStateAfter(stateAfter()); - g.replaceFixedWithFixed(this, invoke); + graph().replaceFixedWithFixed(this, invoke); - g.addBeforeFixed(invoke, loadmetaspaceMethod); - g.addBeforeFixed(loadmetaspaceMethod, loadMethod); - g.addBeforeFixed(invoke, load); - g.addBeforeFixed(load, loadCodeBlob); + graph().addBeforeFixed(invoke, loadmetaspaceMethod); + graph().addBeforeFixed(loadmetaspaceMethod, loadMethod); + graph().addBeforeFixed(invoke, load); + graph().addBeforeFixed(load, loadCodeBlob); return invoke; } diff -r 278a50fb49c7 -r 19c5a07c7843 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 May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CallSiteTargetNode.java Tue May 07 12:03:21 2013 -0700 @@ -67,13 +67,12 @@ @Override public void lower(LoweringTool tool, LoweringType loweringType) { - StructuredGraph graph = (StructuredGraph) graph(); ConstantNode target = getConstantCallTarget(tool.getRuntime(), tool.assumptions()); if (target != null) { - graph.replaceFixedWithFloating(this, target); + graph().replaceFixedWithFloating(this, target); } else { - graph.replaceFixedWithFixed(this, createInvoke()); + graph().replaceFixedWithFixed(this, createInvoke()); } } } diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CheckCastSnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CheckCastSnippets.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CheckCastSnippets.java Tue May 07 12:03:21 2013 -0700 @@ -164,7 +164,7 @@ * Lowers a checkcast node. */ public void lower(CheckCastNode checkcast, LoweringTool tool) { - StructuredGraph graph = (StructuredGraph) checkcast.graph(); + StructuredGraph graph = checkcast.graph(); ValueNode object = checkcast.object(); HotSpotResolvedObjectType type = (HotSpotResolvedObjectType) checkcast.type(); TypeCheckHints hintInfo = new TypeCheckHints(checkcast.type(), checkcast.profile(), tool.assumptions(), GraalOptions.CheckcastMinHintHitProbability, GraalOptions.CheckcastMaxHints); @@ -200,7 +200,7 @@ * Lowers a dynamic checkcast node. */ public void lower(CheckCastDynamicNode checkcast) { - StructuredGraph graph = (StructuredGraph) checkcast.graph(); + StructuredGraph graph = checkcast.graph(); ValueNode object = checkcast.object(); Arguments args = new Arguments(dynamic); diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MonitorSnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MonitorSnippets.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MonitorSnippets.java Tue May 07 12:03:21 2013 -0700 @@ -398,7 +398,7 @@ } public void lower(MonitorEnterNode monitorenterNode, @SuppressWarnings("unused") LoweringTool tool) { - StructuredGraph graph = (StructuredGraph) monitorenterNode.graph(); + StructuredGraph graph = monitorenterNode.graph(); checkBalancedMonitors(graph); FrameState stateAfter = monitorenterNode.stateAfter(); @@ -425,7 +425,7 @@ } public void lower(MonitorExitNode monitorexitNode, @SuppressWarnings("unused") LoweringTool tool) { - StructuredGraph graph = (StructuredGraph) monitorexitNode.graph(); + StructuredGraph graph = monitorexitNode.graph(); FrameState stateAfter = monitorexitNode.stateAfter(); Arguments args; diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java Tue May 07 12:03:21 2013 -0700 @@ -216,7 +216,7 @@ */ @SuppressWarnings("unused") public void lower(NewInstanceNode newInstanceNode, LoweringTool tool) { - StructuredGraph graph = (StructuredGraph) newInstanceNode.graph(); + StructuredGraph graph = newInstanceNode.graph(); HotSpotResolvedObjectType type = (HotSpotResolvedObjectType) newInstanceNode.instanceClass(); ConstantNode hub = ConstantNode.forConstant(type.klass(), runtime, graph); int size = instanceSize(type); @@ -239,7 +239,7 @@ */ @SuppressWarnings("unused") public void lower(NewArrayNode newArrayNode, LoweringTool tool) { - StructuredGraph graph = (StructuredGraph) newArrayNode.graph(); + StructuredGraph graph = newArrayNode.graph(); ValueNode lengthNode = newArrayNode.length(); TLABAllocateNode tlabAllocateNode; ResolvedJavaType elementType = newArrayNode.elementType(); @@ -283,7 +283,7 @@ @SuppressWarnings("unused") public void lower(TLABAllocateNode tlabAllocateNode, LoweringTool tool) { - StructuredGraph graph = (StructuredGraph) tlabAllocateNode.graph(); + StructuredGraph graph = tlabAllocateNode.graph(); ValueNode size = tlabAllocateNode.size(); Arguments args = new Arguments(allocate).add("size", size); @@ -294,7 +294,7 @@ @SuppressWarnings("unused") public void lower(InitializeObjectNode initializeNode, LoweringTool tool) { - StructuredGraph graph = (StructuredGraph) initializeNode.graph(); + StructuredGraph graph = initializeNode.graph(); HotSpotResolvedObjectType type = (HotSpotResolvedObjectType) initializeNode.type(); assert !type.isArray(); ConstantNode hub = ConstantNode.forConstant(type.klass(), runtime, graph); @@ -314,7 +314,7 @@ @SuppressWarnings("unused") public void lower(InitializeArrayNode initializeNode, LoweringTool tool) { - StructuredGraph graph = (StructuredGraph) initializeNode.graph(); + StructuredGraph graph = initializeNode.graph(); HotSpotResolvedObjectType type = (HotSpotResolvedObjectType) initializeNode.type(); ResolvedJavaType elementType = type.getComponentType(); assert elementType != null; @@ -339,7 +339,7 @@ @SuppressWarnings("unused") public void lower(NewMultiArrayNode newmultiarrayNode, LoweringTool tool) { - StructuredGraph graph = (StructuredGraph) newmultiarrayNode.graph(); + StructuredGraph graph = newmultiarrayNode.graph(); int rank = newmultiarrayNode.dimensionCount(); ValueNode[] dims = new ValueNode[rank]; for (int i = 0; i < newmultiarrayNode.dimensionCount(); i++) { diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectCloneNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectCloneNode.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectCloneNode.java Tue May 07 12:03:21 2013 -0700 @@ -125,12 +125,11 @@ state[i] = loads[i] = new LoadFieldNode(obj, fields[i]); } - final StructuredGraph structuredGraph = (StructuredGraph) graph(); tool.customAction(new Runnable() { public void run() { for (LoadFieldNode load : loads) { - structuredGraph.addBeforeFixed(ObjectCloneNode.this, structuredGraph.add(load)); + graph().addBeforeFixed(ObjectCloneNode.this, graph().add(load)); } } }); diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ReflectionGetCallerClassNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ReflectionGetCallerClassNode.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ReflectionGetCallerClassNode.java Tue May 07 12:03:21 2013 -0700 @@ -47,14 +47,12 @@ @Override public void lower(LoweringTool tool, LoweringType loweringType) { - StructuredGraph graph = (StructuredGraph) graph(); - ConstantNode callerClassNode = getCallerClassNode(tool.getRuntime()); if (callerClassNode != null) { - graph.replaceFixedWithFloating(this, callerClassNode); + graph().replaceFixedWithFloating(this, callerClassNode); } else { - graph.replaceFixedWithFixed(this, createInvoke()); + graph().replaceFixedWithFixed(this, createInvoke()); } } diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.loop/src/com/oracle/graal/loop/CountedLoopInfo.java --- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/CountedLoopInfo.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/CountedLoopInfo.java Tue May 07 12:03:21 2013 -0700 @@ -53,7 +53,7 @@ } public ValueNode maxTripCountNode(boolean assumePositive) { - StructuredGraph graph = (StructuredGraph) iv.valueNode().graph(); + StructuredGraph graph = iv.valueNode().graph(); Kind kind = iv.valueNode().kind(); IntegerArithmeticNode range = IntegerArithmeticNode.sub(end, iv.initNode()); if (oneOff) { diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java --- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java Tue May 07 12:03:21 2013 -0700 @@ -126,7 +126,7 @@ public void reassociateInvariants() { InvariantPredicate invariant = new InvariantPredicate(); - StructuredGraph graph = (StructuredGraph) loopBegin().graph(); + StructuredGraph graph = loopBegin().graph(); for (BinaryNode binary : whole().nodes().filter(BinaryNode.class)) { if (!BinaryNode.canTryReassociate(binary)) { continue; diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragment.java --- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragment.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragment.java Tue May 07 12:03:21 2013 -0700 @@ -95,7 +95,7 @@ } else { l = loop(); } - return (StructuredGraph) l.loopBegin().graph(); + return l.loopBegin().graph(); } protected abstract DuplicationReplacement getDuplicationReplacement(); diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentInside.java --- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentInside.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentInside.java Tue May 07 12:03:21 2013 -0700 @@ -148,7 +148,7 @@ private void patchPeeling(LoopFragmentInside peel) { LoopBeginNode loopBegin = loop().loopBegin(); - StructuredGraph graph = (StructuredGraph) loopBegin.graph(); + StructuredGraph graph = loopBegin.graph(); List newPhis = new LinkedList<>(); for (PhiNode phi : loopBegin.phis().snapshot()) { ValueNode first; diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopTransformations.java --- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopTransformations.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopTransformations.java Tue May 07 12:03:21 2013 -0700 @@ -56,7 +56,7 @@ // assert loop.isCounted(); //TODO (gd) strenghten : counted with known trip count int iterations = 0; LoopBeginNode loopBegin = loop.loopBegin(); - StructuredGraph graph = (StructuredGraph) loopBegin.graph(); + StructuredGraph graph = loopBegin.graph(); while (!loopBegin.isDeleted()) { int mark = graph.getMark(); peel(loop); @@ -80,7 +80,7 @@ NodeClass controlSplitClass = controlSplitNode.getNodeClass(); controlSplitClass.set(newControlSplit, firstPosition, AbstractBeginNode.begin(originalLoop.entryPoint())); - StructuredGraph graph = (StructuredGraph) controlSplitNode.graph(); + StructuredGraph graph = controlSplitNode.graph(); while (successors.hasNext()) { Position position = successors.nextPosition(); // create a new loop duplicate, connect it and simplify it diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractBeginNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractBeginNode.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractBeginNode.java Tue May 07 12:03:21 2013 -0700 @@ -77,7 +77,7 @@ // This begin node can be removed and all guards moved up to the preceding begin node. prepareDelete(); tool.addToWorkList(next()); - ((StructuredGraph) graph()).removeFixed(this); + graph().removeFixed(this); } } @@ -121,7 +121,7 @@ @Override public boolean verify() { - assertTrue(predecessor() != null || this == ((StructuredGraph) graph()).start() || this instanceof MergeNode, "begin nodes must be connected"); + assertTrue(predecessor() != null || this == graph().start() || this instanceof MergeNode, "begin nodes must be connected"); return super.verify(); } diff -r 278a50fb49c7 -r 19c5a07c7843 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 May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java Tue May 07 12:03:21 2013 -0700 @@ -84,7 +84,7 @@ if (condition instanceof LogicConstantNode) { LogicConstantNode c = (LogicConstantNode) condition; if (c.getValue() != negated) { - ((StructuredGraph) graph()).removeFixed(this); + graph().removeFixed(this); } else { FixedNode next = this.next(); if (next != null) { diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Tue May 07 12:03:21 2013 -0700 @@ -151,12 +151,12 @@ if (c.getValue()) { tool.deleteBranch(falseSuccessor()); tool.addToWorkList(trueSuccessor()); - ((StructuredGraph) graph()).removeSplit(this, trueSuccessor()); + graph().removeSplit(this, trueSuccessor()); return; } else { tool.deleteBranch(trueSuccessor()); tool.addToWorkList(falseSuccessor()); - ((StructuredGraph) graph()).removeSplit(this, falseSuccessor()); + graph().removeSplit(this, falseSuccessor()); return; } } else if (trueSuccessor().usages().isEmpty() && falseSuccessor().usages().isEmpty()) { @@ -354,7 +354,7 @@ } if (trueValue.isConstant() && falseValue.isConstant()) { ConditionalNode materialize = graph().unique(new ConditionalNode(condition(), trueValue, falseValue)); - ((StructuredGraph) graph()).replaceFloating(singlePhi, materialize); + graph().replaceFloating(singlePhi, materialize); removeEmptyIf(tool); return true; } diff -r 278a50fb49c7 -r 19c5a07c7843 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 May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java Tue May 07 12:03:21 2013 -0700 @@ -144,14 +144,14 @@ stateSplit.setStateAfter(stateAfter); } if (node instanceof FixedWithNextNode) { - ((StructuredGraph) graph()).replaceFixedWithFixed(this, (FixedWithNextNode) node); + graph().replaceFixedWithFixed(this, (FixedWithNextNode) node); } else if (node instanceof ControlSinkNode) { this.replaceAtPredecessor(node); this.replaceAtUsages(null); GraphUtil.killCFG(this); return; } else { - ((StructuredGraph) graph()).replaceFixed(this, node); + graph().replaceFixed(this, node); } call.safeDelete(); if (stateAfter.usages().isEmpty()) { diff -r 278a50fb49c7 -r 19c5a07c7843 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 May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java Tue May 07 12:03:21 2013 -0700 @@ -188,14 +188,14 @@ } if (node == null) { assert kind() == Kind.Void && usages().isEmpty(); - ((StructuredGraph) graph()).removeSplit(this, next()); + graph().removeSplit(this, next()); } else if (node instanceof ControlSinkNode) { this.replaceAtPredecessor(node); this.replaceAtUsages(null); GraphUtil.killCFG(this); return; } else { - ((StructuredGraph) graph()).replaceSplit(this, node, next()); + graph().replaceSplit(this, node, next()); } call.safeDelete(); if (state.usages().isEmpty()) { diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LoopBeginNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LoopBeginNode.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LoopBeginNode.java Tue May 07 12:03:21 2013 -0700 @@ -178,10 +178,9 @@ } public void removeExits() { - StructuredGraph graph = (StructuredGraph) graph(); for (LoopExitNode loopexit : loopExits().snapshot()) { loopexit.removeProxies(); - graph.replaceFixedWithFixed(loopexit, graph.add(new BeginNode())); + graph().replaceFixedWithFixed(loopexit, graph().add(new BeginNode())); } } } diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java Tue May 07 12:03:21 2013 -0700 @@ -167,14 +167,13 @@ } Debug.log("Split %s into ends for %s.", this, merge); int numEnds = this.forwardEndCount(); - StructuredGraph graph = (StructuredGraph) graph(); for (int i = 0; i < numEnds - 1; i++) { AbstractEndNode end = forwardEndAt(numEnds - 1 - i); AbstractEndNode newEnd; if (merge instanceof LoopBeginNode) { - newEnd = graph.add(new LoopEndNode((LoopBeginNode) merge)); + newEnd = graph().add(new LoopEndNode((LoopBeginNode) merge)); } else { - newEnd = graph.add(new EndNode()); + newEnd = graph().add(new EndNode()); merge.addForwardEnd(newEnd); } for (PhiNode phi : merge.phis()) { @@ -193,7 +192,7 @@ end.safeDelete(); tool.addToWorkList(newEnd.predecessor()); // ? } - graph.reduceTrivialMerge(this); + graph().reduceTrivialMerge(this); } } } diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ScheduledNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ScheduledNode.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ScheduledNode.java Tue May 07 12:03:21 2013 -0700 @@ -36,4 +36,9 @@ updatePredecessor(scheduledNext, x); scheduledNext = x; } + + @Override + public StructuredGraph graph() { + return (StructuredGraph) super.graph(); + } } diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ConditionalNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ConditionalNode.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ConditionalNode.java Tue May 07 12:03:21 2013 -0700 @@ -97,7 +97,7 @@ public Negatable negate(LogicNode cond) { assert condition() == cond; ConditionalNode replacement = graph().unique(new ConditionalNode(condition, falseValue(), trueValue())); - ((StructuredGraph) graph()).replaceFloating(this, replacement); + graph().replaceFloating(this, replacement); return replacement; } diff -r 278a50fb49c7 -r 19c5a07c7843 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 May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NormalizeCompareNode.java Tue May 07 12:03:21 2013 -0700 @@ -49,21 +49,19 @@ @Override public void lower(LoweringTool tool, LoweringType loweringType) { - StructuredGraph graph = (StructuredGraph) graph(); - LogicNode equalComp; LogicNode lessComp; if (x().kind() == Kind.Double || x().kind() == Kind.Float) { - equalComp = graph.unique(new FloatEqualsNode(x(), y())); - lessComp = graph.unique(new FloatLessThanNode(x(), y(), isUnorderedLess)); + equalComp = graph().unique(new FloatEqualsNode(x(), y())); + lessComp = graph().unique(new FloatLessThanNode(x(), y(), isUnorderedLess)); } else { - equalComp = graph.unique(new IntegerEqualsNode(x(), y())); - lessComp = graph.unique(new IntegerLessThanNode(x(), y())); + equalComp = graph().unique(new IntegerEqualsNode(x(), y())); + lessComp = graph().unique(new IntegerLessThanNode(x(), y())); } - ConditionalNode equalValue = graph.unique(new ConditionalNode(equalComp, ConstantNode.forInt(0, graph), ConstantNode.forInt(1, graph))); - ConditionalNode value = graph.unique(new ConditionalNode(lessComp, ConstantNode.forInt(-1, graph), equalValue)); + ConditionalNode equalValue = graph().unique(new ConditionalNode(equalComp, ConstantNode.forInt(0, graph()), ConstantNode.forInt(1, graph()))); + ConditionalNode value = graph().unique(new ConditionalNode(lessComp, ConstantNode.forInt(-1, graph()), equalValue)); - graph.replaceFloating(this, value); + graph().replaceFloating(this, value); } } diff -r 278a50fb49c7 -r 19c5a07c7843 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 May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/debug/DynamicCounterNode.java Tue May 07 12:03:21 2013 -0700 @@ -150,27 +150,26 @@ 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); + if (excludedClassPrefix == null || !graph().method().getDeclaringClass().getName().startsWith(excludedClassPrefix)) { + int index = addContext ? getIndex(name + " @ " + MetaUtil.format("%h.%n", 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); - LoadIndexedNode load = graph.add(new LoadIndexedNode(arrayConstant, indexConstant, Kind.Long)); - IntegerAddNode add = graph.add(new IntegerAddNode(Kind.Long, load, ConstantNode.forLong(increment, graph))); - StoreIndexedNode store = graph.add(new StoreIndexedNode(arrayConstant, indexConstant, Kind.Long, add)); + ConstantNode arrayConstant = ConstantNode.forObject(COUNTERS, tool.getRuntime(), graph()); + ConstantNode indexConstant = ConstantNode.forInt(index, graph()); + LoadIndexedNode load = graph().add(new LoadIndexedNode(arrayConstant, indexConstant, Kind.Long)); + IntegerAddNode add = graph().add(new IntegerAddNode(Kind.Long, load, ConstantNode.forLong(increment, graph()))); + StoreIndexedNode store = graph().add(new StoreIndexedNode(arrayConstant, indexConstant, Kind.Long, add)); - graph.addBeforeFixed(this, load); - graph.addBeforeFixed(this, store); + graph().addBeforeFixed(this, load); + graph().addBeforeFixed(this, store); } - graph.removeFixed(this); + graph().removeFixed(this); } public static void addCounterBefore(String group, String name, long increment, boolean addContext, FixedNode position) { if (enabled) { - StructuredGraph graph = (StructuredGraph) position.graph(); + StructuredGraph graph = position.graph(); DynamicCounterNode counter = graph.add(new DynamicCounterNode(name, group, increment, addContext)); graph.addBeforeFixed(position, counter); } diff -r 278a50fb49c7 -r 19c5a07c7843 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 May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/debug/SurvivingCounterNode.java Tue May 07 12:03:21 2013 -0700 @@ -44,9 +44,7 @@ public void simplify(SimplifierTool tool) { if (checkedValue instanceof FloatingNode && checkedValue.usages().count() == 1) { tool.addToWorkList(checkedValue); - ((StructuredGraph) graph()).removeFixed(this); - // ((StructuredGraph) graph()).replaceFixedWithFixed(this, graph().add(new - // DynamicCounterNode("non-surviving " + getName(), getIncrement(), isAddContext()))); + graph().removeFixed(this); } } diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IntegerSwitchNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IntegerSwitchNode.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IntegerSwitchNode.java Tue May 07 12:03:21 2013 -0700 @@ -94,7 +94,7 @@ public void simplify(SimplifierTool tool) { if (blockSuccessorCount() == 1) { tool.addToWorkList(defaultSuccessor()); - ((StructuredGraph) graph()).removeSplitPropagate(this, defaultSuccessor()); + graph().removeSplitPropagate(this, defaultSuccessor()); } else if (value() instanceof ConstantNode) { int constant = value().asConstant().asInt(); @@ -110,7 +110,7 @@ } } tool.addToWorkList(blockSuccessor(survivingEdge)); - ((StructuredGraph) graph()).removeSplit(this, blockSuccessor(survivingEdge)); + graph().removeSplit(this, blockSuccessor(survivingEdge)); } else if (value() != null) { IntegerStamp stamp = value().integerStamp(); if (!stamp.isUnrestricted()) { @@ -122,7 +122,7 @@ } if (validKeys == 0) { tool.addToWorkList(defaultSuccessor()); - ((StructuredGraph) graph()).removeSplitPropagate(this, defaultSuccessor()); + graph().removeSplitPropagate(this, defaultSuccessor()); } else if (validKeys != keys.length) { ArrayList newSuccessors = new ArrayList<>(blockSuccessorCount()); int[] newKeys = new int[validKeys]; diff -r 278a50fb49c7 -r 19c5a07c7843 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 May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java Tue May 07 12:03:21 2013 -0700 @@ -90,7 +90,7 @@ if (predecessor() instanceof CheckCastNode) { CheckCastNode ccn = (CheckCastNode) predecessor(); if (ccn != null && ccn.type != null && ccn == object && ccn.forStoreCheck == forStoreCheck && ccn.type.isAssignableFrom(type)) { - StructuredGraph graph = (StructuredGraph) ccn.graph(); + StructuredGraph graph = ccn.graph(); CheckCastNode newccn = graph.add(new CheckCastNode(type, ccn.object, ccn.profile, ccn.forStoreCheck)); graph.replaceFixedWithFixed(ccn, newccn); return newccn; diff -r 278a50fb49c7 -r 19c5a07c7843 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 May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ExceptionObjectNode.java Tue May 07 12:03:21 2013 -0700 @@ -58,11 +58,10 @@ if (isLowered()) { return; } - StructuredGraph graph = (StructuredGraph) graph(); - LoadExceptionObjectNode loadException = graph.add(new LoadExceptionObjectNode(stamp())); + LoadExceptionObjectNode loadException = graph().add(new LoadExceptionObjectNode(stamp())); loadException.setStateAfter(stateAfter()); replaceAtUsages(loadException); - graph.addAfterFixed(this, loadException); + graph().addAfterFixed(this, loadException); tool.setLastFixedNode(loadException); setStateAfter(null); setStamp(StampFactory.forVoid()); diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/TypeSwitchNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/TypeSwitchNode.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/TypeSwitchNode.java Tue May 07 12:03:21 2013 -0700 @@ -95,7 +95,7 @@ } } tool.addToWorkList(blockSuccessor(survivingEdge)); - ((StructuredGraph) graph()).removeSplit(this, blockSuccessor(survivingEdge)); + graph().removeSplit(this, blockSuccessor(survivingEdge)); } if (value() instanceof LoadHubNode) { ObjectStamp stamp = ((LoadHubNode) value()).object().objectStamp(); @@ -108,7 +108,7 @@ } if (validKeys == 0) { tool.addToWorkList(defaultSuccessor()); - ((StructuredGraph) graph()).removeSplitPropagate(this, defaultSuccessor()); + graph().removeSplitPropagate(this, defaultSuccessor()); } else if (validKeys != keys.length) { ArrayList newSuccessors = new ArrayList<>(blockSuccessorCount()); ResolvedJavaType[] newKeys = new ResolvedJavaType[validKeys]; diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Tue May 07 12:03:21 2013 -0700 @@ -67,7 +67,7 @@ MergeNode merge = end.merge(); if (merge != null) { merge.removeEnd(end); - StructuredGraph graph = (StructuredGraph) end.graph(); + StructuredGraph graph = end.graph(); if (merge instanceof LoopBeginNode && merge.forwardEndCount() == 0) { // dead loop for (PhiNode phi : merge.phis().snapshot()) { propagateKill(phi); @@ -141,7 +141,7 @@ if (singleValue != null) { Collection phiUsages = phiNode.usages().filter(PhiNode.class).snapshot(); Collection proxyUsages = phiNode.usages().filter(ProxyNode.class).snapshot(); - ((StructuredGraph) phiNode.graph()).replaceFloating(phiNode, singleValue); + phiNode.graph().replaceFloating(phiNode, singleValue); for (PhiNode phi : phiUsages) { checkRedundantPhi(phi); } @@ -165,7 +165,7 @@ if (vpnValue == v2) { Collection phiUsages = vpn.usages().filter(PhiNode.class).snapshot(); Collection proxyUsages = vpn.usages().filter(ProxyNode.class).snapshot(); - ((StructuredGraph) vpn.graph()).replaceFloating(vpn, vpnValue); + vpn.graph().replaceFloating(vpn, vpnValue); for (PhiNode phi : phiUsages) { checkRedundantPhi(phi); } diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FloatingReadPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FloatingReadPhase.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FloatingReadPhase.java Tue May 07 12:03:21 2013 -0700 @@ -155,7 +155,7 @@ } private static void processFloatable(FloatableAccessNode accessNode, MemoryMap state) { - StructuredGraph graph = (StructuredGraph) accessNode.graph(); + StructuredGraph graph = accessNode.graph(); assert accessNode.getNullCheck() == false; LocationIdentity locationIdentity = accessNode.location().getLocationIdentity(); if (locationIdentity != LocationNode.ANY_LOCATION) { @@ -266,7 +266,7 @@ for (LocationIdentity location : modifiedLocations) { ValueNode lastAccessAtExit = state.lastMemorySnapshot.get(location); if (lastAccessAtExit != null) { - state.lastMemorySnapshot.put(location, ProxyNode.forMemory(lastAccessAtExit, exit, location, (StructuredGraph) loop.graph())); + state.lastMemorySnapshot.put(location, ProxyNode.forMemory(lastAccessAtExit, exit, location, loop.graph())); } } } diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java Tue May 07 12:03:21 2013 -0700 @@ -170,7 +170,7 @@ } private void lowerToIf(GuardNode guard) { - StructuredGraph graph = (StructuredGraph) guard.graph(); + StructuredGraph graph = guard.graph(); AbstractBeginNode fastPath = graph.add(new BeginNode()); DeoptimizeNode deopt = graph.add(new DeoptimizeNode(guard.action(), guard.reason())); AbstractBeginNode deoptBranch = AbstractBeginNode.begin(deopt); @@ -200,7 +200,7 @@ private void insertLoopExits(DeoptimizeNode deopt) { Loop loop = block.getLoop(); - StructuredGraph graph = (StructuredGraph) deopt.graph(); + StructuredGraph graph = deopt.graph(); while (loop != null) { LoopExitNode exit = graph.add(new LoopExitNode(loop.loopBegin())); graph.addBeforeFixed(deopt, exit); diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningUtil.java Tue May 07 12:03:21 2013 -0700 @@ -253,7 +253,7 @@ protected static void inline(Invoke invoke, ResolvedJavaMethod concrete, InliningCallback callback, Replacements replacements, Assumptions assumptions, boolean receiverNullCheck) { Class macroNodeClass = getMacroNodeClass(replacements, concrete); - StructuredGraph graph = (StructuredGraph) invoke.asNode().graph(); + StructuredGraph graph = invoke.asNode().graph(); if (macroNodeClass != null) { if (((MethodCallTargetNode) invoke.callTarget()).targetMethod() != concrete) { assert ((MethodCallTargetNode) invoke.callTarget()).invokeKind() != InvokeKind.Static; @@ -1154,7 +1154,7 @@ */ public static Map inline(Invoke invoke, StructuredGraph inlineGraph, boolean receiverNullCheck) { NodeInputList parameters = invoke.callTarget().arguments(); - StructuredGraph graph = (StructuredGraph) invoke.asNode().graph(); + StructuredGraph graph = invoke.asNode().graph(); FrameState stateAfter = invoke.stateAfter(); assert stateAfter.isAlive(); @@ -1286,7 +1286,7 @@ public static void receiverNullCheck(Invoke invoke) { MethodCallTargetNode callTarget = (MethodCallTargetNode) invoke.callTarget(); - StructuredGraph graph = (StructuredGraph) callTarget.graph(); + StructuredGraph graph = callTarget.graph(); NodeInputList parameters = callTarget.arguments(); ValueNode firstParam = parameters.size() <= 0 ? null : parameters.get(0); if (!callTarget.isStatic() && firstParam.kind() == Kind.Object && !firstParam.objectStamp().nonNull()) { diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/TailDuplicationPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/TailDuplicationPhase.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/TailDuplicationPhase.java Tue May 07 12:03:21 2013 -0700 @@ -209,7 +209,7 @@ public DuplicationOperation(MergeNode merge, List replacements) { this.merge = merge; this.replacements = replacements; - this.graph = (StructuredGraph) merge.graph(); + this.graph = merge.graph(); } /** diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64ConvertSnippets.java --- a/graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64ConvertSnippets.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64ConvertSnippets.java Tue May 07 12:03:21 2013 -0700 @@ -165,7 +165,7 @@ return; } - StructuredGraph graph = (StructuredGraph) convert.graph(); + StructuredGraph graph = convert.graph(); // Insert a unique placeholder node in place of the Convert node so that the // Convert node can be used as an input to the snippet. All usage of the diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/BoxingSnippets.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/BoxingSnippets.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/BoxingSnippets.java Tue May 07 12:03:21 2013 -0700 @@ -216,7 +216,7 @@ public void lower(BoxNode box) { FloatingNode canonical = canonicalizeBoxing(box, runtime); if (canonical != null) { - ((StructuredGraph) box.graph()).replaceFixedWithFloating(box, canonical); + box.graph().replaceFixedWithFloating(box, canonical); } else { Arguments args = new Arguments(boxSnippets.get(box.getBoxingKind())); args.add("value", box.getValue()); diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationVerificationPhase.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationVerificationPhase.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationVerificationPhase.java Tue May 07 12:03:21 2013 -0700 @@ -57,7 +57,7 @@ } private static void error(MethodCallTargetNode n, String failedAction) throws GraalInternalError { - String context = MetaUtil.format("%H.%n", ((StructuredGraph) n.graph()).method()); + String context = MetaUtil.format("%H.%n", n.graph().method()); String target = n.invoke().callTarget().targetName(); throw new GraalInternalError(failedAction + " of call to '" + target + "' in '" + context + "' failed, most likely due to a parameter annotated with @" + ConstantNodeParameter.class.getSimpleName() + " not being resolvable to a constant during compilation"); diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Tue May 07 12:03:21 2013 -0700 @@ -688,7 +688,7 @@ StructuredGraph snippetCopy = new StructuredGraph(name, snippet.method()); StartNode entryPointNode = snippet.start(); FixedNode firstCFGNode = entryPointNode.next(); - StructuredGraph replaceeGraph = (StructuredGraph) replacee.graph(); + StructuredGraph replaceeGraph = replacee.graph(); IdentityHashMap replacements = bind(replaceeGraph, runtime, args); Map duplicates = replaceeGraph.addDuplicates(nodes, replacements); Debug.dump(replaceeGraph, "After inlining snippet %s", snippetCopy.method()); @@ -764,7 +764,7 @@ StructuredGraph snippetCopy = new StructuredGraph(name, snippet.method()); StartNode entryPointNode = snippet.start(); FixedNode firstCFGNode = entryPointNode.next(); - StructuredGraph replaceeGraph = (StructuredGraph) replacee.graph(); + StructuredGraph replaceeGraph = replacee.graph(); IdentityHashMap replacements = bind(replaceeGraph, runtime, args); Map duplicates = replaceeGraph.addDuplicates(nodes, replacements); Debug.dump(replaceeGraph, "After inlining snippet %s", snippetCopy.method()); diff -r 278a50fb49c7 -r 19c5a07c7843 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 May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/DirectObjectStoreNode.java Tue May 07 12:03:21 2013 -0700 @@ -62,9 +62,8 @@ @Override 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)); - graph.replaceFixedWithFixed(this, write); + IndexedLocationNode location = IndexedLocationNode.create(LocationNode.ANY_LOCATION, value.kind(), displacement, offset, graph(), 1); + WriteNode write = graph().add(new WriteNode(object, value, location, WriteBarrierType.NONE)); + graph().replaceFixedWithFixed(this, write); } } diff -r 278a50fb49c7 -r 19c5a07c7843 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 May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroNode.java Tue May 07 12:03:21 2013 -0700 @@ -80,7 +80,7 @@ private InvokeNode replaceWithInvoke() { InvokeNode invoke = createInvoke(); - ((StructuredGraph) graph()).replaceFixedWithFixed(this, invoke); + graph().replaceFixedWithFixed(this, invoke); return invoke; } diff -r 278a50fb49c7 -r 19c5a07c7843 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 May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/nodes/CyclicMaterializeStoreNode.java Tue May 07 12:03:21 2013 -0700 @@ -69,16 +69,15 @@ @Override public void lower(LoweringTool tool, LoweringType loweringType) { - StructuredGraph graph = (StructuredGraph) graph(); ResolvedJavaType type = object.objectStamp().type(); FixedWithNextNode store; if (target instanceof Integer) { - store = graph.add(new StoreIndexedNode(object, ConstantNode.forInt((int) target, graph), type.getComponentType().getKind(), value)); + store = graph().add(new StoreIndexedNode(object, ConstantNode.forInt((int) target, graph()), type.getComponentType().getKind(), value)); } else { assert target instanceof ResolvedJavaField; - store = graph.add(new StoreFieldNode(object, (ResolvedJavaField) target, value)); + store = graph().add(new StoreFieldNode(object, (ResolvedJavaField) target, value)); } - graph.replaceFixedWithFixed(this, store); + graph().replaceFixedWithFixed(this, store); } @Override diff -r 278a50fb49c7 -r 19c5a07c7843 graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java --- a/graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java Tue May 07 11:12:28 2013 -0700 +++ b/graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java Tue May 07 12:03:21 2013 -0700 @@ -374,7 +374,7 @@ if (valueNode.isConstant() && valueNode.asConstant().getKind() == Kind.Object) { WordBase value = (WordBase) valueNode.asConstant().asObject(); ConstantNode newConstant = ConstantNode.forIntegerKind(wordKind, value.rawValue(), valueNode.graph()); - ((StructuredGraph) valueNode.graph()).replaceFloating((ConstantNode) valueNode, newConstant); + valueNode.graph().replaceFloating((ConstantNode) valueNode, newConstant); } else { assert !(valueNode instanceof ConstantNode) : "boxed Word constants should not appear in a snippet graph: " + valueNode + ", stamp: " + valueNode.stamp(); valueNode.setStamp(StampFactory.forKind(wordKind));