LLVM  4.0.0
Classes | Public Types | Public Member Functions | Protected Types | Protected Attributes | List of all members
llvm::orc::JITCompileCallbackManager Class Referenceabstract

Target-independent base class for compile callback management. More...

#include <IndirectionUtils.h>

Inheritance diagram for llvm::orc::JITCompileCallbackManager:
[legend]
Collaboration diagram for llvm::orc::JITCompileCallbackManager:
[legend]

Classes

class  CompileCallbackInfo
 Handle to a newly created compile callback. More...
 

Public Types

typedef std::function
< JITTargetAddress()> 
CompileFtor
 

Public Member Functions

 JITCompileCallbackManager (JITTargetAddress ErrorHandlerAddress)
 Construct a JITCompileCallbackManager. More...
 
virtual ~JITCompileCallbackManager ()=default
 
JITTargetAddress executeCompileCallback (JITTargetAddress TrampolineAddr)
 Execute the callback for the given trampoline id. More...
 
CompileCallbackInfo getCompileCallback ()
 Reserve a compile callback. More...
 
CompileCallbackInfo getCompileCallbackInfo (JITTargetAddress TrampolineAddr)
 Get a CompileCallbackInfo for an existing callback. More...
 
void releaseCompileCallback (JITTargetAddress TrampolineAddr)
 Release a compile callback. More...
 

Protected Types

typedef std::map
< JITTargetAddress,
CompileFtor
TrampolineMapT
 

Protected Attributes

JITTargetAddress ErrorHandlerAddress
 
TrampolineMapT ActiveTrampolines
 
std::vector< JITTargetAddressAvailableTrampolines
 

Detailed Description

Target-independent base class for compile callback management.

Definition at line 42 of file IndirectionUtils.h.

Member Typedef Documentation

Definition at line 44 of file IndirectionUtils.h.

Definition at line 128 of file IndirectionUtils.h.

Constructor & Destructor Documentation

llvm::orc::JITCompileCallbackManager::JITCompileCallbackManager ( JITTargetAddress  ErrorHandlerAddress)
inline

Construct a JITCompileCallbackManager.

Parameters
ErrorHandlerAddressThe address of an error handler in the target process to be used if a compile callback fails.

Definition at line 67 of file IndirectionUtils.h.

virtual llvm::orc::JITCompileCallbackManager::~JITCompileCallbackManager ( )
virtualdefault

Member Function Documentation

JITTargetAddress llvm::orc::JITCompileCallbackManager::executeCompileCallback ( JITTargetAddress  TrampolineAddr)
inline

Execute the callback for the given trampoline id.

Called by the JIT to compile functions on demand.

Definition at line 74 of file IndirectionUtils.h.

References ActiveTrampolines, AvailableTrampolines, ErrorHandlerAddress, and I.

CompileCallbackInfo llvm::orc::JITCompileCallbackManager::getCompileCallback ( )
inline

Reserve a compile callback.

Definition at line 100 of file IndirectionUtils.h.

References ActiveTrampolines.

CompileCallbackInfo llvm::orc::JITCompileCallbackManager::getCompileCallbackInfo ( JITTargetAddress  TrampolineAddr)
inline

Get a CompileCallbackInfo for an existing callback.

Definition at line 107 of file IndirectionUtils.h.

References ActiveTrampolines, assert(), and I.

void llvm::orc::JITCompileCallbackManager::releaseCompileCallback ( JITTargetAddress  TrampolineAddr)
inline

Release a compile callback.

Note: Callbacks are auto-released after they execute. This method should only be called to manually release a callback that is not going to execute.

Definition at line 118 of file IndirectionUtils.h.

References ActiveTrampolines, assert(), AvailableTrampolines, and I.

Member Data Documentation

TrampolineMapT llvm::orc::JITCompileCallbackManager::ActiveTrampolines
protected
std::vector<JITTargetAddress> llvm::orc::JITCompileCallbackManager::AvailableTrampolines
protected

Definition at line 130 of file IndirectionUtils.h.

Referenced by executeCompileCallback(), and releaseCompileCallback().

JITTargetAddress llvm::orc::JITCompileCallbackManager::ErrorHandlerAddress
protected

Definition at line 126 of file IndirectionUtils.h.

Referenced by executeCompileCallback().


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