# HG changeset patch # User Thomas Wuerthinger # Date 1433541242 -7200 # Node ID 75daca0c6a0f017d855f7e614d82da3f79372600 # Parent 532f9b06f54e73799cec65f42b12a9f41224247b# Parent c052d68e7eac71e11b6f65e279784035e0998b4b Merge. diff -r c052d68e7eac -r 75daca0c6a0f 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 Jun 05 23:05:16 2015 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java Fri Jun 05 23:54:02 2015 +0200 @@ -117,14 +117,14 @@ private void check(Access access, ValueNode object) { ValueNode guard = nullGuarded.get(object); if (guard != null && isImplicitNullCheck(access.accessLocation())) { - if (object instanceof PiNode) { - PiNode piNode = (PiNode) object; - if (access.object() == object) { - access.asNode().replaceFirstInput(object, piNode.getOriginalNode()); - } - if (!(piNode.getGuard() instanceof GuardNode)) { - return; - } + if (guard instanceof PiNode) { + PiNode piNode = (PiNode) guard; + assert guard == object; + assert piNode.getGuard() instanceof GuardNode : piNode; + assert access.object() == guard; + access.asNode().replaceFirstInput(piNode, piNode.getOriginalNode()); + } else { + assert guard instanceof GuardNode; } metricImplicitNullCheck.increment(); access.setGuard(null); @@ -154,7 +154,7 @@ if (condition.hasNoUsages()) { GraphUtil.killWithUnusedFloatingInputs(condition); } - nullGuarded.remove(fixedAccess.object()); + nullGuarded.remove(object); } }