Lines Matching full:bb
57 for (auto &BB : F) { in BlockCoverageInference() local
59 if (shouldInstrumentBlock(BB)) in BlockCoverageInference()
65 BlockCoverageInference::getDependencies(const BasicBlock &BB) const { in getDependencies()
66 assert(BB.getParent() == &F); in getDependencies()
68 auto It = PredecessorDependencies.find(&BB); in getDependencies()
71 It = SuccessorDependencies.find(&BB); in getDependencies()
80 for (auto &BB : F) { in getInstrumentedBlocksHash() local
81 if (shouldInstrumentBlock(BB)) { in getInstrumentedBlocksHash()
91 bool BlockCoverageInference::shouldInstrumentBlock(const BasicBlock &BB) const { in shouldInstrumentBlock()
92 assert(BB.getParent() == &F); in shouldInstrumentBlock()
93 auto It = PredecessorDependencies.find(&BB); in shouldInstrumentBlock()
96 It = SuccessorDependencies.find(&BB); in shouldInstrumentBlock()
112 for (auto &BB : F) in findDependencies() local
113 if (succ_empty(&BB)) in findDependencies()
114 TerminalBlocks.push_back(&BB); in findDependencies()
120 for (auto *BB : TerminalBlocks) in findDependencies() local
121 for (auto *N : inverse_depth_first_ext(BB, Visited)) in findDependencies()
135 for (auto &BB : F) { in findDependencies() local
136 // The set of blocks that are reachable while avoiding BB. in findDependencies()
138 getReachableAvoiding(EntryBlock, BB, /*IsForward=*/true, in findDependencies()
141 getReachableAvoiding(*TerminalBlock, BB, /*IsForward=*/false, in findDependencies()
144 auto Preds = predecessors(&BB); in findDependencies()
152 PredecessorDependencies[&BB].insert(Pred); in findDependencies()
154 auto Succs = successors(&BB); in findDependencies()
162 SuccessorDependencies[&BB].insert(Succ); in findDependencies()
176 for (auto &BB : F) { in findDependencies() local
177 for (auto *Succ : successors(&BB)) { in findDependencies()
178 if (SuccessorDependencies[&BB].count(Succ) && in findDependencies()
179 PredecessorDependencies[Succ].count(&BB)) { in findDependencies()
180 AdjacencyList[&BB].insert(Succ); in findDependencies()
181 AdjacencyList[Succ].insert(&BB); in findDependencies()
206 for (auto &BB : F) { in findDependencies() local
207 if (AdjacencyList[&BB].size() == 1) { in findDependencies()
210 Path.insert(&BB); in findDependencies()
216 for (auto *BB : Path) in findDependencies() local
217 AdjacencyList[BB].clear(); in findDependencies()
221 for (auto *BB : Path) in findDependencies() local
222 if (BB != Path.back()) in findDependencies()
223 SuccessorDependencies[BB].clear(); in findDependencies()
225 for (auto *BB : Path) in findDependencies() local
226 if (BB != Path.front()) in findDependencies()
227 PredecessorDependencies[BB].clear(); in findDependencies()
262 bool isInstrumented(const BasicBlock *BB) const { in isInstrumented()
263 return BCI->shouldInstrumentBlock(*BB); in isInstrumented()
266 bool isCovered(const BasicBlock *BB) const { in isCovered()
267 return Coverage && Coverage->lookup(BB); in isCovered()
342 for (auto &BB : F) { in dump() local
343 OS << (shouldInstrumentBlock(BB) ? "* " : " ") << BB.getName() << "\n"; in dump()
344 auto It = PredecessorDependencies.find(&BB); in dump()
347 It = SuccessorDependencies.find(&BB); in dump()
364 for (auto *BB : BBs) in getBlockNames() local
365 OS << ", " << BB->getName(); in getBlockNames()