sammccall marked 8 inline comments as done.
sammccall added a comment.

> rarely happens anyway

citation needed.

While this is true today, it seems fairly likely that async preambles is going 
to flip the dominant AST reuse from diagnostics -> read to read -> diagnostics.

This change would make the builds 20% faster for the cache misses on AST read 
(~30%), at the cost of rebuilding when diagnostics would hit (~0%).
If those probabilities flip, this becomes a really bad trade.

Let's wait a couple of weeks until we have data from production.



================
Comment at: clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp:796
       [](std::vector<Diag>) { ADD_FAILURE() << "Should not be called."; });
   S.runWithAST("touchAST", FooCpp, [](Expected<InputsAndAST> IA) {
     // Make sure the AST was actually built.
----------------
kadircet wrote:
> is it worth asserting here (or in a new test) that AST.diags() is empty, 
> whereas it is non-empty below ? (ofc, after introducing some diags to the 
> code)
I don't think we want to *guarantee* when they're present/absent with 
runWithAST, this is an implementation choice. Added a comment to make this 
contract explicit.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D81069



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

Reply via email to