Lines Matching refs:CFGBlock
52 static bool isTrivialDoWhile(const CFGBlock *B, const Stmt *S) { in isTrivialDoWhile()
72 static bool isBuiltinAssumeFalse(const CFGBlock *B, const Stmt *S, in isBuiltinAssumeFalse()
87 static bool isDeadReturn(const CFGBlock *B, const Stmt *S) { in isDeadReturn()
91 const CFGBlock *Current = B; in isDeadReturn()
296 static bool shouldTreatSuccessorsAsReachable(const CFGBlock *B, in shouldTreatSuccessorsAsReachable()
317 static unsigned scanFromBlock(const CFGBlock *Start, in scanFromBlock()
324 SmallVector<const CFGBlock*, 32> WL; in scanFromBlock()
337 const CFGBlock *item = WL.pop_back_val(); in scanFromBlock()
349 for (CFGBlock::const_succ_iterator I = item->succ_begin(), in scanFromBlock()
351 const CFGBlock *B = *I; in scanFromBlock()
353 const CFGBlock *UB = I->getPossiblyUnreachableBlock(); in scanFromBlock()
383 static unsigned scanMaybeReachableFromBlock(const CFGBlock *Start, in scanMaybeReachableFromBlock()
397 SmallVector<const CFGBlock *, 10> WorkList;
401 typedef SmallVector<std::pair<const CFGBlock *, const Stmt *>, 12>
412 void enqueue(const CFGBlock *block);
413 unsigned scanBackwards(const CFGBlock *Start,
416 bool isDeadCodeRoot(const CFGBlock *Block);
418 const Stmt *findDeadCode(const CFGBlock *Block);
420 void reportDeadCode(const CFGBlock *B,
426 void DeadCodeScan::enqueue(const CFGBlock *block) { in enqueue()
434 bool DeadCodeScan::isDeadCodeRoot(const clang::CFGBlock *Block) { in isDeadCodeRoot()
437 for (CFGBlock::const_pred_iterator I = Block->pred_begin(), in isDeadCodeRoot()
439 if (const CFGBlock *PredBlock = *I) { in isDeadCodeRoot()
459 static bool isInCoroutineStmt(const Stmt *DeadStmt, const CFGBlock *Block) { in isInCoroutineStmt()
464 for (CFGBlock::const_iterator I = Block->begin(), E = Block->end(); I != E; in isInCoroutineStmt()
496 static bool isValidDeadStmt(const Stmt *S, const clang::CFGBlock *Block) { in isValidDeadStmt()
507 const Stmt *DeadCodeScan::findDeadCode(const clang::CFGBlock *Block) { in findDeadCode()
508 for (CFGBlock::const_iterator I = Block->begin(), E = Block->end(); I!=E; ++I) in findDeadCode()
525 static int SrcCmp(const std::pair<const CFGBlock *, const Stmt *> *p1, in SrcCmp() argument
526 const std::pair<const CFGBlock *, const Stmt *> *p2) { in SrcCmp()
534 unsigned DeadCodeScan::scanBackwards(const clang::CFGBlock *Start, in scanBackwards()
541 const CFGBlock *Block = WorkList.pop_back_val(); in scanBackwards()
553 for (CFGBlock::const_pred_iterator I = Block->pred_begin(), in scanBackwards()
555 if (const CFGBlock *predBlock = *I) in scanBackwards()
584 const CFGBlock *Block = I.first; in scanBackwards()
660 void DeadCodeScan::reportDeadCode(const CFGBlock *B, in reportDeadCode()
705 CFGBlock::const_pred_iterator PI = B->pred_begin(); in reportDeadCode()
707 if (const CFGBlock *PredBlock = PI->getPossiblyUnreachableBlock()) { in reportDeadCode()
728 unsigned ScanReachableFromBlock(const CFGBlock *Start, in ScanReachableFromBlock()
751 for (const CFGBlock *B : cfg->try_blocks()) in FindUnreachableCode()
759 for (const CFGBlock *block : *cfg) { in FindUnreachableCode()