Changing matchers to use non-const members and adding r-value overloads of matcher conversions enables move optimisations.
I don't have performance figures but I can say this knocked 120k from the clang-tidy binary(86k was from the .text section) on a Release with assertions build(x86_64-unknown-linux-gnu).
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
LGTM aside from a small nit.
| clang/include/clang/ASTMatchers/ASTMatchersInternal.h | ||
|---|---|---|
| 1564 | This change seems unintentional? | |
| clang/include/clang/ASTMatchers/ASTMatchersInternal.h | ||
|---|---|---|
| 1564 | I think it's a clang-format being a little eager, not sure though. | |
clang-format: please reformat the code
- PolymorphicMatcher(const ParamTypes &...Params) : Params(Params...) {} + PolymorphicMatcher(const ParamTypes &... Params) : Params(Params...) {}