[clang] [Serialization] Load Specializations Lazily (PR #76774)
Chuanqi Xu via cfe-commits
cfe-commits at lists.llvm.org
Sun Feb 18 02:28:34 PST 2024
ChuanqiXu9 wrote:
> > But my point is that we can't land that if we don't understand what's going wrong without that patch.
>
> We understand that very well and it's described in https://reviews.llvm.org/D153003 as well as the surrounding discussions: because of the way that `ODRHash` works, template template arguments `A` and `B` will hash to different values, even if `using A = B`.
Yeah, so I tried to fix that in the following patches. And if that works, I expect that can fix internal errors in your workloads.
> However, for template specializations, we require them to hash to the same value (with some form of normalization) or we won't find nor load the right specializations. That's why I said that IMHO `ODRHash` is not the right tool for the job here, which follows directly from an old comment of yours: https://reviews.llvm.org/D153003#4427412
>
> > An important node here is that ODRHash is used to check the AST Nodes are keeping the same across compilations. There is gap to use ODRHash to check the semantical equality.
>
> (and IIRC that's the same direction that Richard was going)
https://github.com/llvm/llvm-project/pull/76774
More information about the cfe-commits
mailing list