|
Enzyme main
|
Classes | |
| class | AutoDiffUsingAllocationFwd |
| class | AutoDiffUsingAllocationRev |
| class | AutoDiffUsingBranch |
| class | AutoDiffUsingControlFlow |
| class | AutoDiffUsingMemoryIdentity |
| class | AutoDiffUsingRegionTerminator |
| class | NoopRevAutoDiffInterface |
| class | ReturnRevAutoDiffInterface |
Functions | |
| template<typename SourceOp , bool filterGrad, bool includeShadows = true, bool includeDifferentialReturns = true> | |
| llvm::SmallVector< mlir::Value, 2 > | filterGradInputs (SourceOp uop) |
| LogicalResult | controlFlowForwardHandler (Operation *op, OpBuilder &builder, MGradientUtils *gutils) |
| LogicalResult | controlFlowForwardHandler (Operation *op, OpBuilder &builder, MGradientUtils *gutils, const llvm::SmallDenseSet< unsigned > &operandPositionsToShadow, const llvm::SmallDenseSet< unsigned > &resultPositionsToShadow) |
| void | branchingForwardHandler (Operation *op, OpBuilder &builder, MGradientUtils *gutils) |
| void | regionTerminatorForwardHandler (Operation *op, OpBuilder &builder, MGradientUtils *gutils) |
| void | returnReverseHandler (Operation *op, OpBuilder &builder, MGradientUtilsReverse *gutils) |
| LogicalResult | memoryIdentityForwardHandler (Operation *op, OpBuilder &builder, MGradientUtils *gutils, ArrayRef< int > storedVals) |
| LogicalResult | allocationForwardHandler (Operation *op, OpBuilder &builder, MGradientUtils *gutils, bool zero) |
| LogicalResult mlir::enzyme::detail::allocationForwardHandler | ( | Operation * | op, |
| OpBuilder & | builder, | ||
| MGradientUtils * | gutils, | ||
| bool | zero ) |
Definition at line 217 of file CoreDialectsAutoDiffImplementations.cpp.
References mlir::enzyme::MGradientUtils::eraseIfUnused(), mlir::enzyme::MGradientUtils::getNewFromOriginal(), and mlir::enzyme::MGradientUtils::setDiffe().
Referenced by mlir::enzyme::detail::AutoDiffUsingAllocationFwd< OpTy >::createForwardModeTangent(), and mlir::enzyme::detail::AutoDiffUsingAllocationRev< OpTy >::createShadowValues().
| void mlir::enzyme::detail::branchingForwardHandler | ( | Operation * | op, |
| OpBuilder & | builder, | ||
| MGradientUtils * | gutils ) |
Definition at line 48 of file CoreDialectsAutoDiffImplementations.cpp.
References mlir::enzyme::MGradientUtils::erase(), mlir::enzyme::MGradientUtils::getNewFromOriginal(), mlir::enzyme::MGradientUtils::invertPointerM(), mlir::enzyme::MGradientUtils::isConstantValue(), and mlir::enzyme::MGradientUtils::width.
Referenced by mlir::enzyme::detail::AutoDiffUsingBranch< OpTy >::createForwardModeTangent(), and createTerminator().
| LogicalResult mlir::enzyme::detail::controlFlowForwardHandler | ( | Operation * | op, |
| OpBuilder & | builder, | ||
| MGradientUtils * | gutils ) |
Definition at line 314 of file CoreDialectsAutoDiffImplementations.cpp.
References controlFlowForwardHandler(), and mlir::enzyme::MGradientUtils::isConstantValue().
Referenced by controlFlowForwardHandler(), and mlir::enzyme::detail::AutoDiffUsingControlFlow< OpTy >::createForwardModeTangent().
| LogicalResult mlir::enzyme::detail::controlFlowForwardHandler | ( | Operation * | op, |
| OpBuilder & | builder, | ||
| MGradientUtils * | gutils, | ||
| const llvm::SmallDenseSet< unsigned > & | operandPositionsToShadow, | ||
| const llvm::SmallDenseSet< unsigned > & | resultPositionsToShadow ) |
Definition at line 371 of file CoreDialectsAutoDiffImplementations.cpp.
References mlir::enzyme::MGradientUtils::erase(), mlir::enzyme::MGradientUtils::getNewFromOriginal(), mlir::enzyme::MGradientUtils::invertedPointers, mlir::enzyme::MGradientUtils::invertPointerM(), mlir::enzyme::MGradientUtils::isConstantValue(), mlir::enzyme::MGradientUtils::originalToNewFnOps, mlir::enzyme::MGradientUtils::replaceOrigOpWith(), mlir::enzyme::MGradientUtils::visitChild(), and mlir::enzyme::MGradientUtils::width.
| llvm::SmallVector< mlir::Value, 2 > mlir::enzyme::detail::filterGradInputs | ( | SourceOp | uop | ) |
| LogicalResult mlir::enzyme::detail::memoryIdentityForwardHandler | ( | Operation * | op, |
| OpBuilder & | builder, | ||
| MGradientUtils * | gutils, | ||
| ArrayRef< int > | storedVals ) |
Definition at line 139 of file CoreDialectsAutoDiffImplementations.cpp.
References contains(), mlir::enzyme::getConcatValue(), mlir::enzyme::getExtractValue(), mlir::enzyme::MGradientUtils::getNewFromOriginal(), mlir::enzyme::MGradientUtils::invertPointerM(), mlir::enzyme::MGradientUtils::isConstantValue(), mlir::enzyme::MGradientUtils::setDiffe(), and mlir::enzyme::MGradientUtils::width.
Referenced by mlir::enzyme::detail::AutoDiffUsingMemoryIdentity< OpTy, storedvals >::createForwardModeTangent().
| void mlir::enzyme::detail::regionTerminatorForwardHandler | ( | Operation * | op, |
| OpBuilder & | builder, | ||
| MGradientUtils * | gutils ) |
Definition at line 265 of file CoreDialectsAutoDiffImplementations.cpp.
References mlir::enzyme::MGradientUtils::getNewFromOriginal(), mlir::enzyme::MGradientUtils::invertPointerM(), and mlir::enzyme::MGradientUtils::isConstantValue().
Referenced by mlir::enzyme::detail::AutoDiffUsingRegionTerminator< OpTy >::createForwardModeTangent().
| void mlir::enzyme::detail::returnReverseHandler | ( | Operation * | op, |
| OpBuilder & | builder, | ||
| MGradientUtilsReverse * | gutils ) |
Definition at line 242 of file CoreDialectsAutoDiffImplementations.cpp.
References mlir::enzyme::MGradientUtilsReverse::addToDiffe(), mlir::enzyme::MGradientUtils::isConstantValue(), mlir::enzyme::MGradientUtils::newFunc, OUT_DIFF, and mlir::enzyme::MGradientUtils::RetDiffeTypes.
Referenced by mlir::enzyme::detail::ReturnRevAutoDiffInterface< OpTy >::createReverseModeAdjoint().