| // Copyright 2021 The IREE Authors |
| // |
| // Licensed under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| |
| #include "iree-dialects/Dialect/IREEPyDM/Transforms/Passes.h" |
| |
| #include "mlir/Pass/PassManager.h" |
| #include "mlir/Transforms/Passes.h" |
| |
| using namespace mlir; |
| using namespace mlir::iree_pydm; |
| |
| void mlir::iree_pydm::buildLowerToIREEPassPipeline( |
| OpPassManager& passManager, const LowerToIREEOptions& options) { |
| // TODO: Needs to be iterative, support optimization passes, etc. |
| passManager.addPass(createLowerIREEPyDMToRTLPass()); |
| if (options.linkRtlSource) { |
| passManager.addPass(createLinkIREEPyDMRTLPass(options.linkRtlSource)); |
| } |
| // TODO: Optimization passes need to be their own pipeline. |
| passManager.addPass(createFixateWeakNumericPass()); |
| passManager.addPass(createCanonicalizerPass()); |
| |
| // Lowering passes. |
| passManager.addPass(createConvertIREEPyDMToIREEPass()); |
| |
| // Cleanup. |
| passManager.addPass(createCanonicalizerPass()); |
| passManager.addPass(createCSEPass()); |
| } |