[clang] [Serialization] Load Specializations Lazily (PR #76774)
    Vassil Vassilev via cfe-commits 
    cfe-commits at lists.llvm.org
       
    Sun Feb 18 03:14:55 PST 2024
    
    
  
vgvassilev wrote:
Let's zoom out a little. The approach in D41416 shows that it is feasible to store *a* hash of the template arguments to delay eager deserializations. The ODR hash approach is a second order problem because we can swap it with something better once we need to. In order to make progress we have introduced [D153003](https://reviews.llvm.org/D153003) which allows our infrastructure to work. The way I see moving forward here is:
  * Base this PR on D41416 in the approach how we model the lazy deserialization of templates. That'd mean that we "just" need to replace `LazySpecializationInfo *LazySpecializations = nullptr;` with the on-disk hash table approach. That would probably require centralizing that logic somewhere in the ASTReader (the way this PR does) but with minimal changes wrt D41416.
  * Test the implementation on our infrastructure for correctness
  * Test the implementation on the Google infrastructure for scalability
  * Think on a better approach to replace odr hashing if we see more pathological problems.
 
https://github.com/llvm/llvm-project/pull/76774
    
    
More information about the cfe-commits
mailing list