Lines Matching refs:BB
85 bool hasPreorder(BasicBlock *BB) const { return PostNumbers.count(BB); } in hasPreorder() argument
88 bool hasPostorder(BasicBlock *BB) const { in hasPostorder() argument
89 DenseMap<BasicBlock*, unsigned>::const_iterator I = PostNumbers.find(BB); in hasPostorder()
94 unsigned getPostorder(BasicBlock *BB) const { in getPostorder() argument
95 DenseMap<BasicBlock*, unsigned>::const_iterator I = PostNumbers.find(BB); in getPostorder()
102 unsigned getRPO(BasicBlock *BB) const { in getRPO() argument
103 return 1 + PostBlocks.size() - getPostorder(BB); in getRPO()
144 bool visitPreorder(BasicBlock *BB) { in visitPreorder() argument
145 if (!DFS.L->contains(LI->getLoopFor(BB))) in visitPreorder()
148 return DFS.PostNumbers.insert(std::make_pair(BB, 0)).second; in visitPreorder()
153 void finishPostorder(BasicBlock *BB) { in finishPostorder() argument
154 assert(DFS.PostNumbers.count(BB) && "Loop DFS skipped preorder"); in finishPostorder()
155 DFS.PostBlocks.push_back(BB); in finishPostorder()
156 DFS.PostNumbers[BB] = DFS.PostBlocks.size(); in finishPostorder()
165 bool count(BasicBlock *BB) const { in count() argument
166 return !DFS.L->contains(LI->getLoopFor(BB)) || DFS.PostNumbers.count(BB); in count()
172 bool insert(BasicBlock *BB) { in insert() argument
173 return visitPreorder(BB); in insert()
179 static void finishPostorder(BasicBlock *BB, LoopBlocksTraversal& LBT) {
180 LBT.finishPostorder(BB);