11#include "../../Utils.h"
12#include "mlir/Conversion/LLVMCommon/LoweringOptions.h"
13#include "mlir/Pass/Pass.h"
16#include "mlir/Dialect/Arith/IR/Arith.h"
17#include "mlir/Dialect/Complex/IR/Complex.h"
18#include "mlir/Dialect/GPU/IR/GPUDialect.h"
19#include "mlir/Dialect/Linalg/IR/Linalg.h"
20#include "mlir/Dialect/MemRef/IR/MemRef.h"
21#include "mlir/Dialect/Tensor/IR/Tensor.h"
22#include "mlir/Interfaces/LoopLikeInterface.h"
28class RewritePatternSet;
34template <
typename ConcreteDialect>
46class ControlFlowDialect;
88#include "Passes/Passes.h.inc"
90#define GEN_PASS_REGISTRATION
91#include "Passes/Passes.h.inc"
95 SymbolTableCollection &symbolTable);
102 uint64_t maxHoistedBytes = 0);
bool hoistLoopAllocations(LoopLikeOpInterface loop, uint64_t maxHoistedBytes=0)
Moves allocation/deallocation pairs that are private to one iteration of loop out of it,...
bool inlineAutodiffOp(enzyme::AutoDiffOp &op, RewriterBase &rewriter, SymbolTableCollection &symbolTable)
void registerDialect(DialectRegistry ®istry)