Enzyme main
Loading...
Searching...
No Matches
Passes.h
Go to the documentation of this file.
1//===- Passes.h - Enzyme pass include header -----------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8#ifndef ENZYME_PASSES_H
9#define ENZYME_PASSES_H
10
11#include "../../Utils.h"
12#include "mlir/Conversion/LLVMCommon/LoweringOptions.h"
13#include "mlir/Pass/Pass.h"
14#include <memory>
15
16#include "mlir/Dialect/Arith/IR/Arith.h"
17#include "mlir/Dialect/Complex/IR/Complex.h"
18#include "mlir/Dialect/Tensor/IR/Tensor.h"
19
20#include "Dialect/Dialect.h"
21
22namespace mlir {
23class PatternRewriter;
24class RewritePatternSet;
25class DominanceInfo;
26} // namespace mlir
27
28namespace mlir {
29// Forward declaration from Dialect.h
30template <typename ConcreteDialect>
31void registerDialect(DialectRegistry &registry);
32
33namespace arith {
34class ArithDialect;
35} // end namespace arith
36
37namespace complex {
38class ComplexDialect;
39} // end namespace complex
40
41namespace cf {
42class ControlFlowDialect;
43} // end namespace cf
44
45namespace scf {
46class SCFDialect;
47} // end namespace scf
48
49namespace memref {
50class MemRefDialect;
51} // end namespace memref
52
53namespace func {
54class FuncDialect;
55} // end namespace func
56
57namespace affine {
58class AffineDialect;
59} // end namespace affine
60
61namespace tensor {
62class TensorDialect;
63} // end namespace tensor
64
65namespace LLVM {
66class LLVMDialect;
67} // end namespace LLVM
68
69namespace tensor {
70class TensorDialect;
71} // end namespace tensor
72
73namespace enzyme {
74
75#define GEN_PASS_DECL
76#include "Passes/Passes.h.inc"
77
78#define GEN_PASS_REGISTRATION
79#include "Passes/Passes.h.inc"
80
81class AutoDiffOp;
82bool inlineAutodiffOp(enzyme::AutoDiffOp &op, RewriterBase &rewriter,
83 SymbolTableCollection &symbolTable);
84} // namespace enzyme
85
86} // end namespace mlir
87
88#endif // ENZYME_PASSES_H
bool inlineAutodiffOp(enzyme::AutoDiffOp &op, RewriterBase &rewriter, SymbolTableCollection &symbolTable)
void registerDialect(DialectRegistry &registry)