21#define GEN_PASS_DEF_AFFINELOOPNORMALIZE
22#include "mlir/Dialect/Affine/Passes.h.inc"
34struct AffineLoopNormalizePass
36 explicit AffineLoopNormalizePass(
bool promoteSingleIter) {
37 this->promoteSingleIter = promoteSingleIter;
40 void runOnOperation()
override {
41 getOperation().walk([&](Operation *op) {
42 if (
auto affineParallel = dyn_cast<AffineParallelOp>(op))
43 normalizeAffineParallel(affineParallel);
44 else if (
auto affineFor = dyn_cast<AffineForOp>(op))
45 (void)normalizeAffineFor(affineFor, promoteSingleIter);
52std::unique_ptr<OperationPass<func::FuncOp>>
54 return std::make_unique<AffineLoopNormalizePass>(promoteSingleIter);
std::unique_ptr< OperationPass< func::FuncOp > > createAffineLoopNormalizePass(bool promoteSingleIter=false)
Apply normalization transformations to affine loop-like ops.
Include the generated interface declarations.