class Symbol
Declaration
class Symbol { /* full declaration omitted */ };
Description
Symbol representation. Symbols represent locations within Addressable objects. They can be either Named or Anonymous. Anonymous symbols have neither linkage nor visibility, and must point at ContentBlocks. Named symbols may be in one of four states: - Null: Default initialized. Assignable, but otherwise unusable. - Defined: Has both linkage and visibility and points to a ContentBlock - Common: Has both linkage and visibility, points to a null Addressable. - External: Has neither linkage nor visibility, points to an external Addressable.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:400
Member Variables
- private llvm::StringRef Name
- private llvm::jitlink::Addressable* Base = nullptr
- private uint64_t Offset
- private uint64_t L
- private uint64_t S
- private uint64_t IsLive
- private uint64_t IsCallable
- private orc::ExecutorAddrDiff Size = 0
- private static const uint64_t MaxOffset = (1ULL << 59) - 1
Method Overview
- public Symbol()
- public Symbol(const llvm::jitlink::Symbol &)
- public Symbol(llvm::jitlink::Symbol &&)
- private Symbol(llvm::jitlink::Addressable & Base, orc::ExecutorAddrDiff Offset, llvm::StringRef Name, orc::ExecutorAddrDiff Size, llvm::jitlink::Linkage L, llvm::jitlink::Scope S, bool IsLive, bool IsCallable)
- private static llvm::jitlink::Symbol & constructAbsolute(void * SymStorage, llvm::jitlink::Addressable & Base, llvm::StringRef Name, orc::ExecutorAddrDiff Size, llvm::jitlink::Linkage L, llvm::jitlink::Scope S, bool IsLive)
- private static llvm::jitlink::Symbol & constructAnonDef(void * SymStorage, llvm::jitlink::Block & Base, orc::ExecutorAddrDiff Offset, orc::ExecutorAddrDiff Size, bool IsCallable, bool IsLive)
- private static llvm::jitlink::Symbol & constructCommon(void * SymStorage, llvm::jitlink::Block & Base, llvm::StringRef Name, orc::ExecutorAddrDiff Size, llvm::jitlink::Scope S, bool IsLive)
- private static llvm::jitlink::Symbol & constructExternal(void * SymStorage, llvm::jitlink::Addressable & Base, llvm::StringRef Name, orc::ExecutorAddrDiff Size, llvm::jitlink::Linkage L)
- private static llvm::jitlink::Symbol & constructNamedDef(void * SymStorage, llvm::jitlink::Block & Base, orc::ExecutorAddrDiff Offset, llvm::StringRef Name, orc::ExecutorAddrDiff Size, llvm::jitlink::Linkage L, llvm::jitlink::Scope S, bool IsLive, bool IsCallable)
- public orc::ExecutorAddr getAddress() const
- public llvm::jitlink::Addressable & getAddressable()
- public const llvm::jitlink::Addressable & getAddressable() const
- public llvm::jitlink::Block & getBlock()
- public const llvm::jitlink::Block & getBlock() const
- public llvm::jitlink::Linkage getLinkage() const
- public llvm::StringRef getName() const
- public orc::ExecutorAddrDiff getOffset() const
- public orc::ExecutorAddrRange getRange() const
- public llvm::jitlink::Scope getScope() const
- public orc::ExecutorAddrDiff getSize() const
- public ArrayRef<char> getSymbolContent() const
- public bool hasName() const
- public bool isAbsolute() const
- public bool isCallable() const
- public bool isDefined() const
- public bool isExternal() const
- public bool isLive() const
- public bool isSymbolZeroFill() const
- private void makeAbsolute(llvm::jitlink::Addressable & A)
- private void makeExternal(llvm::jitlink::Addressable & A)
- private void setBlock(llvm::jitlink::Block & B)
- public void setCallable(bool IsCallable)
- public void setLinkage(llvm::jitlink::Linkage L)
- public void setLive(bool IsLive)
- public void setName(llvm::StringRef Name)
- private void setOffset(orc::ExecutorAddrDiff NewOffset)
- public void setScope(llvm::jitlink::Scope S)
- public void setSize(orc::ExecutorAddrDiff Size)
Methods
¶Symbol()
Symbol()
Description
Create a null Symbol. This allows Symbols to be default initialized for use in containers (e.g. as map values). Null symbols are only useful for assigning to.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:482
¶Symbol(const llvm::jitlink::Symbol&)
Symbol(const llvm::jitlink::Symbol&)
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:485
Parameters
- const llvm::jitlink::Symbol&
¶Symbol(llvm::jitlink::Symbol&&)
Symbol(llvm::jitlink::Symbol&&)
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:487
Parameters
¶Symbol(llvm::jitlink::Addressable& Base,
orc::ExecutorAddrDiff Offset,
llvm::StringRef Name,
orc::ExecutorAddrDiff Size,
llvm::jitlink::Linkage L,
llvm::jitlink::Scope S,
bool IsLive,
bool IsCallable)
Symbol(llvm::jitlink::Addressable& Base,
orc::ExecutorAddrDiff Offset,
llvm::StringRef Name,
orc::ExecutorAddrDiff Size,
llvm::jitlink::Linkage L,
llvm::jitlink::Scope S,
bool IsLive,
bool IsCallable)
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:404
Parameters
- llvm::jitlink::Addressable& Base
- orc::ExecutorAddrDiff Offset
- llvm::StringRef Name
- orc::ExecutorAddrDiff Size
- llvm::jitlink::Linkage L
- llvm::jitlink::Scope S
- bool IsLive
- bool IsCallable
¶static llvm::jitlink::Symbol& constructAbsolute(
void* SymStorage,
llvm::jitlink::Addressable& Base,
llvm::StringRef Name,
orc::ExecutorAddrDiff Size,
llvm::jitlink::Linkage L,
llvm::jitlink::Scope S,
bool IsLive)
static llvm::jitlink::Symbol& constructAbsolute(
void* SymStorage,
llvm::jitlink::Addressable& Base,
llvm::StringRef Name,
orc::ExecutorAddrDiff Size,
llvm::jitlink::Linkage L,
llvm::jitlink::Scope S,
bool IsLive)
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:441
Parameters
- void* SymStorage
- llvm::jitlink::Addressable& Base
- llvm::StringRef Name
- orc::ExecutorAddrDiff Size
- llvm::jitlink::Linkage L
- llvm::jitlink::Scope S
- bool IsLive
¶static llvm::jitlink::Symbol& constructAnonDef(
void* SymStorage,
llvm::jitlink::Block& Base,
orc::ExecutorAddrDiff Offset,
orc::ExecutorAddrDiff Size,
bool IsCallable,
bool IsLive)
static llvm::jitlink::Symbol& constructAnonDef(
void* SymStorage,
llvm::jitlink::Block& Base,
orc::ExecutorAddrDiff Offset,
orc::ExecutorAddrDiff Size,
bool IsCallable,
bool IsLive)
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:452
Parameters
- void* SymStorage
- llvm::jitlink::Block& Base
- orc::ExecutorAddrDiff Offset
- orc::ExecutorAddrDiff Size
- bool IsCallable
- bool IsLive
¶static llvm::jitlink::Symbol& constructCommon(
void* SymStorage,
llvm::jitlink::Block& Base,
llvm::StringRef Name,
orc::ExecutorAddrDiff Size,
llvm::jitlink::Scope S,
bool IsLive)
static llvm::jitlink::Symbol& constructCommon(
void* SymStorage,
llvm::jitlink::Block& Base,
llvm::StringRef Name,
orc::ExecutorAddrDiff Size,
llvm::jitlink::Scope S,
bool IsLive)
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:415
Parameters
- void* SymStorage
- llvm::jitlink::Block& Base
- llvm::StringRef Name
- orc::ExecutorAddrDiff Size
- llvm::jitlink::Scope S
- bool IsLive
¶static llvm::jitlink::Symbol& constructExternal(
void* SymStorage,
llvm::jitlink::Addressable& Base,
llvm::StringRef Name,
orc::ExecutorAddrDiff Size,
llvm::jitlink::Linkage L)
static llvm::jitlink::Symbol& constructExternal(
void* SymStorage,
llvm::jitlink::Addressable& Base,
llvm::StringRef Name,
orc::ExecutorAddrDiff Size,
llvm::jitlink::Linkage L)
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:429
Parameters
- void* SymStorage
- llvm::jitlink::Addressable& Base
- llvm::StringRef Name
- orc::ExecutorAddrDiff Size
- llvm::jitlink::Linkage L
¶static llvm::jitlink::Symbol& constructNamedDef(
void* SymStorage,
llvm::jitlink::Block& Base,
orc::ExecutorAddrDiff Offset,
llvm::StringRef Name,
orc::ExecutorAddrDiff Size,
llvm::jitlink::Linkage L,
llvm::jitlink::Scope S,
bool IsLive,
bool IsCallable)
static llvm::jitlink::Symbol& constructNamedDef(
void* SymStorage,
llvm::jitlink::Block& Base,
orc::ExecutorAddrDiff Offset,
llvm::StringRef Name,
orc::ExecutorAddrDiff Size,
llvm::jitlink::Linkage L,
llvm::jitlink::Scope S,
bool IsLive,
bool IsCallable)
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:465
Parameters
- void* SymStorage
- llvm::jitlink::Block& Base
- orc::ExecutorAddrDiff Offset
- llvm::StringRef Name
- orc::ExecutorAddrDiff Size
- llvm::jitlink::Linkage L
- llvm::jitlink::Scope S
- bool IsLive
- bool IsCallable
¶orc::ExecutorAddr getAddress() const
orc::ExecutorAddr getAddress() const
Description
Returns the address of this symbol.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:569
¶llvm::jitlink::Addressable& getAddressable()
llvm::jitlink::Addressable& getAddressable()
Description
Return the addressable that this symbol points to.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:540
¶const llvm::jitlink::Addressable& getAddressable()
const
const llvm::jitlink::Addressable& getAddressable()
const
Description
Return the addressable that thsi symbol points to.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:546
¶llvm::jitlink::Block& getBlock()
llvm::jitlink::Block& getBlock()
Description
Return the Block for this Symbol (Symbol must be defined).
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:552
¶const llvm::jitlink::Block& getBlock() const
const llvm::jitlink::Block& getBlock() const
Description
Return the Block for this Symbol (Symbol must be defined).
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:559
¶llvm::jitlink::Linkage getLinkage() const
llvm::jitlink::Linkage getLinkage() const
Description
Get the linkage for this Symbol.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:600
¶llvm::StringRef getName() const
llvm::StringRef getName() const
Description
Returns the name of this symbol (empty if the symbol is anonymous).
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:494
¶orc::ExecutorAddrDiff getOffset() const
orc::ExecutorAddrDiff getOffset() const
Description
Returns the offset for this symbol within the underlying addressable.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:566
¶orc::ExecutorAddrRange getRange() const
orc::ExecutorAddrRange getRange() const
Description
Returns the address range of this symbol.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:585
¶llvm::jitlink::Scope getScope() const
llvm::jitlink::Scope getScope() const
Description
Get the visibility for this Symbol.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:610
¶orc::ExecutorAddrDiff getSize() const
orc::ExecutorAddrDiff getSize() const
Description
Returns the size of this symbol.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:572
¶ArrayRef<char> getSymbolContent() const
ArrayRef<char> getSymbolContent() const
Description
Returns the content in the underlying block covered by this symbol. This method may only be called on defined non-zero-fill symbols.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:595
¶bool hasName() const
bool hasName() const
Description
Returns true if this symbol has a name.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:491
¶bool isAbsolute() const
bool isAbsolute() const
Description
Returns true if the underlying addressable is an absolute symbol.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:534
¶bool isCallable() const
bool isCallable() const
Description
Returns true is this symbol is callable.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:522
¶bool isDefined() const
bool isDefined() const
Description
Returns true if this Symbol has content (potentially) defined within this object file (i.e. is anything but an external or absolute symbol).
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:506
¶bool isExternal() const
bool isExternal() const
Description
Returns true if the underlying addressable is an unresolved external.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:528
¶bool isLive() const
bool isLive() const
Description
Returns true if this symbol is live (i.e. should be treated as a root for dead stripping).
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:513
¶bool isSymbolZeroFill() const
bool isSymbolZeroFill() const
Description
Returns true if this symbol is backed by a zero-fill block. This method may only be called on defined symbols.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:591
¶void makeAbsolute(llvm::jitlink::Addressable& A)
void makeAbsolute(llvm::jitlink::Addressable& A)
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:632
Parameters
¶void makeExternal(llvm::jitlink::Addressable& A)
void makeExternal(llvm::jitlink::Addressable& A)
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:622
Parameters
¶void setBlock(llvm::jitlink::Block& B)
void setBlock(llvm::jitlink::Block& B)
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:639
Parameters
¶void setCallable(bool IsCallable)
void setCallable(bool IsCallable)
Description
Set this symbol's callable bit.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:525
Parameters
- bool IsCallable
¶void setLinkage(llvm::jitlink::Linkage L)
void setLinkage(llvm::jitlink::Linkage L)
Description
Set the linkage for this Symbol.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:603
Parameters
- llvm::jitlink::Linkage L
¶void setLive(bool IsLive)
void setLive(bool IsLive)
Description
Set this symbol's live bit.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:519
Parameters
- bool IsLive
¶void setName(llvm::StringRef Name)
void setName(llvm::StringRef Name)
Description
Rename this symbol. The client is responsible for updating scope and linkage if this name-change requires it.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:502
Parameters
- llvm::StringRef Name
¶void setOffset(orc::ExecutorAddrDiff NewOffset)
void setOffset(orc::ExecutorAddrDiff NewOffset)
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:641
Parameters
- orc::ExecutorAddrDiff NewOffset
¶void setScope(llvm::jitlink::Scope S)
void setScope(llvm::jitlink::Scope S)
Description
Set the visibility for this Symbol.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:613
Parameters
- llvm::jitlink::Scope S
¶void setSize(orc::ExecutorAddrDiff Size)
void setSize(orc::ExecutorAddrDiff Size)
Description
Set the size of this symbol.
Declared at: llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:575
Parameters
- orc::ExecutorAddrDiff Size