Remove the MCRegAliasIterator tables and compute the aliases dynamically.
authorChad Rosier <mcrosier@apple.com>
Tue, 28 May 2013 18:08:48 +0000 (18:08 +0000)
committerChad Rosier <mcrosier@apple.com>
Tue, 28 May 2013 18:08:48 +0000 (18:08 +0000)
commit2275cfd75b65ede0f46f3cf914e76a38daf96417
tree84f92bdd4f1ec89c22c1eeb63b813c2fa8abf62c
parent520b6e3fa5c9c01ed66e70c925e78d518504a983
Remove the MCRegAliasIterator tables and compute the aliases dynamically.

The size reduction in the RegDiffLists are rather dramatic.  Here are a few
size differences for MCTargetDesc.o files (before and after) in bytes:
R600 - 36160B - 11184B - 69% reduction
ARM - 28480B - 8368B - 71% reduction
Mips - 816B - 576B - 29% reduction

One side effect of dynamically computing the aliases is that the iterator does
not guarantee that the entries are ordered or that duplicates have been removed.
The documentation implies this is a safe assumption and I found no clients that
requires these attributes (i.e., strict ordering and uniqueness).

My local LNT tester results showed no execution-time failures or significant
compile-time regressions (i.e., beyond what I would consider noise) for -O0g,
-O2 and -O3 runs on x86_64 and i386 configurations.
rdar://12906217

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182783 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/MC/MCRegisterInfo.h
utils/TableGen/CodeGenRegisters.cpp
utils/TableGen/CodeGenRegisters.h
utils/TableGen/RegisterInfoEmitter.cpp