Home | History | Annotate | Download | only in Analysis

Lines Matching refs:block

39   void enqueueBlock(const CFGBlock *block);
40 void enqueueSuccessors(const CFGBlock *block);
41 void enqueuePredecessors(const CFGBlock *block);
50 void DataflowWorklist::enqueueBlock(const clang::CFGBlock *block) {
51 if (block && !enqueuedBlocks[block->getBlockID()]) {
52 enqueuedBlocks[block->getBlockID()] = true;
53 worklist.push_back(block);
57 void DataflowWorklist::enqueueSuccessors(const clang::CFGBlock *block) {
59 for (CFGBlock::const_succ_iterator I = block->succ_begin(),
60 E = block->succ_end(); I != E; ++I) {
70 void DataflowWorklist::enqueuePredecessors(const clang::CFGBlock *block) {
72 for (CFGBlock::const_pred_iterator I = block->pred_begin(),
73 E = block->pred_end(); I != E; ++I) {
113 LiveVariables::LivenessValues runOnBlock(const CFGBlock *block,
462 LiveVariablesImpl::runOnBlock(const CFGBlock *block,
466 TransferFunctions TF(*this, val, obs, block);
469 if (const Stmt *term = block->getTerminator())
472 // Apply the transfer function for all Stmts in the block.
473 for (CFGBlock::const_reverse_iterator it = block->rbegin(),
474 ei = block->rend(); it != ei; ++it) {
521 block as the
528 const CFGBlock *block = *it;
529 worklist.enqueueBlock(block);
536 for (CFGBlock::const_iterator bi = block->begin(), be = block->end();
554 while (const CFGBlock *block = worklist.dequeue()) {
555 // Determine if the block's end value has changed. If not, we
556 // have nothing left to do for this block.
557 LivenessValues &prevVal = LV->blocksEndToLiveness[block];
561 for (CFGBlock::const_succ_iterator it = block->succ_begin(),
562 ei = block->succ_end(); it != ei; ++it) {
568 if (!everAnalyzedBlock[block->getBlockID()])
569 everAnalyzedBlock[block->getBlockID()] = true;
575 // Update the dataflow value for the start of this block.
576 LV->blocksBeginToLiveness[block] = LV->runOnBlock(block, val);
579 worklist.enqueuePredecessors(block);
613 << " (live variables at block exit) ]\n";