| Index: runtime/vm/regexp_assembler_ir.cc | 
| diff --git a/runtime/vm/regexp_assembler_ir.cc b/runtime/vm/regexp_assembler_ir.cc | 
| index 2bdc701b8315cd222701a57599d7709d829dae86..23aa5233dbe01031e5dc5203010783022abec3d9 100644 | 
| --- a/runtime/vm/regexp_assembler_ir.cc | 
| +++ b/runtime/vm/regexp_assembler_ir.cc | 
| @@ -80,7 +80,6 @@ IRRegExpMacroAssembler::IRRegExpMacroAssembler( | 
| const ZoneGrowableArray<const ICData*>& ic_data_array, | 
| Zone* zone) | 
| : RegExpMacroAssembler(zone), | 
| -      thread_(Thread::Current()), | 
| specialization_cid_(specialization_cid), | 
| parsed_function_(parsed_function), | 
| ic_data_array_(ic_data_array), | 
| @@ -123,17 +122,14 @@ IRRegExpMacroAssembler::IRRegExpMacroAssembler( | 
| // Create and generate all preset blocks. | 
| entry_block_ = new (zone) GraphEntryInstr( | 
| *parsed_function_, | 
| -      new (zone) TargetEntryInstr(block_id_.Alloc(), kInvalidTryIndex, | 
| -                                  GetNextDeoptId()), | 
| +      new (zone) TargetEntryInstr(block_id_.Alloc(), kInvalidTryIndex), | 
| Compiler::kNoOSRDeoptId); | 
| -  start_block_ = new (zone) | 
| -      JoinEntryInstr(block_id_.Alloc(), kInvalidTryIndex, GetNextDeoptId()); | 
| -  success_block_ = new (zone) | 
| -      JoinEntryInstr(block_id_.Alloc(), kInvalidTryIndex, GetNextDeoptId()); | 
| -  backtrack_block_ = new (zone) | 
| -      JoinEntryInstr(block_id_.Alloc(), kInvalidTryIndex, GetNextDeoptId()); | 
| -  exit_block_ = new (zone) | 
| -      JoinEntryInstr(block_id_.Alloc(), kInvalidTryIndex, GetNextDeoptId()); | 
| +  start_block_ = new (zone) JoinEntryInstr(block_id_.Alloc(), kInvalidTryIndex); | 
| +  success_block_ = | 
| +      new (zone) JoinEntryInstr(block_id_.Alloc(), kInvalidTryIndex); | 
| +  backtrack_block_ = | 
| +      new (zone) JoinEntryInstr(block_id_.Alloc(), kInvalidTryIndex); | 
| +  exit_block_ = new (zone) JoinEntryInstr(block_id_.Alloc(), kInvalidTryIndex); | 
|  | 
| GenerateEntryBlock(); | 
| GenerateSuccessBlock(); | 
| @@ -256,8 +252,8 @@ void IRRegExpMacroAssembler::GenerateSuccessBlock() { | 
| Value* type = Bind(new (Z) ConstantInstr( | 
| TypeArguments::ZoneHandle(Z, TypeArguments::null()))); | 
| Value* length = Bind(Uint64Constant(saved_registers_count_)); | 
| -  Value* array = Bind(new (Z) CreateArrayInstr(TokenPosition::kNoSource, type, | 
| -                                               length, GetNextDeoptId())); | 
| +  Value* array = | 
| +      Bind(new (Z) CreateArrayInstr(TokenPosition::kNoSource, type, length)); | 
| StoreLocal(result_, array); | 
|  | 
| // Store captured offsets in the `matches` parameter. | 
| @@ -280,8 +276,8 @@ void IRRegExpMacroAssembler::GenerateSuccessBlock() { | 
| PRINT(PushLocal(result_)); | 
|  | 
| // Return true on success. | 
| -  AppendInstruction(new (Z) ReturnInstr( | 
| -      TokenPosition::kNoSource, Bind(LoadLocal(result_)), GetNextDeoptId())); | 
| +  AppendInstruction( | 
| +      new (Z) ReturnInstr(TokenPosition::kNoSource, Bind(LoadLocal(result_)))); | 
| } | 
|  | 
|  | 
| @@ -290,8 +286,8 @@ void IRRegExpMacroAssembler::GenerateExitBlock() { | 
| TAG(); | 
|  | 
| // Return false on failure. | 
| -  AppendInstruction(new (Z) ReturnInstr( | 
| -      TokenPosition::kNoSource, Bind(LoadLocal(result_)), GetNextDeoptId())); | 
| +  AppendInstruction( | 
| +      new (Z) ReturnInstr(TokenPosition::kNoSource, Bind(LoadLocal(result_)))); | 
| } | 
|  | 
|  | 
| @@ -493,9 +489,8 @@ ComparisonInstr* IRRegExpMacroAssembler::Comparison(ComparisonKind kind, | 
| InstanceCallDescriptor::FromToken(intermediate_operator), lhs, rhs)); | 
| Value* rhs_value = Bind(BoolConstant(true)); | 
|  | 
| -  return new (Z) | 
| -      StrictCompareInstr(TokenPosition::kNoSource, strict_comparison, lhs_value, | 
| -                         rhs_value, true, GetNextDeoptId()); | 
| +  return new (Z) StrictCompareInstr(TokenPosition::kNoSource, strict_comparison, | 
| +                                    lhs_value, rhs_value, true); | 
| } | 
|  | 
| ComparisonInstr* IRRegExpMacroAssembler::Comparison(ComparisonKind kind, | 
| @@ -543,9 +538,9 @@ StaticCallInstr* IRRegExpMacroAssembler::StaticCall( | 
| const Function& function, | 
| ZoneGrowableArray<PushArgumentInstr*>* arguments) const { | 
| const intptr_t kTypeArgsLen = 0; | 
| -  return new (Z) StaticCallInstr(TokenPosition::kNoSource, function, | 
| -                                 kTypeArgsLen, Object::null_array(), arguments, | 
| -                                 ic_data_array_, GetNextDeoptId()); | 
| +  return new (Z) | 
| +      StaticCallInstr(TokenPosition::kNoSource, function, kTypeArgsLen, | 
| +                      Object::null_array(), arguments, ic_data_array_); | 
| } | 
|  | 
|  | 
| @@ -592,10 +587,10 @@ InstanceCallInstr* IRRegExpMacroAssembler::InstanceCall( | 
| const InstanceCallDescriptor& desc, | 
| ZoneGrowableArray<PushArgumentInstr*>* arguments) const { | 
| const intptr_t kTypeArgsLen = 0; | 
| -  return new (Z) InstanceCallInstr( | 
| -      TokenPosition::kNoSource, desc.name, desc.token_kind, arguments, | 
| -      kTypeArgsLen, Object::null_array(), desc.checked_argument_count, | 
| -      ic_data_array_, GetNextDeoptId()); | 
| +  return new (Z) | 
| +      InstanceCallInstr(TokenPosition::kNoSource, desc.name, desc.token_kind, | 
| +                        arguments, kTypeArgsLen, Object::null_array(), | 
| +                        desc.checked_argument_count, ic_data_array_); | 
| } | 
|  | 
|  | 
| @@ -1576,8 +1571,8 @@ void IRRegExpMacroAssembler::CheckStackLimit() { | 
| PushArgumentInstr* capacity_push = PushArgument(Bind(Sub( | 
| length_push, PushArgument(Bind(Uint64Constant(stack_limit_slack())))))); | 
| PushArgumentInstr* stack_pointer_push = PushLocal(stack_pointer_); | 
| -  BranchInstr* branch = new (Z) BranchInstr( | 
| -      Comparison(kGT, capacity_push, stack_pointer_push), GetNextDeoptId()); | 
| +  BranchInstr* branch = | 
| +      new (Z) BranchInstr(Comparison(kGT, capacity_push, stack_pointer_push)); | 
| CloseBlockWith(branch); | 
|  | 
| BlockLabel grow_stack; | 
| @@ -1733,7 +1728,7 @@ void IRRegExpMacroAssembler::BranchOrBacktrack(ComparisonInstr* comparison, | 
| // If the condition is not true, fall through to a new block. | 
| BlockLabel fallthrough; | 
|  | 
| -  BranchInstr* branch = new (Z) BranchInstr(comparison, GetNextDeoptId()); | 
| +  BranchInstr* branch = new (Z) BranchInstr(comparison); | 
| *branch->true_successor_address() = TargetWithJoinGoto(true_successor_block); | 
| *branch->false_successor_address() = TargetWithJoinGoto(fallthrough.block()); | 
|  | 
| @@ -1744,11 +1739,11 @@ void IRRegExpMacroAssembler::BranchOrBacktrack(ComparisonInstr* comparison, | 
|  | 
| TargetEntryInstr* IRRegExpMacroAssembler::TargetWithJoinGoto( | 
| JoinEntryInstr* dst) { | 
| -  TargetEntryInstr* target = new (Z) | 
| -      TargetEntryInstr(block_id_.Alloc(), kInvalidTryIndex, GetNextDeoptId()); | 
| +  TargetEntryInstr* target = | 
| +      new (Z) TargetEntryInstr(block_id_.Alloc(), kInvalidTryIndex); | 
| blocks_.Add(target); | 
|  | 
| -  target->AppendInstruction(new (Z) GotoInstr(dst, GetNextDeoptId())); | 
| +  target->AppendInstruction(new (Z) GotoInstr(dst)); | 
|  | 
| return target; | 
| } | 
| @@ -1756,12 +1751,11 @@ TargetEntryInstr* IRRegExpMacroAssembler::TargetWithJoinGoto( | 
|  | 
| IndirectEntryInstr* IRRegExpMacroAssembler::IndirectWithJoinGoto( | 
| JoinEntryInstr* dst) { | 
| -  IndirectEntryInstr* target = | 
| -      new (Z) IndirectEntryInstr(block_id_.Alloc(), indirect_id_.Alloc(), | 
| -                                 kInvalidTryIndex, GetNextDeoptId()); | 
| +  IndirectEntryInstr* target = new (Z) IndirectEntryInstr( | 
| +      block_id_.Alloc(), indirect_id_.Alloc(), kInvalidTryIndex); | 
| blocks_.Add(target); | 
|  | 
| -  target->AppendInstruction(new (Z) GotoInstr(dst, GetNextDeoptId())); | 
| +  target->AppendInstruction(new (Z) GotoInstr(dst)); | 
|  | 
| return target; | 
| } | 
| @@ -1769,8 +1763,8 @@ IndirectEntryInstr* IRRegExpMacroAssembler::IndirectWithJoinGoto( | 
|  | 
| void IRRegExpMacroAssembler::CheckPreemption() { | 
| TAG(); | 
| -  AppendInstruction(new (Z) CheckStackOverflowInstr(TokenPosition::kNoSource, 0, | 
| -                                                    GetNextDeoptId())); | 
| +  AppendInstruction(new (Z) | 
| +                        CheckStackOverflowInstr(TokenPosition::kNoSource, 0)); | 
| } | 
|  | 
|  | 
|  |