class TrampolinePool
Declaration
class TrampolinePool { /* full declaration omitted */ };
Description
Base class for pools of compiler re-entry trampolines. These trampolines are callable addresses that save all register state before calling a supplied function to return the trampoline landing address, then restore all state before jumping to that address. They are used by various ORC APIs to support lazy compilation
Declared at: llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:63
Member Variables
- protected std::mutex TPMutex
- protected std::vector<JITTargetAddress> AvailableTrampolines
Method Overview
- public Expected<llvm::JITTargetAddress> getTrampoline()
- protected virtual llvm::Error grow()
- public void releaseTrampoline(llvm::JITTargetAddress TrampolineAddr)
- public virtual ~TrampolinePool()
Methods
¶Expected<llvm::JITTargetAddress> getTrampoline()
Expected<llvm::JITTargetAddress> getTrampoline()
Description
Get an available trampoline address. Returns an error if no trampoline can be created.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:76
¶virtual llvm::Error grow()
virtual llvm::Error grow()
Declared at: llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:95
¶void releaseTrampoline(
llvm::JITTargetAddress TrampolineAddr)
void releaseTrampoline(
llvm::JITTargetAddress TrampolineAddr)
Description
Returns the given trampoline to the pool for re-use.
Declared at: llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:89
Parameters
- llvm::JITTargetAddress TrampolineAddr
¶virtual ~TrampolinePool()
virtual ~TrampolinePool()
Declared at: llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:72