Lines Matching refs:BB
74 void Region::replaceEntry(BasicBlock *BB) { in replaceEntry() argument
75 entry.setPointer(BB); in replaceEntry()
78 void Region::replaceExit(BasicBlock *BB) { in replaceExit() argument
80 exit = BB; in replaceExit()
84 BasicBlock *BB = const_cast<BasicBlock*>(B); in contains() local
86 assert(DT->getNode(BB) && "BB not part of the dominance tree"); in contains()
94 return (DT->dominates(entry, BB) in contains()
95 && !(DT->dominates(exit, BB) && DT->dominates(entry, exit))); in contains()
130 Loop *Region::outermostLoopInRegion(LoopInfo *LI, BasicBlock* BB) const { in outermostLoopInRegion()
131 assert(LI && BB && "LI and BB cannot be null!"); in outermostLoopInRegion()
132 Loop *L = LI->getLoopFor(BB); in outermostLoopInRegion()
205 void Region::verifyBBInRegion(BasicBlock *BB) const { in verifyBBInRegion()
206 if (!contains(BB)) in verifyBBInRegion()
211 for (succ_iterator SI = succ_begin(BB), SE = succ_end(BB); SI != SE; ++SI) in verifyBBInRegion()
215 if (entry != BB) in verifyBBInRegion()
216 for (pred_iterator SI = pred_begin(BB), SE = pred_end(BB); SI != SE; ++SI) in verifyBBInRegion()
221 void Region::verifyWalk(BasicBlock *BB, std::set<BasicBlock*> *visited) const { in verifyWalk() argument
224 visited->insert(BB); in verifyWalk()
226 verifyBBInRegion(BB); in verifyWalk()
228 for (succ_iterator SI = succ_begin(BB), SE = succ_end(BB); SI != SE; ++SI) in verifyWalk()
281 Region* Region::getSubRegionNode(BasicBlock *BB) const { in getSubRegionNode()
282 Region *R = RI->getRegionFor(BB); in getSubRegionNode()
293 if (R->getEntry() != BB) in getSubRegionNode()
299 RegionNode* Region::getBBNode(BasicBlock *BB) const { in getBBNode()
300 assert(contains(BB) && "Can get BB node out of this region!"); in getBBNode()
302 BBNodeMapT::const_iterator at = BBNodeMap.find(BB); in getBBNode()
307 RegionNode *NewNode = new RegionNode(const_cast<Region*>(this), BB); in getBBNode()
308 BBNodeMap.insert(std::make_pair(BB, NewNode)); in getBBNode()
312 RegionNode* Region::getNode(BasicBlock *BB) const { in getNode()
313 assert(contains(BB) && "Can get BB node out of this region!"); in getNode()
314 if (Region* Child = getSubRegionNode(BB)) in getNode()
317 return getBBNode(BB); in getNode()
344 BasicBlock *BB = (*I)->getNodeAs<BasicBlock>(); in addSubRegion() local
346 if (SubRegion->contains(BB)) in addSubRegion()
347 RI->setRegionFor(BB, SubRegion); in addSubRegion()
465 bool RegionInfo::isCommonDomFrontier(BasicBlock *BB, BasicBlock *entry, in isCommonDomFrontier() argument
467 for (pred_iterator PI = pred_begin(BB), PE = pred_end(BB); PI != PE; ++PI) { in isCommonDomFrontier()
528 BasicBlock *BB = e->second; in insertShortCut() local
529 (*ShortCut)[entry] = BB; in insertShortCut()
642 BasicBlock *BB = N->getBlock(); in buildRegionsTree() local
645 while (BB == region->getExit()) in buildRegionsTree()
648 BBtoRegionMap::iterator it = BBtoRegion.find(BB); in buildRegionsTree()
657 BBtoRegion[BB] = region; in buildRegionsTree()
687 BasicBlock *BB = &F.getEntryBlock(); in Calculate() local
688 buildRegionsTree(DT->getNode(BB), TopLevelRegion); in Calculate()
729 Region *RegionInfo::getRegionFor(BasicBlock *BB) const { in getRegionFor()
731 BBtoRegion.find(BB); in getRegionFor()
735 void RegionInfo::setRegionFor(BasicBlock *BB, Region *R) { in setRegionFor() argument
736 BBtoRegion[BB] = R; in setRegionFor()
739 Region *RegionInfo::operator[](BasicBlock *BB) const { in operator []()
740 return getRegionFor(BB); in operator []()
743 BasicBlock *RegionInfo::getMaxRegionExit(BasicBlock *BB) const { in getMaxRegionExit()
748 Region *R = getRegionFor(BB); in getMaxRegionExit()
749 while (R && R->getParent() && R->getParent()->getEntry() == BB) in getMaxRegionExit()
753 if (R && R->getEntry() == BB) in getMaxRegionExit()
755 else if (++succ_begin(BB) == succ_end(BB)) in getMaxRegionExit()
756 Exit = *succ_begin(BB); in getMaxRegionExit()
772 if (DT->dominates(Exit, BB)) in getMaxRegionExit()
775 BB = Exit; in getMaxRegionExit()