LLVM: lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_RUNTIME_DYLD_COFF_H
14#define LLVM_RUNTIME_DYLD_COFF_H
15
18
19namespace llvm {
20
21
22
24
25public:
26 std::unique_ptrRuntimeDyld::LoadedObjectInfo
29
30 static std::unique_ptr
33
34protected:
39 PointerReloc(PointerReloc) {
40 assert((PointerSize == 4 || PointerSize == 8) && "Unexpected pointer size");
41 }
42
45 StringRef Name, bool SetSectionIDMinus1 = false);
46
48
50
52 return alignTo(Size, PointerSize) + PointerSize;
53 }
54
55private:
56 unsigned PointerSize;
58};
59
60}
61
62#endif
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
Symbol resolution interface.
uint64_t getSymbolOffset(const SymbolRef &Sym)
static constexpr StringRef getImportSymbolPrefix()
Definition RuntimeDyldCOFF.h:47
RuntimeDyldCOFF(RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver, unsigned PointerSize, uint32_t PointerReloc)
Definition RuntimeDyldCOFF.h:35
unsigned sizeAfterAddingDLLImportStub(unsigned Size) const override
Definition RuntimeDyldCOFF.h:51
std::unique_ptr< RuntimeDyld::LoadedObjectInfo > loadObject(const object::ObjectFile &Obj) override
static std::unique_ptr< RuntimeDyldCOFF > create(Triple::ArchType Arch, RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver)
bool relocationNeedsDLLImportStub(const RelocationRef &R) const override
bool isCompatibleFile(const object::ObjectFile &Obj) const override
uint64_t getDLLImportOffset(unsigned SectionID, StubMap &Stubs, StringRef Name, bool SetSectionIDMinus1=false)
RuntimeDyldImpl(RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver)
std::map< RelocationValueRef, uintptr_t > StubMap
JITSymbolResolver & Resolver
RuntimeDyld::MemoryManager & MemMgr
StringRef - Represent a constant reference to a string, i.e.
This class is the base class for all object file types.
This is a value type class that represents a single relocation in the list of relocations in the obje...
This is a value type class that represents a single symbol in the list of symbols in the object file.
This is an optimization pass for GlobalISel generic memory operations.
uint64_t alignTo(uint64_t Size, Align A)
Returns a multiple of A needed to store Size bytes.