[cfe-commits] r59477 - /cfe/trunk/lib/Lex/PPDirectives.cpp
Ted Kremenek
kremenek at apple.com
Thu Nov 20 00:12:24 PST 2008
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.
More information about the cfe-commits
mailing list