14 #ifndef LLVM_EXECUTIONENGINE_ORC_LOGICALDYLIB_H
15 #define LLVM_EXECUTIONENGINE_ORC_LOGICALDYLIB_H
20 template <
typename BaseLayerT,
21 typename LogicalModuleResources,
22 typename LogicalDylibResources>
28 typedef std::vector<BaseLayerModuleSetHandleT> BaseLayerHandleList;
30 struct LogicalModule {
31 LogicalModuleResources Resources;
32 BaseLayerHandleList BaseLayerHandles;
34 typedef std::vector<LogicalModule> LogicalModuleList;
45 for (
auto BLH : LM.BaseLayerHandles)
56 LMH->BaseLayerHandles.push_back(BaseLayerHandle);
60 return LMH->Resources;
64 return LMH->BaseLayerHandles.begin();
68 return LMH->BaseLayerHandles.end();
72 const std::string &
Name) {
73 for (
auto BLH : LMH->BaseLayerHandles)
80 const std::string &
Name) {
96 for (
auto BLH : LM.BaseLayerHandles)
98 BaseLayer.findSymbolIn(BLH, Name, ExportedSymbolsOnly))
115 #endif // LLVM_EXECUTIONENGINE_ORC_LOGICALDYLIB_H
LogicalModuleResources & getLogicalModuleResources(LogicalModuleHandle LMH)
BaseLayerHandleIterator moduleHandlesBegin(LogicalModuleHandle LMH)
void addToLogicalModule(LogicalModuleHandle LMH, BaseLayerModuleSetHandleT BaseLayerHandle)
LogicalDylib(BaseLayerT &BaseLayer)
LogicalDylibResources & getDylibResources()
Represents a symbol in the JIT.
BaseLayerHandleIterator moduleHandlesEnd(LogicalModuleHandle LMH)
JITSymbol findSymbol(const std::string &Name, bool ExportedSymbolsOnly)
LogicalModuleHandle createLogicalModule()
BaseLayerT::ModuleSetHandleT BaseLayerModuleSetHandleT
LogicalModuleList::iterator LogicalModuleHandle
LogicalDylibResources DylibResources
BaseLayerHandleList::iterator BaseLayerHandleIterator
LogicalModuleList LogicalModules
JITSymbol findSymbolInternally(LogicalModuleHandle LMH, const std::string &Name)
JITSymbol findSymbolInLogicalModule(LogicalModuleHandle LMH, const std::string &Name)