# HG changeset patch # User Lukas Stadler # Date 1360082475 -3600 # Node ID 77c86cf336853855c951a79fe30eea027f30a5d0 # Parent be7b98533b17c97e8afe75fcbe672907211b6961 remove unnecessary virtualId from VirtualObjectNodes diff -r be7b98533b17 -r 77c86cf33685 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 Feb 05 16:39:45 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewArrayNode.java Tue Feb 05 17:41:15 2013 +0100 @@ -124,7 +124,7 @@ for (int i = 0; i < constantLength; i++) { state[i] = defaultForKind; } - VirtualObjectNode virtualObject = new VirtualArrayNode(tool.getNextVirtualId(), elementType, constantLength); + VirtualObjectNode virtualObject = new VirtualArrayNode(elementType, constantLength); tool.createVirtualObject(virtualObject, state, 0); tool.replaceWithVirtual(virtualObject); } diff -r be7b98533b17 -r 77c86cf33685 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 Feb 05 16:39:45 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewInstanceNode.java Tue Feb 05 17:41:15 2013 +0100 @@ -100,7 +100,7 @@ for (int i = 0; i < state.length; i++) { state[i] = ConstantNode.defaultForKind(fields[i].getType().getKind(), graph()); } - VirtualObjectNode virtualObject = new VirtualInstanceNode(tool.getNextVirtualId(), instanceClass(), fields); + VirtualObjectNode virtualObject = new VirtualInstanceNode(instanceClass(), fields); tool.createVirtualObject(virtualObject, state, 0); tool.replaceWithVirtual(virtualObject); } diff -r be7b98533b17 -r 77c86cf33685 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/VirtualizerTool.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/VirtualizerTool.java Tue Feb 05 16:39:45 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/VirtualizerTool.java Tue Feb 05 17:41:15 2013 +0100 @@ -50,11 +50,6 @@ */ int getMaximumEntryCount(); - /** - * @return the next id for virtual objects (can be used for the VirtualObject constructor). - */ - int getNextVirtualId(); - // methods working on virtualized/materialized objects /** diff -r be7b98533b17 -r 77c86cf33685 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/BoxedVirtualObjectNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/BoxedVirtualObjectNode.java Tue Feb 05 16:39:45 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/BoxedVirtualObjectNode.java Tue Feb 05 17:41:15 2013 +0100 @@ -33,8 +33,7 @@ private final ResolvedJavaType type; private final Kind kind; - public BoxedVirtualObjectNode(int virtualId, ResolvedJavaType type, Kind kind, ValueNode unboxedValue) { - super(virtualId); + public BoxedVirtualObjectNode(ResolvedJavaType type, Kind kind, ValueNode unboxedValue) { this.type = type; this.kind = kind; this.unboxedValue = unboxedValue; diff -r be7b98533b17 -r 77c86cf33685 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualArrayNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualArrayNode.java Tue Feb 05 16:39:45 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualArrayNode.java Tue Feb 05 17:41:15 2013 +0100 @@ -34,8 +34,7 @@ private final ResolvedJavaType componentType; private final int length; - public VirtualArrayNode(long virtualId, ResolvedJavaType componentType, int length) { - super(virtualId); + public VirtualArrayNode(ResolvedJavaType componentType, int length) { this.componentType = componentType; this.length = length; } diff -r be7b98533b17 -r 77c86cf33685 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualInstanceNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualInstanceNode.java Tue Feb 05 16:39:45 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualInstanceNode.java Tue Feb 05 17:41:15 2013 +0100 @@ -34,8 +34,7 @@ private final ResolvedJavaField[] fields; private final HashMap fieldMap = new HashMap<>(); - public VirtualInstanceNode(long virtualId, ResolvedJavaType type, ResolvedJavaField[] fields) { - super(virtualId); + public VirtualInstanceNode(ResolvedJavaType type, ResolvedJavaField[] fields) { this.type = type; this.fields = fields; for (int i = 0; i < fields.length; i++) { diff -r be7b98533b17 -r 77c86cf33685 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualObjectNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualObjectNode.java Tue Feb 05 16:39:45 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualObjectNode.java Tue Feb 05 17:41:15 2013 +0100 @@ -25,28 +25,20 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.graph.*; import com.oracle.graal.nodes.*; -import com.oracle.graal.nodes.calc.*; import com.oracle.graal.nodes.spi.*; import com.oracle.graal.nodes.type.*; @NodeInfo(nameTemplate = "VirtualObject {p#type}") -public abstract class VirtualObjectNode extends FloatingNode implements LIRLowerable { - - private final long virtualId; +public abstract class VirtualObjectNode extends ValueNode implements LIRLowerable { - public VirtualObjectNode(long virtualId) { + public VirtualObjectNode() { super(StampFactory.virtual()); - this.virtualId = virtualId; } public abstract ResolvedJavaType type(); public abstract int entryCount(); - public long virtualId() { - return virtualId; - } - @Override public void generate(LIRGeneratorTool gen) { // nothing to do... diff -r be7b98533b17 -r 77c86cf33685 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/BoxingEliminationPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/BoxingEliminationPhase.java Tue Feb 05 16:39:45 2013 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/BoxingEliminationPhase.java Tue Feb 05 17:41:15 2013 +0100 @@ -38,7 +38,6 @@ public class BoxingEliminationPhase extends Phase { private final MetaAccessProvider metaAccess; - private int virtualIds = Integer.MIN_VALUE; public BoxingEliminationPhase(MetaAccessProvider metaAccess) { this.metaAccess = metaAccess; @@ -113,7 +112,7 @@ } } - private void tryEliminate(BoxNode boxNode) { + private static void tryEliminate(BoxNode boxNode) { assert boxNode.objectStamp().isExactType(); virtualizeUsages(boxNode, boxNode.source(), boxNode.objectStamp().type(), boxNode.getSourceKind()); @@ -130,12 +129,12 @@ ((StructuredGraph) boxNode.graph()).removeFixed(boxNode); } - private void virtualizeUsages(ValueNode boxNode, ValueNode replacement, ResolvedJavaType exactType, Kind sourceKind) { + private static void virtualizeUsages(ValueNode boxNode, ValueNode replacement, ResolvedJavaType exactType, Kind sourceKind) { ValueNode virtualValueNode = null; VirtualObjectNode virtualObjectNode = null; for (Node n : boxNode.usages().filter(NodePredicates.isA(VirtualState.class)).snapshot()) { if (virtualValueNode == null) { - virtualObjectNode = n.graph().unique(new BoxedVirtualObjectNode(virtualIds++, exactType, sourceKind, replacement)); + virtualObjectNode = n.graph().unique(new BoxedVirtualObjectNode(exactType, sourceKind, replacement)); } n.replaceFirstInput(boxNode, virtualObjectNode); } diff -r be7b98533b17 -r 77c86cf33685 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 Feb 05 16:39:45 2013 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/GraphEffectList.java Tue Feb 05 17:41:15 2013 +0100 @@ -62,7 +62,7 @@ * * @param node The floating node to be added. */ - public void addFloatingNode(final FloatingNode node) { + public void addFloatingNode(final ValueNode node) { add(new Effect() { @Override diff -r be7b98533b17 -r 77c86cf33685 graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeAnalysisPhase.java --- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeAnalysisPhase.java Tue Feb 05 16:39:45 2013 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeAnalysisPhase.java Tue Feb 05 17:41:15 2013 +0100 @@ -95,7 +95,7 @@ PartialEscapeClosure closure = new PartialEscapeClosure(graph.createNodeBitMap(), schedule, runtime); ReentrantBlockIterator.apply(closure, schedule.getCFG().getStartBlock(), new BlockState(), null); - if (closure.getVirtualIdCount() == 0) { + if (closure.getNewVirtualObjectCount() == 0) { return false; } diff -r be7b98533b17 -r 77c86cf33685 graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java --- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java Tue Feb 05 16:39:45 2013 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java Tue Feb 05 17:41:15 2013 +0100 @@ -69,8 +69,8 @@ return effects; } - public int getVirtualIdCount() { - return tool.getNextVirtualId(); + public int getNewVirtualObjectCount() { + return tool.getNewVirtualObjectCount(); } @Override diff -r be7b98533b17 -r 77c86cf33685 graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/VirtualizerToolImpl.java --- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/VirtualizerToolImpl.java Tue Feb 05 16:39:45 2013 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/VirtualizerToolImpl.java Tue Feb 05 17:41:15 2013 +0100 @@ -49,7 +49,7 @@ private boolean customAction; private BlockState state; private ValueNode current; - private int virtualIds = 0; + private int newVirtualObjectCount = 0; @Override public MetaAccessProvider getMetaAccessProvider() { @@ -71,9 +71,8 @@ return customAction; } - @Override - public int getNextVirtualId() { - return virtualIds; + public int getNewVirtualObjectCount() { + return newVirtualObjectCount; } @Override @@ -156,7 +155,7 @@ state.addObject(virtualObject, new ObjectState(virtualObject, entryState, EscapeState.Virtual, lockCount)); state.addAndMarkAlias(virtualObject, virtualObject, usages); PartialEscapeClosure.METRIC_ALLOCATION_REMOVED.increment(); - virtualIds++; + newVirtualObjectCount++; } @Override