changeset 23163:3cbe2cc6c9ef

Remove CheckCastNode#simplify as other optimizations already capture this simplification.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Sun, 13 Dec 2015 11:37:49 +0100
parents 59bb4f5ec80e
children 721b6e8d10a6
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java
diffstat 1 files changed, 1 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java	Sun Dec 13 11:27:58 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java	Sun Dec 13 11:37:49 2015 +0100
@@ -42,15 +42,12 @@
 import com.oracle.graal.graph.NodeClass;
 import com.oracle.graal.graph.spi.Canonicalizable;
 import com.oracle.graal.graph.spi.CanonicalizerTool;
-import com.oracle.graal.graph.spi.Simplifiable;
-import com.oracle.graal.graph.spi.SimplifierTool;
 import com.oracle.graal.nodeinfo.NodeInfo;
 import com.oracle.graal.nodes.FixedGuardNode;
 import com.oracle.graal.nodes.FixedWithNextNode;
 import com.oracle.graal.nodes.LogicConstantNode;
 import com.oracle.graal.nodes.LogicNode;
 import com.oracle.graal.nodes.PiNode;
-import com.oracle.graal.nodes.StructuredGraph;
 import com.oracle.graal.nodes.ValueNode;
 import com.oracle.graal.nodes.calc.IsNullNode;
 import com.oracle.graal.nodes.extended.GuardingNode;
@@ -66,7 +63,7 @@
  * Implements a type check against a compile-time known type.
  */
 @NodeInfo
-public class CheckCastNode extends FixedWithNextNode implements Canonicalizable, Simplifiable, Lowerable, Virtualizable, ValueProxy {
+public class CheckCastNode extends FixedWithNextNode implements Canonicalizable, Lowerable, Virtualizable, ValueProxy {
 
     public static final NodeClass<CheckCastNode> TYPE = NodeClass.create(CheckCastNode.class);
     @Input protected ValueNode object;
@@ -228,22 +225,6 @@
         return null;
     }
 
-    @Override
-    public void simplify(SimplifierTool tool) {
-        // if the previous node is also a checkcast, with a less precise and compatible type,
-        // replace both with one checkcast checking the more specific type.
-        if (predecessor() instanceof CheckCastNode) {
-            CheckCastNode ccn = (CheckCastNode) predecessor();
-            if (ccn != null && ccn.type != null && ccn == object && ccn.forStoreCheck == forStoreCheck && ccn.type.isAssignableFrom(type)) {
-                StructuredGraph graph = ccn.graph();
-                CheckCastNode newccn = graph.add(new CheckCastNode(type, ccn.object, ccn.profile, ccn.forStoreCheck));
-                graph.replaceFixedWithFixed(ccn, newccn);
-                replaceAtUsages(newccn);
-                graph.removeFixed(this);
-            }
-        }
-    }
-
     public ValueNode object() {
         return object;
     }