ilya-biryukov added a comment.

The suggested approach looks promising. The difference seems to be within the 
noise levels on my machine:

  Before the change (baseline upstream revision):
    Time (mean ± σ):     159.1 ms ±   8.7 ms    [User: 138.3 ms, System: 20.6 
ms]
    Range (min … max):   150.4 ms … 196.2 ms    100 runs
  
  After (no callback specified):
    Time (mean ± σ):     160.4 ms ±   7.6 ms    [User: 138.5 ms, System: 21.7 
ms]
    Range (min … max):   151.0 ms … 191.5 ms    100 runs

I'm sending out a prototype I used for measures for review. The flag is 
currently set by the preprocessor, but I guess it would make more sense to do 
the following before landing this:

- flip the flag, i.e. instead of reporting whether the token is "new" (the 
common case), report whether it's "cached", i.e. coming from `CachedTokens` or 
from a non-macro-expansion token stream.
- set this flag only inside `CachingLex` and `TokenLexer`.

The revision also removes `IsNewToken` from `CachingLex` and sets the flag in 
the token instead.
Any other suggestions?


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