changeset 8521:6aa080855d7c

-Bug fixes
author Christos Kotselidis <christos.kotselidis@oracle.com>
date Tue, 26 Mar 2013 18:31:19 +0100
parents 450abf358987
children cc433555c5a3
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ArrayWriteBarrier.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/FieldWriteBarrier.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/WriteBarrierSnippets.java
diffstat 4 files changed, 17 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java	Tue Mar 26 12:08:51 2013 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java	Tue Mar 26 18:31:19 2013 +0100
@@ -634,7 +634,7 @@
             // Separate out GC barrier semantics
             CompareAndSwapNode cas = (CompareAndSwapNode) n;
             ValueNode expected = cas.expected();
-            IndexedLocationNode location = IndexedLocationNode.create(LocationNode.ANY_LOCATION, cas.expected().kind(), cas.displacement(), cas.offset(), graph, 1);
+            LocationNode location = IndexedLocationNode.create(LocationNode.ANY_LOCATION, cas.expected().kind(), cas.displacement(), cas.offset(), graph, 1);
             if (expected.kind() == Kind.Object && !cas.newValue().objectStamp().alwaysNull()) {
                 ResolvedJavaType type = cas.object().objectStamp().type();
                 if (type != null && !type.isArray() && !MetaUtil.isJavaLangObject(type)) {
@@ -645,8 +645,7 @@
                         graph.addBeforeFixed(cas, writeBarrierPre);
                         graph.addAfterFixed(cas, writeBarrierPost);
                     } else {
-                        FieldWriteBarrier writeBarrier = graph.add(new FieldWriteBarrier(cas.object()));
-                        graph.addAfterFixed(cas, writeBarrier);
+                        graph.addAfterFixed(cas, graph.add(new FieldWriteBarrier(cas.object())));
                     }
                 } else {
                     // This may be an array store so use an array write barrier
@@ -671,7 +670,7 @@
             StoreIndexedNode storeIndexed = (StoreIndexedNode) n;
             ValueNode boundsCheck = createBoundsCheck(storeIndexed, tool);
             Kind elementKind = storeIndexed.elementKind();
-            IndexedLocationNode arrayLocation = createArrayLocation(graph, elementKind, storeIndexed.index());
+            LocationNode arrayLocation = createArrayLocation(graph, elementKind, storeIndexed.index());
             ValueNode value = storeIndexed.value();
             ValueNode array = storeIndexed.array();
             if (elementKind == Kind.Object && !value.objectStamp().alwaysNull()) {
@@ -735,8 +734,7 @@
                         graph.addBeforeFixed(write, graph.add(writeBarrierPre));
                         graph.addAfterFixed(write, graph.add(new WriteBarrierPost(object, write.value(), location, false)));
                     } else {
-                        FieldWriteBarrier writeBarrier = graph.add(new FieldWriteBarrier(object));
-                        graph.addAfterFixed(write, writeBarrier);
+                        graph.addAfterFixed(write, graph.add(new FieldWriteBarrier(object)));
                     }
                 } else {
                     // This may be an array store so use an array write barrier
@@ -745,8 +743,7 @@
                         graph.addBeforeFixed(write, writeBarrierPre);
                         graph.addAfterFixed(write, graph.add(new WriteBarrierPost(object, write.value(), location, true)));
                     } else {
-                        ArrayWriteBarrier writeBarrier = graph.add(new ArrayWriteBarrier(object, location));
-                        graph.addAfterFixed(write, writeBarrier);
+                        graph.addAfterFixed(write, graph.add(new ArrayWriteBarrier(object, location)));
                     }
                 }
             }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ArrayWriteBarrier.java	Tue Mar 26 12:08:51 2013 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ArrayWriteBarrier.java	Tue Mar 26 18:31:19 2013 +0100
@@ -25,21 +25,23 @@
 import com.oracle.graal.nodes.*;
 import com.oracle.graal.nodes.extended.*;
 import com.oracle.graal.nodes.spi.*;
+import com.oracle.graal.nodes.type.*;
 
-public final class ArrayWriteBarrier extends WriteBarrier implements Lowerable {
+public final class ArrayWriteBarrier extends FixedWithNextNode implements Lowerable {
 
     @Input private ValueNode object;
     @Input private LocationNode location;
 
-    public ValueNode object() {
+    public ValueNode getObject() {
         return object;
     }
 
-    public LocationNode location() {
+    public LocationNode getLocation() {
         return location;
     }
 
     public ArrayWriteBarrier(ValueNode object, LocationNode location) {
+        super(StampFactory.forVoid());
         this.object = object;
         this.location = location;
     }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/FieldWriteBarrier.java	Tue Mar 26 12:08:51 2013 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/FieldWriteBarrier.java	Tue Mar 26 18:31:19 2013 +0100
@@ -24,16 +24,18 @@
 
 import com.oracle.graal.nodes.*;
 import com.oracle.graal.nodes.spi.*;
+import com.oracle.graal.nodes.type.*;
 
-public final class FieldWriteBarrier extends WriteBarrier implements Lowerable {
+public final class FieldWriteBarrier extends FixedWithNextNode implements Lowerable {
 
     @Input private ValueNode object;
 
-    public ValueNode object() {
+    public ValueNode getObject() {
         return object;
     }
 
     public FieldWriteBarrier(ValueNode object) {
+        super(StampFactory.forVoid());
         this.object = object;
     }
 
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/WriteBarrierSnippets.java	Tue Mar 26 12:08:51 2013 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/WriteBarrierSnippets.java	Tue Mar 26 18:31:19 2013 +0100
@@ -167,8 +167,8 @@
             ResolvedJavaMethod method = serialArrayWriteBarrier;
             Key key = new Key(method);
             Arguments arguments = new Arguments();
-            arguments.add("object", arrayWriteBarrier.object());
-            arguments.add("location", arrayWriteBarrier.location());
+            arguments.add("object", arrayWriteBarrier.getObject());
+            arguments.add("location", arrayWriteBarrier.getLocation());
             SnippetTemplate template = cache.get(key, assumptions);
             template.instantiate(runtime, arrayWriteBarrier, DEFAULT_REPLACER, arguments);
         }
@@ -177,7 +177,7 @@
             ResolvedJavaMethod method = serialFieldWriteBarrier;
             Key key = new Key(method);
             Arguments arguments = new Arguments();
-            arguments.add("object", fieldWriteBarrier.object());
+            arguments.add("object", fieldWriteBarrier.getObject());
             SnippetTemplate template = cache.get(key, assumptions);
             template.instantiate(runtime, fieldWriteBarrier, DEFAULT_REPLACER, arguments);
         }