LLVM  7.0.0svn
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
llvm::RuntimeDyldCOFF Class Reference

#include "ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.h"

Inheritance diagram for llvm::RuntimeDyldCOFF:
Inheritance graph
Collaboration diagram for llvm::RuntimeDyldCOFF:
Collaboration graph

Public Member Functions

std::unique_ptr< RuntimeDyld::LoadedObjectInfoloadObject (const object::ObjectFile &Obj) override
bool isCompatibleFile (const object::ObjectFile &Obj) const override
- Public Member Functions inherited from llvm::RuntimeDyldImpl
 RuntimeDyldImpl (RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver)
virtual ~RuntimeDyldImpl ()
void setProcessAllSections (bool ProcessAllSections)
void setRuntimeDyldChecker (RuntimeDyldCheckerImpl *Checker)
uint8_t * getSymbolLocalAddress (StringRef Name) const
JITEvaluatedSymbol getSymbol (StringRef Name) const
std::map< StringRef, JITEvaluatedSymbolgetSymbolTable () const
void resolveRelocations ()
void reassignSectionAddress (unsigned SectionID, uint64_t Addr)
void mapSectionAddress (const void *LocalAddress, uint64_t TargetAddress)
bool hasError ()
void clearError ()
StringRef getErrorString ()
virtual void registerEHFrames ()
void deregisterEHFrames ()
virtual Error finalizeLoad (const ObjectFile &ObjImg, ObjSectionToIDMap &SectionMap)

Static Public Member Functions

static std::unique_ptr< RuntimeDyldCOFFcreate (Triple::ArchType Arch, RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver)

Protected Member Functions

 RuntimeDyldCOFF (RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver)
uint64_t getSymbolOffset (const SymbolRef &Sym)
- Protected Member Functions inherited from llvm::RuntimeDyldImpl
virtual unsigned getMaxStubSize ()=0
virtual unsigned getStubAlignment ()=0
uint64_t getSectionLoadAddress (unsigned SectionID) const
uint8_t * getSectionAddress (unsigned SectionID) const
void writeInt16BE (uint8_t *Addr, uint16_t Value)
void writeInt32BE (uint8_t *Addr, uint32_t Value)
void writeInt64BE (uint8_t *Addr, uint64_t Value)
virtual void setMipsABI (const ObjectFile &Obj)
uint64_t readBytesUnaligned (uint8_t *Src, unsigned Size) const
 Endian-aware read Read the least significant Size bytes from Src. More...
void writeBytesUnaligned (uint64_t Value, uint8_t *Dst, unsigned Size) const
 Endian-aware write. More...
virtual JITSymbolFlags getJITSymbolFlags (const BasicSymbolRef &Sym)
 Generate JITSymbolFlags from a libObject symbol. More...
virtual uint64_t modifyAddressBasedOnFlags (uint64_t Addr, JITSymbolFlags Flags) const
 Modify the given target address based on the given symbol flags. More...
Error emitCommonSymbols (const ObjectFile &Obj, CommonSymbolList &CommonSymbols, uint64_t CommonSize, uint32_t CommonAlign)
 Given the common symbols discovered in the object file, emit a new section for them and update the symbol mappings in the object and symbol table. More...
Expected< unsignedemitSection (const ObjectFile &Obj, const SectionRef &Section, bool IsCode)
 Emits section data from the object file to the MemoryManager. More...
Expected< unsignedfindOrEmitSection (const ObjectFile &Obj, const SectionRef &Section, bool IsCode, ObjSectionToIDMap &LocalSections)
 Find Section in LocalSections. More...
void addRelocationForSection (const RelocationEntry &RE, unsigned SectionID)
void addRelocationForSymbol (const RelocationEntry &RE, StringRef SymbolName)
uint8_t * createStubFunction (uint8_t *Addr, unsigned AbiVariant=0)
 Emits long jump instruction to Addr. More...
void resolveRelocationList (const RelocationList &Relocs, uint64_t Value)
 Resolves relocations from Relocs list with address from Value. More...
virtual void resolveRelocation (const RelocationEntry &RE, uint64_t Value)=0
 A object file specific relocation resolver. More...
virtual Expected< relocation_iteratorprocessRelocationRef (unsigned SectionID, relocation_iterator RelI, const ObjectFile &Obj, ObjSectionToIDMap &ObjSectionToID, StubMap &Stubs)=0
 Parses one or more object file relocations (some object files use relocation pairs) and stores it to Relocations or SymbolRelocations (this depends on the object file type). More...
Error resolveExternalSymbols ()
 Resolve relocations to external symbols. More...
Error computeTotalAllocSize (const ObjectFile &Obj, uint64_t &CodeSize, uint32_t &CodeAlign, uint64_t &RODataSize, uint32_t &RODataAlign, uint64_t &RWDataSize, uint32_t &RWDataAlign)
unsigned computeGOTSize (const ObjectFile &Obj)
unsigned computeSectionStubBufSize (const ObjectFile &Obj, const SectionRef &Section)
Expected< ObjSectionToIDMaploadObjectImpl (const object::ObjectFile &Obj)
virtual size_t getGOTEntrySize ()
virtual bool relocationNeedsGot (const RelocationRef &R) const
virtual bool relocationNeedsStub (const RelocationRef &R) const

Additional Inherited Members

- Protected Types inherited from llvm::RuntimeDyldImpl
typedef SmallVector< SectionEntry, 64 > SectionList
typedef unsigned SID
typedef std::map< SectionRef, unsignedObjSectionToIDMap
typedef std::vector< SymbolRefCommonSymbolList
typedef SmallVector< RelocationEntry, 64 > RelocationList
typedef std::map< RelocationValueRef, uintptr_t > StubMap
- Protected Attributes inherited from llvm::RuntimeDyldImpl
SectionList Sections
RTDyldSymbolTable GlobalSymbolTable
std::unordered_map< unsigned, RelocationListRelocations
StringMap< RelocationListExternalSymbolRelocations
Triple::ArchType Arch
bool IsTargetLittleEndian
bool IsMipsO32ABI
bool IsMipsN32ABI
bool IsMipsN64ABI
bool ProcessAllSections
sys::Mutex lock
bool HasError
std::string ErrorStr
- Static Protected Attributes inherited from llvm::RuntimeDyldImpl
static const unsigned AbsoluteSymbolSection = ~0U

Detailed Description

Definition at line 27 of file RuntimeDyldCOFF.h.

Constructor & Destructor Documentation

◆ RuntimeDyldCOFF()

llvm::RuntimeDyldCOFF::RuntimeDyldCOFF ( RuntimeDyld::MemoryManager MemMgr,
JITSymbolResolver Resolver 

Definition at line 39 of file RuntimeDyldCOFF.h.

References getSymbolOffset().

Member Function Documentation

◆ create()

std::unique_ptr< RuntimeDyldCOFF > llvm::RuntimeDyldCOFF::create ( Triple::ArchType  Arch,
RuntimeDyld::MemoryManager MemMgr,
JITSymbolResolver Resolver 

◆ getSymbolOffset()

uint64_t llvm::RuntimeDyldCOFF::getSymbolOffset ( const SymbolRef Sym)

◆ isCompatibleFile()

bool llvm::RuntimeDyldCOFF::isCompatibleFile ( const object::ObjectFile Obj) const

Implements llvm::RuntimeDyldImpl.

Definition at line 79 of file RuntimeDyldCOFF.cpp.

References llvm::object::Binary::isCOFF().

◆ loadObject()

std::unique_ptr< RuntimeDyld::LoadedObjectInfo > llvm::RuntimeDyldCOFF::loadObject ( const object::ObjectFile Obj)

Implements llvm::RuntimeDyldImpl.

Definition at line 63 of file RuntimeDyldCOFF.cpp.

References llvm::logAllUnhandledErrors().

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