]> granicus.if.org Git - clang/commit
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)
commit4269ad98c81ba9e630c334fc299aae6fc2b7786a
tree18263fa350f3e0daa9bf387e28ae58f9af4e5678
parentd4689bbca1a7bd2151d28f62b0f625983b185451
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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212435 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGCXXABI.cpp
lib/CodeGen/CGCXXABI.h
lib/CodeGen/CGRTTI.cpp [deleted file]
lib/CodeGen/CMakeLists.txt
lib/CodeGen/CodeGenModule.cpp
lib/CodeGen/CodeGenModule.h
lib/CodeGen/ItaniumCXXABI.cpp
lib/CodeGen/MicrosoftCXXABI.cpp
lib/CodeGen/MicrosoftRTTI.cpp [deleted file]