LLVM 18.0.0git
|
Stubs builder for a specific StubsFlavor. More...
#include "llvm/ExecutionEngine/JITLink/aarch32.h"
Public Member Functions | |
StubsManager ()=default | |
bool | visitEdge (LinkGraph &G, Block *B, Edge &E) |
Implements link-graph traversal via visitExistingEdges(). | |
Symbol & | createEntry (LinkGraph &G, Symbol &Target) |
Create a branch range extension stub for the class's flavor. | |
Symbol & | createEntry (LinkGraph &G, Symbol &Target) |
Create a branch range extension stub with Thumb encoding for v7 CPUs. | |
Symbol & | createEntry (LinkGraph &G, Symbol &Target) |
![]() | |
Symbol & | getEntryForTarget (LinkGraph &G, Symbol &Target) |
Return the constructed entry. | |
bool | registerPreExistingEntry (Symbol &Target, Symbol &Entry) |
Register a pre-existing entry. | |
Static Public Member Functions | |
static StringRef | getSectionName () |
Name of the object file section that will contain all our stubs. | |
Stubs builder for a specific StubsFlavor.
Right now we only have one default stub kind, but we want to extend this and allow creation of specific kinds in the future (e.g. branch range extension or interworking).
Let's keep it simple for the moment and not wire this through a GOT.
|
default |
Symbol & llvm::jitlink::aarch32::StubsManager< Flavor >::createEntry | ( | LinkGraph & | G, |
Symbol & | Target | ||
) |
Create a branch range extension stub for the class's flavor.
Symbol & llvm::jitlink::aarch32::StubsManager< Thumbv7 >::createEntry | ( | LinkGraph & | G, |
Symbol & | Target | ||
) |
Create a branch range extension stub with Thumb encoding for v7 CPUs.
Symbol & llvm::jitlink::aarch32::StubsManager< Thumbv7 >::createEntry | ( | LinkGraph & | G, |
Symbol & | Target | ||
) |
Definition at line 631 of file aarch32.cpp.
References assert(), B, llvm::jitlink::aarch32::encodeRegMovtT1MovwT3(), G, LLVM_DEBUG, llvm::jitlink::Symbol::setTargetFlags(), llvm::jitlink::aarch32::Thumb_MovtAbs, llvm::jitlink::aarch32::Thumb_MovwAbsNC, llvm::jitlink::aarch32::ThumbSymbol, and llvm::jitlink::aarch32::Thumbv7ABS.
|
inlinestatic |
|
inline |
Implements link-graph traversal via visitExistingEdges().
Definition at line 291 of file aarch32.h.
References B, llvm::dbgs(), DEBUG_WITH_TYPE, E, llvm::formatv(), G, llvm::jitlink::TableManager< StubsManager< Flavor > >::getEntryForTarget(), llvm::jitlink::aarch32::Thumb_Call, and llvm::jitlink::aarch32::Thumb_Jump24.