[clang] [C++20] [Modules] [Itanium ABI] Generate the vtable in the module unit of dynamic classes (PR #75912)
David Blaikie via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 28 12:57:21 PDT 2024
================
@@ -1483,10 +1483,15 @@ void ASTDeclWriter::VisitCXXRecordDecl(CXXRecordDecl *D) {
if (D->isThisDeclarationADefinition())
Record.AddCXXDefinitionData(D);
- // Store (what we currently believe to be) the key function to avoid
- // deserializing every method so we can compute it.
- if (D->isCompleteDefinition())
- Record.AddDeclRef(Context.getCurrentKeyFunction(D));
+ if (D->isCompleteDefinition()) {
+ if (D->getOwningModule() && D->getOwningModule()->isInterfaceOrPartition())
+ Writer.ModularCodegenDecls.push_back(Writer.GetDeclRef(D));
+ else {
+ // Store (what we currently believe to be) the key function to avoid
----------------
dwblaikie wrote:
This seems like a serialization optimization that'd be separate/good to go in its own PR (make it easier to see what the change is, how it's tested, etc) separate from this one?
https://github.com/llvm/llvm-project/pull/75912
More information about the cfe-commits
mailing list