Enzyme main
Loading...
Searching...
No Matches
ReverseCacheKey Struct Reference

todiff is the function to differentiate retType is the activity info of the return. More...

#include "MLIR/Interfaces/EnzymeLogic.h"

Collaboration diagram for ReverseCacheKey:

Public Member Functions

ReverseCacheKey replaceTypeInfo (const FnTypeInfo &newTypeInfo) const
 
bool operator< (const ReverseCacheKey &rhs) const
 

Public Attributes

llvm::Function * todiff
 
DIFFE_TYPE retType
 
const std::vector< DIFFE_TYPEconstant_args
 
bool subsequent_calls_may_write
 
std::vector< bool > overwritten_args
 
bool returnUsed
 
bool shadowReturnUsed
 
DerivativeMode mode
 
unsigned width
 
bool freeMemory
 
bool AtomicAdd
 
llvm::Type * additionalType
 
bool forceAnonymousTape
 
const FnTypeInfo typeInfo
 
bool runtimeActivity
 
bool strongZero
 

Detailed Description

todiff is the function to differentiate retType is the activity info of the return.

Only allowed to be DUP_ARG or CONSTANT. DUP_NONEED is not allowed, set returnValue to false instead. constant_args is the activity info of the arguments subsequent_calls_may_write denotes whether some followup call may write to accessible memory (and thus can potentially overwrite a load made in this function). overwritten_args marks whether an argument may be overwritten before loads in the generated function (and thus cannot be cached). returnValue is whether the primal's return should also be returned. dretUsed is whether the shadow return value should also be returned. Only allowed to be true if retType is CDIFFE_TYPE::DUP_ARG. additionalArg is the type (or null) of an additional type in the signature to hold the tape. typeInfo is the type info information about the calling context AtomicAdd is whether to perform all adjoint updates to memory in an atomic way

Definition at line 160 of file EnzymeLogic.h.

Member Function Documentation

◆ operator<()

bool ReverseCacheKey::operator< ( const ReverseCacheKey & rhs) const
inline

Definition at line 212 of file EnzymeLogic.h.

◆ replaceTypeInfo()

ReverseCacheKey ReverseCacheKey::replaceTypeInfo ( const FnTypeInfo & newTypeInfo) const
inline

Definition at line 178 of file EnzymeLogic.h.

Member Data Documentation

◆ additionalType

llvm::Type* ReverseCacheKey::additionalType

Definition at line 172 of file EnzymeLogic.h.

◆ AtomicAdd

bool ReverseCacheKey::AtomicAdd

Definition at line 171 of file EnzymeLogic.h.

◆ constant_args

const std::vector<DIFFE_TYPE> ReverseCacheKey::constant_args

Definition at line 163 of file EnzymeLogic.h.

◆ forceAnonymousTape

bool ReverseCacheKey::forceAnonymousTape

Definition at line 173 of file EnzymeLogic.h.

◆ freeMemory

bool ReverseCacheKey::freeMemory

Definition at line 170 of file EnzymeLogic.h.

◆ mode

DerivativeMode ReverseCacheKey::mode

Definition at line 168 of file EnzymeLogic.h.

◆ overwritten_args

std::vector<bool> ReverseCacheKey::overwritten_args

Definition at line 165 of file EnzymeLogic.h.

◆ retType

DIFFE_TYPE ReverseCacheKey::retType

Definition at line 162 of file EnzymeLogic.h.

◆ returnUsed

bool ReverseCacheKey::returnUsed

Definition at line 166 of file EnzymeLogic.h.

◆ runtimeActivity

bool ReverseCacheKey::runtimeActivity

Definition at line 175 of file EnzymeLogic.h.

◆ shadowReturnUsed

bool ReverseCacheKey::shadowReturnUsed

Definition at line 167 of file EnzymeLogic.h.

◆ strongZero

bool ReverseCacheKey::strongZero

Definition at line 176 of file EnzymeLogic.h.

◆ subsequent_calls_may_write

bool ReverseCacheKey::subsequent_calls_may_write

Definition at line 164 of file EnzymeLogic.h.

◆ todiff

llvm::Function* ReverseCacheKey::todiff

Definition at line 161 of file EnzymeLogic.h.

◆ typeInfo

const FnTypeInfo ReverseCacheKey::typeInfo

Definition at line 174 of file EnzymeLogic.h.

◆ width

unsigned ReverseCacheKey::width

Definition at line 169 of file EnzymeLogic.h.


The documentation for this struct was generated from the following file: