Searched refs:successor (Results 1 - 25 of 28) sorted by relevance

12

/art/compiler/optimizing/
H A Ddead_code_elimination.cc75 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 Dlinear_order.cc106 // 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 Dloop_optimization_test.cc62 /** 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 Dnodes.cc79 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 Dssa_liveness_analysis_test.cc54 HBasicBlock* successor = new (&allocator_) HBasicBlock(graph); local
55 graph->AddBlock(successor);
56 block->AddSuccessor(successor);
57 return successor;
H A Dblock_builder.cc39 // 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 Dgraph_checker.cc156 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 Dssa_liveness_analysis.cc148 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 Dbounds_check_elimination.cc603 // 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 Dcode_sinking.cc257 for (HBasicBlock* successor : block->GetSuccessors()) {
258 if (!post_dominated.IsBitSet(successor->GetBlockId())) {
H A Dgvn.cc367 // 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 Dcode_generator_arm.h228 // 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 Dcode_generator_mips.h235 void GenerateSuspendCheck(HSuspendCheck* check, HBasicBlock* successor);
333 void HandleGoto(HInstruction* got, HBasicBlock* successor);
H A Dcode_generator_mips64.h232 void GenerateSuspendCheck(HSuspendCheck* check, HBasicBlock* successor);
305 void HandleGoto(HInstruction* got, HBasicBlock* successor);
H A Dcode_generator_x86.h209 // 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 Dcode_generator_x86_64.h205 // 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 Dcode_generator_arm64.cc487 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 Dcode_generator_arm64.h256 void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor);
319 void HandleGoto(HInstruction* got, HBasicBlock* successor);
H A Dcode_generator_arm_vixl.h323 // 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 Dgraph_visualizer.cc272 for (HBasicBlock* successor : block->GetNormalSuccessors()) {
273 output_ << " \"B" << successor->GetBlockId() << "\" ";
H A Dcode_generator_mips64.cc305 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 Dcode_generator_arm.cc293 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 Dcode_generator_arm_vixl.cc320 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 Dcode_generator_x86.cc182 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 Dcode_generator_x86_64.cc139 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...]

Completed in 793 milliseconds

12