Home
last modified time | relevance | path

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

12

/art/compiler/optimizing/
Dnodes.cc83 HBasicBlock* successor = current->GetSuccessors()[successors_visited[current_id]++]; in FindBackEdges() local
84 uint32_t successor_id = successor->GetBlockId(); in FindBackEdges()
86 DCHECK(ContainsElement(worklist, successor)); in FindBackEdges()
87 successor->AddBackEdge(current); in FindBackEdges()
91 worklist.push_back(successor); in FindBackEdges()
165 for (HBasicBlock* successor : block->GetSuccessors()) { in RemoveDeadBlocks()
166 successor->RemovePredecessor(block); in RemoveDeadBlocks()
250 static bool UpdateDominatorOfSuccessor(HBasicBlock* block, HBasicBlock* successor) { in UpdateDominatorOfSuccessor() argument
251 DCHECK(ContainsElement(block->GetSuccessors(), successor)); in UpdateDominatorOfSuccessor()
253 HBasicBlock* old_dominator = successor->GetDominator(); in UpdateDominatorOfSuccessor()
[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()
Ddead_code_elimination.cc80 for (HBasicBlock* successor : live_successors) { in MarkReachableBlocks()
82 if (!visited->IsBitSet(successor->GetBlockId())) { in MarkReachableBlocks()
83 visited->SetBit(successor->GetBlockId()); in MarkReachableBlocks()
84 worklist.push_back(successor); in MarkReachableBlocks()
433 HBasicBlock* successor = block->GetSingleSuccessor(); in ConnectSuccessiveBlocks() local
434 if (successor->IsExitBlock() || successor->GetPredecessors().size() != 1u) { in ConnectSuccessiveBlocks()
437 DCHECK_LT(i, IndexOfElement(graph_->GetReversePostOrder(), successor)); in ConnectSuccessiveBlocks()
438 block->MergeWith(successor); in ConnectSuccessiveBlocks()
Dssa_liveness_analysis_test.cc47 HBasicBlock* successor = new (GetAllocator()) HBasicBlock(graph); in CreateSuccessor() local
48 graph->AddBlock(successor); in CreateSuccessor()
49 block->AddSuccessor(successor); in CreateSuccessor()
50 return successor; in CreateSuccessor()
Dgraph_checker.cc198 for (HBasicBlock* successor : block->GetNormalSuccessors()) { in VisitBasicBlock()
199 if (successor->IsCatchBlock()) { in VisitBasicBlock()
201 successor->GetBlockId(), in VisitBasicBlock()
205 for (HBasicBlock* successor : block->GetExceptionalSuccessors()) { in VisitBasicBlock()
206 if (!successor->IsCatchBlock()) { in VisitBasicBlock()
208 successor->GetBlockId(), in VisitBasicBlock()
230 for (HBasicBlock* successor : block->GetNormalSuccessors()) { in VisitBasicBlock()
231 if (successor->GetPredecessors().size() > 1) { in VisitBasicBlock()
234 successor->GetBlockId())); in VisitBasicBlock()
563 HBasicBlock* successor = ret->GetBlock()->GetSingleSuccessor(); in VisitReturn() local
[all …]
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()
Dblock_builder.cc382 HBasicBlock* successor = try_block->GetSuccessors()[i]; in InsertTryBoundaryBlocks() local
387 if (GetTryItem(successor, try_block_info) != nullptr) { in InsertTryBoundaryBlocks()
388 DCHECK_EQ(try_item, GetTryItem(successor, try_block_info)); in InsertTryBoundaryBlocks()
394 new (allocator_) HTryBoundary(HTryBoundary::BoundaryKind::kExit, successor->GetDexPc()); in InsertTryBoundaryBlocks()
395 graph_->SplitEdge(try_block, successor)->AddInstruction(try_exit); in InsertTryBoundaryBlocks()
Dloop_optimization_test.cc78 HBasicBlock* AddLoop(HBasicBlock* position, HBasicBlock* successor) { in AddLoop() argument
84 position->ReplaceSuccessor(successor, header); in AddLoop()
86 header->AddSuccessor(successor); in AddLoop()
Dbounds_check_elimination.cc605 HBasicBlock* successor, ValueRange* range) { in ApplyRangeFromComparison() argument
609 AssignRange(successor, instruction, range); in ApplyRangeFromComparison()
621 AssignRange(successor, instruction, existing_range->Narrow(range)); in ApplyRangeFromComparison()
646 HBasicBlock* successor = nullptr; in HandleIfBetweenTwoMonotonicValueRanges() local
652 successor = instruction->IfTrueSuccessor(); in HandleIfBetweenTwoMonotonicValueRanges()
654 successor = instruction->IfTrueSuccessor(); in HandleIfBetweenTwoMonotonicValueRanges()
656 successor = instruction->IfFalseSuccessor(); in HandleIfBetweenTwoMonotonicValueRanges()
660 successor = instruction->IfFalseSuccessor(); in HandleIfBetweenTwoMonotonicValueRanges()
667 if (successor != nullptr) { in HandleIfBetweenTwoMonotonicValueRanges()
675 ApplyRangeFromComparison(left, instruction->GetBlock(), successor, in HandleIfBetweenTwoMonotonicValueRanges()
[all …]
Dloop_analysis.cc35 for (HBasicBlock* successor : block->GetSuccessors()) { in CalculateLoopBasicProperties()
36 if (!loop_info->Contains(*successor)) { in CalculateLoopBasicProperties()
Dcode_sinking.cc287 for (HBasicBlock* successor : block->GetSuccessors()) { in SinkCodeToUncommonBranch()
288 if (!post_dominated.IsBitSet(successor->GetBlockId())) { in SinkCodeToUncommonBranch()
Dsuperblock_cloner.cc300 HBasicBlock* successor = current->GetSuccessors()[successors_visited[current_id]++]; in FindBackEdgesLocal() local
301 uint32_t successor_id = successor->GetBlockId(); in FindBackEdgesLocal()
307 DCHECK(ContainsElement(worklist, successor)); in FindBackEdgesLocal()
308 successor->AddBackEdgeWhileUpdating(current); in FindBackEdgesLocal()
312 worklist.push_back(successor); in FindBackEdgesLocal()
Dgvn.cc536 for (const HBasicBlock* successor : block->GetSuccessors()) { in WillBeReferencedAgain() local
537 if (!visited_blocks_.IsBitSet(successor->GetBlockId())) { in WillBeReferencedAgain()
Dsuperblock_cloner_test.cc44 HBasicBlock* successor, in CreateBasicLoopControlFlow() argument
51 position->ReplaceSuccessor(successor, loop_preheader); in CreateBasicLoopControlFlow()
55 loop_header->AddSuccessor(successor); in CreateBasicLoopControlFlow()
Dcode_generator_x86.h239 void GenerateSuspendCheck(HSuspendCheck* check, HBasicBlock* successor);
327 void HandleGoto(HInstruction* got, HBasicBlock* successor);
Dcode_generator_x86_64.h238 void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor);
315 void HandleGoto(HInstruction* got, HBasicBlock* successor);
Dcode_generator_arm64.cc423 SuspendCheckSlowPathARM64(HSuspendCheck* instruction, HBasicBlock* successor) in SuspendCheckSlowPathARM64() argument
424 : SlowPathCodeARM64(instruction), successor_(successor) {} in SuspendCheckSlowPathARM64()
1920 HBasicBlock* successor) { in GenerateSuspendCheck() argument
1925 new (codegen_->GetScopedAllocator()) SuspendCheckSlowPathARM64(instruction, successor); in GenerateSuspendCheck()
1928 if (successor != nullptr) { in GenerateSuspendCheck()
1929 DCHECK(successor->IsLoopHeader()); in GenerateSuspendCheck()
1932 DCHECK_EQ(slow_path->GetSuccessor(), successor); in GenerateSuspendCheck()
1939 if (successor == nullptr) { in GenerateSuspendCheck()
1943 __ Cbz(temp, codegen_->GetLabelOf(successor)); in GenerateSuspendCheck()
3405 void InstructionCodeGeneratorARM64::HandleGoto(HInstruction* got, HBasicBlock* successor) { in HandleGoto() argument
[all …]
Dgraph_visualizer.cc270 for (HBasicBlock* successor : block->GetNormalSuccessors()) { in PrintSuccessors()
271 output_ << " \"B" << successor->GetBlockId() << "\" "; in PrintSuccessors()
Dcode_generator_x86_64.cc154 SuspendCheckSlowPathX86_64(HSuspendCheck* instruction, HBasicBlock* successor) in SuspendCheckSlowPathX86_64() argument
155 : SlowPathCode(instruction), successor_(successor) {} in SuspendCheckSlowPathX86_64()
1638 void InstructionCodeGeneratorX86_64::HandleGoto(HInstruction* got, HBasicBlock* successor) { in HandleGoto() argument
1639 if (successor->IsExitBlock()) { in HandleGoto()
1650 GenerateSuspendCheck(info->GetSuspendCheck(), successor); in HandleGoto()
1657 if (!codegen_->GoesToNextBlock(got->GetBlock(), successor)) { in HandleGoto()
1658 __ jmp(codegen_->GetLabelOf(successor)); in HandleGoto()
1675 HBasicBlock* successor = try_boundary->GetNormalFlowSuccessor(); in VisitTryBoundary() local
1676 if (!successor->IsExitBlock()) { in VisitTryBoundary()
1677 HandleGoto(try_boundary, successor); in VisitTryBoundary()
[all …]
Dcode_generator_arm_vixl.h349 void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor);
431 void HandleGoto(HInstruction* got, HBasicBlock* successor);
Dcode_generator_arm64.h320 void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor);
387 void HandleGoto(HInstruction* got, HBasicBlock* successor);
Dcode_generator_x86.cc203 SuspendCheckSlowPathX86(HSuspendCheck* instruction, HBasicBlock* successor) in SuspendCheckSlowPathX86() argument
204 : SlowPathCode(instruction), successor_(successor) {} in SuspendCheckSlowPathX86()
1469 void InstructionCodeGeneratorX86::HandleGoto(HInstruction* got, HBasicBlock* successor) { in HandleGoto() argument
1470 if (successor->IsExitBlock()) { in HandleGoto()
1481 GenerateSuspendCheck(info->GetSuspendCheck(), successor); in HandleGoto()
1488 if (!codegen_->GoesToNextBlock(got->GetBlock(), successor)) { in HandleGoto()
1489 __ jmp(codegen_->GetLabelOf(successor)); in HandleGoto()
1506 HBasicBlock* successor = try_boundary->GetNormalFlowSuccessor(); in VisitTryBoundary() local
1507 if (!successor->IsExitBlock()) { in VisitTryBoundary()
1508 HandleGoto(try_boundary, successor); in VisitTryBoundary()
[all …]
Dcode_generator_arm_vixl.cc432 SuspendCheckSlowPathARMVIXL(HSuspendCheck* instruction, HBasicBlock* successor) in SuspendCheckSlowPathARMVIXL() argument
433 : SlowPathCodeARMVIXL(instruction), successor_(successor) {} in SuspendCheckSlowPathARMVIXL()
2599 void InstructionCodeGeneratorARMVIXL::HandleGoto(HInstruction* got, HBasicBlock* successor) { in HandleGoto() argument
2600 if (successor->IsExitBlock()) { in HandleGoto()
2611 GenerateSuspendCheck(info->GetSuspendCheck(), successor); in HandleGoto()
2618 if (!codegen_->GoesToNextBlock(block, successor)) { in HandleGoto()
2619 __ B(codegen_->GetLabelOf(successor)); in HandleGoto()
2636 HBasicBlock* successor = try_boundary->GetNormalFlowSuccessor(); in VisitTryBoundary() local
2637 if (!successor->IsExitBlock()) { in VisitTryBoundary()
2638 HandleGoto(try_boundary, successor); in VisitTryBoundary()
[all …]
Dnodes.h490 HBasicBlock* SplitEdge(HBasicBlock* block, HBasicBlock* successor);
492 void SplitCriticalEdge(HBasicBlock* block, HBasicBlock* successor);
1177 void InsertBetween(HBasicBlock* predecessor, HBasicBlock* successor) { in InsertBetween() argument
1178 size_t predecessor_index = successor->GetPredecessorIndexOf(predecessor); in InsertBetween()
1179 size_t successor_index = predecessor->GetSuccessorIndexOf(successor); in InsertBetween()
1180 successor->predecessors_[predecessor_index] = this; in InsertBetween()
1182 successors_.push_back(successor); in InsertBetween()
1217 size_t GetSuccessorIndexOf(HBasicBlock* successor) const { in GetSuccessorIndexOf() argument
1218 return IndexOfElement(successors_, successor); in GetSuccessorIndexOf()
/art/test/473-remove-dead-block/
Dinfo.txt2 Removing from predecessors require remove successor otherwise

12