changeset 19601:382e4f844d96

Remove default methods from MemoryAccess interface.
author Roland Schatz <roland.schatz@oracle.com>
date Thu, 26 Feb 2015 19:08:19 +0100
parents b92530cb27df
children d5042bcd422f
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/MemoryAccess.java graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/ArrayEqualsNode.java
diffstat 2 files changed, 13 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/MemoryAccess.java	Thu Feb 26 17:22:08 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/MemoryAccess.java	Thu Feb 26 19:08:19 2015 +0100
@@ -32,14 +32,10 @@
 
     LocationIdentity getLocationIdentity();
 
-    default MemoryNode getLastLocationAccess() {
-        return null;
-    }
+    MemoryNode getLastLocationAccess();
 
     /**
      * @param lla the {@link MemoryNode} that represents the last kill of the location
      */
-    default void setLastLocationAccess(MemoryNode lla) {
-        // empty
-    }
+    void setLastLocationAccess(MemoryNode lla);
 }
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/ArrayEqualsNode.java	Thu Feb 26 17:22:08 2015 +0100
+++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/ArrayEqualsNode.java	Thu Feb 26 19:08:19 2015 +0100
@@ -51,6 +51,8 @@
     /** Length of both arrays. */
     @Input ValueNode length;
 
+    @OptionalInput(InputType.Memory) MemoryNode lastLocationAccess;
+
     public ArrayEqualsNode(ValueNode array1, ValueNode array2, ValueNode length) {
         super(TYPE, StampFactory.forKind(Kind.Boolean));
         // Ignore nullness in stamp equality test
@@ -139,4 +141,13 @@
     public LocationIdentity getLocationIdentity() {
         return NamedLocationIdentity.getArrayLocation(kind);
     }
+
+    public MemoryNode getLastLocationAccess() {
+        return lastLocationAccess;
+    }
+
+    public void setLastLocationAccess(MemoryNode lla) {
+        updateUsages(ValueNodeUtil.asNode(lastLocationAccess), ValueNodeUtil.asNode(lla));
+        lastLocationAccess = lla;
+    }
 }