Home
last modified time | relevance | path

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

/art/compiler/optimizing/
Ddead_code_elimination.cc105 HBasicBlock* successor = block->GetSuccessors().Get(0); in RemoveDeadBlocks() local
106 if (successor->IsExitBlock() || successor->GetPredecessors().Size() != 1u) { in RemoveDeadBlocks()
110 block->MergeWith(successor); in RemoveDeadBlocks()
Dnodes.cc89 HBasicBlock* successor = block->GetSuccessors().Get(i); in VisitBlockForBackEdges() local
90 if (visiting->IsBitSet(successor->GetBlockId())) { in VisitBlockForBackEdges()
91 successor->AddBackEdge(block); in VisitBlockForBackEdges()
93 VisitBlockForBackEdges(successor, visited, visiting); in VisitBlockForBackEdges()
191 void HGraph::SplitCriticalEdge(HBasicBlock* block, HBasicBlock* successor) { in SplitCriticalEdge() argument
194 HBasicBlock* new_block = new (arena_) HBasicBlock(this, successor->GetDexPc()); in SplitCriticalEdge()
199 new_block->InsertBetween(block, successor); in SplitCriticalEdge()
200 if (successor->IsLoopHeader()) { in SplitCriticalEdge()
202 HLoopInformation* info = successor->GetLoopInformation(); in SplitCriticalEdge()
267 HBasicBlock* successor = block->GetSuccessors().Get(j); in SimplifyCFG() local
[all …]
Dssa_liveness_analysis.cc93 HBasicBlock* successor = current->GetSuccessors().Get(i); in LinearizeGraph() local
94 int block_id = successor->GetBlockId(); in LinearizeGraph()
97 AddToListForLinearization(&worklist, successor); in LinearizeGraph()
189 HBasicBlock* successor = block->GetSuccessors().Get(i); in ComputeLiveRanges() local
190 live_in->Union(GetLiveInSet(*successor)); in ComputeLiveRanges()
191 size_t phi_input_index = successor->GetPredecessorIndexOf(block); in ComputeLiveRanges()
192 for (HInstructionIterator inst_it(successor->GetPhis()); !inst_it.Done(); inst_it.Advance()) { in ComputeLiveRanges()
300 HBasicBlock* successor = block.GetSuccessors().Get(i); in UpdateLiveOut() local
301 if (live_out->Union(GetLiveInSet(*successor))) { in UpdateLiveOut()
Dbounds_check_elimination.cc1166 HBasicBlock* successor, ValueRange* range) { in ApplyRangeFromComparison() argument
1170 GetValueRangeMap(successor)->Overwrite(instruction->GetId(), range); in ApplyRangeFromComparison()
1183 GetValueRangeMap(successor)->Overwrite(instruction->GetId(), narrowed_range); in ApplyRangeFromComparison()
1208 HBasicBlock* successor = nullptr; in HandleIfBetweenTwoMonotonicValueRanges() local
1214 successor = instruction->IfTrueSuccessor(); in HandleIfBetweenTwoMonotonicValueRanges()
1216 successor = instruction->IfTrueSuccessor(); in HandleIfBetweenTwoMonotonicValueRanges()
1218 successor = instruction->IfFalseSuccessor(); in HandleIfBetweenTwoMonotonicValueRanges()
1222 successor = instruction->IfFalseSuccessor(); in HandleIfBetweenTwoMonotonicValueRanges()
1229 if (successor != nullptr) { in HandleIfBetweenTwoMonotonicValueRanges()
1237 ApplyRangeFromComparison(left, instruction->GetBlock(), successor, in HandleIfBetweenTwoMonotonicValueRanges()
[all …]
Dgraph_visualizer.cc122 HBasicBlock* successor = block->GetSuccessors().Get(i); in PrintSuccessors() local
123 output_ << " \"B" << successor->GetBlockId() << "\" "; in PrintSuccessors()
Dgraph_checker.cc288 HBasicBlock* successor = block->GetSuccessors().Get(j); in VisitBasicBlock() local
289 if (successor->GetPredecessors().Size() > 1) { in VisitBasicBlock()
292 successor->GetBlockId())); in VisitBasicBlock()
Dcode_generator_arm64.cc264 HBasicBlock* successor) in SuspendCheckSlowPathARM64() argument
265 : instruction_(instruction), successor_(successor) {} in SuspendCheckSlowPathARM64()
1038 HBasicBlock* successor) { in GenerateSuspendCheck() argument
1042 slow_path = new (GetGraph()->GetArena()) SuspendCheckSlowPathARM64(instruction, successor); in GenerateSuspendCheck()
1045 if (successor != nullptr) { in GenerateSuspendCheck()
1046 DCHECK(successor->IsLoopHeader()); in GenerateSuspendCheck()
1050 DCHECK_EQ(slow_path->GetSuccessor(), successor); in GenerateSuspendCheck()
1057 if (successor == nullptr) { in GenerateSuspendCheck()
1061 __ Cbz(temp, codegen_->GetLabelOf(successor)); in GenerateSuspendCheck()
1718 HBasicBlock* successor = got->GetSuccessor(); in VisitGoto() local
[all …]
Dcode_generator_mips64.cc278 HBasicBlock* successor) in SuspendCheckSlowPathMIPS64() argument
279 : instruction_(instruction), successor_(successor) {} in SuspendCheckSlowPathMIPS64()
984 HBasicBlock* successor) { in GenerateSuspendCheck() argument
986 new (GetGraph()->GetArena()) SuspendCheckSlowPathMIPS64(instruction, successor); in GenerateSuspendCheck()
993 if (successor == nullptr) { in GenerateSuspendCheck()
997 __ Beqzc(TMP, codegen_->GetLabelOf(successor)); in GenerateSuspendCheck()
1931 HBasicBlock* successor = got->GetSuccessor(); in VisitGoto() local
1932 DCHECK(!successor->IsExitBlock()); in VisitGoto()
1939 GenerateSuspendCheck(info->GetSuspendCheck(), successor); in VisitGoto()
1945 if (!codegen_->GoesToNextBlock(block, successor)) { in VisitGoto()
[all …]
Dcode_generator_arm.cc93 SuspendCheckSlowPathARM(HSuspendCheck* instruction, HBasicBlock* successor) in SuspendCheckSlowPathARM() argument
94 : instruction_(instruction), successor_(successor) {} in SuspendCheckSlowPathARM()
907 HBasicBlock* successor = got->GetSuccessor(); in VisitGoto() local
908 DCHECK(!successor->IsExitBlock()); in VisitGoto()
916 GenerateSuspendCheck(info->GetSuspendCheck(), successor); in VisitGoto()
923 if (!codegen_->GoesToNextBlock(got->GetBlock(), successor)) { in VisitGoto()
924 __ b(codegen_->GetLabelOf(successor)); in VisitGoto()
3541 HBasicBlock* successor) { in GenerateSuspendCheck() argument
3545 slow_path = new (GetGraph()->GetArena()) SuspendCheckSlowPathARM(instruction, successor); in GenerateSuspendCheck()
3548 if (successor != nullptr) { in GenerateSuspendCheck()
[all …]
Dcode_generator_arm.h176 void GenerateSuspendCheck(HSuspendCheck* check, HBasicBlock* successor);
Dcode_generator_mips64.h187 void GenerateSuspendCheck(HSuspendCheck* check, HBasicBlock* successor);
Dcode_generator_x86.h159 void GenerateSuspendCheck(HSuspendCheck* check, HBasicBlock* successor);
Dcode_generator_x86_64.h169 void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor);
Dcode_generator_x86.cc134 SuspendCheckSlowPathX86(HSuspendCheck* instruction, HBasicBlock* successor) in SuspendCheckSlowPathX86() argument
135 : instruction_(instruction), successor_(successor) {} in SuspendCheckSlowPathX86()
808 HBasicBlock* successor = got->GetSuccessor(); in VisitGoto() local
809 DCHECK(!successor->IsExitBlock()); in VisitGoto()
816 GenerateSuspendCheck(info->GetSuspendCheck(), successor); in VisitGoto()
823 if (!codegen_->GoesToNextBlock(got->GetBlock(), successor)) { in VisitGoto()
824 __ jmp(codegen_->GetLabelOf(successor)); in VisitGoto()
4002 HBasicBlock* successor) { in GenerateSuspendCheck() argument
4006 slow_path = new (GetGraph()->GetArena()) SuspendCheckSlowPathX86(instruction, successor); in GenerateSuspendCheck()
4009 if (successor != nullptr) { in GenerateSuspendCheck()
[all …]
Dcode_generator_x86_64.cc117 explicit SuspendCheckSlowPathX86_64(HSuspendCheck* instruction, HBasicBlock* successor) in SuspendCheckSlowPathX86_64() argument
118 : instruction_(instruction), successor_(successor) {} in SuspendCheckSlowPathX86_64()
771 HBasicBlock* successor = got->GetSuccessor(); in VisitGoto() local
772 DCHECK(!successor->IsExitBlock()); in VisitGoto()
779 GenerateSuspendCheck(info->GetSuspendCheck(), successor); in VisitGoto()
786 if (!codegen_->GoesToNextBlock(got->GetBlock(), successor)) { in VisitGoto()
787 __ jmp(codegen_->GetLabelOf(successor)); in VisitGoto()
3869 HBasicBlock* successor) { in GenerateSuspendCheck() argument
3873 slow_path = new (GetGraph()->GetArena()) SuspendCheckSlowPathX86_64(instruction, successor); in GenerateSuspendCheck()
3876 if (successor != nullptr) { in GenerateSuspendCheck()
[all …]
Dnodes.h195 void SplitCriticalEdge(HBasicBlock* block, HBasicBlock* successor);
590 void InsertBetween(HBasicBlock* predecessor, HBasicBlock* successor) { in InsertBetween() argument
591 size_t predecessor_index = successor->GetPredecessorIndexOf(predecessor); in InsertBetween()
593 size_t successor_index = predecessor->GetSuccessorIndexOf(successor); in InsertBetween()
595 successor->predecessors_.Put(predecessor_index, this); in InsertBetween()
597 successors_.Add(successor); in InsertBetween()
641 size_t GetSuccessorIndexOf(HBasicBlock* successor) { in GetSuccessorIndexOf() argument
643 if (successors_.Get(i) == successor) { in GetSuccessorIndexOf()
Dcode_generator_arm64.h157 void GenerateSuspendCheck(HSuspendCheck* instruction, HBasicBlock* successor);
/art/test/473-remove-dead-block/
Dinfo.txt2 Removing from predecessors require remove successor otherwise
/art/compiler/dex/
Dmir_graph.cc2070 BasicBlock* successor = succIter.Next(); in ComputeTopologicalSortOrder() local
2071 for ( ; successor != nullptr; successor = succIter.Next()) { in ComputeTopologicalSortOrder()
2072 if (successor->hidden) { in ComputeTopologicalSortOrder()
2077 visited_cnt_values[successor->id] += 1u; in ComputeTopologicalSortOrder()
2078 if (visited_cnt_values[successor->id] == successor->predecessors.size()) { in ComputeTopologicalSortOrder()
2080 loop_head_reachable_from[loop_head_stack.back()]->IsBitSet(successor->id)) { in ComputeTopologicalSortOrder()
2081 q.push(successor); in ComputeTopologicalSortOrder()
2083 DCHECK(!loop_exit_blocks.IsBitSet(successor->id)); in ComputeTopologicalSortOrder()
2084 loop_exit_blocks.SetBit(successor->id); in ComputeTopologicalSortOrder()