Home | History | Annotate | Download | only in Analysis

Lines Matching defs:Block

44   void enqueue(const CFGBlock *block);  
48 bool isDeadCodeRoot(const CFGBlock *Block);
50 const Stmt *findDeadCode(const CFGBlock *Block);
57 void DeadCodeScan::enqueue(const CFGBlock *block) {
58 unsigned blockID = block->getBlockID();
62 WorkList.push_back(block);
65 bool DeadCodeScan::isDeadCodeRoot(const clang::CFGBlock *Block) {
68 for (CFGBlock::const_pred_iterator I = Block->pred_begin(),
69 E = Block->pred_end(); I != E; ++I) {
96 const Stmt *DeadCodeScan::findDeadCode(const clang::CFGBlock *Block) {
97 for (CFGBlock::const_iterator I = Block->begin(), E = Block->end(); I!=E; ++I)
104 if (CFGTerminator T = Block->getTerminator()) {
126 const CFGBlock *Block = WorkList.pop_back_val();
128 // It is possible that this block has been marked reachable after
130 if (Reachable[Block->getBlockID()])
133 // Look for any dead code within the block.
134 const Stmt *S = findDeadCode(Block);
137 // No dead code. Possibly an empty block. Look at dead predecessors.
138 for (CFGBlock::const_pred_iterator I = Block->pred_begin(),
139 E = Block->pred_end(); I != E; ++I) {
148 count += clang::reachable_code::ScanReachableFromBlock(Block, Reachable);
152 if (isDeadCodeRoot(Block)) {
154 count += clang::reachable_code::ScanReachableFromBlock(Block, Reachable);
160 DeferredLocs.push_back(std::make_pair(Block, S));
170 const CFGBlock *block = I->first;
171 if (Reachable[block->getBlockID()])
174 count += clang::reachable_code::ScanReachableFromBlock(block, Reachable);
264 // The entry block may have already been marked reachable
318 const CFGBlock *block = *I;
319 // A block may have been marked reachable during this loop.
320 if (reachable[block->getBlockID()])
324 numReachable += DS.scanBackwards(block, CB);