#include "TestDialect.h"
#include "TestOps.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/Pass/Pass.h"
#include "mlir/Pass/PassManager.h"
usingnamespacemlir;
namespace {
struct TestModulePass
: public PassWrapper<TestModulePass, OperationPass<ModuleOp>> { … };
struct TestFunctionPass
: public PassWrapper<TestFunctionPass, OperationPass<func::FuncOp>> { … };
struct TestInterfacePass
: public PassWrapper<TestInterfacePass,
InterfacePass<FunctionOpInterface>> { … };
struct TestOptionsPass
: public PassWrapper<TestOptionsPass, OperationPass<func::FuncOp>> { … };
struct TestOptionsSuperPass
: public PassWrapper<TestOptionsSuperPass, OperationPass<func::FuncOp>> { … };
struct TestCrashRecoveryPass
: public PassWrapper<TestCrashRecoveryPass, OperationPass<>> { … };
struct TestFailurePass : public PassWrapper<TestFailurePass, OperationPass<>> { … };
struct TestInvalidIRPass
: public PassWrapper<TestInvalidIRPass,
InterfacePass<FunctionOpInterface>> { … };
struct TestInvalidParentPass
: public PassWrapper<TestInvalidParentPass,
InterfacePass<FunctionOpInterface>> { … };
struct TestStatisticPass
: public PassWrapper<TestStatisticPass, OperationPass<>> { … };
}
static void testNestedPipeline(OpPassManager &pm) { … }
static void testNestedPipelineTextual(OpPassManager &pm) { … }
namespace mlir {
void registerPassManagerTestPass() { … }
}