Chromium Code Reviews| Index: runtime/vm/constant_propagator.cc |
| diff --git a/runtime/vm/constant_propagator.cc b/runtime/vm/constant_propagator.cc |
| index 050c0ba2a99606affbf530fab27dbd375b478f8f..718623faa44992dcff359246fc1b1816ff582dd3 100644 |
| --- a/runtime/vm/constant_propagator.cc |
| +++ b/runtime/vm/constant_propagator.cc |
| @@ -1548,7 +1548,8 @@ void ConstantPropagator::EliminateRedundantBranches() { |
| // Drop the comparison, which does not have side effects |
| JoinEntryInstr* join = if_true->AsJoinEntry(); |
| if (join->phis() == NULL) { |
| - GotoInstr* jump = new (Z) GotoInstr(if_true->AsJoinEntry()); |
| + GotoInstr* jump = new (Z) GotoInstr( |
| + if_true->AsJoinEntry(), Thread::Current()->GetNextDeoptId()); |
|
Vyacheslav Egorov (Google)
2017/05/23 12:00:01
kNoDeoptId because InheritDeoptTarget.
|
| jump->InheritDeoptTarget(Z, branch); |
| Instruction* previous = branch->previous(); |
| @@ -1692,15 +1693,16 @@ void ConstantPropagator::Transform() { |
| ASSERT(if_false->parallel_move() == NULL); |
| ASSERT(if_false->loop_info() == NULL); |
| join = |
| - new (Z) JoinEntryInstr(if_false->block_id(), if_false->try_index()); |
| + new (Z) JoinEntryInstr(if_false->block_id(), if_false->try_index(), |
| + Thread::Current()->GetNextDeoptId()); |
|
Vyacheslav Egorov (Google)
2017/05/23 12:00:01
ditto
|
| join->InheritDeoptTarget(Z, if_false); |
| if_false->UnuseAllInputs(); |
| next = if_false->next(); |
| } else if (!reachable_->Contains(if_false->preorder_number())) { |
| ASSERT(if_true->parallel_move() == NULL); |
| ASSERT(if_true->loop_info() == NULL); |
| - join = |
| - new (Z) JoinEntryInstr(if_true->block_id(), if_true->try_index()); |
| + join = new (Z) JoinEntryInstr(if_true->block_id(), if_true->try_index(), |
|
Vyacheslav Egorov (Google)
2017/05/23 12:00:01
ditto
|
| + Thread::Current()->GetNextDeoptId()); |
| join->InheritDeoptTarget(Z, if_true); |
| if_true->UnuseAllInputs(); |
| next = if_true->next(); |
| @@ -1711,7 +1713,8 @@ void ConstantPropagator::Transform() { |
| // Drop the comparison, which does not have side effects as long |
| // as it is a strict compare (the only one we can determine is |
| // constant with the current analysis). |
| - GotoInstr* jump = new (Z) GotoInstr(join); |
| + GotoInstr* jump = |
| + new (Z) GotoInstr(join, Thread::Current()->GetNextDeoptId()); |
|
Vyacheslav Egorov (Google)
2017/05/23 12:00:01
ditto
|
| jump->InheritDeoptTarget(Z, branch); |
| Instruction* previous = branch->previous(); |