Lines Matching defs:CFGBlock
52 static bool isTrivialDoWhile(const CFGBlock *B, const Stmt *S) {
72 static bool isBuiltinAssumeFalse(const CFGBlock *B, const Stmt *S,
76 // (e.g. a CFGBlock containing only a goto).
87 static bool isDeadReturn(const CFGBlock *B, const Stmt *S) {
91 const CFGBlock *Current = B;
296 static bool shouldTreatSuccessorsAsReachable(const CFGBlock *B,
317 static unsigned scanFromBlock(const CFGBlock *Start,
324 SmallVector<const CFGBlock*, 32> WL;
337 const CFGBlock *item = WL.pop_back_val();
349 for (CFGBlock::const_succ_iterator I = item->succ_begin(),
351 const CFGBlock *B = *I;
353 const CFGBlock *UB = I->getPossiblyUnreachableBlock();
383 static unsigned scanMaybeReachableFromBlock(const CFGBlock *Start,
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) {
434 bool DeadCodeScan::isDeadCodeRoot(const clang::CFGBlock *Block) {
437 for (CFGBlock::const_pred_iterator I = Block->pred_begin(),
439 if (const CFGBlock *PredBlock = *I) {
458 // the coroutine statement. `Block` is the CFGBlock containing the `DeadStmt`.
459 static bool isInCoroutineStmt(const Stmt *DeadStmt, const CFGBlock *Block) {
464 for (CFGBlock::const_iterator I = Block->begin(), E = Block->end(); I != E;
496 static bool isValidDeadStmt(const Stmt *S, const clang::CFGBlock *Block) {
507 const Stmt *DeadCodeScan::findDeadCode(const clang::CFGBlock *Block) {
508 for (CFGBlock::const_iterator I = Block->begin(), E = Block->end(); I!=E; ++I)
525 static int SrcCmp(const std::pair<const CFGBlock *, const Stmt *> *p1,
526 const std::pair<const CFGBlock *, const Stmt *> *p2) {
534 unsigned DeadCodeScan::scanBackwards(const clang::CFGBlock *Start,
541 const CFGBlock *Block = WorkList.pop_back_val();
553 for (CFGBlock::const_pred_iterator I = Block->pred_begin(),
555 if (const CFGBlock *predBlock = *I)
584 const CFGBlock *Block = I.first;
660 void DeadCodeScan::reportDeadCode(const CFGBlock *B,
705 CFGBlock::const_pred_iterator PI = B->pred_begin();
707 if (const CFGBlock *PredBlock = PI->getPossiblyUnreachableBlock()) {
728 unsigned ScanReachableFromBlock(const CFGBlock *Start,
751 for (const CFGBlock *B : cfg->try_blocks())
759 for (const CFGBlock *block : *cfg) {