| // Copyright 2019 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 |
| |
| #ifndef IREE_COMPILER_DIALECT_VM_TRANSFORMS_PASSES_H_ |
| #define IREE_COMPILER_DIALECT_VM_TRANSFORMS_PASSES_H_ |
| |
| #include <memory> |
| |
| #include "iree/compiler/Dialect/VM/Conversion/TargetOptions.h" |
| #include "iree/compiler/Dialect/VM/IR/VMOps.h" |
| #include "mlir/IR/BuiltinOps.h" |
| #include "mlir/Pass/Pass.h" |
| #include "mlir/Pass/PassRegistry.h" |
| |
| namespace mlir::iree_compiler::IREE::VM { |
| |
| //===----------------------------------------------------------------------===// |
| // Helpers |
| //===----------------------------------------------------------------------===// |
| |
| // Adds a set of passes to the given pass manager that run the required VM |
| // transforms in the canonical order. |
| // |
| // Most translation code should prefer to use this instead of manually adding |
| // the passes themselves to ensure that expected pass ordering is observed. |
| // |
| // The expected usage is: |
| // <run conversion to HAL/etc> |
| // buildVMTransformPassPipeline & run |
| // <run target serialization/etc> |
| void buildVMTransformPassPipeline(OpPassManager &passManager, |
| TargetOptions targetOptions); |
| |
| //===----------------------------------------------------------------------===// |
| // Register all Passes |
| //===----------------------------------------------------------------------===// |
| |
| #define GEN_PASS_DECL |
| #include "iree/compiler/Dialect/VM/Transforms/Passes.h.inc" // IWYU pragma: keep |
| |
| void registerVMPasses(); |
| |
| } // namespace mlir::iree_compiler::IREE::VM |
| |
| #endif // IREE_COMPILER_DIALECT_VM_TRANSFORMS_PASSES_H_ |