| Index: src/compiler/branch-elimination.cc | 
| diff --git a/src/compiler/branch-elimination.cc b/src/compiler/branch-elimination.cc | 
| index 236fbcad5f931f4bc460850fa7a288e02415a3a3..b1967b896a8b893ce3434fae876a22b67dc283ee 100644 | 
| --- a/src/compiler/branch-elimination.cc | 
| +++ b/src/compiler/branch-elimination.cc | 
| @@ -92,8 +92,7 @@ Reduction BranchElimination::ReduceDeoptimizeConditional(Node* node) { | 
| // yet because we will have to recompute anyway once we compute the | 
| // predecessor. | 
| if (conditions == nullptr) { | 
| -    DCHECK_NULL(node_conditions_.Get(node)); | 
| -    return NoChange(); | 
| +    return UpdateConditions(node, conditions); | 
| } | 
| Maybe<bool> condition_value = conditions->LookupCondition(condition); | 
| if (condition_value.IsJust()) { | 
| @@ -123,8 +122,7 @@ Reduction BranchElimination::ReduceIf(Node* node, bool is_true_branch) { | 
| // yet because we will have to recompute anyway once we compute the | 
| // predecessor. | 
| if (from_branch == nullptr) { | 
| -    DCHECK(node_conditions_.Get(node) == nullptr); | 
| -    return NoChange(); | 
| +    return UpdateConditions(node, nullptr); | 
| } | 
| Node* condition = branch->InputAt(0); | 
| return UpdateConditions( | 
| @@ -145,8 +143,7 @@ Reduction BranchElimination::ReduceMerge(Node* node) { | 
| // input. | 
| for (int i = 0; i < node->InputCount(); i++) { | 
| if (node_conditions_.Get(node->InputAt(i)) == nullptr) { | 
| -      DCHECK(node_conditions_.Get(node) == nullptr); | 
| -      return NoChange(); | 
| +      return UpdateConditions(node, nullptr); | 
| } | 
| } | 
|  | 
| @@ -209,7 +206,8 @@ Reduction BranchElimination::UpdateConditions( | 
| // Only signal that the node has Changed if the condition information has | 
| // changed. | 
| if (conditions != original) { | 
| -    if (original == nullptr || *conditions != *original) { | 
| +    if (conditions == nullptr || original == nullptr || | 
| +        *conditions != *original) { | 
| node_conditions_.Set(node, conditions); | 
| return Changed(node); | 
| } | 
|  |