llvm-6502/lib/ExecutionEngine/RuntimeDyld
Lang Hames be406de225 [MCJIT] Significantly refactor the RuntimeDyldMachO class.
The previous implementation of RuntimeDyldMachO mixed logic for all targets
within a single class, creating problems for readability, maintainability, and
performance. To address these issues, this patch strips the RuntimeDyldMachO
class down to just target-independent functionality, and moves all
target-specific functionality into target-specific subclasses RuntimeDyldMachO.

The new class hierarchy is as follows:

class RuntimeDyldMachO
Implemented in RuntimeDyldMachO.{h,cpp}
Contains logic that is completely independent of the target. This consists
mostly of MachO helper utilities which the derived classes use to get their
work done.


template <typename Impl>
class RuntimeDyldMachOCRTPBase<Impl> : public RuntimeDyldMachO
Implemented in RuntimeDyldMachO.h
Contains generic MachO algorithms/data structures that defer to the Impl class
for target-specific behaviors.

RuntimeDyldMachOARM : public RuntimeDyldMachOCRTPBase<RuntimeDyldMachOARM>
RuntimeDyldMachOARM64 : public RuntimeDyldMachOCRTPBase<RuntimeDyldMachOARM64>
RuntimeDyldMachOI386 : public RuntimeDyldMachOCRTPBase<RuntimeDyldMachOI386>
RuntimeDyldMachOX86_64 : public RuntimeDyldMachOCRTPBase<RuntimeDyldMachOX86_64>
Implemented in their respective *.h files in lib/ExecutionEngine/RuntimeDyld/MachOTargets
Each of these contains the relocation logic specific to their target architecture.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213293 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-17 18:54:50 +00:00
..
Targets [MCJIT] Significantly refactor the RuntimeDyldMachO class. 2014-07-17 18:54:50 +00:00
CMakeLists.txt [RuntimeDyld] Add a framework for testing relocation logic in RuntimeDyld. 2014-06-27 20:20:57 +00:00
GDBRegistrar.cpp [C++] Use 'nullptr'. 2014-04-24 06:44:33 +00:00
JITRegistrar.h [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
LLVMBuild.txt Fix build following r211956 2014-06-28 06:31:47 +00:00
Makefile
ObjectImageCommon.h Pass a std::unique_ptr& to the create??? methods is lib/Object. 2014-06-23 22:00:37 +00:00
RuntimeDyld.cpp [MCJIT] Significantly refactor the RuntimeDyldMachO class. 2014-07-17 18:54:50 +00:00
RuntimeDyldChecker.cpp [MCJIT] Improve a RuntimeDyldChecker diagnostic. 2014-07-16 22:02:20 +00:00
RuntimeDyldELF.cpp [RuntimeDyld, PowerPC] Fix/improve handling of TOC relocations 2014-06-27 10:32:14 +00:00
RuntimeDyldELF.h [RuntimeDyld, PowerPC] Fix/improve handling of TOC relocations 2014-06-27 10:32:14 +00:00
RuntimeDyldImpl.h [RuntimeDyld] Add a framework for testing relocation logic in RuntimeDyld. 2014-06-27 20:20:57 +00:00
RuntimeDyldMachO.cpp [MCJIT] Significantly refactor the RuntimeDyldMachO class. 2014-07-17 18:54:50 +00:00
RuntimeDyldMachO.h [MCJIT] Significantly refactor the RuntimeDyldMachO class. 2014-07-17 18:54:50 +00:00