Mercurial > hg > truffle
changeset 21039:13a255e29236
Conditional Elimination: processCheckCast should return as soon as the checkcast has been transformed
author | Gilles Duboscq <gilles.m.duboscq@oracle.com> |
---|---|
date | Wed, 15 Apr 2015 20:05:51 +0200 |
parents | 6868faf48f02 |
children | 12e94cba3696 |
files | graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DominatorConditionalEliminationPhase.java |
diffstat | 1 files changed, 4 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DominatorConditionalEliminationPhase.java Sat Apr 18 19:56:22 2015 +0200 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DominatorConditionalEliminationPhase.java Wed Apr 15 20:05:51 2015 +0200 @@ -211,7 +211,7 @@ for (InfoElement infoElement : getInfoElements(node.object())) { TriState result = node.tryFold(infoElement.getStamp()); if (result.isKnown()) { - rewireGuards(infoElement.getGuard(), result.toBoolean(), (guard, checkCastResult) -> { + if (rewireGuards(infoElement.getGuard(), result.toBoolean(), (guard, checkCastResult) -> { if (checkCastResult) { PiNode piNode = node.graph().unique(new PiNode(node.object(), node.stamp(), guard)); node.replaceAtUsages(piNode); @@ -223,7 +223,9 @@ GraphUtil.killCFG(node); } return true; - }); + })) { + return; + } } } }