LLVM 20.0.0git
|
Public Member Functions | |
ELFLinkGraphBuilder_aarch32 (StringRef FileName, const llvm::object::ELFFile< ELFT > &Obj, std::shared_ptr< orc::SymbolStringPool > SSP, Triple TT, SubtargetFeatures Features, aarch32::ArmConfig ArmCfg) | |
![]() | |
ELFLinkGraphBuilder (const object::ELFFile< ELFType< DataEndianness, false > > &Obj, std::shared_ptr< orc::SymbolStringPool > SSP, Triple TT, SubtargetFeatures Features, StringRef FileName, LinkGraph::GetEdgeKindNameFunction GetEdgeKindName) | |
ELFLinkGraphBuilder & | setProcessDebugSections (bool ProcessDebugSections) |
Debug sections are included in the graph by default. | |
Expected< std::unique_ptr< LinkGraph > > | buildGraph () |
Attempt to construct and return the LinkGraph. | |
virtual Error | addRelocations ()=0 |
Call to derived class to handle relocations. | |
Error | forEachRelaRelocation (const typename ELFT::Shdr &RelSect, RelocHandlerFunction &&Func) |
Error | forEachRelRelocation (const typename ELFT::Shdr &RelSect, RelocHandlerFunction &&Func) |
![]() | |
ELFLinkGraphBuilderBase (std::unique_ptr< LinkGraph > G) | |
virtual | ~ELFLinkGraphBuilderBase () |
Protected Member Functions | |
TargetFlagsType | makeTargetFlags (const typename ELFT::Sym &Sym) override |
orc::ExecutorAddrDiff | getRawOffset (const typename ELFT::Sym &Sym, TargetFlagsType Flags) override |
![]() | |
bool | isRelocatable () const |
void | setGraphBlock (ELFSectionIndex SecIndex, Block *B) |
Block * | getGraphBlock (ELFSectionIndex SecIndex) |
void | setGraphSymbol (ELFSymbolIndex SymIndex, Symbol &Sym) |
Symbol * | getGraphSymbol (ELFSymbolIndex SymIndex) |
Expected< std::pair< Linkage, Scope > > | getSymbolLinkageAndScope (const typename ELFT::Sym &Sym, StringRef Name) |
virtual TargetFlagsType | makeTargetFlags (const typename ELFT::Sym &Sym) |
Set the target flags on the given Symbol. | |
virtual orc::ExecutorAddrDiff | getRawOffset (const typename ELFT::Sym &Sym, TargetFlagsType Flags) |
Get the physical offset of the symbol on the target platform. | |
Error | prepare () |
Error | graphifySections () |
Error | graphifySymbols () |
virtual bool | excludeSection (const typename ELFT::Shdr &Sect) const |
Override in derived classes to suppress certain sections in the link graph. | |
Error | forEachRelaRelocation (const typename ELFT::Shdr &RelSect, RelocHandlerMethod &&Func) |
Traverse all matching ELFT::Rela relocation records in the given section. | |
Error | forEachRelaRelocation (const typename ELFT::Shdr &RelSect, ClassT *Instance, RelocHandlerMethod &&Method) |
Traverse all matching rela relocation records in the given section. | |
Error | forEachRelRelocation (const typename ELFT::Shdr &RelSect, RelocHandlerMethod &&Func) |
Traverse all matching ELFT::Rel relocation records in the given section. | |
Error | forEachRelRelocation (const typename ELFT::Shdr &RelSect, ClassT *Instance, RelocHandlerMethod &&Method) |
Traverse all matching rel relocation records in the given section. | |
![]() | |
Section & | getCommonSection () |
Additional Inherited Members | |
![]() | |
using | ELFSectionIndex = unsigned |
using | ELFSymbolIndex = unsigned |
![]() | |
static bool | isDwarfSection (StringRef SectionName) |
![]() | |
const ELFFile & | Obj |
ELFFile::Elf_Shdr_Range | Sections |
const ELFFile::Elf_Shdr * | SymTabSec |
StringRef | SectionStringTab |
bool | ProcessDebugSections |
DenseMap< ELFSectionIndex, Block * > | GraphBlocks |
DenseMap< ELFSymbolIndex, Symbol * > | GraphSymbols |
DenseMap< const typename ELFFile::Elf_Shdr *, ArrayRef< typename ELFFile::Elf_Word > > | ShndxTables |
![]() | |
std::unique_ptr< LinkGraph > | G |
Definition at line 141 of file ELF_aarch32.cpp.
|
inline |
Definition at line 221 of file ELF_aarch32.cpp.
|
inlineoverrideprotected |
Definition at line 211 of file ELF_aarch32.cpp.
References assert(), llvm::jitlink::ELFLinkGraphBuilder_aarch32< DataEndianness >::makeTargetFlags(), llvm::ELF::STT_FUNC, and Sym.
|
inlineoverrideprotected |
Definition at line 202 of file ELF_aarch32.cpp.
References llvm::ELF::STT_FUNC, Sym, and llvm::jitlink::aarch32::ThumbSymbol.
Referenced by llvm::jitlink::ELFLinkGraphBuilder_aarch32< DataEndianness >::getRawOffset().