#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/Dialect/SCF/IR/SCF.h"
#include "mlir/Dialect/SCF/Transforms/Patterns.h"
#include "mlir/Dialect/SCF/Utils/Utils.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/Pass/Pass.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
usingnamespacemlir;
namespace {
struct TestSCFForUtilsPass
: public PassWrapper<TestSCFForUtilsPass, OperationPass<func::FuncOp>> { … };
struct TestSCFIfUtilsPass
: public PassWrapper<TestSCFIfUtilsPass, OperationPass<ModuleOp>> { … };
static const StringLiteral kTestPipeliningLoopMarker = …;
static const StringLiteral kTestPipeliningStageMarker = …;
static const StringLiteral kTestPipeliningOpOrderMarker = …;
static const StringLiteral kTestPipeliningAnnotationPart = …;
static const StringLiteral kTestPipeliningAnnotationIteration = …;
struct TestSCFPipeliningPass
: public PassWrapper<TestSCFPipeliningPass, OperationPass<func::FuncOp>> { … };
}
namespace mlir {
namespace test {
void registerTestSCFUtilsPass() { … }
}
}