roadrunner  2.6.0
Fast simulator for SBML models
Public Member Functions | List of all members
rrllvm::SBMLInitialValueSymbolResolver Class Reference

pulls values from the original sbml document. More...

#include <SBMLInitialValueSymbolResolver.h>

Inheritance diagram for rrllvm::SBMLInitialValueSymbolResolver:
rrllvm::LoadSymbolResolverBase rrllvm::LoadSymbolResolver

Public Member Functions

 SBMLInitialValueSymbolResolver (llvm::Value *modelData, const ModelGeneratorContext &ctx)
 need a modelData ptr because it holds state needed from the random number generators, could be used for init assignmnets.
 
virtual llvm::Value * loadSymbolValue (const std::string &symbol, const llvm::ArrayRef< llvm::Value * > &args=llvm::ArrayRef< llvm::Value * >())
 generate an LLVM load instruction. More...
 
- Public Member Functions inherited from rrllvm::LoadSymbolResolverBase
llvm::Value * loadReactionRate (const libsbml::Reaction *)
 shortcut to get a reaction rate, performance wise, quicker than going through all the loadSymbolValue types.
 
void recursiveSymbolPush (const std::string &symbol) override
 
void recursiveSymbolPop () override
 
virtual bool isLocalParameter (const std::string &symbol) override
 
void flushCache ()
 Flush the symbol cache. More...
 
size_t pushCacheBlock () override
 nested conditionals (or functions?) can push a local cache block, where symbols would be chached. More...
 
size_t popCacheBlock () override
 Pop a scoped cache block, this clears these values, and any subsequent reads re-evaluate the requested symbol. More...
 

Additional Inherited Members

- Protected Types inherited from rrllvm::LoadSymbolResolverBase
typedef std::list< std::string > StringStack
 
typedef std::unordered_map< std::string, llvm::Value * > ValueMap
 
typedef std::deque< ValueMap > ValueMapStack
 
- Protected Member Functions inherited from rrllvm::LoadSymbolResolverBase
 LoadSymbolResolverBase (const ModelGeneratorContext &ctx, llvm::Value *modelData)
 
llvm::Value * cacheValue (const std::string &symbol, const llvm::ArrayRef< llvm::Value * > &args, llvm::Value *value=nullptr)
 check in the symbol cache if the symbol exists, if so return it. More...
 
- Protected Attributes inherited from rrllvm::LoadSymbolResolverBase
const ModelGeneratorContextmodelGenContext
 
const libsbml::Model * model
 
const LLVMModelDataSymbolsmodelDataSymbols
 
const LLVMModelSymbolsmodelSymbols
 
llvm::IRBuilder & builder
 
llvm::Value * modelData
 
StringStack symbolStack
 
ValueMapStack symbolCache
 

Detailed Description

pulls values from the original sbml document.

Member Function Documentation

◆ loadSymbolValue()

llvm::Value * rrllvm::SBMLInitialValueSymbolResolver::loadSymbolValue ( const std::string &  symbol,
const llvm::ArrayRef< llvm::Value * > &  args = llvm::ArrayRef< llvm::Value * >() 
)
virtual

generate an LLVM load instruction.

Parameters
symbolthe symbol name to resolve
argsfunction argument list

Implements rrllvm::LoadSymbolResolver.


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