#include "mlir/Dialect/SCF/Transforms/Passes.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/SCF/IR/SCF.h"
#include "mlir/Dialect/SCF/Transforms/Transforms.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
namespace mlir {
#define GEN_PASS_DEF_SCFFORTOWHILELOOP
#include "mlir/Dialect/SCF/Transforms/Passes.h.inc"
}
usingnamespacellvm;
usingnamespacemlir;
ForOp;
WhileOp;
namespace {
struct ForLoopLoweringPattern : public OpRewritePattern<ForOp> { … };
struct ForToWhileLoop : public impl::SCFForToWhileLoopBase<ForToWhileLoop> { … };
}
std::unique_ptr<Pass> mlir::createForToWhileLoopPass() { … }