|
Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
|
#include <Dispatcher.h>

Public Member Functions | |
| virtual | ~Dispatcher () |
| const std::string & | getLabel () const |
| virtual std::unique_ptr< llvm::MemoryBuffer > | compileModule (llvm::Module &M, const CodeGenerationConfig &CGConfig)=0 |
| virtual void | optimizeModule (llvm::Module &M, const CodeGenerationConfig &CGConfig) |
| virtual std::unique_ptr< llvm::MemoryBuffer > | codegenModule (llvm::Module &M, const CodeGenerationConfig &CGConfig) |
| std::unique_ptr< llvm::MemoryBuffer > | compile (std::unique_ptr< llvm::LLVMContext > Ctx, std::unique_ptr< llvm::Module > M, const HashT &ModuleHash, const CodeGenerationConfig &CGConfig) |
| std::unique_ptr< llvm::MemoryBuffer > | compile (std::unique_ptr< llvm::LLVMContext > Ctx, std::unique_ptr< llvm::Module > M, const HashT &ModuleHash) |
| std::unique_ptr< CompiledLibrary > | lookupCompiledLibrary (const HashT &ModuleHash) |
| virtual DispatchResult | launch (void *KernelFunc, LaunchDims GridDim, LaunchDims BlockDim, void *KernelArgs[], uint64_t ShmemSize, void *Stream)=0 |
| virtual llvm::StringRef | getDeviceArch () const =0 |
| template<typename Sig , typename... ArgT> | |
| sig_traits< Sig >::return_type | run (void *FuncPtr, ArgT &&...Args) |
| virtual void * | lookupFunction (llvm::StringRef BaseName, const HashT &ModuleHash)=0 |
| virtual void * | insertFunction (const KernelName &Name, const HashT &ModuleHash, CompiledLibrary &Library)=0 |
| void * | getOrInsertFunction (const KernelName &Name, const HashT &ModuleHash, CompiledLibrary &Library) |
| virtual void | registerDynamicLibrary (const HashT &HashValue, const std::string &Path)=0 |
| void | registerObject (const HashT &HashValue, const llvm::MemoryBufferRef &Obj) |
Static Public Member Functions | |
| static Dispatcher & | getDispatcher (TargetModelType TargetModel) |
Protected Member Functions | |
| Dispatcher (const std::string &Name, TargetModelType TM) | |
| void | printObjectCacheStats () |
Protected Attributes | |
| TargetModelType | TargetModel |
| const std::string | Label |
| std::unique_ptr< ObjectCacheChain > | ObjectCache |
|
protected |
|
virtualdefault |
|
virtual |
| std::unique_ptr< llvm::MemoryBuffer > proteus::Dispatcher::compile | ( | std::unique_ptr< llvm::LLVMContext > | Ctx, |
| std::unique_ptr< llvm::Module > | M, | ||
| const HashT & | ModuleHash | ||
| ) |
| std::unique_ptr< llvm::MemoryBuffer > proteus::Dispatcher::compile | ( | std::unique_ptr< llvm::LLVMContext > | Ctx, |
| std::unique_ptr< llvm::Module > | M, | ||
| const HashT & | ModuleHash, | ||
| const CodeGenerationConfig & | CGConfig | ||
| ) |
|
pure virtual |
|
pure virtual |
Implemented in proteus::DispatcherHost.
|
static |
|
inline |
| void * proteus::Dispatcher::getOrInsertFunction | ( | const KernelName & | Name, |
| const HashT & | ModuleHash, | ||
| CompiledLibrary & | Library | ||
| ) |
|
pure virtual |
Implemented in proteus::DispatcherHost.
|
pure virtual |
Implemented in proteus::DispatcherHost.
| std::unique_ptr< CompiledLibrary > proteus::Dispatcher::lookupCompiledLibrary | ( | const HashT & | ModuleHash | ) |
|
pure virtual |
|
virtual |
|
protected |
|
pure virtual |
Implemented in proteus::DispatcherHost.
| void proteus::Dispatcher::registerObject | ( | const HashT & | HashValue, |
| const llvm::MemoryBufferRef & | Obj | ||
| ) |
|
inline |
|
protected |
|
protected |
|
protected |