Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
Loading...
Searching...
No Matches
Classes | Functions
proteus::detail Namespace Reference

Classes

struct  is_lambda_functor_wrapper
 
struct  is_lambda_functor_wrapper< LambdaFunctorWrapper< FunctorID, Lambda > >
 
struct  LambdaFunctorWrapper
 

Functions

Expected< std::unique_ptr< TargetMachine > > createTargetMachine (Module &M, StringRef Arch, unsigned OptLevel=3)
 
std::string getDefaultOptimizationPipeline (char OptLevel)
 
std::string composeOptimizationPassPipeline (std::optional< std::string > PassPipeline, char OptLevel, const std::vector< JITPassPluginConfig > &Plugins)
 
bool hasJITPassPluginInsertion (const std::vector< JITPassPluginConfig > &Plugins)
 
std::vector< std::string > getUniqueJITPassPluginPaths (const std::vector< JITPassPluginConfig > &Plugins)
 
std::vector< PassPlugin > loadJITPassPlugins (const std::vector< JITPassPluginConfig > &Plugins)
 
void runOptimizationPassPipeline (Module &M, StringRef Arch, const std::string &PassPipeline, unsigned CodegenOptLevel, const std::vector< JITPassPluginConfig > &Plugins={})
 
void runOptimizationPassPipeline (Module &M, StringRef Arch, char OptLevel='3', unsigned CodegenOptLevel=3, const std::vector< JITPassPluginConfig > &Plugins={})
 
const SmallVector< StringRef > & gridDimXFnName ()
 
const SmallVector< StringRef > & gridDimYFnName ()
 
const SmallVector< StringRef > & gridDimZFnName ()
 
const SmallVector< StringRef > & blockDimXFnName ()
 
const SmallVector< StringRef > & blockDimYFnName ()
 
const SmallVector< StringRef > & blockDimZFnName ()
 
const SmallVector< StringRef > & blockIdxXFnName ()
 
const SmallVector< StringRef > & blockIdxYFnName ()
 
const SmallVector< StringRef > & blockIdxZFnName ()
 
const SmallVector< StringRef > & threadIdxXFnName ()
 
const SmallVector< StringRef > & threadIdxYFnName ()
 
const SmallVector< StringRef > & threadIdxZFnName ()
 
Expected< sys::fs::TempFile > createTempFile (StringRef Prefix, StringRef Suffix)
 
std::unique_ptr< MemoryBuffer > codegenRTC (Module &M, StringRef DeviceArch)
 
template<typename FromT , typename ToT >
IRValue * convert (CodeBuilder &CB, IRValue *V)
 
constexpr std::uint64_t fnv1a64 (const char *s)
 
template<class Lambda >
constexpr std::uint64_t functor_id ()
 
template<std::uint64_t FunctorId, typename L >
PROTEUS_HOST_DEVICE auto tag_functor (L &&lambda)
 
static ID auto __register_lambda_impl (T &&t) noexcept
 

Function Documentation

◆ __register_lambda_impl()

static ID auto proteus::detail::__register_lambda_impl ( T &&  t)
noexcept

◆ blockDimXFnName()

const SmallVector< StringRef > & proteus::detail::blockDimXFnName ( )
inline

◆ blockDimYFnName()

const SmallVector< StringRef > & proteus::detail::blockDimYFnName ( )
inline

◆ blockDimZFnName()

const SmallVector< StringRef > & proteus::detail::blockDimZFnName ( )
inline

◆ blockIdxXFnName()

const SmallVector< StringRef > & proteus::detail::blockIdxXFnName ( )
inline

◆ blockIdxYFnName()

const SmallVector< StringRef > & proteus::detail::blockIdxYFnName ( )
inline

◆ blockIdxZFnName()

const SmallVector< StringRef > & proteus::detail::blockIdxZFnName ( )
inline

◆ codegenRTC()

std::unique_ptr< MemoryBuffer > proteus::detail::codegenRTC ( Module &  M,
StringRef  DeviceArch 
)
inline

◆ composeOptimizationPassPipeline()

std::string proteus::detail::composeOptimizationPassPipeline ( std::optional< std::string >  PassPipeline,
char  OptLevel,
const std::vector< JITPassPluginConfig > &  Plugins 
)
inline

◆ convert()

template<typename FromT , typename ToT >
IRValue * proteus::detail::convert ( CodeBuilder &  CB,
IRValue *  V 
)

◆ createTargetMachine()

Expected< std::unique_ptr< TargetMachine > > proteus::detail::createTargetMachine ( Module &  M,
StringRef  Arch,
unsigned  OptLevel = 3 
)
inline

◆ createTempFile()

Expected< sys::fs::TempFile > proteus::detail::createTempFile ( StringRef  Prefix,
StringRef  Suffix 
)
inline

◆ fnv1a64()

constexpr std::uint64_t proteus::detail::fnv1a64 ( const char *  s)
constexpr

◆ functor_id()

template<class Lambda >
constexpr std::uint64_t proteus::detail::functor_id ( )
constexpr

◆ getDefaultOptimizationPipeline()

std::string proteus::detail::getDefaultOptimizationPipeline ( char  OptLevel)
inline

◆ getUniqueJITPassPluginPaths()

std::vector< std::string > proteus::detail::getUniqueJITPassPluginPaths ( const std::vector< JITPassPluginConfig > &  Plugins)
inline

◆ gridDimXFnName()

const SmallVector< StringRef > & proteus::detail::gridDimXFnName ( )
inline

◆ gridDimYFnName()

const SmallVector< StringRef > & proteus::detail::gridDimYFnName ( )
inline

◆ gridDimZFnName()

const SmallVector< StringRef > & proteus::detail::gridDimZFnName ( )
inline

◆ hasJITPassPluginInsertion()

bool proteus::detail::hasJITPassPluginInsertion ( const std::vector< JITPassPluginConfig > &  Plugins)
inline

◆ loadJITPassPlugins()

std::vector< PassPlugin > proteus::detail::loadJITPassPlugins ( const std::vector< JITPassPluginConfig > &  Plugins)
inline

◆ runOptimizationPassPipeline() [1/2]

void proteus::detail::runOptimizationPassPipeline ( Module &  M,
StringRef  Arch,
char  OptLevel = '3',
unsigned  CodegenOptLevel = 3,
const std::vector< JITPassPluginConfig > &  Plugins = {} 
)
inline

◆ runOptimizationPassPipeline() [2/2]

void proteus::detail::runOptimizationPassPipeline ( Module &  M,
StringRef  Arch,
const std::string &  PassPipeline,
unsigned  CodegenOptLevel,
const std::vector< JITPassPluginConfig > &  Plugins = {} 
)
inline

◆ tag_functor()

template<std::uint64_t FunctorId, typename L >
PROTEUS_HOST_DEVICE auto proteus::detail::tag_functor ( L &&  lambda)
inline

◆ threadIdxXFnName()

const SmallVector< StringRef > & proteus::detail::threadIdxXFnName ( )
inline

◆ threadIdxYFnName()

const SmallVector< StringRef > & proteus::detail::threadIdxYFnName ( )
inline

◆ threadIdxZFnName()

const SmallVector< StringRef > & proteus::detail::threadIdxZFnName ( )
inline