[clang] [Serialization] Load Specializations Lazily (PR #76774)

Jonas Hahnfeld via cfe-commits cfe-commits at lists.llvm.org
Sun Feb 18 01:58:26 PST 2024


hahnjo 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`. 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