LLVM: llvm::orc::TrampolinePool Class Reference (original) (raw)
Base class for pools of compiler re-entry trampolines. More...
#include "[llvm/ExecutionEngine/Orc/IndirectionUtils.h](IndirectionUtils%5F8h%5Fsource.html)"
| Public Types | |
|---|---|
| using | NotifyLandingResolvedFunction |
| using | ResolveLandingFunction |
| Public Member Functions | |
|---|---|
| virtual | ~TrampolinePool () |
| Expected< ExecutorAddr > | getTrampoline () |
| Get an available trampoline address. | |
| void | releaseTrampoline (ExecutorAddr TrampolineAddr) |
| Returns the given trampoline to the pool for re-use. |
| Protected Member Functions | |
|---|---|
| virtual Error | grow ()=0 |
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
Definition at line 65 of file IndirectionUtils.h.
◆ NotifyLandingResolvedFunction
Initial value:
Represents an address in the executor process.
unique_function is a type-erasing functor similar to std::function.
Definition at line 67 of file IndirectionUtils.h.
◆ ResolveLandingFunction
Initial value:
NotifyLandingResolvedFunction OnLandingResolved) const>
unique_function< void(ExecutorAddr) const > NotifyLandingResolvedFunction
Definition at line 70 of file IndirectionUtils.h.
| llvm::orc::TrampolinePool::~TrampolinePool ( ) | virtualdefault |
|---|
◆ getTrampoline()
◆ grow()
| virtual Error llvm::orc::TrampolinePool::grow ( ) | protectedpure virtual |
|---|
◆ releaseTrampoline()
| void llvm::orc::TrampolinePool::releaseTrampoline ( ExecutorAddr TrampolineAddr) | inline |
|---|
◆ AvailableTrampolines
| std::vector<ExecutorAddr> llvm::orc::TrampolinePool::AvailableTrampolines | protected |
|---|
◆ TPMutex
| std::mutex llvm::orc::TrampolinePool::TPMutex | protected |
|---|
The documentation for this class was generated from the following files:
- include/llvm/ExecutionEngine/Orc/IndirectionUtils.h
- lib/ExecutionEngine/Orc/IndirectionUtils.cpp