# HG changeset patch # User Thomas Wuerthinger # Date 1379264618 -7200 # Node ID 44d5989ae7451a82d21c4d3da860048f6a0bfa73 # Parent 932252b772c379a22da50528e6fd5cd06a15fecf# Parent 5507e2824bc62cdd7bbb9262a9061d976642cbb2 Merge. diff -r 932252b772c3 -r 44d5989ae745 graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/EscapeAnalysisTest.java --- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/EscapeAnalysisTest.java Sun Sep 15 18:00:18 2013 +0200 +++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/EscapeAnalysisTest.java Sun Sep 15 19:03:38 2013 +0200 @@ -245,7 +245,7 @@ Assert.assertEquals(expectedConstantResult, returnNode.result().asConstant()); } int newInstanceCount = graph.getNodes().filter(NewInstanceNode.class).count() + graph.getNodes().filter(NewArrayNode.class).count() + - graph.getNodes(CommitAllocationNode.class).count(); + graph.getNodes().filter(CommitAllocationNode.class).count(); Assert.assertEquals(0, newInstanceCount); return returnNode; } diff -r 932252b772c3 -r 44d5989ae745 graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/PartialEscapeAnalysisTest.java --- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/PartialEscapeAnalysisTest.java Sun Sep 15 18:00:18 2013 +0200 +++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/PartialEscapeAnalysisTest.java Sun Sep 15 19:03:38 2013 +0200 @@ -173,7 +173,7 @@ NodesToDoubles nodeProbabilities = new ComputeProbabilityClosure(result).apply(); double probabilitySum = 0; int materializeCount = 0; - for (CommitAllocationNode materialize : result.getNodes(CommitAllocationNode.class)) { + for (CommitAllocationNode materialize : result.getNodes().filter(CommitAllocationNode.class)) { probabilitySum += nodeProbabilities.get(materialize) * materialize.getVirtualObjects().size(); materializeCount += materialize.getVirtualObjects().size(); } diff -r 932252b772c3 -r 44d5989ae745 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java Sun Sep 15 18:00:18 2013 +0200 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java Sun Sep 15 19:03:38 2013 +0200 @@ -29,6 +29,7 @@ import java.util.Map.Entry; import java.util.concurrent.*; +import com.oracle.graal.debug.*; import com.oracle.graal.graph.Graph.DuplicationReplacement; import com.oracle.graal.graph.Node.Input; import com.oracle.graal.graph.Node.Successor; @@ -144,6 +145,8 @@ private final int iterableId; private int[] iterableIds; + private static final DebugMetric ITERABLE_NODE_TYPES = Debug.metric("IterableNodeTypes"); + private NodeClass(Class clazz) { super(clazz); assert NODE_CLASS.isAssignableFrom(clazz); @@ -185,6 +188,7 @@ this.nameTemplate = newNameTemplate == null ? newShortName : newNameTemplate; this.shortName = newShortName; if (IterableNodeType.class.isAssignableFrom(clazz)) { + ITERABLE_NODE_TYPES.increment(); this.iterableId = nextIterableId++; List existingClasses = new LinkedList<>(); for (FieldIntrospection nodeClass : allClasses.values()) { diff -r 932252b772c3 -r 44d5989ae745 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ControlSinkNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ControlSinkNode.java Sun Sep 15 18:00:18 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ControlSinkNode.java Sun Sep 15 19:03:38 2013 +0200 @@ -22,10 +22,9 @@ */ package com.oracle.graal.nodes; -import com.oracle.graal.graph.*; import com.oracle.graal.nodes.type.*; -public abstract class ControlSinkNode extends FixedNode implements IterableNodeType { +public abstract class ControlSinkNode extends FixedNode { public ControlSinkNode(Stamp stamp) { super(stamp); diff -r 932252b772c3 -r 44d5989ae745 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/CommitAllocationNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/CommitAllocationNode.java Sun Sep 15 18:00:18 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/CommitAllocationNode.java Sun Sep 15 19:03:38 2013 +0200 @@ -31,7 +31,7 @@ import com.oracle.graal.nodes.type.*; @NodeInfo(nameTemplate = "Alloc {i#virtualObjects}") -public final class CommitAllocationNode extends FixedWithNextNode implements VirtualizableAllocation, Lowerable, IterableNodeType, Simplifiable { +public final class CommitAllocationNode extends FixedWithNextNode implements VirtualizableAllocation, Lowerable, Simplifiable { @Input private final NodeInputList virtualObjects = new NodeInputList<>(this); @Input private final NodeInputList values = new NodeInputList<>(this); diff -r 932252b772c3 -r 44d5989ae745 graal/com.oracle.graal.phases/src/com/oracle/graal/phases/util/GraphOrder.java --- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/util/GraphOrder.java Sun Sep 15 18:00:18 2013 +0200 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/util/GraphOrder.java Sun Sep 15 19:03:38 2013 +0200 @@ -39,7 +39,7 @@ NodeBitMap visited = graph.createNodeBitMap(); - for (ControlSinkNode node : graph.getNodes(ControlSinkNode.class)) { + for (ControlSinkNode node : graph.getNodes().filter(ControlSinkNode.class)) { result.visitForward(visited, node); } return result; diff -r 932252b772c3 -r 44d5989ae745 graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapePhase.java --- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapePhase.java Sun Sep 15 18:00:18 2013 +0200 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapePhase.java Sun Sep 15 19:03:38 2013 +0200 @@ -81,7 +81,7 @@ public static Map getHints(StructuredGraph graph) { NodesToDoubles probabilities = new ComputeProbabilityClosure(graph).apply(); Map hints = null; - for (CommitAllocationNode commit : graph.getNodes(CommitAllocationNode.class)) { + for (CommitAllocationNode commit : graph.getNodes().filter(CommitAllocationNode.class)) { double sum = 0; double invokeSum = 0; for (Node commitUsage : commit.usages()) { diff -r 932252b772c3 -r 44d5989ae745 mx/projects --- a/mx/projects Sun Sep 15 18:00:18 2013 +0200 +++ b/mx/projects Sun Sep 15 19:03:38 2013 +0200 @@ -186,7 +186,7 @@ # graal.graph project@com.oracle.graal.graph@subDir=graal project@com.oracle.graal.graph@sourceDirs=src -project@com.oracle.graal.graph@dependencies= +project@com.oracle.graal.graph@dependencies=com.oracle.graal.debug project@com.oracle.graal.graph@javaCompliance=1.7 project@com.oracle.graal.graph@workingSets=Graal,Graph @@ -297,7 +297,7 @@ # graal.nodes project@com.oracle.graal.nodes@subDir=graal project@com.oracle.graal.nodes@sourceDirs=src -project@com.oracle.graal.nodes@dependencies=com.oracle.graal.graph,com.oracle.graal.debug,com.oracle.graal.api.replacements,com.oracle.graal.api.code +project@com.oracle.graal.nodes@dependencies=com.oracle.graal.graph,com.oracle.graal.api.replacements,com.oracle.graal.api.code project@com.oracle.graal.nodes@checkstyle=com.oracle.graal.graph project@com.oracle.graal.nodes@javaCompliance=1.7 project@com.oracle.graal.nodes@workingSets=Graal,Graph