Enzyme main
Loading...
Searching...
No Matches
CoreDialectsAutoDiffImplementations.h File Reference
#include "Interfaces/AutoDiffOpInterface.h"
#include "mlir/Interfaces/FunctionInterfaces.h"
#include "mlir/Support/LogicalResult.h"
#include "llvm/ADT/DenseSet.h"
Include dependency graph for CoreDialectsAutoDiffImplementations.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  mlir::enzyme::detail::AutoDiffUsingControlFlow< OpTy >
 
class  mlir::enzyme::detail::AutoDiffUsingBranch< OpTy >
 
class  mlir::enzyme::detail::AutoDiffUsingRegionTerminator< OpTy >
 
class  mlir::enzyme::detail::NoopRevAutoDiffInterface< OpTy >
 
class  mlir::enzyme::detail::ReturnRevAutoDiffInterface< OpTy >
 
class  mlir::enzyme::detail::AutoDiffUsingMemoryIdentity< OpTy, storedvals >
 
class  mlir::enzyme::detail::AutoDiffUsingAllocationFwd< OpTy >
 
class  mlir::enzyme::detail::AutoDiffUsingAllocationRev< OpTy >
 
class  mlir::enzyme::AutoDiffCallFwd< OpTy >
 
class  mlir::enzyme::AutoDiffCallRev< OpTy >
 

Namespaces

namespace  mlir
 
namespace  mlir::enzyme
 
namespace  mlir::enzyme::detail
 

Functions

LogicalResult mlir::enzyme::detail::controlFlowForwardHandler (Operation *op, OpBuilder &builder, MGradientUtils *gutils)
 
LogicalResult mlir::enzyme::detail::controlFlowForwardHandler (Operation *op, OpBuilder &builder, MGradientUtils *gutils, const llvm::SmallDenseSet< unsigned > &operandPositionsToShadow, const llvm::SmallDenseSet< unsigned > &resultPositionsToShadow)
 
void mlir::enzyme::detail::branchingForwardHandler (Operation *op, OpBuilder &builder, MGradientUtils *gutils)
 
void mlir::enzyme::detail::regionTerminatorForwardHandler (Operation *op, OpBuilder &builder, MGradientUtils *gutils)
 
void mlir::enzyme::detail::returnReverseHandler (Operation *op, OpBuilder &builder, MGradientUtilsReverse *gutils)
 
LogicalResult mlir::enzyme::detail::memoryIdentityForwardHandler (Operation *op, OpBuilder &builder, MGradientUtils *gutils, ArrayRef< int > storedVals)
 
LogicalResult mlir::enzyme::detail::allocationForwardHandler (Operation *op, OpBuilder &builder, MGradientUtils *gutils, bool zero)
 
LogicalResult mlir::enzyme::detail::callForwardHandler (Operation *orig, OpBuilder &builder, MGradientUtils *gutils)
 
LogicalResult mlir::enzyme::detail::callReverseHandler (Operation *orig, OpBuilder &builder, MGradientUtilsReverse *gutils, SmallVector< Value > caches)
 
SmallVector< Value > mlir::enzyme::detail::callCacheValues (Operation *orig, MGradientUtilsReverse *gutils)
 
template<typename OpTy >
void mlir::enzyme::registerAutoDiffUsingCallInterface (MLIRContext &context)
 
template<typename OpTy >
void mlir::enzyme::registerAutoDiffUsingControlFlowInterface (MLIRContext &context)
 
template<typename OpTy >
void mlir::enzyme::registerAutoDiffUsingBranchInterface (MLIRContext &context)
 
template<typename OpTy >
void mlir::enzyme::registerAutoDiffUsingRegionTerminatorInterface (MLIRContext &context)
 
template<typename OpTy >
void mlir::enzyme::registerAutoDiffUsingReturnInterface (MLIRContext &context)
 
template<typename OpTy , int... storedvals>
void mlir::enzyme::registerAutoDiffUsingMemoryIdentityInterface (MLIRContext &context)
 
template<typename OpTy >
void mlir::enzyme::registerAutoDiffUsingAllocationInterface (MLIRContext &context)
 
void mlir::enzyme::registerAffineDialectAutoDiffInterface (DialectRegistry &registry)
 
void mlir::enzyme::registerArithDialectAutoDiffInterface (DialectRegistry &registry)
 
void mlir::enzyme::registerBuiltinDialectAutoDiffInterface (DialectRegistry &registry)
 
void mlir::enzyme::registerLLVMDialectAutoDiffInterface (DialectRegistry &registry)
 
void mlir::enzyme::registerLLVMExtDialectAutoDiffInterface (DialectRegistry &registry)
 
void mlir::enzyme::registerNVVMDialectAutoDiffInterface (DialectRegistry &registry)
 
void mlir::enzyme::registerMemRefDialectAutoDiffInterface (DialectRegistry &registry)
 
void mlir::enzyme::registerComplexDialectAutoDiffInterface (DialectRegistry &registry)
 
void mlir::enzyme::registerSCFDialectAutoDiffInterface (DialectRegistry &registry)
 
void mlir::enzyme::registerCFDialectAutoDiffInterface (DialectRegistry &registry)
 
void mlir::enzyme::registerLinalgDialectAutoDiffInterface (DialectRegistry &registry)
 
void mlir::enzyme::registerMathDialectAutoDiffInterface (DialectRegistry &registry)
 
void mlir::enzyme::registerFuncDialectAutoDiffInterface (DialectRegistry &registry)
 
void mlir::enzyme::registerTensorDialectAutoDiffInterface (DialectRegistry &registry)
 
void mlir::enzyme::registerGPUDialectAutoDiffInterface (DialectRegistry &registry)
 
void mlir::enzyme::registerEnzymeDialectAutoDiffInterface (DialectRegistry &registry)
 
void mlir::enzyme::registerCoreDialectAutodiffInterfaces (DialectRegistry &registry)
 
mlir::TypedAttr mlir::enzyme::getConstantAttr (mlir::Type type, llvm::StringRef value)
 
bool mlir::enzyme::allResultsActive (Operation *op, const MGradientUtils *gutils)
 
void mlir::enzyme::setDerivativeFastMath (Operation *op)
 Give an operation built for a derivative the fast-math flags the LLVM path gives everything it builds (Utils.cpp's getFast()).
 
Value mlir::enzyme::setDerivativeFastMath (Value v)
 
template<typename OpTy >
std::enable_if_t< std::is_base_of< OpState, OpTy >::value, OpTy > mlir::enzyme::setDerivativeFastMath (OpTy op)