8 #ifndef ModelDataSymbolResolver_H_
9 #define ModelDataSymbolResolver_H_
11 #include "LoadSymbolResolverBase.h"
12 #include "LLVMIncludes.h"
13 #include "LLVMModelDataSymbols.h"
14 #include "LLVMModelSymbols.h"
26 class ModelDataLoadSymbolResolver :
public LoadSymbolResolverBase
29 ModelDataLoadSymbolResolver(llvm::Value* modelData,
const ModelGeneratorContext& ctx);
31 ~ModelDataLoadSymbolResolver()
override {};
36 virtual llvm::Value* loadSymbolValue(
const std::string& symbol,
const llvm::ArrayRef<llvm::Value*>& args = llvm::ArrayRef<llvm::Value*>())
override;
39 llvm::Value* modelData;
42 class ModelDataStoreSymbolResolver :
public StoreSymbolResolver
45 ModelDataStoreSymbolResolver(llvm::Value* modelData,
46 const libsbml::Model* model,
const LLVMModelSymbols& modelSymbols,
47 const LLVMModelDataSymbols& modelDataSymbols,
48 llvm::IRBuilder<>& builder,
49 LoadSymbolResolver& resolver);
51 virtual ~ModelDataStoreSymbolResolver() {};
53 virtual llvm::Value* storeSymbolValue(
const std::string& symbol,
57 llvm::Value* modelData;
58 const libsbml::Model* model;
59 const LLVMModelSymbols& modelSymbols;
60 const LLVMModelDataSymbols& modelDataSymbols;
61 llvm::IRBuilder<>& builder;
62 LoadSymbolResolver& resolver;