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

Chuanqi Xu via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 29 00:17:29 PST 2024


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

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


More information about the cfe-commits mailing list