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