<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Sun, Nov 25, 2018 at 1:52 PM Aaron Ballman <<a href="mailto:aaron@aaronballman.com">aaron@aaronballman.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Sat, Nov 24, 2018 at 9:43 PM Alexander Kornienko via cfe-commits<br>
<<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>> wrote:<br>
><br>
> Author: alexfh<br>
> Date: Sat Nov 24 18:41:01 2018<br>
> New Revision: 347520<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=347520&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=347520&view=rev</a><br>
> Log:<br>
> A bit of AST matcher cleanup, NFC.<br>
><br>
> Removed the uses of the allOf() matcher inside node matchers that are implicit<br>
> allOf(). Replaced uses of allOf() with the explicit node matcher where it makes<br>
> matchers more readable. Replace anyOf(hasName(), hasName(), ...) with the more<br>
> efficient and readable hasAnyName().<br>
<br>
Would it make sense to have a check under the llvm module for this<br>
coding pattern?<br></blockquote><div><br></div><div>Probably yes, but I wouldn't be too optimistic about the positive impact of that check compared to the cost of creating and supporting it.</div><div><br></div><div>If someone has a large enough chunk of time they could devote to improving clang-tidy performance, there was an interesting idea about optimizing AST matchers at runtime. E.g. currently `unless(isInTemplateInstantiation())` matchers go up the ancestor chain, but a more efficient implementation could just skip traversal of template instantiations for the matchers that have the `unless(isInTemplateInstantiation())` constraint. To implement this, the matchers framework would need to analyze the matchers and rewrite them (instead of just passing control to them).</div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
~Aaron<br>
</blockquote></div></div>