/art/compiler/optimizing/ |
H A D | dead_code_elimination.cc | 75 for (HBasicBlock* successor : live_successors) { 77 if (!visited->IsBitSet(successor->GetBlockId())) { 78 visited->SetBit(successor->GetBlockId()); 79 worklist.push_back(successor); 293 HBasicBlock* successor = block->GetSingleSuccessor(); local 294 if (successor->IsExitBlock() || successor->GetPredecessors().size() != 1u) { 297 DCHECK_LT(i, IndexOfElement(graph_->GetReversePostOrder(), successor)); 298 block->MergeWith(successor); 302 // Reiterate on this block in case it can be merged with its new successor [all...] |
H A D | linear_order.cc | 106 // successor block are visited, the successor block is added in the worklist 115 for (HBasicBlock* successor : current->GetSuccessors()) { 116 int block_id = successor->GetBlockId(); 119 AddToListForLinearization(&worklist, successor);
|
H A D | loop_optimization_test.cc | 62 /** Adds a loop nest at given position before successor. */ 63 HBasicBlock* AddLoop(HBasicBlock* position, HBasicBlock* successor) { argument 69 position->ReplaceSuccessor(successor, header); 71 header->AddSuccessor(successor);
|
H A D | nodes.cc | 79 HBasicBlock* successor = current->GetSuccessors()[successors_visited[current_id]++]; local 80 uint32_t successor_id = successor->GetBlockId(); 82 DCHECK(ContainsElement(worklist, successor)); 83 successor->AddBackEdge(current); 87 worklist.push_back(successor); 128 // We only need to update the successor, which might be live. 129 for (HBasicBlock* successor : block->GetSuccessors()) { 130 successor->RemovePredecessor(block); 210 static bool UpdateDominatorOfSuccessor(HBasicBlock* block, HBasicBlock* successor) { argument 211 DCHECK(ContainsElement(block->GetSuccessors(), successor)); 249 HBasicBlock* successor = current->GetSuccessors()[successors_visited[current_id]++]; local 307 SplitEdge(HBasicBlock* block, HBasicBlock* successor) argument 316 SplitCriticalEdge(HBasicBlock* block, HBasicBlock* successor) argument 415 HBasicBlock* successor = normal_successors[j]; local 1965 HBasicBlock* successor = GetSuccessors()[0]; local [all...] |
H A D | ssa_liveness_analysis_test.cc | 54 HBasicBlock* successor = new (&allocator_) HBasicBlock(graph); local 55 graph->AddBlock(successor); 56 block->AddSuccessor(successor); 57 return successor;
|
H A D | block_builder.cc | 39 // Create the first block for the dex instructions, single successor of the entry block. 329 // the successor is not in the same TryItem. 334 HBasicBlock* successor = try_block->GetSuccessors()[i]; local 336 // If the successor is a try block, all of its predecessors must be 339 if (GetTryItem(successor, try_block_info) != nullptr) { 340 DCHECK_EQ(entry.second, GetTryItem(successor, try_block_info)); 346 new (arena_) HTryBoundary(HTryBoundary::BoundaryKind::kExit, successor->GetDexPc()); 347 graph_->SplitEdge(try_block, successor)->AddInstruction(try_exit);
|
H A D | graph_checker.cc | 156 for (HBasicBlock* successor : block->GetNormalSuccessors()) { 157 if (successor->IsCatchBlock()) { 158 AddError(StringPrintf("Catch block %d is a normal successor of block %d.", 159 successor->GetBlockId(), 163 for (HBasicBlock* successor : block->GetExceptionalSuccessors()) { 164 if (!successor->IsCatchBlock()) { 165 AddError(StringPrintf("Normal block %d is an exceptional successor of block %d.", 166 successor->GetBlockId(), 188 for (HBasicBlock* successor : block->GetNormalSuccessors()) { 189 if (successor 515 HBasicBlock* successor = ret->GetBlock()->GetSingleSuccessor(); local 525 HBasicBlock* successor = ret->GetBlock()->GetSingleSuccessor(); local [all...] |
H A D | ssa_liveness_analysis.cc | 148 for (HBasicBlock* successor : block->GetSuccessors()) { 149 live_in->Union(GetLiveInSet(*successor)); 150 if (successor->IsCatchBlock()) { 160 size_t phi_input_index = successor->GetPredecessorIndexOf(block); 161 for (HInstructionIterator phi_it(successor->GetPhis()); !phi_it.Done(); phi_it.Advance()) { 277 for (HBasicBlock* successor : block.GetSuccessors()) { 278 if (live_out->Union(GetLiveInSet(*successor))) {
|
H A D | bounds_check_elimination.cc | 603 // and push the narrowed value range to `successor`. 605 HBasicBlock* successor, ValueRange* range) { 609 AssignRange(successor, instruction, range); 621 AssignRange(successor, instruction, existing_range->Narrow(range)); 646 HBasicBlock* successor = nullptr; local 652 successor = instruction->IfTrueSuccessor(); 654 successor = instruction->IfTrueSuccessor(); 656 successor = instruction->IfFalseSuccessor(); 660 successor = instruction->IfFalseSuccessor(); 667 if (successor ! 604 ApplyRangeFromComparison(HInstruction* instruction, HBasicBlock* basic_block, HBasicBlock* successor, ValueRange* range) argument [all...] |
H A D | code_sinking.cc | 257 for (HBasicBlock* successor : block->GetSuccessors()) { 258 if (!post_dominated.IsBitSet(successor->GetBlockId())) {
|
H A D | gvn.cc | 367 // successor blocks. 433 // `block` is a direct successor of its dominator. No need to clone the 525 for (auto successor : block->GetSuccessors()) { 526 if (!visited_blocks_.IsBitSet(successor->GetBlockId())) {
|
H A D | code_generator_arm.h | 228 // Generate code for the given suspend check. If not null, `successor` 231 void GenerateSuspendCheck(HSuspendCheck* check, HBasicBlock* successor); 307 void HandleGoto(HInstruction* got, HBasicBlock* successor);
|
H A D | code_generator_mips.h | 235 void GenerateSuspendCheck(HSuspendCheck* check, HBasicBlock* successor); 333 void HandleGoto(HInstruction* got, HBasicBlock* successor);
|
H A D | code_generator_mips64.h | 232 void GenerateSuspendCheck(HSuspendCheck* check, HBasicBlock* successor); 305 void HandleGoto(HInstruction* got, HBasicBlock* successor);
|
H A D | code_generator_x86.h | 209 // Generate code for the given suspend check. If not null, `successor` 212 void GenerateSuspendCheck(HSuspendCheck* check, HBasicBlock* successor); 295 void HandleGoto(HInstruction* got, HBasicBlock* successor);
|
H A D | code_generator_x86_64.h | 205 // Generate code for the given suspend check. If not null, `successor` 208 void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor); 279 void HandleGoto(HInstruction* got, HBasicBlock* successor);
|
H A D | code_generator_arm64.cc | 487 SuspendCheckSlowPathARM64(HSuspendCheck* instruction, HBasicBlock* successor) argument 488 : SlowPathCodeARM64(instruction), successor_(successor) {} 2181 HBasicBlock* successor) { 2185 slow_path = new (GetGraph()->GetArena()) SuspendCheckSlowPathARM64(instruction, successor); 2188 if (successor != nullptr) { 2189 DCHECK(successor->IsLoopHeader()); 2193 DCHECK_EQ(slow_path->GetSuccessor(), successor); 2200 if (successor == nullptr) { 2204 __ Cbz(temp, codegen_->GetLabelOf(successor)); 2206 // slow_path will return to GetLabelOf(successor) 2180 GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor) argument 3524 HandleGoto(HInstruction* got, HBasicBlock* successor) argument 3556 HBasicBlock* successor = try_boundary->GetNormalFlowSuccessor(); local [all...] |
H A D | code_generator_arm64.h | 256 void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor); 319 void HandleGoto(HInstruction* got, HBasicBlock* successor);
|
H A D | code_generator_arm_vixl.h | 323 // Generate code for the given suspend check. If not null, `successor` 326 void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor); 411 void HandleGoto(HInstruction* got, HBasicBlock* successor);
|
H A D | graph_visualizer.cc | 272 for (HBasicBlock* successor : block->GetNormalSuccessors()) { 273 output_ << " \"B" << successor->GetBlockId() << "\" ";
|
H A D | code_generator_mips64.cc | 305 SuspendCheckSlowPathMIPS64(HSuspendCheck* instruction, HBasicBlock* successor) argument 306 : SlowPathCodeMIPS64(instruction), successor_(successor) {} 1704 HBasicBlock* successor) { 1706 new (GetGraph()->GetArena()) SuspendCheckSlowPathMIPS64(instruction, successor); 1713 if (successor == nullptr) { 1717 __ Beqzc(TMP, codegen_->GetLabelOf(successor)); 1719 // slow_path will return to GetLabelOf(successor). 3321 void InstructionCodeGeneratorMIPS64::HandleGoto(HInstruction* got, HBasicBlock* successor) { 3322 DCHECK(!successor->IsExitBlock()); 3329 GenerateSuspendCheck(info->GetSuspendCheck(), successor); [all...] |
H A D | code_generator_arm.cc | 293 SuspendCheckSlowPathARM(HSuspendCheck* instruction, HBasicBlock* successor) argument 294 : SlowPathCodeARM(instruction), successor_(successor) {} 2389 void InstructionCodeGeneratorARM::HandleGoto(HInstruction* got, HBasicBlock* successor) { argument 2390 DCHECK(!successor->IsExitBlock()); 2398 GenerateSuspendCheck(info->GetSuspendCheck(), successor); 2405 if (!codegen_->GoesToNextBlock(got->GetBlock(), successor)) { 2406 __ b(codegen_->GetLabelOf(successor)); 2423 HBasicBlock* successor = try_boundary->GetNormalFlowSuccessor(); local 2424 if (!successor->IsExitBlock()) { 2425 HandleGoto(try_boundary, successor); 6384 GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor) argument [all...] |
H A D | code_generator_arm_vixl.cc | 320 SuspendCheckSlowPathARMVIXL(HSuspendCheck* instruction, HBasicBlock* successor) argument 321 : SlowPathCodeARMVIXL(instruction), successor_(successor) {} 2426 void InstructionCodeGeneratorARMVIXL::HandleGoto(HInstruction* got, HBasicBlock* successor) { argument 2427 DCHECK(!successor->IsExitBlock()); 2434 GenerateSuspendCheck(info->GetSuspendCheck(), successor); 2440 if (!codegen_->GoesToNextBlock(block, successor)) { 2441 __ B(codegen_->GetLabelOf(successor)); 2458 HBasicBlock* successor = try_boundary->GetNormalFlowSuccessor(); local 2459 if (!successor->IsExitBlock()) { 2460 HandleGoto(try_boundary, successor); 6422 GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor) argument [all...] |
H A D | code_generator_x86.cc | 182 SuspendCheckSlowPathX86(HSuspendCheck* instruction, HBasicBlock* successor) argument 183 : SlowPathCode(instruction), successor_(successor) {} 1351 void InstructionCodeGeneratorX86::HandleGoto(HInstruction* got, HBasicBlock* successor) { argument 1352 DCHECK(!successor->IsExitBlock()); 1359 GenerateSuspendCheck(info->GetSuspendCheck(), successor); 1366 if (!codegen_->GoesToNextBlock(got->GetBlock(), successor)) { 1367 __ jmp(codegen_->GetLabelOf(successor)); 1384 HBasicBlock* successor = try_boundary->GetNormalFlowSuccessor(); local 1385 if (!successor->IsExitBlock()) { 1386 HandleGoto(try_boundary, successor); 5743 GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor) argument [all...] |
H A D | code_generator_x86_64.cc | 139 SuspendCheckSlowPathX86_64(HSuspendCheck* instruction, HBasicBlock* successor) argument 140 : SlowPathCode(instruction), successor_(successor) {} 1454 void InstructionCodeGeneratorX86_64::HandleGoto(HInstruction* got, HBasicBlock* successor) { argument 1455 DCHECK(!successor->IsExitBlock()); 1462 GenerateSuspendCheck(info->GetSuspendCheck(), successor); 1469 if (!codegen_->GoesToNextBlock(got->GetBlock(), successor)) { 1470 __ jmp(codegen_->GetLabelOf(successor)); 1487 HBasicBlock* successor = try_boundary->GetNormalFlowSuccessor(); local 1488 if (!successor->IsExitBlock()) { 1489 HandleGoto(try_boundary, successor); 5196 GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor) argument [all...] |