Mercurial > hg > graal-jvmci-8
changeset 16402:639716622dc8
GuardLoweringPhase should not leave dead nodes behind
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Thu, 03 Jul 2014 18:27:08 +0200 |
parents | 347915b8cea8 |
children | 39f9f052e5a8 |
files | graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java |
diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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; }