Enzyme main
Loading...
Searching...
No Matches
EnzymeBatchDiffPass.h File Reference
#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>
Include dependency graph for EnzymeBatchDiffPass.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mlir::enzyme::batchutils::BatchDiffCacheKey
 

Namespaces

namespace  mlir
 
namespace  mlir::enzyme
 
namespace  mlir::enzyme::batchutils
 

Functions

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)