Go to file
Lang Hames a521688cf4 [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.

llvm-svn: 213293
2014-07-17 18:54:50 +00:00
clang [UBSan] Add !nosanitize metadata to the code generated by UBSan. 2014-07-17 18:46:27 +00:00
clang-tools-extra Make the diagnostic message more complete to check the check name. 2014-07-17 10:05:26 +00:00
compiler-rt [asan] Remove leftover debug printf. 2014-07-17 13:05:21 +00:00
debuginfo-tests relax testcase for LLDB output format compatibility. 2014-03-19 23:06:18 +00:00
libclc prepare-builtins: Fix broken build due to recent LLVM API change 2014-07-07 17:46:45 +00:00
libcxx Fix bug #20335 - memory leak when move-constructing a string with unequal allocator. Thanks to Thomas Koeppe for the report 2014-07-17 15:32:20 +00:00
libcxxabi libcxxabi cmake: Use HandleLLVMOptions.cmake, don't manually add -std=c++11. 2014-07-16 23:53:37 +00:00
lld [PECOFF] Set DLL bit in PE header if DLL. 2014-07-17 00:22:26 +00:00
lldb Fixed our install-headers script to set version 2014-07-17 17:26:38 +00:00
llvm [MCJIT] Significantly refactor the RuntimeDyldMachO class. 2014-07-17 18:54:50 +00:00
openmp CMake: remove duplicated source file from list 2014-06-02 13:09:24 +00:00
polly [Refactor] Move code out of the IslAst header 2014-07-17 16:11:28 +00:00