<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62337>62337</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-tidy] Performance regression when enabling c++20
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
tiagomacarios
</td>
</tr>
</table>
<pre>
We are seeing some large performance regressions in clang-tidy when comparing C++17 and C++20. Some translation units go from 8 seconds to 6 minutes.
Profiling is pointing to clang-tidy.exe!clang::tooling::ExpandModularHeadersPPCallbacks::parseToLocation as the culprit. Which was added with https://reviews.llvm.org/D59528.
Is there a way to make that machinery an opt-in/out?
@alexfh @gribozavr
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsksFupDgQhp_GXEqNoICGPnBI0ot2pV2ppR0p58IuwBNjI9uk0_P0I-jJJJHmAi7bf1X9ro9C0KNlbkX1KKpzQmucnG-jptHNJMlrF5LeqVv7zECeITBrO0JwM4MhPzIs7AfnZ7KSwfPoOQTtbABtQRqy4yFqdYPrxBakmxfym_5J4KPAx7wGsuo9wiyF_7fE0ZMNhqJ2FlarY4DRweDdDA0Els6qANHBEWZt18ghFdlZZA_378W7QZutiA6wOG3jto7uUzcpv7HAfN8QxYMoHqJzm-Qe_PW2kFX_ObUa8n8zKfbhcnkiY3qSL-F-aSEf-Jv718l7nxQgTgxyNYvXMYXnScsJrhSAlGIFVx0nmGJcdj12AjvPr5qvITXmdU6dHwV25-pUYfPFzz97Ys9AcKXbZmSmF4Y4UYSZ5KQt-xuQBbfEg7YCO7dGUXSfc4gyI8NvwwSizEave_eDXj0kqi3UqThRwm1-bLCosarzZGpV0_OprsumHhqFRXPkcqjyfMhOiHWdYaJbzLDISiwxL7HK01PGODS1VFktsT7Vosx4Jm1-m0t0CCu3RyyKOjHUswk7dIiWr7AfCsSNQd9umkO_jkGUmdEhfjxREnU0O60f0xTVGS5_hPBOHVvqdx7kO2bJ6k37dRajjtPap9LNArut2q_fYfHuO8sosNt7DAK73cPPAAAA___8sg5V">