# HG changeset patch # User Gilles Duboscq # Date 1363364782 -3600 # Node ID 22cab6e509a369252afac326d7e98023b3e5d43f # Parent 7d6cee014fb889553da7ad432fbff451ab57b17e Remove orphaned condition in implicit null check detection diff -r 7d6cee014fb8 -r 22cab6e509a3 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java Fri Mar 15 13:36:24 2013 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java Fri Mar 15 17:26:22 2013 +0100 @@ -31,6 +31,7 @@ import com.oracle.graal.nodes.calc.*; import com.oracle.graal.nodes.cfg.*; import com.oracle.graal.nodes.extended.*; +import com.oracle.graal.nodes.util.*; import com.oracle.graal.phases.*; import com.oracle.graal.phases.schedule.*; @@ -137,7 +138,11 @@ } assert access instanceof AccessNode; access.setNullCheck(true); + LogicNode condition = guard.condition(); guard.replaceAndDelete(access.node()); + if (condition.usages().isEmpty()) { + GraphUtil.killWithUnusedFloatingInputs(condition); + } nullGuarded.remove(access.object()); } }