Auto-generate files after cl/584925599
diff --git a/src/google/protobuf/any.pb.cc b/src/google/protobuf/any.pb.cc
index d608ece..ae66b38 100644
--- a/src/google/protobuf/any.pb.cc
+++ b/src/google/protobuf/any.pb.cc
@@ -91,24 +91,36 @@
     "anypb\242\002\003GPB\252\002\036Google.Protobuf.WellKnownT"
     "ypesb\006proto3"
 };
-PROTOBUF_CONSTINIT
-PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ::_pbi::DescriptorTable
-    descriptor_table_google_2fprotobuf_2fany_2eproto = {
-        false,
-        212,
-        descriptor_table_protodef_google_2fprotobuf_2fany_2eproto,
-        "google/protobuf/any.proto",
-        nullptr,
-        0,
-        1,
-        schemas,
-        file_default_instances,
-        TableStruct_google_2fprotobuf_2fany_2eproto::offsets,
-        file_level_metadata_google_2fprotobuf_2fany_2eproto,
-        file_level_enum_descriptors_google_2fprotobuf_2fany_2eproto,
-        file_level_service_descriptors_google_2fprotobuf_2fany_2eproto,
+static ::absl::once_flag descriptor_table_google_2fprotobuf_2fany_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_google_2fprotobuf_2fany_2eproto = {
+    false,
+    false,
+    212,
+    descriptor_table_protodef_google_2fprotobuf_2fany_2eproto,
+    "google/protobuf/any.proto",
+    &descriptor_table_google_2fprotobuf_2fany_2eproto_once,
+    nullptr,
+    0,
+    1,
+    schemas,
+    file_default_instances,
+    TableStruct_google_2fprotobuf_2fany_2eproto::offsets,
+    file_level_metadata_google_2fprotobuf_2fany_2eproto,
+    file_level_enum_descriptors_google_2fprotobuf_2fany_2eproto,
+    file_level_service_descriptors_google_2fprotobuf_2fany_2eproto,
 };
 
+// This function exists to be marked as weak.
+// It can significantly speed up compilation by breaking up LLVM's SCC
+// in the .pb.cc translation units. Large translation units see a
+// reduction of more than 35% of walltime for optimized builds. Without
+// the weak attribute all the messages in the file, including all the
+// vtables and everything they use become part of the same SCC through
+// a cycle like:
+// GetMetadata -> descriptor table -> default instances ->
+//   vtables -> GetMetadata
+// By adding a weak function here we break the connection from the
+// individual vtables back into the descriptor table.
 PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_google_2fprotobuf_2fany_2eproto_getter() {
   return &descriptor_table_google_2fprotobuf_2fany_2eproto;
 }
@@ -349,7 +361,7 @@
 
 ::google::protobuf::Metadata Any::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fany_2eproto_getter, &descriptor_table_google_2fprotobuf_2fany_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fany_2eproto_getter, &descriptor_table_google_2fprotobuf_2fany_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fany_2eproto[0]);
 }
 // @@protoc_insertion_point(namespace_scope)
diff --git a/src/google/protobuf/api.pb.cc b/src/google/protobuf/api.pb.cc
index fffe907..d783b73 100644
--- a/src/google/protobuf/api.pb.cc
+++ b/src/google/protobuf/api.pb.cc
@@ -205,24 +205,36 @@
         &::descriptor_table_google_2fprotobuf_2fsource_5fcontext_2eproto,
         &::descriptor_table_google_2fprotobuf_2ftype_2eproto,
 };
-PROTOBUF_CONSTINIT
-PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ::_pbi::DescriptorTable
-    descriptor_table_google_2fprotobuf_2fapi_2eproto = {
-        false,
-        751,
-        descriptor_table_protodef_google_2fprotobuf_2fapi_2eproto,
-        "google/protobuf/api.proto",
-        descriptor_table_google_2fprotobuf_2fapi_2eproto_deps,
-        2,
-        3,
-        schemas,
-        file_default_instances,
-        TableStruct_google_2fprotobuf_2fapi_2eproto::offsets,
-        file_level_metadata_google_2fprotobuf_2fapi_2eproto,
-        file_level_enum_descriptors_google_2fprotobuf_2fapi_2eproto,
-        file_level_service_descriptors_google_2fprotobuf_2fapi_2eproto,
+static ::absl::once_flag descriptor_table_google_2fprotobuf_2fapi_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_google_2fprotobuf_2fapi_2eproto = {
+    false,
+    false,
+    751,
+    descriptor_table_protodef_google_2fprotobuf_2fapi_2eproto,
+    "google/protobuf/api.proto",
+    &descriptor_table_google_2fprotobuf_2fapi_2eproto_once,
+    descriptor_table_google_2fprotobuf_2fapi_2eproto_deps,
+    2,
+    3,
+    schemas,
+    file_default_instances,
+    TableStruct_google_2fprotobuf_2fapi_2eproto::offsets,
+    file_level_metadata_google_2fprotobuf_2fapi_2eproto,
+    file_level_enum_descriptors_google_2fprotobuf_2fapi_2eproto,
+    file_level_service_descriptors_google_2fprotobuf_2fapi_2eproto,
 };
 
+// This function exists to be marked as weak.
+// It can significantly speed up compilation by breaking up LLVM's SCC
+// in the .pb.cc translation units. Large translation units see a
+// reduction of more than 35% of walltime for optimized builds. Without
+// the weak attribute all the messages in the file, including all the
+// vtables and everything they use become part of the same SCC through
+// a cycle like:
+// GetMetadata -> descriptor table -> default instances ->
+//   vtables -> GetMetadata
+// By adding a weak function here we break the connection from the
+// individual vtables back into the descriptor table.
 PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_google_2fprotobuf_2fapi_2eproto_getter() {
   return &descriptor_table_google_2fprotobuf_2fapi_2eproto;
 }
@@ -626,7 +638,7 @@
 
 ::google::protobuf::Metadata Api::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fapi_2eproto_getter, &descriptor_table_google_2fprotobuf_2fapi_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fapi_2eproto_getter, &descriptor_table_google_2fprotobuf_2fapi_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fapi_2eproto[0]);
 }
 // ===================================================================
@@ -995,7 +1007,7 @@
 
 ::google::protobuf::Metadata Method::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fapi_2eproto_getter, &descriptor_table_google_2fprotobuf_2fapi_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fapi_2eproto_getter, &descriptor_table_google_2fprotobuf_2fapi_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fapi_2eproto[1]);
 }
 // ===================================================================
@@ -1218,7 +1230,7 @@
 
 ::google::protobuf::Metadata Mixin::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fapi_2eproto_getter, &descriptor_table_google_2fprotobuf_2fapi_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fapi_2eproto_getter, &descriptor_table_google_2fprotobuf_2fapi_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fapi_2eproto[2]);
 }
 // @@protoc_insertion_point(namespace_scope)
diff --git a/src/google/protobuf/duration.pb.cc b/src/google/protobuf/duration.pb.cc
index ea89d95..5a862c5 100644
--- a/src/google/protobuf/duration.pb.cc
+++ b/src/google/protobuf/duration.pb.cc
@@ -82,24 +82,36 @@
     "uf/types/known/durationpb\370\001\001\242\002\003GPB\252\002\036Goo"
     "gle.Protobuf.WellKnownTypesb\006proto3"
 };
-PROTOBUF_CONSTINIT
-PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ::_pbi::DescriptorTable
-    descriptor_table_google_2fprotobuf_2fduration_2eproto = {
-        false,
-        235,
-        descriptor_table_protodef_google_2fprotobuf_2fduration_2eproto,
-        "google/protobuf/duration.proto",
-        nullptr,
-        0,
-        1,
-        schemas,
-        file_default_instances,
-        TableStruct_google_2fprotobuf_2fduration_2eproto::offsets,
-        file_level_metadata_google_2fprotobuf_2fduration_2eproto,
-        file_level_enum_descriptors_google_2fprotobuf_2fduration_2eproto,
-        file_level_service_descriptors_google_2fprotobuf_2fduration_2eproto,
+static ::absl::once_flag descriptor_table_google_2fprotobuf_2fduration_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_google_2fprotobuf_2fduration_2eproto = {
+    false,
+    false,
+    235,
+    descriptor_table_protodef_google_2fprotobuf_2fduration_2eproto,
+    "google/protobuf/duration.proto",
+    &descriptor_table_google_2fprotobuf_2fduration_2eproto_once,
+    nullptr,
+    0,
+    1,
+    schemas,
+    file_default_instances,
+    TableStruct_google_2fprotobuf_2fduration_2eproto::offsets,
+    file_level_metadata_google_2fprotobuf_2fduration_2eproto,
+    file_level_enum_descriptors_google_2fprotobuf_2fduration_2eproto,
+    file_level_service_descriptors_google_2fprotobuf_2fduration_2eproto,
 };
 
+// This function exists to be marked as weak.
+// It can significantly speed up compilation by breaking up LLVM's SCC
+// in the .pb.cc translation units. Large translation units see a
+// reduction of more than 35% of walltime for optimized builds. Without
+// the weak attribute all the messages in the file, including all the
+// vtables and everything they use become part of the same SCC through
+// a cycle like:
+// GetMetadata -> descriptor table -> default instances ->
+//   vtables -> GetMetadata
+// By adding a weak function here we break the connection from the
+// individual vtables back into the descriptor table.
 PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_google_2fprotobuf_2fduration_2eproto_getter() {
   return &descriptor_table_google_2fprotobuf_2fduration_2eproto;
 }
@@ -313,7 +325,7 @@
 
 ::google::protobuf::Metadata Duration::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fduration_2eproto_getter, &descriptor_table_google_2fprotobuf_2fduration_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fduration_2eproto_getter, &descriptor_table_google_2fprotobuf_2fduration_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fduration_2eproto[0]);
 }
 // @@protoc_insertion_point(namespace_scope)
diff --git a/src/google/protobuf/empty.pb.cc b/src/google/protobuf/empty.pb.cc
index 75e32b9..cc9d9bf 100644
--- a/src/google/protobuf/empty.pb.cc
+++ b/src/google/protobuf/empty.pb.cc
@@ -71,24 +71,36 @@
     "/types/known/emptypb\370\001\001\242\002\003GPB\252\002\036Google.P"
     "rotobuf.WellKnownTypesb\006proto3"
 };
-PROTOBUF_CONSTINIT
-PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ::_pbi::DescriptorTable
-    descriptor_table_google_2fprotobuf_2fempty_2eproto = {
-        false,
-        190,
-        descriptor_table_protodef_google_2fprotobuf_2fempty_2eproto,
-        "google/protobuf/empty.proto",
-        nullptr,
-        0,
-        1,
-        schemas,
-        file_default_instances,
-        TableStruct_google_2fprotobuf_2fempty_2eproto::offsets,
-        file_level_metadata_google_2fprotobuf_2fempty_2eproto,
-        file_level_enum_descriptors_google_2fprotobuf_2fempty_2eproto,
-        file_level_service_descriptors_google_2fprotobuf_2fempty_2eproto,
+static ::absl::once_flag descriptor_table_google_2fprotobuf_2fempty_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_google_2fprotobuf_2fempty_2eproto = {
+    false,
+    false,
+    190,
+    descriptor_table_protodef_google_2fprotobuf_2fempty_2eproto,
+    "google/protobuf/empty.proto",
+    &descriptor_table_google_2fprotobuf_2fempty_2eproto_once,
+    nullptr,
+    0,
+    1,
+    schemas,
+    file_default_instances,
+    TableStruct_google_2fprotobuf_2fempty_2eproto::offsets,
+    file_level_metadata_google_2fprotobuf_2fempty_2eproto,
+    file_level_enum_descriptors_google_2fprotobuf_2fempty_2eproto,
+    file_level_service_descriptors_google_2fprotobuf_2fempty_2eproto,
 };
 
+// This function exists to be marked as weak.
+// It can significantly speed up compilation by breaking up LLVM's SCC
+// in the .pb.cc translation units. Large translation units see a
+// reduction of more than 35% of walltime for optimized builds. Without
+// the weak attribute all the messages in the file, including all the
+// vtables and everything they use become part of the same SCC through
+// a cycle like:
+// GetMetadata -> descriptor table -> default instances ->
+//   vtables -> GetMetadata
+// By adding a weak function here we break the connection from the
+// individual vtables back into the descriptor table.
 PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_google_2fprotobuf_2fempty_2eproto_getter() {
   return &descriptor_table_google_2fprotobuf_2fempty_2eproto;
 }
@@ -129,7 +141,7 @@
 
 ::google::protobuf::Metadata Empty::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fempty_2eproto_getter, &descriptor_table_google_2fprotobuf_2fempty_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fempty_2eproto_getter, &descriptor_table_google_2fprotobuf_2fempty_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fempty_2eproto[0]);
 }
 // @@protoc_insertion_point(namespace_scope)
diff --git a/src/google/protobuf/field_mask.pb.cc b/src/google/protobuf/field_mask.pb.cc
index e15a5ed..571b59e 100644
--- a/src/google/protobuf/field_mask.pb.cc
+++ b/src/google/protobuf/field_mask.pb.cc
@@ -80,24 +80,36 @@
     "n/fieldmaskpb\370\001\001\242\002\003GPB\252\002\036Google.Protobuf"
     ".WellKnownTypesb\006proto3"
 };
-PROTOBUF_CONSTINIT
-PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ::_pbi::DescriptorTable
-    descriptor_table_google_2fprotobuf_2ffield_5fmask_2eproto = {
-        false,
-        223,
-        descriptor_table_protodef_google_2fprotobuf_2ffield_5fmask_2eproto,
-        "google/protobuf/field_mask.proto",
-        nullptr,
-        0,
-        1,
-        schemas,
-        file_default_instances,
-        TableStruct_google_2fprotobuf_2ffield_5fmask_2eproto::offsets,
-        file_level_metadata_google_2fprotobuf_2ffield_5fmask_2eproto,
-        file_level_enum_descriptors_google_2fprotobuf_2ffield_5fmask_2eproto,
-        file_level_service_descriptors_google_2fprotobuf_2ffield_5fmask_2eproto,
+static ::absl::once_flag descriptor_table_google_2fprotobuf_2ffield_5fmask_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_google_2fprotobuf_2ffield_5fmask_2eproto = {
+    false,
+    false,
+    223,
+    descriptor_table_protodef_google_2fprotobuf_2ffield_5fmask_2eproto,
+    "google/protobuf/field_mask.proto",
+    &descriptor_table_google_2fprotobuf_2ffield_5fmask_2eproto_once,
+    nullptr,
+    0,
+    1,
+    schemas,
+    file_default_instances,
+    TableStruct_google_2fprotobuf_2ffield_5fmask_2eproto::offsets,
+    file_level_metadata_google_2fprotobuf_2ffield_5fmask_2eproto,
+    file_level_enum_descriptors_google_2fprotobuf_2ffield_5fmask_2eproto,
+    file_level_service_descriptors_google_2fprotobuf_2ffield_5fmask_2eproto,
 };
 
+// This function exists to be marked as weak.
+// It can significantly speed up compilation by breaking up LLVM's SCC
+// in the .pb.cc translation units. Large translation units see a
+// reduction of more than 35% of walltime for optimized builds. Without
+// the weak attribute all the messages in the file, including all the
+// vtables and everything they use become part of the same SCC through
+// a cycle like:
+// GetMetadata -> descriptor table -> default instances ->
+//   vtables -> GetMetadata
+// By adding a weak function here we break the connection from the
+// individual vtables back into the descriptor table.
 PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_google_2fprotobuf_2ffield_5fmask_2eproto_getter() {
   return &descriptor_table_google_2fprotobuf_2ffield_5fmask_2eproto;
 }
@@ -292,7 +304,7 @@
 
 ::google::protobuf::Metadata FieldMask::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2ffield_5fmask_2eproto_getter, &descriptor_table_google_2fprotobuf_2ffield_5fmask_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2ffield_5fmask_2eproto_getter, &descriptor_table_google_2fprotobuf_2ffield_5fmask_2eproto_once,
       file_level_metadata_google_2fprotobuf_2ffield_5fmask_2eproto[0]);
 }
 // @@protoc_insertion_point(namespace_scope)
diff --git a/src/google/protobuf/source_context.pb.cc b/src/google/protobuf/source_context.pb.cc
index 609ad0b..a9b8fc4 100644
--- a/src/google/protobuf/source_context.pb.cc
+++ b/src/google/protobuf/source_context.pb.cc
@@ -82,24 +82,36 @@
     "tobuf/types/known/sourcecontextpb\242\002\003GPB\252"
     "\002\036Google.Protobuf.WellKnownTypesb\006proto3"
 };
-PROTOBUF_CONSTINIT
-PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ::_pbi::DescriptorTable
-    descriptor_table_google_2fprotobuf_2fsource_5fcontext_2eproto = {
-        false,
-        240,
-        descriptor_table_protodef_google_2fprotobuf_2fsource_5fcontext_2eproto,
-        "google/protobuf/source_context.proto",
-        nullptr,
-        0,
-        1,
-        schemas,
-        file_default_instances,
-        TableStruct_google_2fprotobuf_2fsource_5fcontext_2eproto::offsets,
-        file_level_metadata_google_2fprotobuf_2fsource_5fcontext_2eproto,
-        file_level_enum_descriptors_google_2fprotobuf_2fsource_5fcontext_2eproto,
-        file_level_service_descriptors_google_2fprotobuf_2fsource_5fcontext_2eproto,
+static ::absl::once_flag descriptor_table_google_2fprotobuf_2fsource_5fcontext_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_google_2fprotobuf_2fsource_5fcontext_2eproto = {
+    false,
+    false,
+    240,
+    descriptor_table_protodef_google_2fprotobuf_2fsource_5fcontext_2eproto,
+    "google/protobuf/source_context.proto",
+    &descriptor_table_google_2fprotobuf_2fsource_5fcontext_2eproto_once,
+    nullptr,
+    0,
+    1,
+    schemas,
+    file_default_instances,
+    TableStruct_google_2fprotobuf_2fsource_5fcontext_2eproto::offsets,
+    file_level_metadata_google_2fprotobuf_2fsource_5fcontext_2eproto,
+    file_level_enum_descriptors_google_2fprotobuf_2fsource_5fcontext_2eproto,
+    file_level_service_descriptors_google_2fprotobuf_2fsource_5fcontext_2eproto,
 };
 
+// This function exists to be marked as weak.
+// It can significantly speed up compilation by breaking up LLVM's SCC
+// in the .pb.cc translation units. Large translation units see a
+// reduction of more than 35% of walltime for optimized builds. Without
+// the weak attribute all the messages in the file, including all the
+// vtables and everything they use become part of the same SCC through
+// a cycle like:
+// GetMetadata -> descriptor table -> default instances ->
+//   vtables -> GetMetadata
+// By adding a weak function here we break the connection from the
+// individual vtables back into the descriptor table.
 PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_google_2fprotobuf_2fsource_5fcontext_2eproto_getter() {
   return &descriptor_table_google_2fprotobuf_2fsource_5fcontext_2eproto;
 }
@@ -299,7 +311,7 @@
 
 ::google::protobuf::Metadata SourceContext::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fsource_5fcontext_2eproto_getter, &descriptor_table_google_2fprotobuf_2fsource_5fcontext_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fsource_5fcontext_2eproto_getter, &descriptor_table_google_2fprotobuf_2fsource_5fcontext_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fsource_5fcontext_2eproto[0]);
 }
 // @@protoc_insertion_point(namespace_scope)
diff --git a/src/google/protobuf/struct.pb.cc b/src/google/protobuf/struct.pb.cc
index 2794d7d..7722918 100644
--- a/src/google/protobuf/struct.pb.cc
+++ b/src/google/protobuf/struct.pb.cc
@@ -182,24 +182,36 @@
     "rotobuf/types/known/structpb\370\001\001\242\002\003GPB\252\002\036"
     "Google.Protobuf.WellKnownTypesb\006proto3"
 };
-PROTOBUF_CONSTINIT
-PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ::_pbi::DescriptorTable
-    descriptor_table_google_2fprotobuf_2fstruct_2eproto = {
-        false,
-        638,
-        descriptor_table_protodef_google_2fprotobuf_2fstruct_2eproto,
-        "google/protobuf/struct.proto",
-        nullptr,
-        0,
-        4,
-        schemas,
-        file_default_instances,
-        TableStruct_google_2fprotobuf_2fstruct_2eproto::offsets,
-        file_level_metadata_google_2fprotobuf_2fstruct_2eproto,
-        file_level_enum_descriptors_google_2fprotobuf_2fstruct_2eproto,
-        file_level_service_descriptors_google_2fprotobuf_2fstruct_2eproto,
+static ::absl::once_flag descriptor_table_google_2fprotobuf_2fstruct_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_google_2fprotobuf_2fstruct_2eproto = {
+    false,
+    false,
+    638,
+    descriptor_table_protodef_google_2fprotobuf_2fstruct_2eproto,
+    "google/protobuf/struct.proto",
+    &descriptor_table_google_2fprotobuf_2fstruct_2eproto_once,
+    nullptr,
+    0,
+    4,
+    schemas,
+    file_default_instances,
+    TableStruct_google_2fprotobuf_2fstruct_2eproto::offsets,
+    file_level_metadata_google_2fprotobuf_2fstruct_2eproto,
+    file_level_enum_descriptors_google_2fprotobuf_2fstruct_2eproto,
+    file_level_service_descriptors_google_2fprotobuf_2fstruct_2eproto,
 };
 
+// This function exists to be marked as weak.
+// It can significantly speed up compilation by breaking up LLVM's SCC
+// in the .pb.cc translation units. Large translation units see a
+// reduction of more than 35% of walltime for optimized builds. Without
+// the weak attribute all the messages in the file, including all the
+// vtables and everything they use become part of the same SCC through
+// a cycle like:
+// GetMetadata -> descriptor table -> default instances ->
+//   vtables -> GetMetadata
+// By adding a weak function here we break the connection from the
+// individual vtables back into the descriptor table.
 PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_google_2fprotobuf_2fstruct_2eproto_getter() {
   return &descriptor_table_google_2fprotobuf_2fstruct_2eproto;
 }
@@ -224,7 +236,7 @@
     : SuperType(arena) {}
 ::google::protobuf::Metadata Struct_FieldsEntry_DoNotUse::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fstruct_2eproto_getter, &descriptor_table_google_2fprotobuf_2fstruct_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fstruct_2eproto_getter, &descriptor_table_google_2fprotobuf_2fstruct_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fstruct_2eproto[0]);
 }
 // ===================================================================
@@ -435,7 +447,7 @@
 
 ::google::protobuf::Metadata Struct::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fstruct_2eproto_getter, &descriptor_table_google_2fprotobuf_2fstruct_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fstruct_2eproto_getter, &descriptor_table_google_2fprotobuf_2fstruct_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fstruct_2eproto[1]);
 }
 // ===================================================================
@@ -828,7 +840,7 @@
 
 ::google::protobuf::Metadata Value::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fstruct_2eproto_getter, &descriptor_table_google_2fprotobuf_2fstruct_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fstruct_2eproto_getter, &descriptor_table_google_2fprotobuf_2fstruct_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fstruct_2eproto[2]);
 }
 // ===================================================================
@@ -1015,7 +1027,7 @@
 
 ::google::protobuf::Metadata ListValue::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fstruct_2eproto_getter, &descriptor_table_google_2fprotobuf_2fstruct_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fstruct_2eproto_getter, &descriptor_table_google_2fprotobuf_2fstruct_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fstruct_2eproto[3]);
 }
 // @@protoc_insertion_point(namespace_scope)
diff --git a/src/google/protobuf/timestamp.pb.cc b/src/google/protobuf/timestamp.pb.cc
index 77cb41a..24fe5a7 100644
--- a/src/google/protobuf/timestamp.pb.cc
+++ b/src/google/protobuf/timestamp.pb.cc
@@ -82,24 +82,36 @@
     "tobuf/types/known/timestamppb\370\001\001\242\002\003GPB\252\002"
     "\036Google.Protobuf.WellKnownTypesb\006proto3"
 };
-PROTOBUF_CONSTINIT
-PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ::_pbi::DescriptorTable
-    descriptor_table_google_2fprotobuf_2ftimestamp_2eproto = {
-        false,
-        239,
-        descriptor_table_protodef_google_2fprotobuf_2ftimestamp_2eproto,
-        "google/protobuf/timestamp.proto",
-        nullptr,
-        0,
-        1,
-        schemas,
-        file_default_instances,
-        TableStruct_google_2fprotobuf_2ftimestamp_2eproto::offsets,
-        file_level_metadata_google_2fprotobuf_2ftimestamp_2eproto,
-        file_level_enum_descriptors_google_2fprotobuf_2ftimestamp_2eproto,
-        file_level_service_descriptors_google_2fprotobuf_2ftimestamp_2eproto,
+static ::absl::once_flag descriptor_table_google_2fprotobuf_2ftimestamp_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_google_2fprotobuf_2ftimestamp_2eproto = {
+    false,
+    false,
+    239,
+    descriptor_table_protodef_google_2fprotobuf_2ftimestamp_2eproto,
+    "google/protobuf/timestamp.proto",
+    &descriptor_table_google_2fprotobuf_2ftimestamp_2eproto_once,
+    nullptr,
+    0,
+    1,
+    schemas,
+    file_default_instances,
+    TableStruct_google_2fprotobuf_2ftimestamp_2eproto::offsets,
+    file_level_metadata_google_2fprotobuf_2ftimestamp_2eproto,
+    file_level_enum_descriptors_google_2fprotobuf_2ftimestamp_2eproto,
+    file_level_service_descriptors_google_2fprotobuf_2ftimestamp_2eproto,
 };
 
+// This function exists to be marked as weak.
+// It can significantly speed up compilation by breaking up LLVM's SCC
+// in the .pb.cc translation units. Large translation units see a
+// reduction of more than 35% of walltime for optimized builds. Without
+// the weak attribute all the messages in the file, including all the
+// vtables and everything they use become part of the same SCC through
+// a cycle like:
+// GetMetadata -> descriptor table -> default instances ->
+//   vtables -> GetMetadata
+// By adding a weak function here we break the connection from the
+// individual vtables back into the descriptor table.
 PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_google_2fprotobuf_2ftimestamp_2eproto_getter() {
   return &descriptor_table_google_2fprotobuf_2ftimestamp_2eproto;
 }
@@ -313,7 +325,7 @@
 
 ::google::protobuf::Metadata Timestamp::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2ftimestamp_2eproto_getter, &descriptor_table_google_2fprotobuf_2ftimestamp_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2ftimestamp_2eproto_getter, &descriptor_table_google_2fprotobuf_2ftimestamp_2eproto_once,
       file_level_metadata_google_2fprotobuf_2ftimestamp_2eproto[0]);
 }
 // @@protoc_insertion_point(namespace_scope)
diff --git a/src/google/protobuf/type.pb.cc b/src/google/protobuf/type.pb.cc
index 38d61a6..336f7b6 100644
--- a/src/google/protobuf/type.pb.cc
+++ b/src/google/protobuf/type.pb.cc
@@ -321,24 +321,36 @@
         &::descriptor_table_google_2fprotobuf_2fany_2eproto,
         &::descriptor_table_google_2fprotobuf_2fsource_5fcontext_2eproto,
 };
-PROTOBUF_CONSTINIT
-PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ::_pbi::DescriptorTable
-    descriptor_table_google_2fprotobuf_2ftype_2eproto = {
-        false,
-        1647,
-        descriptor_table_protodef_google_2fprotobuf_2ftype_2eproto,
-        "google/protobuf/type.proto",
-        descriptor_table_google_2fprotobuf_2ftype_2eproto_deps,
-        2,
-        5,
-        schemas,
-        file_default_instances,
-        TableStruct_google_2fprotobuf_2ftype_2eproto::offsets,
-        file_level_metadata_google_2fprotobuf_2ftype_2eproto,
-        file_level_enum_descriptors_google_2fprotobuf_2ftype_2eproto,
-        file_level_service_descriptors_google_2fprotobuf_2ftype_2eproto,
+static ::absl::once_flag descriptor_table_google_2fprotobuf_2ftype_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_google_2fprotobuf_2ftype_2eproto = {
+    false,
+    false,
+    1647,
+    descriptor_table_protodef_google_2fprotobuf_2ftype_2eproto,
+    "google/protobuf/type.proto",
+    &descriptor_table_google_2fprotobuf_2ftype_2eproto_once,
+    descriptor_table_google_2fprotobuf_2ftype_2eproto_deps,
+    2,
+    5,
+    schemas,
+    file_default_instances,
+    TableStruct_google_2fprotobuf_2ftype_2eproto::offsets,
+    file_level_metadata_google_2fprotobuf_2ftype_2eproto,
+    file_level_enum_descriptors_google_2fprotobuf_2ftype_2eproto,
+    file_level_service_descriptors_google_2fprotobuf_2ftype_2eproto,
 };
 
+// This function exists to be marked as weak.
+// It can significantly speed up compilation by breaking up LLVM's SCC
+// in the .pb.cc translation units. Large translation units see a
+// reduction of more than 35% of walltime for optimized builds. Without
+// the weak attribute all the messages in the file, including all the
+// vtables and everything they use become part of the same SCC through
+// a cycle like:
+// GetMetadata -> descriptor table -> default instances ->
+//   vtables -> GetMetadata
+// By adding a weak function here we break the connection from the
+// individual vtables back into the descriptor table.
 PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_google_2fprotobuf_2ftype_2eproto_getter() {
   return &descriptor_table_google_2fprotobuf_2ftype_2eproto;
 }
@@ -805,7 +817,7 @@
 
 ::google::protobuf::Metadata Type::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2ftype_2eproto_getter, &descriptor_table_google_2fprotobuf_2ftype_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2ftype_2eproto_getter, &descriptor_table_google_2fprotobuf_2ftype_2eproto_once,
       file_level_metadata_google_2fprotobuf_2ftype_2eproto[0]);
 }
 // ===================================================================
@@ -1249,7 +1261,7 @@
 
 ::google::protobuf::Metadata Field::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2ftype_2eproto_getter, &descriptor_table_google_2fprotobuf_2ftype_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2ftype_2eproto_getter, &descriptor_table_google_2fprotobuf_2ftype_2eproto_once,
       file_level_metadata_google_2fprotobuf_2ftype_2eproto[1]);
 }
 // ===================================================================
@@ -1617,7 +1629,7 @@
 
 ::google::protobuf::Metadata Enum::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2ftype_2eproto_getter, &descriptor_table_google_2fprotobuf_2ftype_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2ftype_2eproto_getter, &descriptor_table_google_2fprotobuf_2ftype_2eproto_once,
       file_level_metadata_google_2fprotobuf_2ftype_2eproto[2]);
 }
 // ===================================================================
@@ -1864,7 +1876,7 @@
 
 ::google::protobuf::Metadata EnumValue::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2ftype_2eproto_getter, &descriptor_table_google_2fprotobuf_2ftype_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2ftype_2eproto_getter, &descriptor_table_google_2fprotobuf_2ftype_2eproto_once,
       file_level_metadata_google_2fprotobuf_2ftype_2eproto[3]);
 }
 // ===================================================================
@@ -2113,7 +2125,7 @@
 
 ::google::protobuf::Metadata Option::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2ftype_2eproto_getter, &descriptor_table_google_2fprotobuf_2ftype_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2ftype_2eproto_getter, &descriptor_table_google_2fprotobuf_2ftype_2eproto_once,
       file_level_metadata_google_2fprotobuf_2ftype_2eproto[4]);
 }
 // @@protoc_insertion_point(namespace_scope)
diff --git a/src/google/protobuf/wrappers.pb.cc b/src/google/protobuf/wrappers.pb.cc
index 1359937..8cacb3f 100644
--- a/src/google/protobuf/wrappers.pb.cc
+++ b/src/google/protobuf/wrappers.pb.cc
@@ -330,24 +330,36 @@
     "erspb\370\001\001\242\002\003GPB\252\002\036Google.Protobuf.WellKno"
     "wnTypesb\006proto3"
 };
-PROTOBUF_CONSTINIT
-PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ::_pbi::DescriptorTable
-    descriptor_table_google_2fprotobuf_2fwrappers_2eproto = {
-        false,
-        455,
-        descriptor_table_protodef_google_2fprotobuf_2fwrappers_2eproto,
-        "google/protobuf/wrappers.proto",
-        nullptr,
-        0,
-        9,
-        schemas,
-        file_default_instances,
-        TableStruct_google_2fprotobuf_2fwrappers_2eproto::offsets,
-        file_level_metadata_google_2fprotobuf_2fwrappers_2eproto,
-        file_level_enum_descriptors_google_2fprotobuf_2fwrappers_2eproto,
-        file_level_service_descriptors_google_2fprotobuf_2fwrappers_2eproto,
+static ::absl::once_flag descriptor_table_google_2fprotobuf_2fwrappers_2eproto_once;
+const ::_pbi::DescriptorTable descriptor_table_google_2fprotobuf_2fwrappers_2eproto = {
+    false,
+    false,
+    455,
+    descriptor_table_protodef_google_2fprotobuf_2fwrappers_2eproto,
+    "google/protobuf/wrappers.proto",
+    &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_once,
+    nullptr,
+    0,
+    9,
+    schemas,
+    file_default_instances,
+    TableStruct_google_2fprotobuf_2fwrappers_2eproto::offsets,
+    file_level_metadata_google_2fprotobuf_2fwrappers_2eproto,
+    file_level_enum_descriptors_google_2fprotobuf_2fwrappers_2eproto,
+    file_level_service_descriptors_google_2fprotobuf_2fwrappers_2eproto,
 };
 
+// This function exists to be marked as weak.
+// It can significantly speed up compilation by breaking up LLVM's SCC
+// in the .pb.cc translation units. Large translation units see a
+// reduction of more than 35% of walltime for optimized builds. Without
+// the weak attribute all the messages in the file, including all the
+// vtables and everything they use become part of the same SCC through
+// a cycle like:
+// GetMetadata -> descriptor table -> default instances ->
+//   vtables -> GetMetadata
+// By adding a weak function here we break the connection from the
+// individual vtables back into the descriptor table.
 PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter() {
   return &descriptor_table_google_2fprotobuf_2fwrappers_2eproto;
 }
@@ -541,7 +553,7 @@
 
 ::google::protobuf::Metadata DoubleValue::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fwrappers_2eproto[0]);
 }
 // ===================================================================
@@ -729,7 +741,7 @@
 
 ::google::protobuf::Metadata FloatValue::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fwrappers_2eproto[1]);
 }
 // ===================================================================
@@ -903,7 +915,7 @@
 
 ::google::protobuf::Metadata Int64Value::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fwrappers_2eproto[2]);
 }
 // ===================================================================
@@ -1077,7 +1089,7 @@
 
 ::google::protobuf::Metadata UInt64Value::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fwrappers_2eproto[3]);
 }
 // ===================================================================
@@ -1251,7 +1263,7 @@
 
 ::google::protobuf::Metadata Int32Value::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fwrappers_2eproto[4]);
 }
 // ===================================================================
@@ -1425,7 +1437,7 @@
 
 ::google::protobuf::Metadata UInt32Value::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fwrappers_2eproto[5]);
 }
 // ===================================================================
@@ -1598,7 +1610,7 @@
 
 ::google::protobuf::Metadata BoolValue::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fwrappers_2eproto[6]);
 }
 // ===================================================================
@@ -1792,7 +1804,7 @@
 
 ::google::protobuf::Metadata StringValue::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fwrappers_2eproto[7]);
 }
 // ===================================================================
@@ -1981,7 +1993,7 @@
 
 ::google::protobuf::Metadata BytesValue::GetMetadata() const {
   return ::_pbi::AssignDescriptors(
-      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto.once,
+      &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_getter, &descriptor_table_google_2fprotobuf_2fwrappers_2eproto_once,
       file_level_metadata_google_2fprotobuf_2fwrappers_2eproto[8]);
 }
 // @@protoc_insertion_point(namespace_scope)