|
Enzyme main
|
This is the complete list of members for DiffeGradientUtils, including all inherited members.
| AC | CacheUtility | protected |
| addReverseBlock(llvm::BasicBlock *currentBlock, llvm::Twine const &name, bool forkCache=true, bool push=true) | GradientUtils | |
| addToDiffe(llvm::Value *val, llvm::Value *dif, llvm::IRBuilder<> &BuilderM, llvm::Type *addingType, llvm::ArrayRef< llvm::Value * > idxs={}, llvm::Value *mask=nullptr) | DiffeGradientUtils | |
| addToDiffe(llvm::Value *val, llvm::Value *dif, llvm::IRBuilder<> &BuilderM, llvm::Type *addingType, unsigned start, unsigned size, llvm::ArrayRef< llvm::Value * > idxs={}, llvm::Value *mask=nullptr, size_t ignoreFirstSlicesToDiff=0) | DiffeGradientUtils | |
| addToInvertedPtrDiffe(llvm::Instruction *orig, llvm::Value *origVal, llvm::Type *addingType, unsigned start, unsigned size, llvm::Value *origptr, llvm::Value *dif, llvm::IRBuilder<> &BuilderM, llvm::MaybeAlign align=llvm::MaybeAlign(), llvm::Value *mask=nullptr) | DiffeGradientUtils | |
| addToInvertedPtrDiffe(llvm::Instruction *orig, llvm::Value *origVal, TypeTree vd, unsigned size, llvm::Value *origptr, llvm::Value *prediff, llvm::IRBuilder<> &Builder2, llvm::MaybeAlign align=llvm::MaybeAlign(), llvm::Value *premask=nullptr) | DiffeGradientUtils | |
| allocationsWithGuaranteedFree | GradientUtils | |
| applyChainRule(llvm::Type *diffType, llvm::IRBuilder<> &Builder, Func rule, Args... args) | GradientUtils | inline |
| applyChainRule(llvm::IRBuilder<> &Builder, Func rule, Args... args) | GradientUtils | inline |
| applyChainRule(llvm::Type *diffType, llvm::ArrayRef< llvm::Constant * > diffs, llvm::IRBuilder<> &Builder, Func rule) | GradientUtils | inline |
| ArgDiffeTypes | GradientUtils | |
| assumeDynamicLoopOfSizeOne(llvm::Loop *L) const override | GradientUtils | virtual |
| ATA | GradientUtils | |
| AtomicAdd | GradientUtils | |
| backwardsOnlyShadows | GradientUtils | |
| BlocksDominatingAllReturns | GradientUtils | |
| branchToCorrespondingTarget(llvm::BasicBlock *ctx, llvm::IRBuilder<> &BuilderM, const std::map< llvm::BasicBlock *, std::vector< std::pair< llvm::BasicBlock *, llvm::BasicBlock * > > > &targetToPreds, const std::map< llvm::BasicBlock *, llvm::PHINode * > *replacePHIs=nullptr) | GradientUtils | |
| cacheForReverse(llvm::IRBuilder<> &BuilderQ, llvm::Value *malloc, int idx, bool replace=true) | GradientUtils | |
| CacheLookups | CacheUtility | protected |
| CacheUtility(llvm::TargetLibraryInfo &TLI, llvm::Function *newFunc) | CacheUtility | inlineprotected |
| can_modref_map | GradientUtils | |
| computeForwardingProperties(llvm::Instruction *V) | GradientUtils | |
| computeGuaranteedFrees() | GradientUtils | |
| computeMinCache() | GradientUtils | |
| createCacheForScope(LimitContext ctx, llvm::Type *T, llvm::StringRef name, bool shouldFree, bool allocateInternal=true, llvm::Value *extraSize=nullptr) | CacheUtility | |
| CreateFromClone(EnzymeLogic &Logic, DerivativeMode mode, bool runtimeActivity, bool strongZero, unsigned width, llvm::Function *todiff, llvm::TargetLibraryInfo &TLI, TypeAnalysis &TA, FnTypeInfo &oldTypeInfo, DIFFE_TYPE retType, bool shadowReturnArg, bool diffeReturnArg, llvm::ArrayRef< DIFFE_TYPE > constant_args, bool returnTape, bool returnPrimal, llvm::Type *additionalArg, bool omp) | DiffeGradientUtils | static |
| GradientUtils::CreateFromClone(EnzymeLogic &Logic, bool runtimeActivity, bool strongZero, unsigned width, llvm::Function *todiff, llvm::TargetLibraryInfo &TLI, TypeAnalysis &TA, FnTypeInfo &oldTypeInfo, DIFFE_TYPE retType, llvm::ArrayRef< DIFFE_TYPE > constant_args, bool returnUsed, bool shadowReturnUsed, std::map< AugmentedStruct, int > &returnMapping, bool omp) | GradientUtils | static |
| diffe(llvm::Value *val, llvm::IRBuilder<> &BuilderM) | DiffeGradientUtils | |
| differentialAliasScope | GradientUtils | |
| differentialAliasScopeDomains | GradientUtils | |
| differentials | DiffeGradientUtils | |
| DT | CacheUtility | |
| dumpPointers() | GradientUtils | |
| dumpScope() | CacheUtility | inline |
| ensureLookupCached(llvm::Instruction *inst, bool shouldFree=true, llvm::BasicBlock *scope=nullptr, llvm::MDNode *TBAA=nullptr) | GradientUtils | |
| erase(llvm::Instruction *I) override | GradientUtils | virtual |
| eraseFictiousPHIs() | GradientUtils | |
| eraseWithPlaceholder(llvm::Instruction *I, llvm::Instruction *orig, const llvm::Twine &suffix="_replacementA", bool erase=true) | GradientUtils | |
| extractMeta(llvm::IRBuilder<> &Builder, llvm::Value *Agg, unsigned off, const llvm::Twine &name="") | GradientUtils | static |
| extractMeta(llvm::IRBuilder<> &Builder, llvm::Value *Agg, llvm::ArrayRef< unsigned > off, const llvm::Twine &name="", bool fallback=true) | GradientUtils | static |
| extractMeta(llvm::Type *T, llvm::ArrayRef< unsigned > off) | GradientUtils | static |
| fictiousPHIs | GradientUtils | |
| fixLCSSA(llvm::Instruction *inst, llvm::BasicBlock *forwardBlock, bool legalInBlock=false) | GradientUtils | |
| forceActiveDetection() | GradientUtils | |
| forceAugmentedReturns() | GradientUtils | |
| forceContexts() | GradientUtils | |
| forwardDeallocations | GradientUtils | |
| freeCache(llvm::BasicBlock *forwardPreheader, const SubLimitType &sublimits, int i, llvm::AllocaInst *alloc, llvm::Type *myType, llvm::ConstantInt *byteSizeOfType, llvm::Value *storeInto, llvm::MDNode *InvariantMD) override | DiffeGradientUtils | virtual |
| FreeMemory | DiffeGradientUtils | |
| getCacheAlignment(unsigned bsize) const | CacheUtility | inline |
| getCachePointer(llvm::Type *T, bool inForwardPass, llvm::IRBuilder<> &BuilderM, LimitContext ctx, llvm::Value *cache, bool storeInInstructionsMap, const llvm::ValueToValueMapTy &available, llvm::Value *extraSize) | CacheUtility | |
| getContext(llvm::BasicBlock *BB, LoopContext &lc) | GradientUtils | |
| CacheUtility::getContext(llvm::BasicBlock *BB, LoopContext &loopContext, bool ReverseLimit) | CacheUtility | |
| getDerivativeAliasScope(const llvm::Value *origptr, ssize_t newptr) | GradientUtils | |
| getDifferential(llvm::Value *val) | DiffeGradientUtils | |
| getDiffeType(llvm::Value *v, bool foreignFunction) const | GradientUtils | |
| getDynamicLoopLimit(llvm::Loop *L, bool ReverseLimit=true) | CacheUtility | |
| getForwardBuilder(llvm::IRBuilder<> &Builder2) | GradientUtils | |
| getIndex(std::pair< llvm::Instruction *, CacheType > idx, const std::map< std::pair< llvm::Instruction *, CacheType >, int > &mapping, llvm::IRBuilder<> &) | GradientUtils | |
| getIndex(std::pair< llvm::Instruction *, CacheType > idx, std::map< std::pair< llvm::Instruction *, CacheType >, int > &mapping, llvm::IRBuilder<> &) | GradientUtils | |
| getInvertedBundles(llvm::CallInst *orig, llvm::ArrayRef< ValueType > types, llvm::IRBuilder<> &Builder2, bool lookup, const llvm::ValueToValueMapTy &available=llvm::ValueToValueMapTy()) | GradientUtils | |
| getNewFromOriginal(const llvm::DebugLoc L) const | GradientUtils | |
| getNewFromOriginal(const llvm::Value *originst) const | GradientUtils | |
| getNewFromOriginal(const llvm::Instruction *newinst) const | GradientUtils | |
| getNewFromOriginal(const llvm::BasicBlock *newinst) const | GradientUtils | |
| getNewIfOriginal(llvm::Value *originst) const | GradientUtils | |
| GetOrCreateShadowConstant(RequestContext context, EnzymeLogic &Logic, llvm::TargetLibraryInfo &TLI, TypeAnalysis &TA, llvm::Constant *F, DerivativeMode mode, bool runtimeActivity, bool strongZero, unsigned width, bool AtomicAdd) | GradientUtils | static |
| GetOrCreateShadowFunction(RequestContext context, EnzymeLogic &Logic, llvm::TargetLibraryInfo &TLI, TypeAnalysis &TA, llvm::Function *F, DerivativeMode mode, bool runtimeActivity, bool strongZero, unsigned width, bool AtomicAdd) | GradientUtils | static |
| getOriginalFromNew(const llvm::BasicBlock *newinst) const | GradientUtils | |
| getOrInsertConditionalIndex(llvm::Value *val, LoopContext &lc, bool pickTrue) | GradientUtils | |
| getOrInsertTotalMultiplicativeProduct(llvm::Value *val, LoopContext &lc) | GradientUtils | |
| getReturnDiffeType(llvm::Value *orig, bool *primalReturnUsedP, bool *shadowReturnUsedP, DerivativeMode cmode) const | GradientUtils | |
| getReturnDiffeType(llvm::Value *orig, bool *primalReturnUsedP, bool *shadowReturnUsedP) const | GradientUtils | |
| getReverseBuilder(llvm::IRBuilder<> &Builder2, bool original=true) | GradientUtils | |
| getReverseOrLatchMerge(llvm::BasicBlock *BB, llvm::BasicBlock *branchingBlock) | GradientUtils | |
| getShadowType(llvm::Type *ty, unsigned width) | GradientUtils | static |
| getShadowType(llvm::Type *ty) | GradientUtils | |
| getSubLimits(bool inForwardPass, llvm::IRBuilder<> *RB, LimitContext ctx, llvm::Value *extraSize=nullptr) | CacheUtility | |
| getTapeValues() const | GradientUtils | inline |
| getWidth() | GradientUtils | inline |
| GradientUtils(EnzymeLogic &Logic, llvm::Function *newFunc_, llvm::Function *oldFunc_, llvm::TargetLibraryInfo &TLI_, TypeAnalysis &TA_, TypeResults TR_, llvm::ValueToValueMapTy &invertedPointers_, const llvm::SmallPtrSetImpl< llvm::Value * > &constantvalues_, const llvm::SmallPtrSetImpl< llvm::Value * > &activevals_, DIFFE_TYPE ReturnActivity, bool shadowReturnUsed, llvm::ArrayRef< DIFFE_TYPE > ArgDiffeTypes_, llvm::ValueMap< const llvm::Value *, AssertingReplacingVH > &originalToNewFn_, DerivativeMode mode, bool runtimeActivity, bool strongZero, unsigned width, bool omp) | GradientUtils | |
| hasUninverted(const llvm::Value *inverted) const | GradientUtils | |
| inversionAllocs | CacheUtility | |
| invertedPointers | GradientUtils | |
| invertPointerM(llvm::Value *val, llvm::IRBuilder<> &BuilderM, bool nullShadow=false) | GradientUtils | |
| isConstantInstruction(const llvm::Instruction *inst) const | GradientUtils | |
| isConstantValue(llvm::Value *val) const | GradientUtils | |
| isInstructionUsedInLoopInduction(llvm::Instruction &I) | CacheUtility | inline |
| isOriginal(const llvm::Value *newinst) const | GradientUtils | |
| isOriginal(const llvm::Instruction *newinst) const | GradientUtils | |
| isOriginal(const llvm::BasicBlock *newinst) const | GradientUtils | |
| isOriginalBlock(const llvm::BasicBlock &BB) const | GradientUtils | |
| knownRecomputeHeuristic | GradientUtils | |
| lcssaFixes | GradientUtils | |
| lcssaPHIToOrig | GradientUtils | |
| legalRecompute(const llvm::Value *val, const llvm::ValueToValueMapTy &available, llvm::IRBuilder<> *BuilderM, bool reverse=false, bool legalRecomputeCache=true) const | GradientUtils | |
| LI | CacheUtility | protected |
| loadFromCachePointer(llvm::Type *T, llvm::IRBuilder<> &BuilderM, llvm::Value *cptr, llvm::Value *cache) | CacheUtility | protected |
| Logic | GradientUtils | |
| lookupM(llvm::Value *val, llvm::IRBuilder<> &BuilderM, const llvm::ValueToValueMapTy &incoming_availalble=llvm::ValueToValueMapTy(), bool tryLegalRecomputeCheck=true, llvm::BasicBlock *scope=nullptr) override | GradientUtils | virtual |
| lookupValueFromCache(llvm::Type *T, bool inForwardPass, llvm::IRBuilder<> &BuilderM, LimitContext ctx, llvm::Value *cache, bool isi1, const llvm::ValueToValueMapTy &available, llvm::Value *extraSize=nullptr, llvm::Value *extraOffset=nullptr) | CacheUtility | |
| loopContexts | CacheUtility | protected |
| mode | GradientUtils | |
| needsCacheWholeAllocation(const llvm::Value *V) const | GradientUtils | |
| newBlocksForLoop_cache | GradientUtils | |
| newFunc | CacheUtility | |
| newToOriginalFn | GradientUtils | |
| notForAnalysis | GradientUtils | |
| numThreads | GradientUtils | |
| oldFunc | GradientUtils | |
| omp | GradientUtils | |
| ompNumThreads() | GradientUtils | |
| ompThreadId() | GradientUtils | |
| OrigAA | GradientUtils | |
| OrigDT | GradientUtils | |
| originalBlocks | GradientUtils | |
| originalCalls | GradientUtils | |
| originalToNewFn | GradientUtils | |
| OrigLI | GradientUtils | |
| OrigPDT | GradientUtils | |
| OrigSE | GradientUtils | |
| overwritten_args_map_ptr | GradientUtils | |
| postDominatingFrees | GradientUtils | |
| recursiveFAdd(llvm::IRBuilder<> &B, llvm::Value *lhs, llvm::Value *rhs, llvm::ArrayRef< unsigned > lhs_off={}, llvm::ArrayRef< unsigned > rhs_off={}, llvm::Value *prev=nullptr, bool vectorLayer=false) | GradientUtils | static |
| rematerializableAllocations | GradientUtils | |
| rematerializedLoops_cache | GradientUtils | |
| rematerializedPrimalOrShadowAllocations | GradientUtils | |
| replaceAndRemoveUnwrapCacheFor(llvm::Value *A, llvm::Value *B) | GradientUtils | |
| replaceAWithB(llvm::Value *A, llvm::Value *B, bool storeInCache=false) override | GradientUtils | virtual |
| reverseBlocks | GradientUtils | |
| reverseBlockToPrimal | GradientUtils | |
| runtimeActivity | GradientUtils | |
| scopeAllocs | CacheUtility | protected |
| scopeFrees | CacheUtility | protected |
| scopeInstructions | CacheUtility | protected |
| scopeMap | CacheUtility | protected |
| SE | CacheUtility | protected |
| setDiffe(llvm::Value *val, llvm::Value *toset, llvm::IRBuilder<> &BuilderM) | DiffeGradientUtils | |
| setPtrDiffe(llvm::Instruction *orig, llvm::Value *ptr, llvm::Value *newval, llvm::IRBuilder<> &BuilderM, llvm::MaybeAlign align, unsigned start, unsigned size, bool isVolatile, llvm::AtomicOrdering ordering, llvm::SyncScope::ID syncScope, llvm::Value *mask, llvm::ArrayRef< llvm::Metadata * > noAlias, llvm::ArrayRef< llvm::Metadata * > scopes, bool needs_post_cache=false) | GradientUtils | |
| setTape(llvm::Value *newtape) | GradientUtils | |
| shadowReturnUsed | GradientUtils | |
| shouldRecompute(const llvm::Value *val, const llvm::ValueToValueMapTy &available, llvm::IRBuilder<> *BuilderM) | GradientUtils | |
| storeInstructionInCache(LimitContext ctx, llvm::IRBuilder<> &BuilderM, llvm::Value *val, llvm::AllocaInst *cache, llvm::MDNode *TBAA=nullptr) | CacheUtility | |
| storeInstructionInCache(LimitContext ctx, llvm::Instruction *inst, llvm::AllocaInst *cache, llvm::MDNode *TBAA=nullptr) | CacheUtility | |
| strongZero | GradientUtils | |
| SubLimitType typedef | CacheUtility | |
| TA | GradientUtils | |
| TapesToPreventRecomputation | GradientUtils | |
| tid | GradientUtils | |
| TLI | CacheUtility | |
| TR | GradientUtils | |
| unnecessaryIntermediates | GradientUtils | |
| unnecessaryValuesP | GradientUtils | |
| unwrapM(llvm::Value *const val, llvm::IRBuilder<> &BuilderM, const llvm::ValueToValueMapTy &available, UnwrapMode unwrapMode, llvm::BasicBlock *scope=nullptr, bool permitCache=true) override final | GradientUtils | virtual |
| unwrappedLoads | GradientUtils | |
| usedInRooting(const llvm::CallBase *orig, llvm::ArrayRef< ValueType > types, const llvm::Value *val, bool shadow) const | GradientUtils | |
| ~CacheUtility() | CacheUtility | virtual |