/art/compiler/optimizing/ |
D | nodes.cc | 83 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 …]
|
D | linear_order.cc | 119 for (HBasicBlock* successor : current->GetSuccessors()) { in LinearizeGraphInternal() 120 int block_id = successor->GetBlockId(); in LinearizeGraphInternal() 123 AddToListForLinearization(&worklist, successor); in LinearizeGraphInternal()
|
D | dead_code_elimination.cc | 80 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()
|
D | ssa_liveness_analysis_test.cc | 47 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()
|
D | graph_checker.cc | 198 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 …]
|
D | ssa_liveness_analysis.cc | 177 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()
|
D | block_builder.cc | 382 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()
|
D | loop_optimization_test.cc | 78 HBasicBlock* AddLoop(HBasicBlock* position, HBasicBlock* successor) { in AddLoop() argument 84 position->ReplaceSuccessor(successor, header); in AddLoop() 86 header->AddSuccessor(successor); in AddLoop()
|
D | bounds_check_elimination.cc | 605 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 …]
|
D | loop_analysis.cc | 35 for (HBasicBlock* successor : block->GetSuccessors()) { in CalculateLoopBasicProperties() 36 if (!loop_info->Contains(*successor)) { in CalculateLoopBasicProperties()
|
D | code_sinking.cc | 287 for (HBasicBlock* successor : block->GetSuccessors()) { in SinkCodeToUncommonBranch() 288 if (!post_dominated.IsBitSet(successor->GetBlockId())) { in SinkCodeToUncommonBranch()
|
D | superblock_cloner.cc | 300 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()
|
D | gvn.cc | 536 for (const HBasicBlock* successor : block->GetSuccessors()) { in WillBeReferencedAgain() local 537 if (!visited_blocks_.IsBitSet(successor->GetBlockId())) { in WillBeReferencedAgain()
|
D | superblock_cloner_test.cc | 44 HBasicBlock* successor, in CreateBasicLoopControlFlow() argument 51 position->ReplaceSuccessor(successor, loop_preheader); in CreateBasicLoopControlFlow() 55 loop_header->AddSuccessor(successor); in CreateBasicLoopControlFlow()
|
D | code_generator_x86.h | 239 void GenerateSuspendCheck(HSuspendCheck* check, HBasicBlock* successor); 327 void HandleGoto(HInstruction* got, HBasicBlock* successor);
|
D | code_generator_x86_64.h | 238 void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor); 315 void HandleGoto(HInstruction* got, HBasicBlock* successor);
|
D | code_generator_arm64.cc | 423 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 …]
|
D | graph_visualizer.cc | 270 for (HBasicBlock* successor : block->GetNormalSuccessors()) { in PrintSuccessors() 271 output_ << " \"B" << successor->GetBlockId() << "\" "; in PrintSuccessors()
|
D | code_generator_x86_64.cc | 154 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 …]
|
D | code_generator_arm_vixl.h | 349 void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor); 431 void HandleGoto(HInstruction* got, HBasicBlock* successor);
|
D | code_generator_arm64.h | 320 void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor); 387 void HandleGoto(HInstruction* got, HBasicBlock* successor);
|
D | code_generator_x86.cc | 203 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 …]
|
D | code_generator_arm_vixl.cc | 432 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 …]
|
D | nodes.h | 490 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/ |
D | info.txt | 2 Removing from predecessors require remove successor otherwise
|