aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2014-07-17 18:54:50 +0000
committerLang Hames <lhames@gmail.com>2014-07-17 18:54:50 +0000
commita521688cf40fcb6d1b3e9a6dc4e78d306dbbd5ec (patch)
treee84714ff85a35732633fc7e26d034369c9326e9d /clang/lib/CodeGen/CodeGenModule.cpp
parent535b6f936157d6fec5b074a149200f81e6bcbb9d (diff)
downloadllvm-a521688cf40fcb6d1b3e9a6dc4e78d306dbbd5ec.zip
llvm-a521688cf40fcb6d1b3e9a6dc4e78d306dbbd5ec.tar.gz
llvm-a521688cf40fcb6d1b3e9a6dc4e78d306dbbd5ec.tar.bz2
[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
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions