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

#include <LambdaRegistry.h>

Classes

struct  DeviceLaunchInfo
 

Public Types

using JitVariantMap = DenseMap< int32_t, RuntimeConstant >
 
using JitVariantVec = SmallVector< JitVariantMap, 4 >
 

Public Member Functions

 LambdaRegistry (const LambdaRegistry &)=delete
 
LambdaRegistry & operator= (const LambdaRegistry &)=delete
 
 LambdaRegistry (LambdaRegistry &&)=delete
 
LambdaRegistry & operator= (LambdaRegistry &&)=delete
 
std::optional< JitVariantMap > getHostJitVariant (uint64_t FunctorID) const
 
void appendHostJitVariable (uint64_t FunctorID, const RuntimeConstant &RC)
 
void commitHostJitVariables (uint64_t FunctorID)
 
void eraseHostJitVariables (uint64_t FunctorID)
 
bool emptyHost () const
 
void beginDeviceLaunch ()
 
void appendDeviceCallsiteRuntimeConstant (uint64_t LambdaID, uint32_t CallsiteIndex, const RuntimeConstant &RC)
 
void finalizeDeviceLaunch ()
 
DeviceLaunchInfo takeDeviceLaunchInfo ()
 
void populateLambdaRegistrationCodeCache (void *Kernel, void *RegistrationFunc)
 
void invokeRegisterLambdaConstants (void *Kernel, void **Args)
 

Static Public Member Functions

static LambdaRegistry & instance ()
 

Member Typedef Documentation

◆ JitVariantMap

◆ JitVariantVec

Constructor & Destructor Documentation

◆ LambdaRegistry() [1/2]

proteus::LambdaRegistry::LambdaRegistry ( const LambdaRegistry &  )
delete

◆ LambdaRegistry() [2/2]

proteus::LambdaRegistry::LambdaRegistry ( LambdaRegistry &&  )
delete

Member Function Documentation

◆ appendDeviceCallsiteRuntimeConstant()

void proteus::LambdaRegistry::appendDeviceCallsiteRuntimeConstant ( uint64_t  LambdaID,
uint32_t  CallsiteIndex,
const RuntimeConstant &  RC 
)
inline

◆ appendHostJitVariable()

void proteus::LambdaRegistry::appendHostJitVariable ( uint64_t  FunctorID,
const RuntimeConstant &  RC 
)
inline

◆ beginDeviceLaunch()

void proteus::LambdaRegistry::beginDeviceLaunch ( )
inline

◆ commitHostJitVariables()

void proteus::LambdaRegistry::commitHostJitVariables ( uint64_t  FunctorID)
inline

◆ emptyHost()

bool proteus::LambdaRegistry::emptyHost ( ) const
inline

◆ eraseHostJitVariables()

void proteus::LambdaRegistry::eraseHostJitVariables ( uint64_t  FunctorID)
inline

◆ finalizeDeviceLaunch()

void proteus::LambdaRegistry::finalizeDeviceLaunch ( )
inline

◆ getHostJitVariant()

std::optional< JitVariantMap > proteus::LambdaRegistry::getHostJitVariant ( uint64_t  FunctorID) const
inline

◆ instance()

static LambdaRegistry & proteus::LambdaRegistry::instance ( )
inlinestatic

◆ invokeRegisterLambdaConstants()

void proteus::LambdaRegistry::invokeRegisterLambdaConstants ( void *  Kernel,
void **  Args 
)
inline

◆ operator=() [1/2]

LambdaRegistry & proteus::LambdaRegistry::operator= ( const LambdaRegistry &  )
delete

◆ operator=() [2/2]

LambdaRegistry & proteus::LambdaRegistry::operator= ( LambdaRegistry &&  )
delete

◆ populateLambdaRegistrationCodeCache()

void proteus::LambdaRegistry::populateLambdaRegistrationCodeCache ( void *  Kernel,
void *  RegistrationFunc 
)
inline

◆ takeDeviceLaunchInfo()

DeviceLaunchInfo proteus::LambdaRegistry::takeDeviceLaunchInfo ( )
inline

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