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

Methods

PerGraphGOTAndPLTStubsBuilder<BuilderImplT>(
    llvm::jitlink::LinkGraph& G)

Declared at: llvm/lib/ExecutionEngine/JITLink/PerGraphGOTAndPLTStubsBuilder.h:34

Parameters

llvm::jitlink::LinkGraph& G

static llvm::Error asPass(
    llvm::jitlink::LinkGraph& G)

Declared at: llvm/lib/ExecutionEngine/JITLink/PerGraphGOTAndPLTStubsBuilder.h:36

Parameters

llvm::jitlink::LinkGraph& G

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)

Declared at: llvm/lib/ExecutionEngine/JITLink/PerGraphGOTAndPLTStubsBuilder.h:92

Parameters

llvm::jitlink::Symbol& Target

BuilderImplT& impl()

Declared at: llvm/lib/ExecutionEngine/JITLink/PerGraphGOTAndPLTStubsBuilder.h:115

llvm::Error run()

Declared at: llvm/lib/ExecutionEngine/JITLink/PerGraphGOTAndPLTStubsBuilder.h:38