Lines Matching full:block

12 #include "mlir/IR/Block.h"
32 // Visit every operation and block.
37 for (Block &block : region) {
38 visitBlock(&block);
39 for (Operation &op : block)
100 // If the containing block is not executable, bail out.
131 void AbstractDenseForwardDataFlowAnalysis::visitBlock(Block *block) {
132 // If the block is not executable, bail out.
133 ProgramPoint *point = getProgramPointBefore(block);
142 if (block->isEntryBlock()) {
143 // Check if this block is the entry block of a callable region.
144 auto callable = dyn_cast<CallableOpInterface>(block->getParentOp());
145 if (callable && callable.getCallableRegion() == block->getParent()) {
167 if (auto branch = dyn_cast<RegionBranchOpInterface>(block->getParentOp()))
174 // Join the state with the state after the block's predecessors.
175 for (Block::pred_iterator it = block->pred_begin(), e = block->pred_end();
178 Block *predecessor = *it;
180 point, getLatticeAnchor<CFGEdge>(predecessor, block))
209 // 1. when visiting the block (point = block start);
212 // 1. predecessor may be the terminator of another block from another
213 // region (assuming that the block does belong to another region via an
216 // 2. predecessor may be the terminator of a block that exits the
257 // Visit every operation and block.
262 for (Block &block : region) {
263 visitBlock(&block);
264 for (Operation &op : llvm::reverse(block)) {
316 Block *calleeEntryBlock = &region->front();
328 // If the containing block is not executable, bail out.
356 void AbstractDenseBackwardDataFlowAnalysis::visitBlock(Block *block) {
357 ProgramPoint *point = getProgramPointAfter(block);
358 // If the block is not executable, bail out.
359 if (!getOrCreateFor<Executable>(point, getProgramPointBefore(block))
367 auto isExitBlock = [](Block *b) {
373 // either to the parent or to another block, so exit blocks and successors
378 if (isExitBlock(block)) {
379 // If this block is exiting from a callable, the successors of exiting from
382 auto callable = dyn_cast<CallableOpInterface>(block->getParentOp());
383 if (callable && callable.getCallableRegion() == block->getParent()) {
403 // If this block is exiting from an operation with region-based control
405 if (auto branch = dyn_cast<RegionBranchOpInterface>(block->getParentOp())) {
406 visitRegionBranchOperation(point, branch, block->getParent(), before);
410 // Cannot reason about successors of an exit block, set the pessimistic
415 // Meet the state with the state before block's successors.
416 for (Block *successor : block->getSuccessors()) {
418 getLatticeAnchor<CFGEdge>(block, successor))
423 // block itself when empty.
433 // entry block of each possible successor region, or the next operation when
444 Block *successorBlock = &successorRegion->front();