diff options
author | Lang Hames <lhames@gmail.com> | 2014-07-17 18:54:50 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2014-07-17 18:54:50 +0000 |
commit | a521688cf40fcb6d1b3e9a6dc4e78d306dbbd5ec (patch) | |
tree | e84714ff85a35732633fc7e26d034369c9326e9d /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 535b6f936157d6fec5b074a149200f81e6bcbb9d (diff) | |
download | llvm-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