Enzyme main
Loading...
Searching...
No Matches
AugmentedReturn Class Reference

return structtype if recursive function More...

#include "MLIR/Interfaces/EnzymeLogic.h"

Collaboration diagram for AugmentedReturn:

Public Member Functions

 AugmentedReturn (llvm::Function *fn, llvm::Type *tapeType, std::map< std::pair< llvm::Instruction *, CacheType >, int > tapeIndices, std::map< AugmentedStruct, int > returns, std::map< llvm::CallInst *, std::pair< bool, const std::vector< bool > > > overwritten_args_map, std::map< llvm::Instruction *, bool > can_modref_map, const std::vector< DIFFE_TYPE > &constant_args, bool shadowReturnUsed)
 

Public Attributes

llvm::Function * fn
 
llvm::Type * tapeType
 return structtype if recursive function
 
std::map< std::pair< llvm::Instruction *, CacheType >, int > tapeIndices
 
std::map< const llvm::CallInst *, const AugmentedReturn * > subaugmentations
 Map from original call to sub augmentation data.
 
std::map< AugmentedStruct, int > returns
 Map from information desired from a augmented return to its index in the returned struct.
 
std::map< llvm::CallInst *, std::pair< bool, const std::vector< bool > > > overwritten_args_map
 
std::map< llvm::Instruction *, bool > can_modref_map
 
std::set< ssize_t > tapeIndiciesToFree
 
const std::vector< DIFFE_TYPEconstant_args
 
bool shadowReturnUsed
 
bool isComplete
 

Detailed Description

return structtype if recursive function

Definition at line 100 of file EnzymeLogic.h.

Constructor & Destructor Documentation

◆ AugmentedReturn()

AugmentedReturn::AugmentedReturn ( llvm::Function * fn,
llvm::Type * tapeType,
std::map< std::pair< llvm::Instruction *, CacheType >, int > tapeIndices,
std::map< AugmentedStruct, int > returns,
std::map< llvm::CallInst *, std::pair< bool, const std::vector< bool > > > overwritten_args_map,
std::map< llvm::Instruction *, bool > can_modref_map,
const std::vector< DIFFE_TYPE > & constant_args,
bool shadowReturnUsed )
inline

Definition at line 128 of file EnzymeLogic.h.

Member Data Documentation

◆ can_modref_map

std::map<llvm::Instruction *, bool> AugmentedReturn::can_modref_map

Definition at line 118 of file EnzymeLogic.h.

◆ constant_args

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

◆ fn

llvm::Function* AugmentedReturn::fn

◆ isComplete

bool AugmentedReturn::isComplete

Definition at line 126 of file EnzymeLogic.h.

◆ overwritten_args_map

std::map<llvm::CallInst *, std::pair<bool, const std::vector<bool> > > AugmentedReturn::overwritten_args_map

Definition at line 116 of file EnzymeLogic.h.

◆ returns

std::map<AugmentedStruct, int> AugmentedReturn::returns

Map from information desired from a augmented return to its index in the returned struct.

Definition at line 113 of file EnzymeLogic.h.

Referenced by AdjointGenerator::recursivelyHandleSubfunction(), and AdjointGenerator::visitOMPCall().

◆ shadowReturnUsed

bool AugmentedReturn::shadowReturnUsed

Definition at line 124 of file EnzymeLogic.h.

◆ subaugmentations

std::map<const llvm::CallInst *, const AugmentedReturn *> AugmentedReturn::subaugmentations

Map from original call to sub augmentation data.

Definition at line 109 of file EnzymeLogic.h.

Referenced by AdjointGenerator::recursivelyHandleSubfunction(), AdjointGenerator::visitCallInst(), and AdjointGenerator::visitOMPCall().

◆ tapeIndices

std::map<std::pair<llvm::Instruction *, CacheType>, int> AugmentedReturn::tapeIndices

◆ tapeIndiciesToFree

std::set<ssize_t> AugmentedReturn::tapeIndiciesToFree

Definition at line 120 of file EnzymeLogic.h.

Referenced by AdjointGenerator::visitOMPCall().

◆ tapeType

llvm::Type* AugmentedReturn::tapeType

return structtype if recursive function

Definition at line 104 of file EnzymeLogic.h.

Referenced by AdjointGenerator::recursivelyHandleSubfunction(), and AdjointGenerator::visitOMPCall().


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