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

#include <CppJitModule.hpp>

Classes

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

Public Member Functions

 CppJitModule (TargetModelType TargetModel, const std::string &Code, const std::vector< std::string > &ExtraArgs={})
 
 CppJitModule (const std::string &Target, const std::string &Code, const std::vector< std::string > &ExtraArgs={})
 
 ~CppJitModule ()
 
void compile ()
 
CompiledLibrarygetLibrary ()
 
template<typename... ArgT>
auto instantiate (const std::string &FuncName, ArgT... Args)
 
template<typename Sig >
FunctionHandle< SiggetFunction (const std::string &Name)
 
template<typename Sig >
KernelHandle< SiggetKernel (const std::string &Name)
 

Protected Member Functions

CompilationResult compileCppToIR ()
 
void compileCppToDynamicLibrary ()
 

Constructor & Destructor Documentation

◆ CppJitModule() [1/2]

proteus::CppJitModule::CppJitModule ( TargetModelType  TargetModel,
const std::string &  Code,
const std::vector< std::string > &  ExtraArgs = {} 
)
explicit

◆ CppJitModule() [2/2]

proteus::CppJitModule::CppJitModule ( const std::string &  Target,
const std::string &  Code,
const std::vector< std::string > &  ExtraArgs = {} 
)
explicit

◆ ~CppJitModule()

proteus::CppJitModule::~CppJitModule ( )
default

Member Function Documentation

◆ compile()

void proteus::CppJitModule::compile ( )

◆ compileCppToDynamicLibrary()

void proteus::CppJitModule::compileCppToDynamicLibrary ( )
protected

◆ compileCppToIR()

CppJitModule::CompilationResult proteus::CppJitModule::compileCppToIR ( )
protected

◆ getFunction()

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

◆ getKernel()

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

◆ getLibrary()

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

◆ instantiate()

template<typename... ArgT>
auto proteus::CppJitModule::instantiate ( const std::string &  FuncName,
ArgT...  Args 
)
inline

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