On Nov 17, 2008, at 4:43 PM, Ted Kremenek wrote: > URL: http://llvm.org/viewvc/llvm-project?rev=59477&view=rev > Log: > Added conditional guard 'if (CurLexer)' when using > SetCommentRetentionState(). > This is because the PTHLexer will not support this method. > Performance testing > on preprocessing Cocoa.h shows that this results in a negligible > performance > difference (less than 1%). > > I tried making Lexer::SetCommentRetentionState() an out-of-line > function (a > precursor to making it a virtual function in PreprocessorLexer) and > noticed a 1% > decrease in speed (it is called in a hot part of the Preprocessor).
I'd suggest a different approach. Just move ExtendedTokenMode up to PreprocessorLexer, and make SetCommentRetentionState a non-virtual method there. That way the PP Can just unconditionally call the method, and everything is happy. The tricky part is to write the doxygen comment for ExtendedTokenMode/SetCommentRetentionState to properly explain what they do on the generic PPLexer. The benefit of doing this is that the conditionals disappear. -Chris _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
