jansvoboda11 added a comment.

In D124287#3476040 <https://reviews.llvm.org/D124287#3476040>, @vsapsai wrote:

> In D124287#3474369 <https://reviews.llvm.org/D124287#3474369>, @jansvoboda11 
> wrote:
>
>> This sounds reasonable to me. What use-cases does `ASTStructuralEquivalence` 
>> fit better than ODR hashes?
>
> I think the biggest advantage of `ASTStructuralEquivalence` is that it 
> doesn't affect memory consumption by Decls. But it makes repeated comparisons 
> more expensive.
>
> Another `ASTStructuralEquivalence` advantage is that it's easier to add new 
> checks. For example, comparing ivars is pretty trivial with 
> `ASTStructuralEquivalence` but with ODR hash we need to handle that ivar 
> types can be structs/unions, including anonymous and nested structs.
>
> Cannot say that for sure but I think `ASTStructuralEquivalence` is easier to 
> extend and to adopt for different purposes, while ODR hash seems to be more 
> invasive. But this argument is more hand-wavy.
>
> Most likely `ASTStructuralEquivalence` has other positive qualities but 
> that's what I was able to come up off the top of my head. And you can see 
> that in my decision-making `ASTStructuralEquivalence` doesn't look like a 
> compelling option.

Makes sense. If most `Decl` classes had the member variables that enable ODR 
hashing, would it make sense to keep structural equivalence logic around? That 
sounds a bit redundant to me.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D124287

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

Reply via email to