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); |
} |