Lines Matching refs:reachable
11 // determining reachable blocks within a CFG.
104 // well be reachable via a different control flow, thus it's not dead.
268 llvm::BitVector &Reachable,
276 // The entry block may have already been marked reachable
278 if (!Reachable[Start->getBlockID()]) {
280 Reachable[Start->getBlockID()] = true;
285 // Find the reachable blocks from 'Start'.
289 // There are cases where we want to treat all successors as reachable.
294 // Look at the successors and mark then reachable.
322 if (!Reachable[blockID]) {
323 Reachable.set(blockID);
335 llvm::BitVector &Reachable) {
336 return scanFromBlock(Start, Reachable, &PP, true);
346 llvm::BitVector &Reachable;
356 DeadCodeScan(llvm::BitVector &reachable, Preprocessor &PP)
357 : Visited(reachable.size()),
358 Reachable(reachable),
377 if (Reachable[blockID] || Visited[blockID])
394 if (!Reachable[blockID]) {
451 // It is possible that this block has been marked reachable after
453 if (Reachable[Block->getBlockID()])
471 Reachable);
477 count += scanMaybeReachableFromBlock(Block, PP, Reachable);
494 if (Reachable[Block->getBlockID()])
497 count += scanMaybeReachableFromBlock(Block, PP, Reachable);
633 llvm::BitVector &Reachable) {
634 return scanFromBlock(Start, Reachable, /* SourceManager* */ nullptr, false);
644 // Scan for reachable blocks from the entrance of the CFG.
646 llvm::BitVector reachable(cfg->getNumBlockIDs());
648 scanMaybeReachableFromBlock(&cfg->getEntry(), PP, reachable);
657 numReachable += scanMaybeReachableFromBlock(*I, PP, reachable);
667 // A block may have been marked reachable during this loop.
668 if (reachable[block->getBlockID()])
671 DeadCodeScan DS(reachable, PP);