1#ifndef PROTEUS_FRONTEND_DISPATCHER_HOST_H
2#define PROTEUS_FRONTEND_DISPATCHER_HOST_H
24 std::unique_ptr<MemoryBuffer>
40 HashT FuncHash =
hash(BaseName, ModuleHash);
41 return CodeCache.
lookup(FuncHash);
47 const std::string MangledName = Name.
mangled();
59 CodeCache.
insert(FuncHash, FuncAddr, Name.
base());
65 const std::string &Path)
override {
66 auto Buf = MemoryBuffer::getFileAsStream(Path);
#define TIMESCOPE(...)
Definition TimeTracing.h:66
static Config & get()
Definition Config.h:371
Definition DispatcherHost.h:14
std::unique_ptr< MemoryBuffer > compileModule(Module &M, const CodeGenerationConfig &CGConfig) override
Definition DispatcherHost.h:25
static DispatcherHost & instance()
Definition DispatcherHost.h:16
void * lookupFunction(StringRef BaseName, const HashT &ModuleHash) override
Definition DispatcherHost.h:39
StringRef getDeviceArch() const override
Definition DispatcherHost.h:35
DispatchResult launch(void *, LaunchDims, LaunchDims, void *[], uint64_t, void *) override
Definition DispatcherHost.h:30
void * insertFunction(const KernelName &Name, const HashT &ModuleHash, CompiledLibrary &Library) override
Definition DispatcherHost.h:44
DispatcherHost(const std::string &Label, JitEngineHost &Jit)
Definition DispatcherHost.h:21
~DispatcherHost()
Definition DispatcherHost.h:73
DispatcherHost(const std::string &Label, JitEngineHost &Jit, TargetModelType TM)
Definition DispatcherHost.h:81
void registerDynamicLibrary(const HashT &HashValue, const std::string &Path) override
Definition DispatcherHost.h:64
Definition Dispatcher.h:79
const std::string Label
Definition Dispatcher.h:82
void printObjectCacheStats()
Definition Dispatcher.cpp:83
Definition JitEngineHost.h:34
std::unique_ptr< MemoryBuffer > compileOnly(Module &M, const CodeGenerationConfig &CGConfig)
Definition JitEngineHost.cpp:282
void loadCompiledLibrary(CompiledLibrary &Library)
Definition JitEngineHost.cpp:314
void * getFunctionAddress(StringRef FnName, CompiledLibrary &Library)
Definition JitEngineHost.cpp:350
static JitEngineHost & instance()
Definition JitEngineHost.cpp:64
Definition KernelName.h:18
const std::string & base() const
Definition KernelName.h:30
std::string mangled() const
Definition KernelName.h:36
Definition MemoryCache.h:31
void printStats()
Definition MemoryCache.h:62
void insert(HashT &HashValue, Function_t FunctionPtr, StringRef FnName)
Definition MemoryCache.h:49
void printKernelTrace()
Definition MemoryCache.h:76
Function_t lookup(HashT &HashValue)
Definition MemoryCache.h:35
Definition ObjectCache.h:39
virtual void store(const HashT &HashValue, const CacheEntry &Entry)=0
Definition MemoryCache.h:27
TargetModelType
Definition TargetModel.h:8
HashT hash(FirstT &&First, RestTs &&...Rest)
Definition Hashing.h:268
void reportFatalError(const llvm::Twine &Reason, const char *FILE, unsigned Line)
Definition Error.cpp:14
Definition Dispatcher.h:25
static CacheEntry sharedObject(MemoryBufferRef Buf)
Definition ObjectCache.h:33
Definition CompiledLibrary.h:21
bool IsLoaded
Definition CompiledLibrary.h:27
Definition Dispatcher.h:57