CodeGen: Refactor RTTI emission
authorDavid Majnemer <david.majnemer@gmail.com>
Mon, 7 Jul 2014 06:20:47 +0000 (06:20 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Mon, 7 Jul 2014 06:20:47 +0000 (06:20 +0000)
commite2cb8d198f54b84187419a23b3f3e1d05015e5e7
tree77685fab2c6be89c10a2ee4526241996efd07a8e
parentc358000ed34f074d9393fce692b67b32e370f09a
CodeGen: Refactor RTTI emission

Let's not expose ABI specific minutia inside of CodeGenModule and Type.
Instead, let's abstract it through CXXABI.

This gets rid of:
CodeGenModule::getCompleteObjectLocator,
CodeGenModule::EmitFundamentalTypeDescriptor{s,},
CodeGenModule::getMSTypeDescriptor,
CodeGenModule::getMSCompleteObjectLocator,
CGCXXABI::shouldRTTIBeUnique,
CGCXXABI::classifyRTTIUniqueness.

CGRTTI was *almost* entirely centered around providing Itanium-style
RTTI information.  Instead of providing interfaces that only it
consumes, move it to the ItaniumCXXABI implementation file.  This allows
it to have access to Itanium-specific implementation details without
providing useless expansion points for the Microsoft ABI side.

Differential Revision: http://reviews.llvm.org/D4261

llvm-svn: 212435
clang/lib/CodeGen/CGCXXABI.cpp
clang/lib/CodeGen/CGCXXABI.h
clang/lib/CodeGen/CGRTTI.cpp [deleted file]
clang/lib/CodeGen/CMakeLists.txt
clang/lib/CodeGen/CodeGenModule.cpp
clang/lib/CodeGen/CodeGenModule.h
clang/lib/CodeGen/ItaniumCXXABI.cpp
clang/lib/CodeGen/MicrosoftCXXABI.cpp
clang/lib/CodeGen/MicrosoftRTTI.cpp [deleted file]