|
Enzyme main
|
#include "TraceGenerator.h"


Public Member Functions | |
| TraceGenerator (EnzymeLogic &Logic, TraceUtils *tutils, bool autodiff, llvm::ValueMap< const llvm::Value *, llvm::WeakTrackingVH > &originalToNewFn, const llvm::SmallPtrSetImpl< llvm::Function * > &generativeFunctions, const llvm::StringSet<> &activeRandomVariables) | |
| void | visitFunction (llvm::Function &F) |
| void | handleSampleCall (llvm::CallInst &call, llvm::CallInst *new_call) |
| void | handleObserveCall (llvm::CallInst &call, llvm::CallInst *new_call) |
| void | handleArbitraryCall (llvm::CallInst &call, llvm::CallInst *new_call) |
| void | visitCallInst (llvm::CallInst &call) |
| void | visitReturnInst (llvm::ReturnInst &ret) |
Definition at line 36 of file TraceGenerator.h.
| TraceGenerator::TraceGenerator | ( | EnzymeLogic & | Logic, |
| TraceUtils * | tutils, | ||
| bool | autodiff, | ||
| llvm::ValueMap< const llvm::Value *, llvm::WeakTrackingVH > & | originalToNewFn, | ||
| const llvm::SmallPtrSetImpl< llvm::Function * > & | generativeFunctions, | ||
| const llvm::StringSet<> & | activeRandomVariables ) |
Definition at line 49 of file TraceGenerator.cpp.
| void TraceGenerator::handleArbitraryCall | ( | llvm::CallInst & | call, |
| llvm::CallInst * | new_call ) |
Definition at line 287 of file TraceGenerator.cpp.
References Condition, EnzymeLogic::CreateTrace(), TraceUtils::CreateTrace(), getFunctionFromCall(), TraceUtils::getLikelihood(), TraceUtils::GetTrace(), TraceUtils::getTraceInterface(), TraceUtils::HasCall(), TraceUtils::InsertCall(), TraceUtils::interface, Likelihood, TraceInterface::newTraceTy(), TraceUtils::observeFunctions, TraceUtils::sampleFunctions, and Trace.
Referenced by visitCallInst().
| void TraceGenerator::handleObserveCall | ( | llvm::CallInst & | call, |
| llvm::CallInst * | new_call ) |
Definition at line 119 of file TraceGenerator.cpp.
References Args, Condition, TraceUtils::CreateOutlinedFunction(), GetFunctionFromValue(), TraceUtils::getLikelihood(), and Trace.
Referenced by visitCallInst().
| void TraceGenerator::handleSampleCall | ( | llvm::CallInst & | call, |
| llvm::CallInst * | new_call ) |
Definition at line 183 of file TraceGenerator.cpp.
References Args, Condition, TraceUtils::CreateOutlinedFunction(), GetFunctionFromValue(), TraceUtils::getLikelihood(), TraceInterface::insertChoiceGradient(), TraceUtils::interface, Likelihood, and Trace.
Referenced by visitCallInst().
| void TraceGenerator::visitCallInst | ( | llvm::CallInst & | call | ) |
Definition at line 398 of file TraceGenerator.cpp.
References getFunctionFromCall(), handleArbitraryCall(), handleObserveCall(), handleSampleCall(), TraceUtils::isObserveCall(), and TraceUtils::isSampleCall().
| void TraceGenerator::visitFunction | ( | llvm::Function & | F | ) |
Definition at line 61 of file TraceGenerator.cpp.
References TraceUtils::CreateOutlinedFunction(), getFirstNonPHIOrDbgOrLifetime(), TraceInterface::insertArgumentGradient(), TraceUtils::InsertFunction(), TraceUtils::interface, Likelihood, TraceUtils::LikelihoodParameterAttribute, TraceUtils::newFunc, TraceUtils::ObservationsParameterAttribute, and TraceUtils::TraceParameterAttribute.
| void TraceGenerator::visitReturnInst | ( | llvm::ReturnInst & | ret | ) |
Definition at line 415 of file TraceGenerator.cpp.
References TraceUtils::InsertReturn().