llvm-project/clang/Lex
Steve Naroff 2cd263ff71 Remove SelectorTable/SelectorInfo, simply store all selectors in the central IdentifierTable.
Rationale:

We currently have a separate table to unique ObjC selectors. Since I don't need all the instance data in IdentifierInfo, I thought this would save space (and make more sense conceptually).

It turns out the cost of having duplicate entries for unary selectors (i.e. names without colons) outweighs the cost difference between the IdentifierInfo & SelectorInfo structures. Here is the data:

Two tables:

*** Selector/Identifier Stats:
# Selectors/Identifiers: 51635 
Bytes allocated:         1999824

One table:

*** Identifier Table Stats:
# Identifiers:   49500
Bytes allocated: 1990316

llvm-svn: 42139
2007-09-19 16:18:46 +00:00
..
HeaderSearch.cpp Implement a simple cache in headersearch. This speeds up 2007-07-22 07:28:00 +00:00
IdentifierTable.cpp Remove SelectorTable/SelectorInfo, simply store all selectors in the central IdentifierTable. 2007-09-19 16:18:46 +00:00
Lexer.cpp Eliminate some VC++ warnings, patch by Hartmut Kaiser! 2007-09-03 18:28:41 +00:00
LiteralSupport.cpp Eliminate some VC++ warnings, patch by Hartmut Kaiser! 2007-09-03 18:28:41 +00:00
MacroExpander.cpp Fix a really subtle bug in the macro expander caching code, where 2007-07-22 01:16:55 +00:00
MacroInfo.cpp At one point there were going to be lexer and parser tokens. 2007-07-20 16:59:19 +00:00
Makefile Add altivec version of block comment skipping code. 2006-10-30 20:01:22 +00:00
PPExpressions.cpp Silence VC++ warnings, patch by Hartmut Kaiser 2007-09-04 02:45:27 +00:00
Pragma.cpp refactor the interface to Preprocessor::GetIncludeFilenameSpelling, 2007-07-23 04:15:27 +00:00
Preprocessor.cpp Add #include required on win32. 2007-09-03 18:30:32 +00:00
ScratchBuffer.cpp Reimplement SourceLocation. Instead of having a 2007-07-20 16:37:10 +00:00