Lines Matching full:op

28 static void printOperation(Operation *op) {  in printOperation()  argument
29 llvm::outs() << "op '" << op->getName() << "'"; in printOperation()
33 static void testPureCallbacks(Operation *op) { in testPureCallbacks() argument
34 auto opPure = [](Operation *op) { in testPureCallbacks() argument
36 printOperation(op); in testPureCallbacks()
50 llvm::outs() << "Op pre-order visits" in testPureCallbacks()
52 op->walk<WalkOrder::PreOrder>(opPure); in testPureCallbacks()
55 op->walk<WalkOrder::PreOrder>(blockPure); in testPureCallbacks()
58 op->walk<WalkOrder::PreOrder>(regionPure); in testPureCallbacks()
60 llvm::outs() << "Op post-order visits" in testPureCallbacks()
62 op->walk<WalkOrder::PostOrder>(opPure); in testPureCallbacks()
65 op->walk<WalkOrder::PostOrder>(blockPure); in testPureCallbacks()
68 op->walk<WalkOrder::PostOrder>(regionPure); in testPureCallbacks()
70 llvm::outs() << "Op reverse post-order visits" in testPureCallbacks()
72 op->walk<WalkOrder::PostOrder, ReverseIterator>(opPure); in testPureCallbacks()
75 op->walk<WalkOrder::PostOrder, ReverseIterator>(blockPure); in testPureCallbacks()
78 op->walk<WalkOrder::PostOrder, ReverseIterator>(regionPure); in testPureCallbacks()
82 op->walk([&](FunctionOpInterface funcOp) { in testPureCallbacks()
83 llvm::outs() << "Op forward dominance post-order visits" in testPureCallbacks()
96 llvm::outs() << "Op reverse dominance post-order visits" in testPureCallbacks()
112 static void testSkipErasureCallbacks(Operation *op) { in testSkipErasureCallbacks() argument
113 auto skipOpErasure = [](Operation *op) { in testSkipErasureCallbacks() argument
116 if (isa<ModuleOp>(op) || isa<ModuleOp>(op->getParentOp())) in testSkipErasureCallbacks()
120 printOperation(op); in testSkipErasureCallbacks()
122 op->dropAllUses(); in testSkipErasureCallbacks()
123 op->erase(); in testSkipErasureCallbacks()
147 llvm::outs() << "Op pre-order erasures (skip)" in testSkipErasureCallbacks()
149 Operation *cloned = op->clone(); in testSkipErasureCallbacks()
155 cloned = op->clone(); in testSkipErasureCallbacks()
159 llvm::outs() << "Op post-order erasures (skip)" in testSkipErasureCallbacks()
161 cloned = op->clone(); in testSkipErasureCallbacks()
167 cloned = op->clone(); in testSkipErasureCallbacks()
172 /// Tests callbacks that erase the op or block but don't return 'Skip'. This
174 static void testNoSkipErasureCallbacks(Operation *op) { in testNoSkipErasureCallbacks() argument
175 auto noSkipOpErasure = [](Operation *op) { in testNoSkipErasureCallbacks() argument
177 printOperation(op); in testNoSkipErasureCallbacks()
179 op->dropAllUses(); in testNoSkipErasureCallbacks()
180 op->erase(); in testNoSkipErasureCallbacks()
195 llvm::outs() << "Op post-order erasures (no skip)" in testNoSkipErasureCallbacks()
197 Operation *cloned = op->clone(); in testNoSkipErasureCallbacks()
202 cloned = op->clone(); in testNoSkipErasureCallbacks()
208 static void testBlockAndRegionWalkers(Operation *op) { in testBlockAndRegionWalkers() argument
221 op->walk([&](Operation *op) { in testBlockAndRegionWalkers() argument
222 if (!op->hasAttr("walk_blocks")) in testBlockAndRegionWalkers()
224 for (Region &region : op->getRegions()) { in testBlockAndRegionWalkers()
232 op->walk([&](Operation *op) { in testBlockAndRegionWalkers() argument
233 if (!op->hasAttr("walk_blocks")) in testBlockAndRegionWalkers()
235 for (Region &region : op->getRegions()) { in testBlockAndRegionWalkers()
243 op->walk([&](Operation *op) { in testBlockAndRegionWalkers() argument
244 if (!op->hasAttr("walk_regions")) in testBlockAndRegionWalkers()
246 for (Region &region : op->getRegions()) { in testBlockAndRegionWalkers()
252 op->walk([&](Operation *op) { in testBlockAndRegionWalkers() argument
253 if (!op->hasAttr("walk_regions")) in testBlockAndRegionWalkers()
255 for (Region &region : op->getRegions()) { in testBlockAndRegionWalkers()
270 Operation *op = getOperation(); in runOnOperation() local
271 testPureCallbacks(op); in runOnOperation()
272 testBlockAndRegionWalkers(op); in runOnOperation()
273 testSkipErasureCallbacks(op); in runOnOperation()
274 testNoSkipErasureCallbacks(op); in runOnOperation()