LLVM  12.0.0git
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 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 (ResolveLandingFunction ResolveLanding)
 Creates a LocalTrampolinePool with the given RunCallback function. More...
 

Additional Inherited Members

- Public Types inherited from llvm::orc::TrampolinePool
using NotifyLandingResolvedFunction = unique_function< void(JITTargetAddress) const >
 
using ResolveLandingFunction = unique_function< void(JITTargetAddress TrampolineAddr, NotifyLandingResolvedFunction OnLandingResolved) const >
 

Detailed Description

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

A trampoline pool for trampolines within the current process.

Definition at line 76 of file IndirectionUtils.h.

Member Function Documentation

◆ Create()

template<typename ORCABI>
static Expected<std::unique_ptr<LocalTrampolinePool> > llvm::orc::LocalTrampolinePool< ORCABI >::Create ( ResolveLandingFunction  ResolveLanding)
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 82 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 provided (e.g. because the pool is empty and can not be grown).

Implements llvm::orc::TrampolinePool.

Definition at line 95 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 108 of file IndirectionUtils.h.

References llvm::Lock, and llvm::pointerToJITTargetAddress().


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