LLVM: llvm::jitlink::COFFLinkGraphBuilder Class Reference (original) (raw)

#include "[ExecutionEngine/JITLink/COFFLinkGraphBuilder.h](COFFLinkGraphBuilder%5F8h%5Fsource.html)"

Protected Types
using COFFSectionIndex = int32_t
using COFFSymbolIndex = int32_t
Protected Member Functions
COFFLinkGraphBuilder (const object::COFFObjectFile &Obj, std::shared_ptr< orc::SymbolStringPool > SSP, Triple TT, SubtargetFeatures Features, LinkGraph::GetEdgeKindNameFunction GetEdgeKindName)
LinkGraph & getGraph () const
const object::COFFObjectFile & getObject () const
virtual Error addRelocations ()=0
Error graphifySections ()
Error graphifySymbols ()
void setGraphSymbol (COFFSectionIndex SecIndex, COFFSymbolIndex SymIndex, Symbol &Sym)
Symbol * getGraphSymbol (COFFSymbolIndex SymIndex) const
void setGraphBlock (COFFSectionIndex SecIndex, Block *B)
Block * getGraphBlock (COFFSectionIndex SecIndex) const
Symbol & addImageBaseSymbol (StringRef Name="__ImageBase")
object::COFFObjectFile::section_iterator_range sections () const
template
Error forEachRelocation (const object::SectionRef &RelSec, RelocHandlerFunction &&Func, bool ProcessDebugSections=false)
Traverse all matching relocation records in the given section.
template<typename ClassT, typename RelocHandlerMethod>
Error forEachRelocation (const object::SectionRef &RelSec, ClassT *Instance, RelocHandlerMethod &&Method, bool ProcessDebugSections=false)
Traverse all matching relocation records in the given section.

Definition at line 29 of file COFFLinkGraphBuilder.h.

COFFSectionIndex

COFFSymbolIndex

llvm::jitlink::COFFLinkGraphBuilder::~COFFLinkGraphBuilder ( ) virtualdefault

COFFLinkGraphBuilder()

addImageBaseSymbol()

Symbol & llvm::jitlink::COFFLinkGraphBuilder::addImageBaseSymbol ( StringRef Name = "__ImageBase") inlineprotected

addRelocations()

virtual Error llvm::jitlink::COFFLinkGraphBuilder::addRelocations ( ) protectedpure virtual

buildGraph()

Expected< std::unique_ptr< LinkGraph > > llvm::jitlink::COFFLinkGraphBuilder::buildGraph ( )

forEachRelocation() [1/2]

template<typename ClassT, typename RelocHandlerMethod>

Error llvm::jitlink::COFFLinkGraphBuilder::forEachRelocation ( const object::SectionRef & RelSec, ClassT * Instance, RelocHandlerMethod && Method, bool ProcessDebugSections = false ) inlineprotected

Traverse all matching relocation records in the given section.

Convenience wrapper to allow passing a member function for the handler.

Definition at line 104 of file COFFLinkGraphBuilder.h.

References forEachRelocation().

forEachRelocation() [2/2]

template

Error llvm::jitlink::COFFLinkGraphBuilder::forEachRelocation ( const object::SectionRef & RelSec, RelocHandlerFunction && Func, bool ProcessDebugSections = false ) protected

getGraph()

LinkGraph & llvm::jitlink::COFFLinkGraphBuilder::getGraph ( ) const inlineprotected

getGraphBlock()

Block * llvm::jitlink::COFFLinkGraphBuilder::getGraphBlock ( COFFSectionIndex SecIndex) const inlineprotected

getGraphSymbol()

Symbol * llvm::jitlink::COFFLinkGraphBuilder::getGraphSymbol ( COFFSymbolIndex SymIndex) const inlineprotected

getObject()

graphifySections()

Error llvm::jitlink::COFFLinkGraphBuilder::graphifySections ( ) protected

Definition at line 115 of file COFFLinkGraphBuilder.cpp.

References B(), llvm::Data, llvm::dbgs(), llvm::orc::Exec, llvm::COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA, llvm::COFF::IMAGE_SCN_LNK_REMOVE, llvm::COFF::IMAGE_SCN_MEM_EXECUTE, llvm::COFF::IMAGE_SCN_MEM_READ, llvm::COFF::IMAGE_SCN_MEM_WRITE, LLVM_DEBUG, llvm::make_error(), llvm::orc::NoAlloc, llvm::orc::Read, setGraphBlock(), llvm::Error::success(), llvm::Expected< T >::takeError(), and llvm::orc::Write.

Referenced by buildGraph().

graphifySymbols()

Error llvm::jitlink::COFFLinkGraphBuilder::graphifySymbols ( ) protected

sections()

setGraphBlock()

void llvm::jitlink::COFFLinkGraphBuilder::setGraphBlock ( COFFSectionIndex SecIndex, Block * B ) inlineprotected

setGraphSymbol()

void llvm::jitlink::COFFLinkGraphBuilder::setGraphSymbol ( COFFSectionIndex SecIndex, COFFSymbolIndex SymIndex, Symbol & Sym ) inlineprotected

The documentation for this class was generated from the following files: