xref: /llvm-project/mlir/test/lib/Transforms/TestCompositePass.cpp (revision 5b66b6a32ad89562732ad6a81c84783486b6187a)
1*5b66b6a3SIvan Butygin //===------ TestCompositePass.cpp --- composite test pass -----------------===//
2*5b66b6a3SIvan Butygin //
3*5b66b6a3SIvan Butygin // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*5b66b6a3SIvan Butygin // See https://llvm.org/LICENSE.txt for license information.
5*5b66b6a3SIvan Butygin // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*5b66b6a3SIvan Butygin //
7*5b66b6a3SIvan Butygin //===----------------------------------------------------------------------===//
8*5b66b6a3SIvan Butygin //
9*5b66b6a3SIvan Butygin // This file implements a pass to test the composite pass utility.
10*5b66b6a3SIvan Butygin //
11*5b66b6a3SIvan Butygin //===----------------------------------------------------------------------===//
12*5b66b6a3SIvan Butygin 
13*5b66b6a3SIvan Butygin #include "mlir/Pass/Pass.h"
14*5b66b6a3SIvan Butygin #include "mlir/Pass/PassManager.h"
15*5b66b6a3SIvan Butygin #include "mlir/Pass/PassRegistry.h"
16*5b66b6a3SIvan Butygin #include "mlir/Transforms/Passes.h"
17*5b66b6a3SIvan Butygin 
18*5b66b6a3SIvan Butygin namespace mlir {
19*5b66b6a3SIvan Butygin namespace test {
registerTestCompositePass()20*5b66b6a3SIvan Butygin void registerTestCompositePass() {
21*5b66b6a3SIvan Butygin   registerPassPipeline(
22*5b66b6a3SIvan Butygin       "test-composite-fixed-point-pass", "Test composite pass",
23*5b66b6a3SIvan Butygin       [](OpPassManager &pm, StringRef optionsStr,
24*5b66b6a3SIvan Butygin          function_ref<LogicalResult(const Twine &)> errorHandler) {
25*5b66b6a3SIvan Butygin         if (!optionsStr.empty())
26*5b66b6a3SIvan Butygin           return failure();
27*5b66b6a3SIvan Butygin 
28*5b66b6a3SIvan Butygin         pm.addPass(createCompositeFixedPointPass(
29*5b66b6a3SIvan Butygin             "TestCompositePass", [](OpPassManager &p) {
30*5b66b6a3SIvan Butygin               p.addPass(createCanonicalizerPass());
31*5b66b6a3SIvan Butygin               p.addPass(createCSEPass());
32*5b66b6a3SIvan Butygin             }));
33*5b66b6a3SIvan Butygin         return success();
34*5b66b6a3SIvan Butygin       },
35*5b66b6a3SIvan Butygin       [](function_ref<void(const detail::PassOptions &)>) {});
36*5b66b6a3SIvan Butygin }
37*5b66b6a3SIvan Butygin } // namespace test
38*5b66b6a3SIvan Butygin } // namespace mlir
39