11 #include "LLVMIncludes.h"
23 virtual llvm::Value* codeGen() = 0;
31 #define SBML_TIME_SYMBOL "\\time"
46 const std::string& symbol,
47 const llvm::ArrayRef<llvm::Value*>& args = llvm::ArrayRef<llvm::Value*>()) = 0;
49 virtual void recursiveSymbolPush(
const std::string& symbol) = 0;
51 virtual void recursiveSymbolPop() = 0;
53 virtual bool isLocalParameter(
const std::string& symbol) = 0;
81 virtual llvm::Value* storeSymbolValue(
const std::string& symbol,
82 llvm::Value* value) = 0;
Base class for code generation.
Definition: CodeGen.h:21
LLVM load instruction class.
Definition: CodeGen.h:37
virtual size_t popCacheBlock()
Pop a scoped cache block, this clears these values, and any subsequent reads re-evaluate the requeste...
Definition: CodeGen.h:68
virtual size_t pushCacheBlock()
nested conditionals (or functions?) can push a local cache block, where symbols would be chached.
Definition: CodeGen.h:60
virtual llvm::Value * loadSymbolValue(const std::string &symbol, const llvm::ArrayRef< llvm::Value * > &args=llvm::ArrayRef< llvm::Value * >())=0
generate an LLVM load instruction.
LLVM store symbol class.
Definition: CodeGen.h:79