Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
Loading...
Searching...
No Matches
Classes | Public Member Functions | List of all members
proteus::LLVMIRJitModule Class Reference

#include <LLVMIRJitModule.h>

Classes

struct  FunctionHandle
 
struct  FunctionHandle< RetT(ArgT...)>
 
struct  KernelHandle
 
struct  KernelHandle< RetT(ArgT...)>
 

Public Member Functions

 LLVMIRJitModule (TargetModelType TargetModel, const std::string &Code, LLVMIRInputKind InputKind=LLVMIRInputKind::Auto)
 
 LLVMIRJitModule (const std::string &Target, const std::string &Code, LLVMIRInputKind InputKind=LLVMIRInputKind::Auto)
 
 ~LLVMIRJitModule ()
 
void compile (bool Verify=false)
 
TargetModelType getTargetModel () const
 
void setFuncAttribute (void *KernelFunc, JitFuncAttribute Attr, int Value)
 
void * getFunctionAddress (const std::string &Name)
 
void * getKernelAddress (const std::string &Name)
 
DispatchResult launch (void *KernelFunc, LaunchDims GridDim, LaunchDims BlockDim, void *KernelArgs[], uint64_t ShmemSize, void *Stream)
 
CompiledLibrarygetLibrary ()
 
template<typename Sig >
FunctionHandle< Sig > getFunction (const std::string &Name)
 
template<typename Sig >
KernelHandle< Sig > getKernel (const std::string &Name)
 

Constructor & Destructor Documentation

◆ LLVMIRJitModule() [1/2]

proteus::LLVMIRJitModule::LLVMIRJitModule ( TargetModelType  TargetModel,
const std::string &  Code,
LLVMIRInputKind  InputKind = LLVMIRInputKind::Auto 
)
explicit

◆ LLVMIRJitModule() [2/2]

proteus::LLVMIRJitModule::LLVMIRJitModule ( const std::string &  Target,
const std::string &  Code,
LLVMIRInputKind  InputKind = LLVMIRInputKind::Auto 
)
explicit

◆ ~LLVMIRJitModule()

proteus::LLVMIRJitModule::~LLVMIRJitModule ( )
default

Member Function Documentation

◆ compile()

void proteus::LLVMIRJitModule::compile ( bool  Verify = false)

◆ getFunction()

template<typename Sig >
FunctionHandle< Sig > proteus::LLVMIRJitModule::getFunction ( const std::string &  Name)
inline

◆ getFunctionAddress()

void * proteus::LLVMIRJitModule::getFunctionAddress ( const std::string &  Name)

◆ getKernel()

template<typename Sig >
KernelHandle< Sig > proteus::LLVMIRJitModule::getKernel ( const std::string &  Name)
inline

◆ getKernelAddress()

void * proteus::LLVMIRJitModule::getKernelAddress ( const std::string &  Name)
inline

◆ getLibrary()

CompiledLibrary & proteus::LLVMIRJitModule::getLibrary ( )
inline

◆ getTargetModel()

TargetModelType proteus::LLVMIRJitModule::getTargetModel ( ) const
inline

◆ launch()

DispatchResult proteus::LLVMIRJitModule::launch ( void *  KernelFunc,
LaunchDims  GridDim,
LaunchDims  BlockDim,
void *  KernelArgs[],
uint64_t  ShmemSize,
void *  Stream 
)

◆ setFuncAttribute()

void proteus::LLVMIRJitModule::setFuncAttribute ( void *  KernelFunc,
JitFuncAttribute  Attr,
int  Value 
)

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