class PerGraphGOTAndPLTStubsBuilder
Declaration
template <typename BuilderImplT>
class PerGraphGOTAndPLTStubsBuilder { /* full declaration omitted */ };
Description
Per-object GOT and PLT Stub builder. Constructs GOT entries and PLT stubs in every graph for referenced symbols. Building these blocks in every graph is likely to lead to duplicate entries in the JITLinkDylib, but allows graphs to be trivially removed independently without affecting other graphs (since those other graphs will have their own copies of any required entries).
Declared at: llvm/lib/ExecutionEngine/JITLink/PerGraphGOTAndPLTStubsBuilder.h:32
Templates
- BuilderImplT
Member Variables
- protected llvm::jitlink::LinkGraph& G
- private DenseMap<llvm::StringRef, llvm::jitlink::Symbol*> GOTEntries
- private DenseMap<llvm::StringRef, llvm::jitlink::Symbol*> PLTStubs
Method Overview
- public PerGraphGOTAndPLTStubsBuilder<BuilderImplT>(llvm::jitlink::LinkGraph & G)
- public static llvm::Error asPass(llvm::jitlink::LinkGraph & G)
- protected llvm::jitlink::Symbol & getGOTEntry(llvm::jitlink::Symbol & Target)
- protected llvm::jitlink::Symbol & getPLTStub(llvm::jitlink::Symbol & Target)
- private BuilderImplT & impl()
- public llvm::Error run()
Methods
¶PerGraphGOTAndPLTStubsBuilder<BuilderImplT>(
llvm::jitlink::LinkGraph& G)
PerGraphGOTAndPLTStubsBuilder<BuilderImplT>(
llvm::jitlink::LinkGraph& G)
Declared at: llvm/lib/ExecutionEngine/JITLink/PerGraphGOTAndPLTStubsBuilder.h:34
Parameters
¶static llvm::Error asPass(
llvm::jitlink::LinkGraph& G)
static llvm::Error asPass(
llvm::jitlink::LinkGraph& G)
Declared at: llvm/lib/ExecutionEngine/JITLink/PerGraphGOTAndPLTStubsBuilder.h:36
Parameters
¶llvm::jitlink::Symbol& getGOTEntry(
llvm::jitlink::Symbol& Target)
llvm::jitlink::Symbol& getGOTEntry(
llvm::jitlink::Symbol& Target)
Declared at: llvm/lib/ExecutionEngine/JITLink/PerGraphGOTAndPLTStubsBuilder.h:70
Parameters
- llvm::jitlink::Symbol& Target
¶llvm::jitlink::Symbol& getPLTStub(
llvm::jitlink::Symbol& Target)
llvm::jitlink::Symbol& getPLTStub(
llvm::jitlink::Symbol& Target)
Declared at: llvm/lib/ExecutionEngine/JITLink/PerGraphGOTAndPLTStubsBuilder.h:92
Parameters
- llvm::jitlink::Symbol& Target
¶BuilderImplT& impl()
BuilderImplT& impl()
Declared at: llvm/lib/ExecutionEngine/JITLink/PerGraphGOTAndPLTStubsBuilder.h:115
¶llvm::Error run()
llvm::Error run()
Declared at: llvm/lib/ExecutionEngine/JITLink/PerGraphGOTAndPLTStubsBuilder.h:38