Lines Matching refs:BB

103   BasicBlock *BB = nullptr;  member
131 bool isLive(BasicBlock *BB) { return BlockInfo[BB].Live; } in isLive() argument
169 void markLive(BlockInfoType &BB);
170 void markLive(BasicBlock *BB) { markLive(BlockInfo[BB]); } in markLive() argument
197 void makeUnconditional(BasicBlock *BB, BasicBlock *Target);
230 for (auto &BB : F) { in initialize() local
231 NumInsts += BB.size(); in initialize()
232 auto &Info = BlockInfo[&BB]; in initialize()
233 Info.BB = &BB; in initialize()
234 Info.Terminator = BB.getTerminator(); in initialize()
241 for (Instruction &I : *BBInfo.second.BB) in initialize()
266 std::pair<StatusMap::iterator, bool> insert(BasicBlock *BB) { in initialize() argument
267 return StatusMap::insert(std::make_pair(BB, true)); in initialize()
271 void completed(BasicBlock *BB) { (*this)[BB] = false; } in initialize() argument
275 bool onStack(BasicBlock *BB) { in initialize() argument
276 auto Iter = find(BB); in initialize()
285 for (auto *BB: depth_first_ext(&F.getEntryBlock(), State)) { in initialize() local
286 Instruction *Term = BB->getTerminator(); in initialize()
290 for (auto *Succ : successors(BB)) in initialize()
304 auto *BB = PDTChild->getBlock(); in initialize() local
305 auto &Info = BlockInfo[BB]; in initialize()
308 LLVM_DEBUG(dbgs() << "post-dom root child is a return: " << BB->getName() in initialize()
319 auto *BB = &F.getEntryBlock(); in initialize() local
320 auto &EntryInfo = BlockInfo[BB]; in initialize()
328 BlocksWithDeadTerminators.insert(BBInfo.second.BB); in initialize()
399 BlocksWithDeadTerminators.remove(BBInfo.BB); in markLive()
403 for (auto *BB : successors(I->getParent())) in markLive() local
404 markLive(BB); in markLive()
412 LLVM_DEBUG(dbgs() << "mark block live: " << BBInfo.BB->getName() << '\n'); in markLive()
416 NewLiveBlocks.insert(BBInfo.BB); in markLive()
460 for (auto *PredBB : predecessors(Info.BB)) { in markPhiLive()
475 for (auto *BB : NewLiveBlocks) in markLiveBranchesFromControlDependences()
476 dbgs() << "\t" << BB->getName() << '\n'; in markLiveBranchesFromControlDependences()
478 for (auto *BB : BlocksWithDeadTerminators) in markLiveBranchesFromControlDependences()
479 dbgs() << "\t" << BB->getName() << '\n'; in markLiveBranchesFromControlDependences()
500 for (auto *BB : IDFBlocks) { in markLiveBranchesFromControlDependences() local
501 LLVM_DEBUG(dbgs() << "live control in: " << BB->getName() << '\n'); in markLiveBranchesFromControlDependences()
502 markLive(BB->getTerminator()); in markLiveBranchesFromControlDependences()
604 for (auto *BB : BlocksWithDeadTerminators) in updateDeadRegions()
605 dbgs() << '\t' << BB->getName() in updateDeadRegions()
606 << (BlockInfo[BB].Live ? " LIVE\n" : "\n"); in updateDeadRegions()
614 for (auto *BB : BlocksWithDeadTerminators) { in updateDeadRegions() local
615 auto &Info = BlockInfo[BB]; in updateDeadRegions()
630 for (auto *Succ : successors(BB)) { in updateDeadRegions()
641 for (auto *Succ : successors(BB)) { in updateDeadRegions()
642 if (!First || Succ != PreferredSucc->BB) { in updateDeadRegions()
643 Succ->removePredecessor(BB); in updateDeadRegions()
648 makeUnconditional(BB, PreferredSucc->BB); in updateDeadRegions()
654 if (Succ != PreferredSucc->BB) { in updateDeadRegions()
656 << BB->getName() << " -> " << Succ->getName() in updateDeadRegions()
658 DeletedEdges.push_back({DominatorTree::Delete, BB, Succ}); in updateDeadRegions()
684 for (auto &BB : F) { in computeReversePostOrder() local
685 if (!succ_empty(&BB)) in computeReversePostOrder()
687 for (BasicBlock *Block : inverse_post_order_ext(&BB,Visited)) in computeReversePostOrder()
692 void AggressiveDeadCodeElimination::makeUnconditional(BasicBlock *BB, in makeUnconditional() argument
694 Instruction *PredTerm = BB->getTerminator(); in makeUnconditional()
705 LLVM_DEBUG(dbgs() << "making unconditional " << BB->getName() << '\n'); in makeUnconditional()