diff graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ProxyNode.java @ 15009:e49f62425090

introduce non-ValueNode Proxy interface
author Lukas Stadler <lukas.stadler@oracle.com>
date Mon, 07 Apr 2014 13:55:45 +0200
parents 27c04ee36dcb
children df2ef5204f2b
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ProxyNode.java	Mon Apr 07 11:32:09 2014 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ProxyNode.java	Mon Apr 07 13:55:45 2014 +0200
@@ -27,14 +27,13 @@
 import com.oracle.graal.graph.Node.ValueNumberable;
 import com.oracle.graal.nodes.calc.*;
 import com.oracle.graal.nodes.extended.*;
-import com.oracle.graal.nodes.spi.*;
 import com.oracle.graal.nodes.type.*;
 
 /**
  * A proxy is inserted at loop exits for any value that is created inside the loop (i.e. was not
  * live on entry to the loop) and is (potentially) used after the loop.
  */
-public abstract class ProxyNode extends FloatingNode implements IterableNodeType, ValueNumberable, ValueAndStampProxy {
+public abstract class ProxyNode extends FloatingNode implements IterableNodeType, ValueNumberable {
 
     @Input(InputType.Association) private AbstractBeginNode proxyPoint;
 
@@ -58,20 +57,15 @@
         return super.verify();
     }
 
-    @Override
-    public ValueNode getOriginalValue() {
-        return value();
-    }
-
     public static MemoryProxyNode forMemory(MemoryNode value, AbstractBeginNode exit, LocationIdentity location, StructuredGraph graph) {
-        return graph.unique(new MemoryProxyNode(ValueNodeUtil.asNode(value), exit, location));
+        return graph.unique(new MemoryProxyNode(value, exit, location));
     }
 
     public static ValueProxyNode forValue(ValueNode value, AbstractBeginNode exit, StructuredGraph graph) {
         return graph.unique(new ValueProxyNode(value, exit));
     }
 
-    public static GuardProxyNode forGuard(ValueNode value, AbstractBeginNode exit, StructuredGraph graph) {
+    public static GuardProxyNode forGuard(GuardingNode value, AbstractBeginNode exit, StructuredGraph graph) {
         return graph.unique(new GuardProxyNode(value, exit));
     }
 }