Go to the documentation of this file.
13 #ifndef LLVM_LIB_EXECUTIONENGINE_RUNTIMEDYLD_RUNTIMEDYLDMACHO_H
14 #define LLVM_LIB_EXECUTIONENGINE_RUNTIMEDYLD_RUNTIMEDYLDMACHO_H
20 #define DEBUG_TYPE "dyld"
40 : EHFrameSID(EH), TextSID(
T), ExceptTabSID(Ex) {}
74 uint64_t
Offset = RI->getOffset();
86 bool TargetIsLocalThumbFunc =
false);
98 getRelocationValueRef(
const ObjectFile &BaseTObj,
101 ObjSectionToIDMap &ObjSectionToID);
106 unsigned OffsetToNextPC);
119 unsigned PTSectionID);
124 static std::unique_ptr<RuntimeDyldMachO>
129 std::unique_ptr<RuntimeDyld::LoadedObjectInfo>
144 template <
typename Impl>
147 Impl &
impl() {
return static_cast<Impl &
>(*this); }
148 const Impl &
impl()
const {
return static_cast<const Impl &
>(*this); }
150 unsigned char *processFDE(uint8_t *
P, int64_t DeltaForText,
159 ObjSectionToIDMap &SectionMap)
override;
160 void registerEHFrames()
override;
This class represents lattice values for constants.
This currently compiles esp xmm0 movsd esp eax eax esp ret We should use not the dag combiner This is because dagcombine2 needs to be able to see through the X86ISD::Wrapper which DAGCombine can t really do The code for turning x load into a single vector load is target independent and should be moved to the dag combiner The code for turning x load into a vector load can only handle a direct load from a global or a direct load from the stack It should be generalized to handle any load from P
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
RelocationEntry getRelocationEntry(unsigned SectionID, const ObjectFile &BaseTObj, const relocation_iterator &RI) const
Given a relocation_iterator for a non-scattered relocation, construct a RelocationEntry and fill in t...
unsigned getAnyRelocationPCRel(const MachO::any_relocation_info &RE) const
place backedge safepoints impl
SmallVector< EHFrameRelatedSections, 2 > UnregisteredEHFrameSections
Tagged union holding either a T or a Error.
Interface for looking up the initializer for a variable name, used by Init::resolveReferences.
RuntimeDyldMachO(RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver)
RuntimeDyldMachOTarget - Templated base class for generic MachO linker algorithms and data structures...
MachO::any_relocation_info getRelocation(DataRefImpl Rel) const
This is a value type class that represents a single section in the list of sections in the object fil...
RelocationEntry - used to represent relocations internally in the dynamic linker.
SectionEntry - represents a section emitted into memory by the dynamic linker.
RuntimeDyldMachOCRTPBase(RuntimeDyld::MemoryManager &MemMgr, JITSymbolResolver &Resolver)
This class is the base class for all object file types.
unsigned getAnyRelocationType(const MachO::any_relocation_info &RE) const
Symbol resolution interface.
#define RTDYLD_INVALID_SECTION_ID
Lightweight error class with error context and mandatory checking.
unsigned getAnyRelocationLength(const MachO::any_relocation_info &RE) const
SectionEntry & getSection(unsigned SectionID)
LLVM Value Representation.
std::map< SectionRef, unsigned > ObjSectionToIDMap