#include "Dialect/Ops.h"
#include "Interfaces/GradientUtilsReverse.h"
#include "Interfaces/Utils.h"
#include "PassDetails.h"
#include "Passes/Passes.h"
#include "mlir/Analysis/AliasAnalysis.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/IR/Builders.h"
#include "mlir/Interfaces/FunctionInterfaces.h"
#include <cstdint>
Go to the source code of this file.
|
| template<typename SourceOp > |
| BatchDiffCacheKey | mlir::enzyme::batchutils::createDiffCacheKey (SourceOp uop, FunctionOpInterface fn) |
| |
| template<typename SourceOp , std::enable_if_t< llvm::is_one_of< SourceOp, ForwardDiffOp, AutoDiffOp >::value, bool > = true> |
| SmallVector< MemoryEffects::EffectInstance > | mlir::enzyme::batchutils::findCallerEffects (SourceOp callerOp, FunctionOpInterface innerFnOp, const SmallVector< MemoryEffects::EffectInstance > &innerEffects) |
| |
| template<typename SourceOp , std::enable_if_t< llvm::is_one_of< SourceOp, ForwardDiffOp, AutoDiffOp >::value, bool > = true> |
| llvm::SmallVector< SourceOp, 2 > | mlir::enzyme::batchutils::pruneGradDefs (BatchDiffCacheKey &key, SmallVector< SourceOp > &allDiffs) |
| |
| template<typename SourceOp , std::enable_if_t< llvm::is_one_of< SourceOp, ForwardDiffOp, AutoDiffOp >::value, bool > = true> |
| llvm::SmallVector< SourceOp > | mlir::enzyme::batchutils::pruneMemoryEffects (SymbolTableCollection &symbolTable, BatchDiffCacheKey &key, SmallVector< SourceOp > &prunedSources, DenseMap< SourceOp, SmallVector< MemoryEffects::EffectInstance > > &callerEffectMap, llvm::DenseMap< FunctionOpInterface, SmallVector< MemoryEffects::EffectInstance > > &innerEffectCache) |
| |