xazax.hun accepted this revision.
xazax.hun added a comment.

Thanks! Did you have a chance whether this makes a difference in real world 
scenarios? I'm mostly curious because I do not have a good mental model of how 
the matchers are implemented, specifically what optimizations are in place, so 
I don't really know how much of an impact can caching make :)

Once the rest of the comments are resolved this looks good to me.

In D122121#3396149 <https://reviews.llvm.org/D122121#3396149>, @ymandel wrote:

> In D122121#3396096 <https://reviews.llvm.org/D122121#3396096>, @sgatev wrote:
>
>> I was thinking that maybe we can split the problem in two:
>>
>> 1. duplicated work across `matchDynamic` calls, and
>> 2. duplicated work within a single `matchDynamic` call.
>>
>> This patch addresses 1. as I see it as responsibility of `MatchSwitch`. Your 
>> comment seems to be about 2., if I'm reading it correctly.
>
> Right. This division makes sense, particularly the point about 
> responsibility. Point 2 is very much independent of `MatchSwitch`. But, I 
> think matching the `optional` type is about both really in that every time we 
> call the matcher we'll be checking the optional type, even if we only check 
> it once *within* a single match. Still, fixing it doen't belong in 
> `MatchSwitch`.

+1, I like how the problem was split. I also agree that `MatchSwitch` might not 
be the best place to fix #2 as a more broad fix would potentially benefit other 
parts of Clang, like Tidy.  But speaking of other parts of Clang, I wonder 
whether `MatchSwitch` is something that could be part of the ASTMatcher 
library. Some people might find it useful for implementing tools other than 
flow sensitive checks. Although, I do not have a strong preference, I'm 
completely fine leaving it where it currently is.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D122121/new/

https://reviews.llvm.org/D122121

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to