AaronBallman wrote:

Alas, I think this PR may be a non-starter due to performance: 
https://llvm-compile-time-tracker.com/?config=Overview&stat=wall-time&remote=AaronBallman:
```
C               56a3f3cd28      8.04s (+2.96%)  8.23s (+3.32%)  11.87s (+1.92%) 
        2.83s (+10.21%)         8.50s (+2.99%)  3.22s (+7.82%)  7.12s (+1.63%)  
2.43s (+5.91%)  580.64s (+0.44%)
```
+10% compile time overhead is painful. I believe the issue is with needing to 
look at token *names* (doing a string compare in a loop across a pile of tokens 
on every identifier declares). But the token kind we have is `identifier` and 
not one of the keywords, so we can't do the more trivial integer comparisons. 
Even if we could, I suspect this would have a performance hit just due to the 
number of identifiers.

I'm going to try checking whether the diagnostic is enabled before doing the 
comparisons to see if that improves things. The diagnostic is off by default 
and only enabled under `-Wc++-compat`, so some amount of performance hit is 
reasonable given the need to avoid C++ keywords in C code.

https://github.com/llvm/llvm-project/pull/137234
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to