Lines Matching refs:block

27 void HGraph::AddBlock(HBasicBlock* block) {  in AddBlock()  argument
28 block->SetBlockId(blocks_.Size()); in AddBlock()
29 blocks_.Add(block); in AddBlock()
56 HBasicBlock* block = blocks_.Get(i); in RemoveInstructionsAsUsersFromDeadBlocks() local
57 DCHECK(block->GetPhis().IsEmpty()) << "Phis are not inserted at this stage"; in RemoveInstructionsAsUsersFromDeadBlocks()
58 for (HInstructionIterator it(block->GetInstructions()); !it.Done(); it.Advance()) { in RemoveInstructionsAsUsersFromDeadBlocks()
68 HBasicBlock* block = blocks_.Get(i); in RemoveDeadBlocks() local
70 for (size_t j = 0; j < block->GetSuccessors().Size(); ++j) { in RemoveDeadBlocks()
71 block->GetSuccessors().Get(j)->RemovePredecessor(block); in RemoveDeadBlocks()
80 void HGraph::VisitBlockForBackEdges(HBasicBlock* block, in VisitBlockForBackEdges() argument
83 int id = block->GetBlockId(); in VisitBlockForBackEdges()
88 for (size_t i = 0; i < block->GetSuccessors().Size(); i++) { in VisitBlockForBackEdges()
89 HBasicBlock* successor = block->GetSuccessors().Get(i); in VisitBlockForBackEdges()
91 successor->AddBackEdge(block); in VisitBlockForBackEdges()
163 void HGraph::VisitBlockForDominatorTree(HBasicBlock* block, in VisitBlockForDominatorTree() argument
166 if (block->GetDominator() == nullptr) { in VisitBlockForDominatorTree()
167 block->SetDominator(predecessor); in VisitBlockForDominatorTree()
169 block->SetDominator(FindCommonDominator(block->GetDominator(), predecessor)); in VisitBlockForDominatorTree()
172 visits->Increment(block->GetBlockId()); in VisitBlockForDominatorTree()
175 if (visits->Get(block->GetBlockId()) == in VisitBlockForDominatorTree()
176 block->GetPredecessors().Size() - block->NumberOfBackEdges()) { in VisitBlockForDominatorTree()
177 block->GetDominator()->AddDominatedBlock(block); in VisitBlockForDominatorTree()
178 reverse_post_order_.Add(block); in VisitBlockForDominatorTree()
179 for (size_t i = 0; i < block->GetSuccessors().Size(); i++) { in VisitBlockForDominatorTree()
180 VisitBlockForDominatorTree(block->GetSuccessors().Get(i), block, visits); in VisitBlockForDominatorTree()
191 void HGraph::SplitCriticalEdge(HBasicBlock* block, HBasicBlock* successor) { in SplitCriticalEdge() argument
199 new_block->InsertBetween(block, successor); in SplitCriticalEdge()
203 if (info->IsBackEdge(*block)) { in SplitCriticalEdge()
204 info->RemoveBackEdge(block); in SplitCriticalEdge()
263 HBasicBlock* block = blocks_.Get(i); in SimplifyCFG() local
264 if (block == nullptr) continue; in SimplifyCFG()
265 if (block->GetSuccessors().Size() > 1) { in SimplifyCFG()
266 for (size_t j = 0; j < block->GetSuccessors().Size(); ++j) { in SimplifyCFG()
267 HBasicBlock* successor = block->GetSuccessors().Get(j); in SimplifyCFG()
269 SplitCriticalEdge(block, successor); in SimplifyCFG()
274 if (block->IsLoopHeader()) { in SimplifyCFG()
275 SimplifyLoop(block); in SimplifyCFG()
283 HBasicBlock* block = it.Current(); in AnalyzeNaturalLoops() local
284 if (block->IsLoopHeader()) { in AnalyzeNaturalLoops()
285 HLoopInformation* info = block->GetLoopInformation(); in AnalyzeNaturalLoops()
349 void HLoopInformation::Add(HBasicBlock* block) { in Add() argument
350 blocks_.SetBit(block->GetBlockId()); in Add()
353 void HLoopInformation::Remove(HBasicBlock* block) { in Remove() argument
354 blocks_.ClearBit(block->GetBlockId()); in Remove()
357 void HLoopInformation::PopulateRecursive(HBasicBlock* block) { in PopulateRecursive() argument
358 if (blocks_.IsBitSet(block->GetBlockId())) { in PopulateRecursive()
362 blocks_.SetBit(block->GetBlockId()); in PopulateRecursive()
363 block->SetInLoop(this); in PopulateRecursive()
364 for (size_t i = 0, e = block->GetPredecessors().Size(); i < e; ++i) { in PopulateRecursive()
365 PopulateRecursive(block->GetPredecessors().Get(i)); in PopulateRecursive()
393 HBasicBlock* block = graph->GetBlocks().Get(id); in Update() local
397 if (block->GetLoopInformation() == this && block != header_) { in Update()
398 block->SetLoopInformation(nullptr); in Update()
427 bool HLoopInformation::Contains(const HBasicBlock& block) const { in Contains()
428 return blocks_.IsBitSet(block.GetBlockId()); in Contains()
473 HBasicBlock* block, in Add() argument
477 instruction->SetBlock(block); in Add()
478 instruction->SetId(block->GetGraph()->GetNextInstructionId()); in Add()
529 HBasicBlock* block, in Remove() argument
532 DCHECK_EQ(block, instruction->GetBlock()); in Remove()
705 HBasicBlock* block = GetBlock(); in StrictlyDominates() local
707 if (block != other_block) { in StrictlyDominates()
731 return block->GetInstructions().FoundBefore(this, other_instruction); in StrictlyDominates()
795 HBasicBlock* block = blocks.Get(i); in FOR_EACH_INSTRUCTION() local
796 if (block != nullptr) { in FOR_EACH_INSTRUCTION()
797 VisitBasicBlock(block); in FOR_EACH_INSTRUCTION()
808 void HGraphVisitor::VisitBasicBlock(HBasicBlock* block) { in VisitBasicBlock() argument
809 for (HInstructionIterator it(block->GetPhis()); !it.Done(); it.Advance()) { in VisitBasicBlock()
812 for (HInstructionIterator it(block->GetInstructions()); !it.Done(); it.Advance()) { in VisitBasicBlock()
987 void HInstructionList::SetBlockOfInstructions(HBasicBlock* block) const { in SetBlockOfInstructions()
991 current->SetBlock(block); in SetBlockOfInstructions()
1206 void HGraph::DeleteDeadBlock(HBasicBlock* block) { in DeleteDeadBlock() argument
1207 DCHECK_EQ(block->GetGraph(), this); in DeleteDeadBlock()
1208 DCHECK(block->GetSuccessors().IsEmpty()); in DeleteDeadBlock()
1209 DCHECK(block->GetPredecessors().IsEmpty()); in DeleteDeadBlock()
1210 DCHECK(block->GetDominatedBlocks().IsEmpty()); in DeleteDeadBlock()
1211 DCHECK(block->GetDominator() == nullptr); in DeleteDeadBlock()
1213 for (HBackwardInstructionIterator it(block->GetInstructions()); !it.Done(); it.Advance()) { in DeleteDeadBlock()
1214 block->RemoveInstruction(it.Current()); in DeleteDeadBlock()
1216 for (HBackwardInstructionIterator it(block->GetPhis()); !it.Done(); it.Advance()) { in DeleteDeadBlock()
1217 block->RemovePhi(it.Current()->AsPhi()); in DeleteDeadBlock()
1220 reverse_post_order_.Delete(block); in DeleteDeadBlock()
1221 blocks_.Put(block->GetBlockId(), nullptr); in DeleteDeadBlock()