|
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 | callForwardHandler (Operation *orig, OpBuilder &builder, MGradientUtils *gutils) |
| LogicalResult | callReverseHandler (Operation *orig, OpBuilder &builder, MGradientUtilsReverse *gutils, SmallVector< Value > caches) |
| SmallVector< Value > | callCacheValues (Operation *orig, MGradientUtilsReverse *gutils) |
| LogicalResult mlir::enzyme::detail::allocationForwardHandler | ( | Operation * | op, |
| OpBuilder & | builder, | ||
| MGradientUtils * | gutils, | ||
| bool | zero ) |
Definition at line 274 of file CoreDialectsAutoDiffImplementations.cpp.
References mlir::enzyme::MGradientUtils::eraseIfUnused(), mlir::enzyme::MGradientUtils::getNewFromOriginal(), and mlir::enzyme::MGradientUtils::setInvertedPointer().
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 96 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().
| SmallVector< Value > mlir::enzyme::detail::callCacheValues | ( | Operation * | orig, |
| MGradientUtilsReverse * | gutils ) |
Definition at line 828 of file CoreDialectsAutoDiffImplementations.cpp.
References getDirectCallee(), mlir::enzyme::MGradientUtils::getNewFromOriginal(), mlir::enzyme::MGradientUtilsReverse::initAndPushCache(), mlir::enzyme::MGradientUtils::invertPointerM(), mlir::enzyme::MGradientUtils::isConstantValue(), and splitReverseMemoryOk().
Referenced by mlir::enzyme::AutoDiffCallRev< OpTy >::cacheValues().
| LogicalResult mlir::enzyme::detail::callForwardHandler | ( | Operation * | orig, |
| OpBuilder & | builder, | ||
| MGradientUtils * | gutils ) |
Definition at line 547 of file CoreDialectsAutoDiffImplementations.cpp.
References CONSTANT, mlir::enzyme::MEnzymeLogic::CreateForwardDiff(), DUP_ARG, DUP_NONEED, mlir::enzyme::MGradientUtils::erase(), ForwardMode, mlir::enzyme::MTypeAnalysis::getAnalyzedTypeInfo(), mlir::enzyme::MGradientUtils::getDiffeTypeOfBase(), getDirectCallee(), mlir::enzyme::MGradientUtils::getNewFromOriginal(), mlir::enzyme::MGradientUtils::invertPointerM(), mlir::enzyme::MGradientUtils::isConstantValue(), mlir::enzyme::MGradientUtils::Logic, mlir::enzyme::MGradientUtils::omp, mlir::enzyme::MGradientUtils::postpasses, mlir::enzyme::MGradientUtils::replaceOrigOpWith(), mlir::enzyme::MGradientUtils::setDiffe(), mlir::enzyme::MGradientUtils::strongZero, mlir::enzyme::MGradientUtils::TA, mlir::enzyme::MGradientUtils::verifyPostPasses, and mlir::enzyme::MGradientUtils::width.
Referenced by mlir::enzyme::AutoDiffCallFwd< OpTy >::createForwardModeTangent().
| LogicalResult mlir::enzyme::detail::callReverseHandler | ( | Operation * | orig, |
| OpBuilder & | builder, | ||
| MGradientUtilsReverse * | gutils, | ||
| SmallVector< Value > | caches ) |
Definition at line 710 of file CoreDialectsAutoDiffImplementations.cpp.
References mlir::enzyme::MGradientUtilsReverse::addToDiffe(), mlir::enzyme::MGradientUtils::AtomicAdd, checkSplitReverseMemory(), CONSTANT, mlir::enzyme::MEnzymeLogic::CreateReverseDiff(), mlir::enzyme::MDiffeGradientUtils::diffe(), DUP_ARG, DUP_NONEED, mlir::enzyme::MTypeAnalysis::getAnalyzedTypeInfo(), mlir::enzyme::MGradientUtils::getDiffeTypeOfBase(), getDirectCallee(), mlir::enzyme::MGradientUtils::isConstantValue(), mlir::enzyme::MGradientUtils::Logic, mlir::enzyme::MGradientUtils::omp, OUT_DIFF, mlir::enzyme::MGradientUtilsReverse::popCache(), mlir::enzyme::MGradientUtils::postpasses, ReverseModeGradient, mlir::enzyme::MGradientUtils::strongZero, mlir::enzyme::MGradientUtils::TA, mlir::enzyme::MGradientUtils::verifyPostPasses, and mlir::enzyme::MGradientUtils::width.
Referenced by mlir::enzyme::AutoDiffCallRev< OpTy >::createReverseModeAdjoint().
| LogicalResult mlir::enzyme::detail::controlFlowForwardHandler | ( | Operation * | op, |
| OpBuilder & | builder, | ||
| MGradientUtils * | gutils ) |
Definition at line 380 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 437 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 190 of file CoreDialectsAutoDiffImplementations.cpp.
References contains(), mlir::enzyme::MGradientUtils::erase(), mlir::enzyme::getConcatValue(), mlir::enzyme::getExtractValue(), mlir::enzyme::MGradientUtils::getNewFromOriginal(), mlir::enzyme::oputils::inactiveStoredValueShadow(), mlir::enzyme::MGradientUtils::invertPointerM(), mlir::enzyme::MGradientUtils::isConstantValue(), mlir::enzyme::MGradientUtils::primalStoreElidable(), 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 322 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 299 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().