[llvm-dev] [PATCH] Add support for the 'unless' matcher in the dynamic layer.

Zac Hansen via llvm-dev llvm-dev at lists.llvm.org
Tue Jul 26 16:02:57 PDT 2016

Even if it still did add overhead, it seems perfectly reasonable, from a
user's perspective (namely mine), that if I introduce unnecessary narrowing
matchers to my chain that there may be a performance penalty.

The ability to do the following easily outweighs any performance issues for

anyOf (
/*    hasName("..."), */


though C++ not allowing trailing commas makes this not quite as great.

*However, without help, I would not be able to put forward a patch with
anything more than simply removing the minimums.*

Would this be acceptable or would someone be able to point me at what it
would take to do it the "smart way" in less time than it would take them to
make the change themselves?

On Tue, Jul 26, 2016 at 3:29 PM, Samuel Benzaquen <sbenza at google.com> wrote:

> One of the reasons we added the minimum was because these nodes added
> overhead to the matching that was not unnecessary when they only had a
> single node.
> On the current implementation we could actually get rid of the node
> completely for the one argument calls.
> I would be ok with removing the lower bound.
> On Tue, Jul 26, 2016 at 6:20 PM, Zac Hansen <xaxxon at gmail.com> wrote:
>> I was wondering if there is any objection to removing the 2-element
>> minimum on the eachOf, anyOf and allOf matchers.
>> It is frustrating when playing with matchers to have to edit significant
>> amounts of code to be able to temporarily go from 2 to 1 matcher inside an
>> any- or allOf matcher.
>> And overall it feels very "un-set-theory"-like.
>> The change was made here:
>> https://github.com/llvm-mirror/clang/commit/674e54c167eab0be7a54bca7082c07d2f1d0c8cc
>> Thank you and apologies if I sent this to the wrong lists/people.
>> --Zac
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160726/8b7f3b73/attachment.html>

More information about the llvm-dev mailing list