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

#include <JitEngine.hpp>

Inheritance diagram for proteus::JitEngine:
Inheritance graph
[legend]
Collaboration diagram for proteus::JitEngine:
Collaboration graph
[legend]

Public Member Functions

void optimizeIR (Module &M, StringRef Arch, char OptLevel='3', unsigned CodegenOptLevel=3)
 
bool isProteusDisabled ()
 
void enable ()
 
void disable ()
 

Public Attributes

InitLLVMTargets Init
 

Protected Member Functions

void getRuntimeConstantValues (void **KernelArgs, const ArrayRef< int32_t > RCIndices, const ArrayRef< int32_t > RCTypes, SmallVector< RuntimeConstant > &RCVec)
 
void runCleanupPassPipeline (Module &M)
 
 JitEngine ()
 
std::string mangleSuffix (HashT &HashValue)
 

Protected Attributes

struct { 
 
   bool   PROTEUS_USE_STORED_CACHE 
 
   bool   PROTEUS_SET_LAUNCH_BOUNDS 
 
   bool   PROTEUS_SPECIALIZE_ARGS 
 
   bool   PROTEUS_SPECIALIZE_DIMS 
 
   bool   PROTEUS_USE_HIP_RTC_CODEGEN 
 
   bool   PROTEUS_DISABLE 
 
   bool   PROTEUS_DUMP_LLVM_IR 
 
   bool   PROTEUS_RELINK_GLOBALS_BY_COPY 
 
   bool   PROTEUS_ASYNC_COMPILATION 
 
   int   PROTEUS_ASYNC_THREADS 
 
   bool   PROTEUS_ASYNC_TEST_BLOCKING 
 
   bool   PROTEUS_USE_LIGHTWEIGHT_KERNEL_CLONE 
 
Config 
 

Constructor & Destructor Documentation

◆ JitEngine()

proteus::JitEngine::JitEngine ( )
protected

Member Function Documentation

◆ disable()

void proteus::JitEngine::disable ( )
inline

◆ enable()

void proteus::JitEngine::enable ( )
inline

◆ getRuntimeConstantValues()

void proteus::JitEngine::getRuntimeConstantValues ( void **  KernelArgs,
const ArrayRef< int32_t >  RCIndices,
const ArrayRef< int32_t >  RCTypes,
SmallVector< RuntimeConstant > &  RCVec 
)
protected

◆ isProteusDisabled()

bool proteus::JitEngine::isProteusDisabled ( )
inline

◆ mangleSuffix()

std::string proteus::JitEngine::mangleSuffix ( HashT HashValue)
protected

◆ optimizeIR()

void proteus::JitEngine::optimizeIR ( Module &  M,
StringRef  Arch,
char  OptLevel = '3',
unsigned  CodegenOptLevel = 3 
)

◆ runCleanupPassPipeline()

void proteus::JitEngine::runCleanupPassPipeline ( Module &  M)
protected

Member Data Documentation

◆ [struct]

struct { ... } proteus::JitEngine::Config

◆ Init

InitLLVMTargets proteus::JitEngine::Init

◆ PROTEUS_ASYNC_COMPILATION

bool proteus::JitEngine::PROTEUS_ASYNC_COMPILATION

◆ PROTEUS_ASYNC_TEST_BLOCKING

bool proteus::JitEngine::PROTEUS_ASYNC_TEST_BLOCKING

◆ PROTEUS_ASYNC_THREADS

int proteus::JitEngine::PROTEUS_ASYNC_THREADS

◆ PROTEUS_DISABLE

bool proteus::JitEngine::PROTEUS_DISABLE

◆ PROTEUS_DUMP_LLVM_IR

bool proteus::JitEngine::PROTEUS_DUMP_LLVM_IR

◆ PROTEUS_RELINK_GLOBALS_BY_COPY

bool proteus::JitEngine::PROTEUS_RELINK_GLOBALS_BY_COPY

◆ PROTEUS_SET_LAUNCH_BOUNDS

bool proteus::JitEngine::PROTEUS_SET_LAUNCH_BOUNDS

◆ PROTEUS_SPECIALIZE_ARGS

bool proteus::JitEngine::PROTEUS_SPECIALIZE_ARGS

◆ PROTEUS_SPECIALIZE_DIMS

bool proteus::JitEngine::PROTEUS_SPECIALIZE_DIMS

◆ PROTEUS_USE_HIP_RTC_CODEGEN

bool proteus::JitEngine::PROTEUS_USE_HIP_RTC_CODEGEN

◆ PROTEUS_USE_LIGHTWEIGHT_KERNEL_CLONE

bool proteus::JitEngine::PROTEUS_USE_LIGHTWEIGHT_KERNEL_CLONE

◆ PROTEUS_USE_STORED_CACHE

bool proteus::JitEngine::PROTEUS_USE_STORED_CACHE

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