LLVM  8.0.1
Public Types | Public Member Functions | Static Public Member Functions | List of all members
llvm::orc::LocalTrampolinePool< ORCABI > Class Template Reference

A trampoline pool for trampolines within the current process. More...

#include "llvm/ExecutionEngine/Orc/IndirectionUtils.h"

Inheritance diagram for llvm::orc::LocalTrampolinePool< ORCABI >:
Inheritance graph
[legend]
Collaboration diagram for llvm::orc::LocalTrampolinePool< ORCABI >:
Collaboration graph
[legend]

Public Types

using GetTrampolineLandingFunction = std::function< JITTargetAddress(JITTargetAddress TrampolineAddr)>
 

Public Member Functions

Expected< JITTargetAddressgetTrampoline () override
 Get a free trampoline. More...
 
void releaseTrampoline (JITTargetAddress TrampolineAddr)
 Returns the given trampoline to the pool for re-use. More...
 
- Public Member Functions inherited from llvm::orc::TrampolinePool
virtual ~TrampolinePool ()
 

Static Public Member Functions

static Expected< std::unique_ptr< LocalTrampolinePool > > Create (GetTrampolineLandingFunction GetTrampolineLanding)
 Creates a LocalTrampolinePool with the given RunCallback function. More...
 

Detailed Description

template<typename ORCABI>
class llvm::orc::LocalTrampolinePool< ORCABI >

A trampoline pool for trampolines within the current process.

Definition at line 68 of file IndirectionUtils.h.

Member Typedef Documentation

◆ GetTrampolineLandingFunction

Definition at line 71 of file IndirectionUtils.h.

Member Function Documentation

◆ Create()

template<typename ORCABI>
static Expected<std::unique_ptr<LocalTrampolinePool> > llvm::orc::LocalTrampolinePool< ORCABI >::Create ( GetTrampolineLandingFunction  GetTrampolineLanding)
inlinestatic

Creates a LocalTrampolinePool with the given RunCallback function.

Returns an error if this function is unable to correctly allocate, write and protect the resolver code block.

Definition at line 77 of file IndirectionUtils.h.

◆ getTrampoline()

template<typename ORCABI>
Expected<JITTargetAddress> llvm::orc::LocalTrampolinePool< ORCABI >::getTrampoline ( )
inlineoverridevirtual

Get a free trampoline.

Returns an error if one can not be provide (e.g. because the pool is empty and can not be grown).

Implements llvm::orc::TrampolinePool.

Definition at line 90 of file IndirectionUtils.h.

References llvm::Lock.

◆ releaseTrampoline()

template<typename ORCABI>
void llvm::orc::LocalTrampolinePool< ORCABI >::releaseTrampoline ( JITTargetAddress  TrampolineAddr)
inline

Returns the given trampoline to the pool for re-use.

Definition at line 103 of file IndirectionUtils.h.

References llvm::Lock.


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