On Nov 19, 2008, at 11:32 PM, Chris Lattner wrote: > 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
Sounds good. I'll look into doing this after the PTHLexer becomes more usuable. _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
