LLVM: llvm::RuntimeDyldCOFF Class Reference (original) (raw)
#include "[ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.h](RuntimeDyldCOFF%5F8h%5Fsource.html)"
| Protected Member Functions | |
|---|---|
| RuntimeDyldCOFF (RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver, unsigned PointerSize, uint32_t PointerReloc) | |
| uint64_t | getSymbolOffset (const SymbolRef &Sym) |
| uint64_t | getDLLImportOffset (unsigned SectionID, StubMap &Stubs, StringRef Name, bool SetSectionIDMinus1=false) |
| bool | relocationNeedsDLLImportStub (const RelocationRef &R) const override |
| unsigned | sizeAfterAddingDLLImportStub (unsigned Size) const override |
| Protected Member Functions inherited from llvm::RuntimeDyldImpl | |
| virtual unsigned | getMaxStubSize () const =0 |
| virtual Align | getStubAlignment ()=0 |
| 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. | |
| void | writeBytesUnaligned (uint64_t Value, uint8_t *Dst, unsigned Size) const |
| Endian-aware write. | |
| virtual Expected< JITSymbolFlags > | getJITSymbolFlags (const SymbolRef &Sym) |
| Generate JITSymbolFlags from a libObject symbol. | |
| virtual uint64_t | modifyAddressBasedOnFlags (uint64_t Addr, JITSymbolFlags Flags) const |
| Modify the given target address based on the given symbol flags. | |
| 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. | |
| Expected< unsigned > | emitSection (const ObjectFile &Obj, const SectionRef &Section, bool IsCode) |
| Emits section data from the object file to the MemoryManager. | |
| Expected< unsigned > | findOrEmitSection (const ObjectFile &Obj, const SectionRef &Section, bool IsCode, ObjSectionToIDMap &LocalSections) |
| Find Section in LocalSections. | |
| 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. | |
| void | resolveRelocationList (const RelocationList &Relocs, uint64_t Value) |
| Resolves relocations from Relocs list with address from Value. | |
| virtual void | resolveRelocation (const RelocationEntry &RE, uint64_t Value)=0 |
| A object file specific relocation resolver. | |
| virtual Expected< relocation_iterator > | processRelocationRef (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). | |
| void | applyExternalSymbolRelocations (const StringMap< JITEvaluatedSymbol > ExternalSymbolMap) |
| Error | resolveExternalSymbols () |
| Resolve relocations to external symbols. | |
| Error | computeTotalAllocSize (const ObjectFile &Obj, uint64_t &CodeSize, Align &CodeAlign, uint64_t &RODataSize, Align &RODataAlign, uint64_t &RWDataSize, Align &RWDataAlign) |
| unsigned | computeGOTSize (const ObjectFile &Obj) |
| unsigned | computeSectionStubBufSize (const ObjectFile &Obj, const SectionRef &Section) |
| Expected< ObjSectionToIDMap > | loadObjectImpl (const object::ObjectFile &Obj) |
| virtual size_t | getGOTEntrySize () |
| virtual void | processNewSymbol (const SymbolRef &ObjSymbol, SymbolTableEntry &Entry) |
| virtual bool | relocationNeedsGot (const RelocationRef &R) const |
| virtual bool | relocationNeedsStub (const RelocationRef &R) const |
| Static Protected Member Functions | |
|---|---|
| static constexpr StringRef | getImportSymbolPrefix () |
Definition at line 23 of file RuntimeDyldCOFF.h.
◆ create()
◆ getDLLImportOffset()
Definition at line 81 of file RuntimeDyldCOFF.cpp.
References llvm::RuntimeDyldImpl::addRelocationForSymbol(), llvm::alignTo(), assert(), llvm::dbgs(), llvm::format(), llvm::formatv(), getImportSymbolPrefix(), LLVM_DEBUG, llvm::Log2_64(), llvm::RelocationEntry::SectionPair::SectionA, llvm::RelocationEntry::Sections, llvm::RuntimeDyldImpl::Sections, and llvm::size().
Referenced by llvm::RuntimeDyldCOFFAArch64::processRelocationRef(), llvm::RuntimeDyldCOFFI386::processRelocationRef(), llvm::RuntimeDyldCOFFThumb::processRelocationRef(), and llvm::RuntimeDyldCOFFX86_64::processRelocationRef().
◆ getImportSymbolPrefix()
| constexpr StringRef llvm::RuntimeDyldCOFF::getImportSymbolPrefix ( ) | inlinestaticconstexprprotected |
|---|
◆ getSymbolOffset()
◆ isCompatibleFile()
◆ loadObject()
◆ relocationNeedsDLLImportStub()
| bool llvm::RuntimeDyldCOFF::relocationNeedsDLLImportStub ( const RelocationRef & R) const | overrideprotectedvirtual |
|---|
◆ sizeAfterAddingDLLImportStub()
| unsigned llvm::RuntimeDyldCOFF::sizeAfterAddingDLLImportStub ( unsigned Size) const | inlineoverrideprotectedvirtual |
|---|
The documentation for this class was generated from the following files:
- lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.h
- lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp