| Index: runtime/vm/intermediate_language.cc
|
| diff --git a/runtime/vm/intermediate_language.cc b/runtime/vm/intermediate_language.cc
|
| index 2be9d1b884215b28070a6011831b599fd3e74c2a..a2642d2c2bda244c599f57de4baca6b2b50f50fd 100644
|
| --- a/runtime/vm/intermediate_language.cc
|
| +++ b/runtime/vm/intermediate_language.cc
|
| @@ -604,7 +604,9 @@ const Object& Value::BoundConstant() const {
|
| GraphEntryInstr::GraphEntryInstr(const ParsedFunction& parsed_function,
|
| TargetEntryInstr* normal_entry,
|
| intptr_t osr_id)
|
| - : BlockEntryInstr(0, CatchClauseNode::kInvalidTryIndex),
|
| + : BlockEntryInstr(0,
|
| + CatchClauseNode::kInvalidTryIndex,
|
| + Thread::Current()->GetNextDeoptId()),
|
| parsed_function_(parsed_function),
|
| normal_entry_(normal_entry),
|
| catch_entries_(),
|
| @@ -1109,7 +1111,8 @@ bool BlockEntryInstr::PruneUnreachable(GraphEntryInstr* graph_entry,
|
| // we can simply jump to the beginning of the block.
|
| ASSERT(instr->previous() == this);
|
|
|
| - GotoInstr* goto_join = new GotoInstr(AsJoinEntry());
|
| + GotoInstr* goto_join =
|
| + new GotoInstr(AsJoinEntry(), Thread::Current()->GetNextDeoptId());
|
| goto_join->CopyDeoptIdFrom(*parent);
|
| graph_entry->normal_entry()->LinkTo(goto_join);
|
| return true;
|
| @@ -1336,7 +1339,7 @@ BlockEntryInstr* GotoInstr::SuccessorAt(intptr_t index) const {
|
|
|
|
|
| void Instruction::Goto(JoinEntryInstr* entry) {
|
| - LinkTo(new GotoInstr(entry));
|
| + LinkTo(new GotoInstr(entry, Thread::Current()->GetNextDeoptId()));
|
| }
|
|
|
|
|
| @@ -3185,8 +3188,9 @@ StrictCompareInstr::StrictCompareInstr(TokenPosition token_pos,
|
| Token::Kind kind,
|
| Value* left,
|
| Value* right,
|
| - bool needs_number_check)
|
| - : TemplateComparison(token_pos, kind, Thread::Current()->GetNextDeoptId()),
|
| + bool needs_number_check,
|
| + intptr_t deopt_id)
|
| + : TemplateComparison(token_pos, kind, deopt_id),
|
| needs_number_check_(needs_number_check) {
|
| ASSERT((kind == Token::kEQ_STRICT) || (kind == Token::kNE_STRICT));
|
| SetInputAt(0, left);
|
| @@ -3805,7 +3809,7 @@ ComparisonInstr* RelationalOpInstr::CopyWithNewOperands(Value* new_left,
|
| ComparisonInstr* StrictCompareInstr::CopyWithNewOperands(Value* new_left,
|
| Value* new_right) {
|
| return new StrictCompareInstr(token_pos(), kind(), new_left, new_right,
|
| - needs_number_check());
|
| + needs_number_check(), Thread::kNoDeoptId);
|
| }
|
|
|
|
|
|
|