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 Butyginvoid 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