# HG changeset patch # User Gilles Duboscq # Date 1404404828 -7200 # Node ID 639716622dc877f0f10d0d013844ef35238a3ff7 # Parent 347915b8cea80126cfa938d1e040e5f6593cd294 GuardLoweringPhase should not leave dead nodes behind diff -r 347915b8cea8 -r 639716622dc8 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 Wed Jul 02 18:23:56 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java Thu Jul 03 18:27:08 2014 +0200 @@ -98,8 +98,14 @@ access.setGuard(null); FixedAccessNode fixedAccess; if (access instanceof FloatingAccessNode) { - fixedAccess = ((FloatingAccessNode) access).asFixedNode(); + FloatingAccessNode floatingAccessNode = (FloatingAccessNode) access; + MemoryNode lastLocationAccess = floatingAccessNode.getLastLocationAccess(); + fixedAccess = floatingAccessNode.asFixedNode(); replaceCurrent(fixedAccess); + if (lastLocationAccess != null) { + // fixed accesses are not currently part of the memory graph + GraphUtil.tryKillUnused(lastLocationAccess.asNode()); + } } else { fixedAccess = (FixedAccessNode) access; }