changeset 15080:0bc5f99bf9d2

remove unused MemoryAnchorNodes
author Lukas Stadler <lukas.stadler@oracle.com>
date Mon, 14 Apr 2014 11:12:39 +0200
parents 976c6cb2bf69
children 5ffcd28b9340
files graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MemoryAnchorNode.java
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MemoryAnchorNode.java	Sun Apr 13 22:55:23 2014 +0200
+++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MemoryAnchorNode.java	Mon Apr 14 11:12:39 2014 +0200
@@ -23,13 +23,14 @@
 package com.oracle.graal.replacements.nodes;
 
 import com.oracle.graal.graph.*;
+import com.oracle.graal.graph.spi.*;
 import com.oracle.graal.nodes.*;
 import com.oracle.graal.nodes.extended.*;
 import com.oracle.graal.nodes.spi.*;
 import com.oracle.graal.nodes.type.*;
 
 @NodeInfo(allowedUsageTypes = {InputType.Memory})
-public class MemoryAnchorNode extends FixedWithNextNode implements LIRLowerable, MemoryNode {
+public class MemoryAnchorNode extends FixedWithNextNode implements LIRLowerable, MemoryNode, Canonicalizable {
 
     public MemoryAnchorNode() {
         super(StampFactory.forVoid());
@@ -39,6 +40,11 @@
         // Nothing to emit, since this node is used for structural purposes only.
     }
 
+    @Override
+    public Node canonical(CanonicalizerTool tool) {
+        return usages().isEmpty() ? null : this;
+    }
+
     public MemoryCheckpoint asMemoryCheckpoint() {
         return null;
     }