Mercurial > hg > graal-compiler
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; }