Home
last modified time | relevance | path

Searched refs:successor (Results 1 – 25 of 32) sorted by relevance

12

/art/compiler/optimizing/
Dcode_generator_utils.cc144 HBasicBlock* successor = nullptr; in IsComparedValueNonNegativeInBlock() local
152 successor = if_instr->IfTrueSuccessor(); in IsComparedValueNonNegativeInBlock()
161 successor = if_instr->IfFalseSuccessor(); in IsComparedValueNonNegativeInBlock()
175 successor = if_instr->IfFalseSuccessor(); in IsComparedValueNonNegativeInBlock()
184 successor = if_instr->IfTrueSuccessor(); in IsComparedValueNonNegativeInBlock()
195 DCHECK_NE(successor, nullptr); in IsComparedValueNonNegativeInBlock()
197 return successor->Dominates(target_block); in IsComparedValueNonNegativeInBlock()
Dnodes.cc94 HBasicBlock* successor = current->GetSuccessors()[successors_visited[current_id]++]; in FindBackEdges() local
95 uint32_t successor_id = successor->GetBlockId(); in FindBackEdges()
97 DCHECK(ContainsElement(worklist, successor)); in FindBackEdges()
98 successor->AddBackEdge(current); in FindBackEdges()
102 worklist.push_back(successor); in FindBackEdges()
294 static bool UpdateDominatorOfSuccessor(HBasicBlock* block, HBasicBlock* successor) { in UpdateDominatorOfSuccessor() argument
295 DCHECK(ContainsElement(block->GetSuccessors(), successor)); in UpdateDominatorOfSuccessor()
297 HBasicBlock* old_dominator = successor->GetDominator(); in UpdateDominatorOfSuccessor()
305 successor->SetDominator(new_dominator); in UpdateDominatorOfSuccessor()
335 HBasicBlock* successor = current->GetSuccessors()[successors_visited[current_id]++]; in ComputeDominanceInformation() local
[all …]
Dlinear_order.cc119 for (HBasicBlock* successor : current->GetSuccessors()) { in LinearizeGraphInternal()
120 int block_id = successor->GetBlockId(); in LinearizeGraphInternal()
123 AddToListForLinearization(&worklist, successor); in LinearizeGraphInternal()
Dssa_liveness_analysis_test.cc48 HBasicBlock* successor = new (GetAllocator()) HBasicBlock(graph); in CreateSuccessor() local
49 graph->AddBlock(successor); in CreateSuccessor()
50 block->AddSuccessor(successor); in CreateSuccessor()
51 return successor; in CreateSuccessor()
Dssa_liveness_analysis.cc177 for (HBasicBlock* successor : block->GetSuccessors()) { in ComputeLiveRanges()
178 live_in->Union(GetLiveInSet(*successor)); in ComputeLiveRanges()
179 if (successor->IsCatchBlock()) { in ComputeLiveRanges()
189 size_t phi_input_index = successor->GetPredecessorIndexOf(block); in ComputeLiveRanges()
190 for (HInstructionIterator phi_it(successor->GetPhis()); !phi_it.Done(); phi_it.Advance()) { in ComputeLiveRanges()
295 for (HBasicBlock* successor : block.GetSuccessors()) { in UpdateLiveOut()
296 if (live_out->Union(GetLiveInSet(*successor))) { in UpdateLiveOut()
Ddead_code_elimination.cc84 for (HBasicBlock* successor : live_successors) { in MarkReachableBlocks()
86 if (!visited->IsBitSet(successor->GetBlockId())) { in MarkReachableBlocks()
87 visited->SetBit(successor->GetBlockId()); in MarkReachableBlocks()
88 worklist.push_back(successor); in MarkReachableBlocks()
577 HBasicBlock* successor = block->GetSingleSuccessor(); in ConnectSuccessiveBlocks() local
578 if (successor->IsExitBlock() || successor->GetPredecessors().size() != 1u) { in ConnectSuccessiveBlocks()
581 DCHECK_LT(i, IndexOfElement(graph_->GetReversePostOrder(), successor)); in ConnectSuccessiveBlocks()
582 block->MergeWith(successor); in ConnectSuccessiveBlocks()
Dgraph_checker.cc318 for (HBasicBlock* successor : block->GetNormalSuccessors()) { in VisitBasicBlock()
319 if (successor->IsCatchBlock()) { in VisitBasicBlock()
321 successor->GetBlockId(), in VisitBasicBlock()
325 for (HBasicBlock* successor : block->GetExceptionalSuccessors()) { in VisitBasicBlock()
326 if (!successor->IsCatchBlock()) { in VisitBasicBlock()
328 successor->GetBlockId(), in VisitBasicBlock()
356 for (HBasicBlock* successor : block->GetNormalSuccessors()) { in VisitBasicBlock()
357 if (successor->GetPredecessors().size() > 1) { in VisitBasicBlock()
360 successor->GetBlockId())); in VisitBasicBlock()
793 HBasicBlock* successor = ret->GetBlock()->GetSingleSuccessor(); in VisitReturn() local
[all …]
Dblock_builder.cc369 HBasicBlock* successor = try_block->GetSuccessors()[i]; in InsertTryBoundaryBlocks() local
374 if (GetTryItem(successor, try_block_info) != nullptr) { in InsertTryBoundaryBlocks()
375 DCHECK_EQ(try_item, GetTryItem(successor, try_block_info)); in InsertTryBoundaryBlocks()
381 new (allocator_) HTryBoundary(HTryBoundary::BoundaryKind::kExit, successor->GetDexPc()); in InsertTryBoundaryBlocks()
382 graph_->SplitEdge(try_block, successor)->AddInstruction(try_exit); in InsertTryBoundaryBlocks()
Dloop_optimization_test.cc79 HBasicBlock* AddLoop(HBasicBlock* position, HBasicBlock* successor) { in AddLoop() argument
85 position->ReplaceSuccessor(successor, header); in AddLoop()
87 header->AddSuccessor(successor); in AddLoop()
Dbounds_check_elimination.cc618 HBasicBlock* successor, ValueRange* range) { in ApplyRangeFromComparison() argument
622 AssignRange(successor, instruction, range); in ApplyRangeFromComparison()
634 AssignRange(successor, instruction, existing_range->Narrow(range)); in ApplyRangeFromComparison()
659 HBasicBlock* successor = nullptr; in HandleIfBetweenTwoMonotonicValueRanges() local
665 successor = instruction->IfTrueSuccessor(); in HandleIfBetweenTwoMonotonicValueRanges()
667 successor = instruction->IfTrueSuccessor(); in HandleIfBetweenTwoMonotonicValueRanges()
669 successor = instruction->IfFalseSuccessor(); in HandleIfBetweenTwoMonotonicValueRanges()
673 successor = instruction->IfFalseSuccessor(); in HandleIfBetweenTwoMonotonicValueRanges()
680 if (successor != nullptr) { in HandleIfBetweenTwoMonotonicValueRanges()
688 ApplyRangeFromComparison(left, instruction->GetBlock(), successor, in HandleIfBetweenTwoMonotonicValueRanges()
[all …]
Dloop_analysis.cc36 for (HBasicBlock* successor : block->GetSuccessors()) { in CalculateLoopBasicProperties()
37 if (!loop_info->Contains(*successor)) { in CalculateLoopBasicProperties()
Dsuperblock_cloner.cc298 HBasicBlock* successor = current->GetSuccessors()[successors_visited[current_id]++]; in FindBackEdgesLocal() local
299 uint32_t successor_id = successor->GetBlockId(); in FindBackEdgesLocal()
305 DCHECK(ContainsElement(worklist, successor)); in FindBackEdgesLocal()
306 successor->AddBackEdgeWhileUpdating(current); in FindBackEdgesLocal()
310 worklist.push_back(successor); in FindBackEdgesLocal()
Dgvn.cc533 for (const HBasicBlock* successor : block->GetSuccessors()) { in WillBeReferencedAgain() local
534 if (!visited_blocks_.IsBitSet(successor->GetBlockId())) { in WillBeReferencedAgain()
Dcode_sinking.cc385 for (HBasicBlock* successor : successors) { in SinkCodeToUncommonBranch()
386 if (!post_dominated.IsBitSet(successor->GetBlockId())) { in SinkCodeToUncommonBranch()
Dsuperblock_cloner_test.cc45 HBasicBlock* successor, in CreateBasicLoopControlFlow() argument
52 position->ReplaceSuccessor(successor, loop_preheader); in CreateBasicLoopControlFlow()
56 loop_header->AddSuccessor(successor); in CreateBasicLoopControlFlow()
Dloop_optimization.cc76 for (HBasicBlock* successor : it_loop.Current()->GetSuccessors()) { in IsEarlyExit()
77 if (!loop_info->Contains(*successor)) { in IsEarlyExit()
860 for (HBasicBlock* successor : block->GetSuccessors()) { in GetInnerLoopFiniteSingleExit()
861 if (!loop_info->Contains(*successor)) { in GetInnerLoopFiniteSingleExit()
866 exit = successor; in GetInnerLoopFiniteSingleExit()
869 if (successor->GetPredecessors().size() != 1) { in GetInnerLoopFiniteSingleExit()
3135 for (HBasicBlock* successor : header->GetSuccessors()) { in InitPredicateInfoMap()
3136 if (loop_info->Contains(*successor)) { in InitPredicateInfoMap()
3138 BlockPredicateInfo* body_info = predicate_info_map_->Get(successor); in InitPredicateInfoMap()
Dcode_generator_x86_64.h303 void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor);
372 void HandleGoto(HInstruction* got, HBasicBlock* successor);
Dcode_generator_arm64.cc396 SuspendCheckSlowPathARM64(HSuspendCheck* instruction, HBasicBlock* successor) in SuspendCheckSlowPathARM64() argument
397 : SlowPathCodeARM64(instruction), successor_(successor) {} in SuspendCheckSlowPathARM64()
2141 HBasicBlock* successor) { in GenerateSuspendCheck() argument
2143 if (successor != nullptr) { in GenerateSuspendCheck()
2144 __ B(codegen_->GetLabelOf(successor)); in GenerateSuspendCheck()
2152 if (successor != nullptr) { in GenerateSuspendCheck()
2153 __ B(codegen_->GetLabelOf(successor)); in GenerateSuspendCheck()
2162 new (codegen_->GetScopedAllocator()) SuspendCheckSlowPathARM64(instruction, successor); in GenerateSuspendCheck()
2165 if (successor != nullptr) { in GenerateSuspendCheck()
2166 DCHECK(successor->IsLoopHeader()); in GenerateSuspendCheck()
[all …]
Dcode_generator_x86.h308 void GenerateSuspendCheck(HSuspendCheck* check, HBasicBlock* successor);
387 void HandleGoto(HInstruction* got, HBasicBlock* successor);
Dcode_generator_riscv64.cc308 SuspendCheckSlowPathRISCV64(HSuspendCheck* instruction, HBasicBlock* successor) in SuspendCheckSlowPathRISCV64() argument
309 : SlowPathCodeRISCV64(instruction), successor_(successor) {} in SuspendCheckSlowPathRISCV64()
1151 HBasicBlock* successor) { in GenerateSuspendCheck() argument
1153 if (successor != nullptr) { in GenerateSuspendCheck()
1154 __ J(codegen_->GetLabelOf(successor)); in GenerateSuspendCheck()
1169 new (codegen_->GetScopedAllocator()) SuspendCheckSlowPathRISCV64(instruction, successor); in GenerateSuspendCheck()
1172 if (successor != nullptr) { in GenerateSuspendCheck()
1173 DCHECK(successor->IsLoopHeader()); in GenerateSuspendCheck()
1176 DCHECK_EQ(slow_path->GetSuccessor(), successor); in GenerateSuspendCheck()
1186 if (successor == nullptr) { in GenerateSuspendCheck()
[all …]
Dcode_generator_riscv64.h308 void GenerateSuspendCheck(HSuspendCheck* check, HBasicBlock* successor);
378 void HandleGoto(HInstruction* got, HBasicBlock* successor);
Dgraph_visualizer.cc291 for (HBasicBlock* successor : block->GetNormalSuccessors()) { in PrintSuccessors()
292 output_ << " \"" << namer_.GetName(successor) << "\" "; in PrintSuccessors()
Dcode_generator_x86_64.cc162 SuspendCheckSlowPathX86_64(HSuspendCheck* instruction, HBasicBlock* successor) in SuspendCheckSlowPathX86_64() argument
163 : SlowPathCode(instruction), successor_(successor) {} in SuspendCheckSlowPathX86_64()
2096 void InstructionCodeGeneratorX86_64::HandleGoto(HInstruction* got, HBasicBlock* successor) { in HandleGoto() argument
2097 if (successor->IsExitBlock()) { in HandleGoto()
2108 GenerateSuspendCheck(info->GetSuspendCheck(), successor); in HandleGoto()
2115 if (!codegen_->GoesToNextBlock(got->GetBlock(), successor)) { in HandleGoto()
2116 __ jmp(codegen_->GetLabelOf(successor)); in HandleGoto()
2133 HBasicBlock* successor = try_boundary->GetNormalFlowSuccessor(); in VisitTryBoundary() local
2134 if (!successor->IsExitBlock()) { in VisitTryBoundary()
2135 HandleGoto(try_boundary, successor); in VisitTryBoundary()
[all …]
Dcode_generator_arm_vixl.h431 void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor);
513 void HandleGoto(HInstruction* got, HBasicBlock* successor);
/art/test/473-remove-dead-block/
Dinfo.txt2 Removing from predecessors require remove successor otherwise

12