[llvm-commits] TableGen: Goodbye RTTI!

Sean Silva silvas at purdue.edu
Mon Oct 8 09:10:22 PDT 2012


This patch set removes the last traces of RTTI from TableGen (both in
LLVM and Clang) and removes the crutch for enabling RTTI when building
it.

Every step of the way the generated .inc file are identical and the
TableGen tests pass. I would appreciate if someone familiar with the
build system double-checked patches 0006 and 0007 where I remove
support from the corresponding Makefile and CMakeLists.txt for RTTI;
it looked pretty obvious, but just in case there is something I don't
understand about the build system.

Patches 0001-0004 and 0007 are for LLVM. Patches 0005,0006 are for Clang.

Patch descriptions:

0001-tblgen-Put-dyn_cast-machinery-in-place-for-Init-hier.patch
This patch sets up the Init hierarchy for LLVM-style RTTI.

0002-tblgen-Mechanically-move-dynamic_cast-to-dyn_cast.patch
0003-tblgen-Use-semantically-correct-RTTI-functions.patch
These two patches migrate LLVM's TableGen code to use LLVM-style RTTI.

0004-tblgen-Move-mini-Type-hierarchy-to-LLVM-style-RTTI.patch
I found this mini Type hierarchy inside TableGen which uses RTTI.
Since it is so small, move it to use LLVM-style RTTI in one fell
swoop.

0005-tblgen-Use-LLVM-style-RTTI-in-clang-tblgen.patch
Move to LLVM-style RTTI in Clang's TableGen.

0006-tblgen-Build-clang-tblgen-without-RTTI.patch
Remove build support for RTTI in Clang's TableGen.

0007-tblgen-Compile-TableGen-without-RTTI.patch
Remove build support for RTTI in LLVM's TableGen

Feedback and review welcome.

-- Sean Silva
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-tblgen-Put-dyn_cast-machinery-in-place-for-Init-hier.patch
Type: application/octet-stream
Size: 12835 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121008/428025aa/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-tblgen-Mechanically-move-dynamic_cast-to-dyn_cast.patch
Type: application/octet-stream
Size: 69723 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121008/428025aa/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-tblgen-Use-semantically-correct-RTTI-functions.patch
Type: application/octet-stream
Size: 22846 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121008/428025aa/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-tblgen-Move-mini-Type-hierarchy-to-LLVM-style-RTTI.patch
Type: application/octet-stream
Size: 2446 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121008/428025aa/attachment-0003.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0005-tblgen-Use-LLVM-style-RTTI-in-clang-tblgen.patch
Type: application/octet-stream
Size: 11593 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121008/428025aa/attachment-0004.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0006-tblgen-Build-clang-tblgen-without-RTTI.patch
Type: application/octet-stream
Size: 1055 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121008/428025aa/attachment-0005.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0007-tblgen-Compile-TableGen-without-RTTI.patch
Type: application/octet-stream
Size: 1830 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121008/428025aa/attachment-0006.obj>


More information about the llvm-commits mailing list