Mercurial > hg > truffle
changeset 15530:a51d48ac96d3
Fix bug in CanonicalizerPhase that could remove fixed nodes with side effects in a corner case.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Tue, 06 May 2014 04:14:00 +0200 |
parents | c5ce68561b75 |
children | a71192a503fe |
files | graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java |
diffstat | 1 files changed, 2 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java Tue May 06 04:07:30 2014 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java Tue May 06 04:14:00 2014 +0200 @@ -185,7 +185,8 @@ boolean improvedStamp = tryInferStamp(valueNode); Constant constant = valueNode.stamp().asConstant(); if (constant != null && !(node instanceof ConstantNode)) { - performReplacement(valueNode, ConstantNode.forConstant(valueNode.stamp(), constant, context.getMetaAccess(), valueNode.graph())); + valueNode.replaceAtUsages(ConstantNode.forConstant(valueNode.stamp(), constant, context.getMetaAccess(), valueNode.graph())); + GraphUtil.tryKillUnused(valueNode); } else if (improvedStamp) { // the improved stamp may enable additional canonicalization tryCanonicalize(valueNode, nodeClass);