|
Enzyme main
|
return structtype if recursive function More...
#include "MLIR/Interfaces/EnzymeLogic.h"

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_TYPE > | constant_args |
| bool | shadowReturnUsed |
| std::set< const llvm::Value * > | primalUnnecessaryValues |
| The augmented pass's unnecessary values and recompute decisions, which determine whether it used the primal of a value. | |
| std::map< const llvm::Value *, bool > | primalKnownRecomputeHeuristic |
| bool | isComplete |
return structtype if recursive function
Definition at line 100 of file EnzymeLogic.h.
|
inline |
Definition at line 135 of file EnzymeLogic.h.
| std::map<llvm::Instruction *, bool> AugmentedReturn::can_modref_map |
Definition at line 118 of file EnzymeLogic.h.
| const std::vector<DIFFE_TYPE> AugmentedReturn::constant_args |
Definition at line 122 of file EnzymeLogic.h.
Referenced by AdjointGenerator::recursivelyHandleSubfunction(), and AdjointGenerator::visitOMPCall().
| llvm::Function* AugmentedReturn::fn |
Definition at line 102 of file EnzymeLogic.h.
Referenced by AdjointGenerator::recursivelyHandleSubfunction(), and AdjointGenerator::visitOMPCall().
| bool AugmentedReturn::isComplete |
Definition at line 133 of file EnzymeLogic.h.
| std::map<llvm::CallInst *, std::pair<bool, const std::vector<bool> > > AugmentedReturn::overwritten_args_map |
Definition at line 116 of file EnzymeLogic.h.
| std::map<const llvm::Value *, bool> AugmentedReturn::primalKnownRecomputeHeuristic |
Definition at line 131 of file EnzymeLogic.h.
| std::set<const llvm::Value *> AugmentedReturn::primalUnnecessaryValues |
The augmented pass's unnecessary values and recompute decisions, which determine whether it used the primal of a value.
The reverse pass of split mode answers that question from these, as its own analysis can differ, e.g. when only the augmented function returns the primal.
Definition at line 130 of file EnzymeLogic.h.
| 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().
| bool AugmentedReturn::shadowReturnUsed |
Definition at line 124 of file EnzymeLogic.h.
| 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().
| std::map<std::pair<llvm::Instruction *, CacheType>, int> AugmentedReturn::tapeIndices |
Definition at line 106 of file EnzymeLogic.h.
Referenced by AdjointGenerator::visitCallInst(), and AdjointGenerator::visitOMPCall().
| std::set<ssize_t> AugmentedReturn::tapeIndiciesToFree |
Definition at line 120 of file EnzymeLogic.h.
Referenced by AdjointGenerator::visitOMPCall().
| llvm::Type* AugmentedReturn::tapeType |
return structtype if recursive function
Definition at line 104 of file EnzymeLogic.h.
Referenced by AdjointGenerator::recursivelyHandleSubfunction(), and AdjointGenerator::visitOMPCall().