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

Vassil Vassilev via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 29 01:07:52 PST 2024


vgvassilev wrote:

> > The newest version of this patch still doesn't work correctly. Switching the new `LoadExternalSpecializationsLazily` to disabled by default (somehow the argument didn't work on its own) instead crashes, most of the cases involving `MultiOnDiskHashTable`. I suspect some kind of memory error maybe? Sorry to not be more helpful at the moment...
> 
> Thanks for testing it. It shows it is really complex. Maybe I am missing some points.
> 
> > How about taking a step at a time with this patch. Perhaps we should introduce the on-disk hash table infrastructure and always deserialize everything. Then we can verify that part works on our build infrastructure and then move on with the deferring the template loading. I believe that should be relatively easy to achieve with the current version of the patch.
> > Essentially I am proposing making `-fno-load-external-specializations-lazily` default so that we can test it without having to modify build infrastructure...
> 
> Good suggestion. It sounds good to me. Then we can test it and improve it step by step. I've made it. Now anything in the patch shouldn't be accessed without `-fload-external-specializations-lazily`.
> 
> Introducing a new flag will require a change in the document. I'll do that later after this get landed.

@hahnjo, could you test again?

https://github.com/llvm/llvm-project/pull/76774


More information about the cfe-commits mailing list