rsmith added a comment.

In D59885#1496734 <https://reviews.llvm.org/D59885#1496734>, @ilya-biryukov 
wrote:

> Overall, the performance cost in empty-callback case seems to be lower than 
> `5%`. This is significant, but hopefully acceptable.


5% is a lot to pay for something that we won't be using at all during normal 
preprocessing / compilation. But I think we can simplify this a bit, and that 
might help.



================
Comment at: clang/lib/Lex/PPCaching.cpp:64
   ExitCachingLexMode();
-  Lex(Result);
+  Lex(Result, Report);
 
----------------
This change seems redundant: `LexLevel` is always `1` here, so this token would 
never be reported anyway. And with that gone I think you can remove the 
`Report` parameter entirely.


================
Comment at: clang/lib/Lex/Preprocessor.cpp:892
   do {
     switch (CurLexerKind) {
     case CLK_Lexer:
----------------
Doesn't this always set `Report` to the same value as `IsNewToken`? (The only 
case we set `Report` to `false` is when we call `CachingLex` and it sets 
`IsNewToken` to `false`, and `CachingLex` can't be recursively called twice, so 
its recursive call to `Lex` can't set `Report` to `false`..)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59885/new/

https://reviews.llvm.org/D59885



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to