/art/compiler/optimizing/ |
D | code_generator_utils.cc | 144 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()
|
D | nodes.cc | 94 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 …]
|
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 | ssa_liveness_analysis_test.cc | 48 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()
|
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 | dead_code_elimination.cc | 84 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()
|
D | graph_checker.cc | 318 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 …]
|
D | block_builder.cc | 369 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()
|
D | loop_optimization_test.cc | 79 HBasicBlock* AddLoop(HBasicBlock* position, HBasicBlock* successor) { in AddLoop() argument 85 position->ReplaceSuccessor(successor, header); in AddLoop() 87 header->AddSuccessor(successor); in AddLoop()
|
D | bounds_check_elimination.cc | 618 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 …]
|
D | loop_analysis.cc | 36 for (HBasicBlock* successor : block->GetSuccessors()) { in CalculateLoopBasicProperties() 37 if (!loop_info->Contains(*successor)) { in CalculateLoopBasicProperties()
|
D | superblock_cloner.cc | 298 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()
|
D | gvn.cc | 533 for (const HBasicBlock* successor : block->GetSuccessors()) { in WillBeReferencedAgain() local 534 if (!visited_blocks_.IsBitSet(successor->GetBlockId())) { in WillBeReferencedAgain()
|
D | code_sinking.cc | 385 for (HBasicBlock* successor : successors) { in SinkCodeToUncommonBranch() 386 if (!post_dominated.IsBitSet(successor->GetBlockId())) { in SinkCodeToUncommonBranch()
|
D | superblock_cloner_test.cc | 45 HBasicBlock* successor, in CreateBasicLoopControlFlow() argument 52 position->ReplaceSuccessor(successor, loop_preheader); in CreateBasicLoopControlFlow() 56 loop_header->AddSuccessor(successor); in CreateBasicLoopControlFlow()
|
D | loop_optimization.cc | 76 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()
|
D | code_generator_x86_64.h | 303 void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor); 372 void HandleGoto(HInstruction* got, HBasicBlock* successor);
|
D | code_generator_arm64.cc | 396 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 …]
|
D | code_generator_x86.h | 308 void GenerateSuspendCheck(HSuspendCheck* check, HBasicBlock* successor); 387 void HandleGoto(HInstruction* got, HBasicBlock* successor);
|
D | code_generator_riscv64.cc | 308 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 …]
|
D | code_generator_riscv64.h | 308 void GenerateSuspendCheck(HSuspendCheck* check, HBasicBlock* successor); 378 void HandleGoto(HInstruction* got, HBasicBlock* successor);
|
D | graph_visualizer.cc | 291 for (HBasicBlock* successor : block->GetNormalSuccessors()) { in PrintSuccessors() 292 output_ << " \"" << namer_.GetName(successor) << "\" "; in PrintSuccessors()
|
D | code_generator_x86_64.cc | 162 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 …]
|
D | code_generator_arm_vixl.h | 431 void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor); 513 void HandleGoto(HInstruction* got, HBasicBlock* successor);
|
/art/test/473-remove-dead-block/ |
D | info.txt | 2 Removing from predecessors require remove successor otherwise
|