# HG changeset patch # User Doug Simon # Date 1379344200 -7200 # Node ID f8a87f3fab5af4a63c59be5e882984d70f5f436d # Parent b9e963c44ed5599034c61c6a31b84e8bc74cc0b4 removed the IterableNodeType marker interface from (Read|Write|ArrayRangeWrite|LoweredCompareAndSwap)Node (GRAAL-471) diff -r b9e963c44ed5 -r f8a87f3fab5a graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java --- a/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java Mon Sep 16 16:07:54 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java Mon Sep 16 17:10:00 2013 +0200 @@ -66,7 +66,7 @@ assertEquals(1, result.getNodes().filter(ConstantNode.class).count()); assertEquals(runtime.getTarget().wordKind, result.getNodes().filter(ConstantNode.class).first().kind()); assertEquals(2, result.getNodes(FloatingReadNode.class).count()); - assertEquals(0, result.getNodes(ReadNode.class).count()); + assertEquals(0, result.getNodes().filter(ReadNode.class).count()); } @Test @@ -75,7 +75,7 @@ assertEquals(1, result.getNodes().filter(ConstantNode.class).count()); assertEquals(Kind.Object, result.getNodes().filter(ConstantNode.class).first().kind()); assertEquals(0, result.getNodes(FloatingReadNode.class).count()); - assertEquals(0, result.getNodes(ReadNode.class).count()); + assertEquals(0, result.getNodes().filter(ReadNode.class).count()); } public static Class getClassObject() { @@ -92,7 +92,7 @@ assertEquals(type.klass(), filter.first().asConstant()); assertEquals(1, result.getNodes(FloatingReadNode.class).count()); - assertEquals(0, result.getNodes(ReadNode.class).count()); + assertEquals(0, result.getNodes().filter(ReadNode.class).count()); } @Test @@ -106,7 +106,7 @@ assertEquals(AheadOfTimeCompilationTest.class, mirror); assertEquals(0, result.getNodes(FloatingReadNode.class).count()); - assertEquals(0, result.getNodes(ReadNode.class).count()); + assertEquals(0, result.getNodes().filter(ReadNode.class).count()); } public static Class getPrimitiveClassObject() { @@ -121,7 +121,7 @@ assertEquals(runtime.getTarget().wordKind, filter.first().kind()); assertEquals(2, result.getNodes(FloatingReadNode.class).count()); - assertEquals(0, result.getNodes(ReadNode.class).count()); + assertEquals(0, result.getNodes().filter(ReadNode.class).count()); } @Test @@ -134,7 +134,7 @@ assertEquals(Integer.TYPE, mirror); assertEquals(0, result.getNodes(FloatingReadNode.class).count()); - assertEquals(0, result.getNodes(ReadNode.class).count()); + assertEquals(0, result.getNodes().filter(ReadNode.class).count()); } public static String getStringObject() { @@ -162,7 +162,7 @@ assertEquals("test string", mirror); assertEquals(0, result.getNodes(FloatingReadNode.class).count()); - assertEquals(0, result.getNodes(ReadNode.class).count()); + assertEquals(0, result.getNodes().filter(ReadNode.class).count()); } public static Boolean getBoxedBoolean() { diff -r b9e963c44ed5 -r f8a87f3fab5a graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierAdditionTest.java --- a/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierAdditionTest.java Mon Sep 16 16:07:54 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierAdditionTest.java Mon Sep 16 17:10:00 2013 +0200 @@ -262,7 +262,7 @@ barriers = graph.getNodes(SerialWriteBarrier.class).count(); } Assert.assertEquals(expectedBarriers, barriers); - for (WriteNode write : graph.getNodes(WriteNode.class)) { + for (WriteNode write : graph.getNodes().filter(WriteNode.class)) { if (useG1GC()) { if (write.getBarrierType() != BarrierType.NONE) { Assert.assertEquals(1, write.successors().count()); @@ -277,7 +277,7 @@ } } - for (ReadNode read : graph.getNodes(ReadNode.class)) { + for (ReadNode read : graph.getNodes().filter(ReadNode.class)) { if (read.getBarrierType() != BarrierType.NONE) { if (read.location() instanceof ConstantLocationNode) { Assert.assertEquals(referentOffset(), ((ConstantLocationNode) (read.location())).getDisplacement()); diff -r b9e963c44ed5 -r f8a87f3fab5a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/WriteBarrierAdditionPhase.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/WriteBarrierAdditionPhase.java Mon Sep 16 16:07:54 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/WriteBarrierAdditionPhase.java Mon Sep 16 17:10:00 2013 +0200 @@ -24,6 +24,7 @@ import static com.oracle.graal.hotspot.replacements.HotSpotReplacementsUtil.*; +import com.oracle.graal.graph.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.HeapAccess.BarrierType; import com.oracle.graal.nodes.extended.*; @@ -37,18 +38,18 @@ @Override protected void run(StructuredGraph graph) { - for (ReadNode node : graph.getNodes(ReadNode.class)) { - addReadNodeBarriers(node, graph); - } - for (WriteNode node : graph.getNodes(WriteNode.class)) { - addWriteNodeBarriers(node, graph); - } - for (LoweredCompareAndSwapNode node : graph.getNodes(LoweredCompareAndSwapNode.class)) { - addCASBarriers(node, graph); - } - for (ArrayRangeWriteNode node : graph.getNodes(ArrayRangeWriteNode.class)) { - if (node.isObjectArray()) { - addArrayRangeBarriers(node, graph); + for (Node n : graph.getNodes()) { + if (n instanceof ReadNode) { + addReadNodeBarriers((ReadNode) n, graph); + } else if (n instanceof WriteNode) { + addWriteNodeBarriers((WriteNode) n, graph); + } else if (n instanceof LoweredCompareAndSwapNode) { + addCASBarriers((LoweredCompareAndSwapNode) n, graph); + } else if (n instanceof ArrayRangeWriteNode) { + ArrayRangeWriteNode node = (ArrayRangeWriteNode) n; + if (node.isObjectArray()) { + addArrayRangeBarriers(node, graph); + } } } } diff -r b9e963c44ed5 -r f8a87f3fab5a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ArrayRangeWriteNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ArrayRangeWriteNode.java Mon Sep 16 16:07:54 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ArrayRangeWriteNode.java Mon Sep 16 17:10:00 2013 +0200 @@ -22,14 +22,13 @@ */ package com.oracle.graal.nodes.extended; -import com.oracle.graal.graph.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.type.*; /** * Base class for nodes that modify a range of an array. */ -public abstract class ArrayRangeWriteNode extends AbstractStateSplit implements IterableNodeType { +public abstract class ArrayRangeWriteNode extends AbstractStateSplit { protected ArrayRangeWriteNode(Stamp stamp) { super(stamp); diff -r b9e963c44ed5 -r f8a87f3fab5a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java Mon Sep 16 16:07:54 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java Mon Sep 16 17:10:00 2013 +0200 @@ -23,7 +23,6 @@ package com.oracle.graal.nodes.extended; import com.oracle.graal.api.meta.*; -import com.oracle.graal.graph.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.spi.*; import com.oracle.graal.nodes.type.*; @@ -32,7 +31,7 @@ /** * Reads an {@linkplain AccessNode accessed} value. */ -public final class ReadNode extends FloatableAccessNode implements IterableNodeType, LIRLowerable, Canonicalizable, PiPushable, Virtualizable { +public final class ReadNode extends FloatableAccessNode implements LIRLowerable, Canonicalizable, PiPushable, Virtualizable { public ReadNode(ValueNode object, ValueNode location, Stamp stamp, BarrierType barrierType, boolean compressible) { super(object, location, stamp, barrierType, compressible); diff -r b9e963c44ed5 -r f8a87f3fab5a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/WriteNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/WriteNode.java Mon Sep 16 16:07:54 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/WriteNode.java Mon Sep 16 17:10:00 2013 +0200 @@ -23,7 +23,6 @@ package com.oracle.graal.nodes.extended; import com.oracle.graal.api.meta.*; -import com.oracle.graal.graph.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.extended.LocationNode.Location; import com.oracle.graal.nodes.spi.*; @@ -33,7 +32,7 @@ /** * Writes a given {@linkplain #value() value} a {@linkplain AccessNode memory location}. */ -public final class WriteNode extends AccessNode implements StateSplit, LIRLowerable, MemoryCheckpoint.Single, IterableNodeType, Virtualizable { +public final class WriteNode extends AccessNode implements StateSplit, LIRLowerable, MemoryCheckpoint.Single, Virtualizable { @Input private ValueNode value; @Input(notDataflow = true) private FrameState stateAfter; diff -r b9e963c44ed5 -r f8a87f3fab5a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoweredCompareAndSwapNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoweredCompareAndSwapNode.java Mon Sep 16 16:07:54 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoweredCompareAndSwapNode.java Mon Sep 16 17:10:00 2013 +0200 @@ -23,7 +23,6 @@ package com.oracle.graal.nodes.java; import com.oracle.graal.api.meta.*; -import com.oracle.graal.graph.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.extended.*; import com.oracle.graal.nodes.spi.*; @@ -32,7 +31,7 @@ /** * Represents the lowered version of an atomic compare-and-swap operation{@code CompareAndSwapNode}. */ -public class LoweredCompareAndSwapNode extends AccessNode implements StateSplit, LIRLowerable, MemoryCheckpoint.Single, IterableNodeType { +public class LoweredCompareAndSwapNode extends AccessNode implements StateSplit, LIRLowerable, MemoryCheckpoint.Single { @Input private ValueNode expectedValue; @Input private ValueNode newValue;