diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2015-03-19 16:06:49 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2015-03-19 16:06:49 +0000 |
commit | 845e32cd4df74b48c3c02e991d0ebf4140783a9a (patch) | |
tree | 2e21c0003368ae587118de700a5f17ea09a715b4 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | c6f19333cfcd4225e4371d2d7c76e20afad4619f (diff) | |
download | llvm-845e32cd4df74b48c3c02e991d0ebf4140783a9a.zip llvm-845e32cd4df74b48c3c02e991d0ebf4140783a9a.tar.gz llvm-845e32cd4df74b48c3c02e991d0ebf4140783a9a.tar.bz2 |
Devirtualize Attr and all subclasses.
We know all subclasses in tblgen so just generate a giant switch for
the few virtual methods or turn them into a member variable using spare
bits. The giant jump tables aren't pretty but still much smaller than
a vtable for every attribute, shrinking Release+Asserts clang by ~400k.
Also halves the size of the Attr base class. No functional change
intended.
llvm-svn: 232726
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions