|
| ELFLinkGraphBuilder_riscv (StringRef FileName, const object::ELFFile< ELFT > &Obj, std::shared_ptr< orc::SymbolStringPool > SSP, Triple TT, SubtargetFeatures Features) |
|
| ELFLinkGraphBuilder (const object::ELFFile< ELFT > &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.
|
|
template<typename RelocHandlerFunction > |
Error | forEachRelaRelocation (const typename ELFT::Shdr &RelSect, RelocHandlerFunction &&Func) |
|
template<typename RelocHandlerFunction > |
Error | forEachRelRelocation (const typename ELFT::Shdr &RelSect, RelocHandlerFunction &&Func) |
|
| ELFLinkGraphBuilderBase (std::unique_ptr< LinkGraph > G) |
|
virtual | ~ELFLinkGraphBuilderBase () |
|
|
using | ELFSectionIndex = unsigned |
|
using | ELFSymbolIndex = unsigned |
|
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.
|
|
template<typename RelocHandlerMethod > |
Error | forEachRelaRelocation (const typename ELFT::Shdr &RelSect, RelocHandlerMethod &&Func) |
| Traverse all matching ELFT::Rela relocation records in the given section.
|
|
template<typename RelocHandlerMethod > |
Error | forEachRelRelocation (const typename ELFT::Shdr &RelSect, RelocHandlerMethod &&Func) |
| Traverse all matching ELFT::Rel relocation records in the given section.
|
|
template<typename ClassT , typename RelocHandlerMethod > |
Error | forEachRelaRelocation (const typename ELFT::Shdr &RelSect, ClassT *Instance, RelocHandlerMethod &&Method) |
| Traverse all matching rela relocation records in the given section.
|
|
template<typename ClassT , typename RelocHandlerMethod > |
Error | forEachRelRelocation (const typename ELFT::Shdr &RelSect, ClassT *Instance, RelocHandlerMethod &&Method) |
| Traverse all matching rel relocation records in the given section.
|
|
Section & | getCommonSection () |
|
static bool | isDwarfSection (StringRef SectionName) |
|
const ELFFile & | Obj |
|
ELFFile::Elf_Shdr_Range | Sections |
|
const ELFFile::Elf_Shdr * | SymTabSec = nullptr |
|
StringRef | SectionStringTab |
|
bool | ProcessDebugSections = true |
|
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 |
|
template<typename ELFT>
class llvm::jitlink::ELFLinkGraphBuilder_riscv< ELFT >
Definition at line 780 of file ELF_riscv.cpp.