On Aug 14, 2008, at 3:04 PM, Daniel Dunbar wrote: > Author: ddunbar > Date: Thu Aug 14 17:04:54 2008 > New Revision: 54794 > > URL: http://llvm.org/viewvc/llvm-project?rev=54794&view=rev > Log: > Change Parser & Sema to use interned "super" for comparions. > - Added as private members for each because it is not clear where to > put the common definition. Perhaps the IdentifierInfos all of these > "pseudo-keywords" should be collected into one place (this would > KnownFunctionIDs and Objective-C property IDs, for example)
Nice change! Maybe these should be moved into a new object owned by ASTContext. The nice thing about doing this is that we could actually fix some efficiency issues as well. At startup time, various subsystems (e.g. Sema) look up a bunch of interned strings for future comparisons. However, if they are never used, this lookup is wasted, and it could cause an extra string to be interned. When clang is used as a library, this can be a significant startup time hit. I admit that this is mostly an issue for the preprocessor, and is basically unavoidable there (it had to add all the predefined macros to the identifier table and macro tables), but it would be nice to not abuse IdentifierTable any more than we have to. -Chris _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
