# HG changeset patch # User Thomas Wuerthinger # Date 1426710995 -3600 # Node ID 5ee90d1bf6cdda2149525cafb766355724566fa4 # Parent b3a2e8e564adf133a92e6b78ba25cea0251c314a# Parent 212566f9cd69e2e15d73d9ef37f26a994f46ac97 Merge. diff -r b3a2e8e564ad -r 5ee90d1bf6cd graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/OnStackReplacementPhase.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/OnStackReplacementPhase.java Wed Mar 18 21:36:12 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/OnStackReplacementPhase.java Wed Mar 18 21:36:35 2015 +0100 @@ -76,6 +76,7 @@ } LoopTransformations.peel(osrLoop); + osr.replaceAtUsages(InputType.Guard, AbstractBeginNode.prevBegin((FixedNode) osr.predecessor())); for (Node usage : osr.usages().snapshot()) { ProxyNode proxy = (ProxyNode) usage; proxy.replaceAndDelete(proxy.value()); @@ -107,6 +108,8 @@ assert value == null || value instanceof OSRLocalNode; } } + osr.replaceAtUsages(InputType.Guard, osrStart); + assert osr.usages().isEmpty(); GraphUtil.killCFG(start); diff -r b3a2e8e564ad -r 5ee90d1bf6cd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DominatorConditionalEliminationPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DominatorConditionalEliminationPhase.java Wed Mar 18 21:36:12 2015 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DominatorConditionalEliminationPhase.java Wed Mar 18 21:36:35 2015 +0100 @@ -377,7 +377,7 @@ private void processConditionAnchor(ConditionAnchorNode node) { tryProofCondition(node.condition(), (guard, result) -> { - if (result == node.isNegated()) { + if (result != node.isNegated()) { node.replaceAtUsages(guard); GraphUtil.unlinkFixedNode(node); GraphUtil.killWithUnusedFloatingInputs(node);