changeset 11661:f8a87f3fab5a

removed the IterableNodeType marker interface from (Read|Write|ArrayRangeWrite|LoweredCompareAndSwap)Node (GRAAL-471)
author Doug Simon <doug.simon@oracle.com>
date Mon, 16 Sep 2013 17:10:00 +0200
parents b9e963c44ed5
children 929a03fbbbaf
files graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierAdditionTest.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/WriteBarrierAdditionPhase.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ArrayRangeWriteNode.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/WriteNode.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoweredCompareAndSwapNode.java
diffstat 7 files changed, 26 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- 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() {
--- 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());
--- 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);
+                }
             }
         }
     }
--- 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);
--- 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);
--- 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;
--- 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;