Index: src/compiler/common-operator-reducer.cc |
diff --git a/src/compiler/common-operator-reducer.cc b/src/compiler/common-operator-reducer.cc |
index 2f486833c609c464d2995f466283ff42788b9c30..a6d275fd4e909db98b4358acd61ae5a2e4652f86 100644 |
--- a/src/compiler/common-operator-reducer.cc |
+++ b/src/compiler/common-operator-reducer.cc |
@@ -142,13 +142,14 @@ Reduction CommonOperatorReducer::ReduceDeoptimizeConditional(Node* node) { |
Decision const decision = DecideCondition(condition); |
if (decision == Decision::kUnknown) return NoChange(); |
if (condition_is_true == (decision == Decision::kTrue)) { |
- return Replace(control); |
+ ReplaceWithValue(node, dead(), effect, control); |
+ } else { |
+ control = graph()->NewNode(common()->Deoptimize(DeoptimizeKind::kEager), |
+ frame_state, effect, control); |
+ // TODO(bmeurer): This should be on the AdvancedReducer somehow. |
+ NodeProperties::MergeControlToEnd(graph(), common(), control); |
+ Revisit(graph()->end()); |
} |
- control = graph()->NewNode(common()->Deoptimize(DeoptimizeKind::kEager), |
- frame_state, effect, control); |
- // TODO(bmeurer): This should be on the AdvancedReducer somehow. |
- NodeProperties::MergeControlToEnd(graph(), common(), control); |
- Revisit(graph()->end()); |
return Replace(dead()); |
} |