LLVM 17.0.0git
Classes | Namespaces | Enumerations | Functions | Variables
x86_64.h File Reference
#include "llvm/ExecutionEngine/JITLink/JITLink.h"
#include "llvm/ExecutionEngine/JITLink/TableManager.h"
#include <limits>
Include dependency graph for x86_64.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::jitlink::x86_64::GOTTableManager
 Global Offset Table Builder. More...
 
class  llvm::jitlink::x86_64::PLTTableManager
 Procedure Linkage Table Builder. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
 
 

Enumerations

enum  llvm::jitlink::x86_64::EdgeKind_x86_64 : Edge::Kind {
  llvm::jitlink::x86_64::Pointer64 = Edge::FirstRelocation , llvm::jitlink::x86_64::Pointer32 , llvm::jitlink::x86_64::Pointer32Signed , llvm::jitlink::x86_64::Pointer16 ,
  llvm::jitlink::x86_64::Delta64 , llvm::jitlink::x86_64::Delta32 , llvm::jitlink::x86_64::NegDelta64 , llvm::jitlink::x86_64::NegDelta32 ,
  llvm::jitlink::x86_64::Delta64FromGOT , llvm::jitlink::x86_64::BranchPCRel32 , llvm::jitlink::x86_64::PCRel32 , llvm::jitlink::x86_64::BranchPCRel32ToPtrJumpStub ,
  llvm::jitlink::x86_64::BranchPCRel32ToPtrJumpStubBypassable , llvm::jitlink::x86_64::RequestGOTAndTransformToDelta32 , llvm::jitlink::x86_64::RequestGOTAndTransformToDelta64 , llvm::jitlink::x86_64::RequestGOTAndTransformToDelta64FromGOT ,
  llvm::jitlink::x86_64::PCRel32GOTLoadRelaxable , llvm::jitlink::x86_64::PCRel32GOTLoadREXRelaxable , llvm::jitlink::x86_64::RequestGOTAndTransformToPCRel32GOTLoadREXRelaxable , llvm::jitlink::x86_64::RequestGOTAndTransformToPCRel32GOTLoadRelaxable ,
  llvm::jitlink::x86_64::PCRel32TLVPLoadREXRelaxable , llvm::jitlink::x86_64::RequestTLSDescInGOTAndTransformToDelta32 , llvm::jitlink::x86_64::RequestTLVPAndTransformToPCRel32TLVPLoadREXRelaxable , llvm::jitlink::x86_64::FirstPlatformRelocation
}
 Represents x86-64 fixups and other x86-64-specific edge kinds. More...
 

Functions

const charllvm::jitlink::x86_64::getEdgeKindName (Edge::Kind K)
 Returns a string name for the given x86-64 edge.
 
bool llvm::jitlink::x86_64::isInRangeForImmU32 (uint64_t Value)
 Returns true if the given uint64_t value is in range for a uint32_t.
 
bool llvm::jitlink::x86_64::isInRangeForImmS32 (int64_t Value)
 Returns true if the given int64_t value is in range for an int32_t.
 
Error llvm::jitlink::x86_64::applyFixup (LinkGraph &G, Block &B, const Edge &E, const Symbol *GOTSymbol)
 Apply fixup expression for edge to block content.
 
Symbol & llvm::jitlink::x86_64::createAnonymousPointer (LinkGraph &G, Section &PointerSection, Symbol *InitialTarget=nullptr, uint64_t InitialAddend=0)
 Creates a new pointer block in the given section and returns an anonymous symbol pointing to it.
 
Block & llvm::jitlink::x86_64::createPointerJumpStubBlock (LinkGraph &G, Section &StubSection, Symbol &PointerSymbol)
 Create a jump stub block that jumps via the pointer at the given symbol.
 
Symbol & llvm::jitlink::x86_64::createAnonymousPointerJumpStub (LinkGraph &G, Section &StubSection, Symbol &PointerSymbol)
 Create a jump stub that jumps via the pointer at the given symbol and an anonymous symbol pointing to it.
 
Error llvm::jitlink::x86_64::optimizeGOTAndStubAccesses (LinkGraph &G)
 Optimize the GOT and Stub relocations if the edge target address is in range.
 

Variables

constexpr uint64_t llvm::jitlink::x86_64::PointerSize = 8
 x86_64 pointer size.
 
const char llvm::jitlink::x86_64::NullPointerContent [PointerSize]
 x86-64 null pointer content.
 
const char llvm::jitlink::x86_64::PointerJumpStubContent [6]
 x86-64 pointer jump stub content.