diff options
author | Steve Naroff <snaroff@apple.com> | 2007-09-28 22:22:11 +0000 |
---|---|---|
committer | Steve Naroff <snaroff@apple.com> | 2007-09-28 22:22:11 +0000 |
commit | 8017506d9cf9b8c9fcab6f5d125cb991a36ba4e6 (patch) | |
tree | 797830275adf13352dac019078137da20635876b /llvm/docs/GettingStarted.html | |
parent | 8ec4f837fa1b8ca3d54ddfb085b37a2001870a89 (diff) | |
download | bcm5719-llvm-8017506d9cf9b8c9fcab6f5d125cb991a36ba4e6.tar.gz bcm5719-llvm-8017506d9cf9b8c9fcab6f5d125cb991a36ba4e6.zip |
Yesterday I discovered that 78% of all selectors in "Cocoa.h" take 0/1 argument.
This motivated implementing a devious clattner inspired solution:-)
This approach uses a small value "Selector" class to point to an IdentifierInfo for the 0/1 case. For multi-keyword selectors, we instantiate a MultiKeywordSelector object (previously known as SelectorInfo). Now, the incremental cost for selectors is only 24,800 for Cocoa.h! This saves 156,592 bytes, or 86%!! The size reduction is also the result of getting rid of the AST slot, which was not strictly necessary (we will associate a selector with it's method using another table...most likely in Sema).
This change was critical to make now, before we have too many clients.
I still need to add some comments to the Selector class...will likely add later today/tomorrow.
llvm-svn: 42452
Diffstat (limited to 'llvm/docs/GettingStarted.html')
0 files changed, 0 insertions, 0 deletions