blob: 5334dd5d862ea5642830f7294bd46613e63163fd [file]
// 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_FLOW_TRANSFORMS_PASSES_H_
#define IREE_COMPILER_DIALECT_FLOW_TRANSFORMS_PASSES_H_
#include <functional>
#include "iree/compiler/Dialect/Flow/IR/FlowOps.h"
#include "llvm/ADT/StringMap.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/Pass/Pass.h"
#include "mlir/Pass/PassManager.h"
#include "mlir/Support/LLVM.h"
namespace mlir::iree_compiler::IREE::Flow {
//===----------------------------------------------------------------------===//
// Pipelines
//===----------------------------------------------------------------------===//
/// This is a placeholder for future. We should pass all the options through the
/// struct.
struct TransformOptions : public PassPipelineOptions<TransformOptions> {};
// Adds a set of passes to the given pass manager that run the required flow
// 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:
// Input legalization by one of:
// - Directly passing supported flow plus core ops
// buildFlowTransformPassPipeline
// <run conversion from flow to sequencer/hal/vm/etc>
void buildFlowTransformPassPipeline(OpPassManager &passManager,
const TransformOptions &transformOptions);
void registerFlowTransformPassPipeline();
//===----------------------------------------------------------------------===//
// Register all Passes
//===----------------------------------------------------------------------===//
#define GEN_PASS_DECL
#include "iree/compiler/Dialect/Flow/Transforms/Passes.h.inc" // IWYU pragma: keep
void registerFlowPasses();
} // namespace mlir::iree_compiler::IREE::Flow
#endif // IREE_COMPILER_DIALECT_FLOW_TRANSFORMS_PASSES_H_