Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Non-existant module referenced in cpp_message.py #2

Closed
dhirschfeld opened this issue Aug 27, 2014 · 1 comment
Closed

Non-existant module referenced in cpp_message.py #2

dhirschfeld opened this issue Aug 27, 2014 · 1 comment

Comments

@dhirschfeld
Copy link

_net_proto2___python appears to no longer exist

https://github.com/google/protobuf/blob/e9c00d9dd0ac75dc3d1d140207939f11abe328b5/python/google/protobuf/internal/cpp_message.py#L39-L75

@gpshead
Copy link
Contributor

gpshead commented Aug 27, 2014

internal/cpp_message.py is a leftover from the previous version that shouldn't exist anymore.

the code in internal/descriptor.py reads:

if api_implementation.Version() == 2:
from google.protobuf.pyext import _message
else:
from google.protobuf.internal import cpp_message

which should really just be edited to avoid the version check and be "from google.protobuf.pyext import _message". along will all other version checks using _message vs cpp_message in that file to get rid of cpp_message references all together.

If you set both of the magic environment variables before any google.protobuf imports, it works:

greg:~/sandbox/python/protobuf/python$ LD_LIBRARY_PATH=../src/.libs/ PYT
HONPATH=./ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

from google.protobuf.internal import api_implementation
api_implementation.Type()
'python'
api_implementation.Version()
1
from google.protobuf import descriptor

greg:~/sandbox/python/protobuf/python$ LD_LIBRARY_PATH=../src/.libs/ PYTHONPATH=./ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

import os
os.environ['PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION'] = '2'
os.environ['PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION'] = 'cpp'
from google.protobuf.internal import api_implementation
api_implementation.Type()
'cpp'
api_implementation.Version()
2
from google.protobuf import descriptor
descriptor._message
<module 'google.protobuf.pyext._message' from 'google/protobuf/pyext/_message.so'>

there is something IMNSHO weird going on with the setup.py and how it builds _message.so and apparently _moves it outside of the build/lib.* tree afterwards (WTF?). But given we want to revisit our entire setup.py for this anyways... i expect that to be untangled in the future.

@xfxyjwf xfxyjwf modified the milestone: Python 3 support Sep 3, 2014
cfallin added a commit to cfallin/protobuf that referenced this issue Dec 10, 2014
anandolee pushed a commit that referenced this issue Apr 18, 2015
Pulling protobuf-csharp-port into csharp/ directory
@xfxyjwf xfxyjwf closed this as completed Jan 19, 2016
adellahlou pushed a commit to adellahlou/protobuf that referenced this issue Apr 20, 2023
rschu1ze referenced this issue in ClickHouse/google-protobuf Jun 1, 2023
==500166==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0xdd383e in google::protobuf::compiler::DiskSourceTree::OpenDiskFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) build_msan/./contrib/protobuf/src/google/protobuf/compiler/importer.cc:504:7
    #1 0xdd1eb2 in google::protobuf::compiler::DiskSourceTree::DiskFileToVirtualFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) build_msan/./contrib/protobuf/src/google/protobuf/compiler/importer.cc:431:51
    #2 0x540619 in google::protobuf::compiler::CommandLineInterface::MakeProtoProtoPathRelative(google::protobuf::compiler::DiskSourceTree*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, google::protobuf::DescriptorDatabase*) build_msan/./contrib/protobuf/src/google/protobuf/compiler/command_line_interface.cc:1362:24
    #3 0x5314fb in google::protobuf::compiler::CommandLineInterface::MakeInputsBeProtoPathRelative(google::protobuf::compiler::DiskSourceTree*, google::protobuf::DescriptorDatabase*) build_msan/./contrib/protobuf/src/google/protobuf/compiler/command_line_interface.cc:1415:10
    #4 0x5314fb in google::protobuf::compiler::CommandLineInterface::InitializeDiskSourceTree(google::protobuf::compiler::DiskSourceTree*, google::protobuf::DescriptorDatabase*) build_msan/./contrib/protobuf/src/google/protobuf/compiler/command_line_interface.cc:1168:8
    #5 0x52541f in google::protobuf::compiler::CommandLineInterface::Run(int, char const* const*) build_msan/./contrib/protobuf/src/google/protobuf/compiler/command_line_interface.cc:1026:10
    protocolbuffers#6 0x50f5d6 in google::protobuf::compiler::ProtobufMain(int, char**) build_msan/./contrib/protobuf/src/google/protobuf/compiler/main.cc:104:14
    protocolbuffers#7 0x50fe58 in main build_msan/./contrib/protobuf/src/google/protobuf/compiler/main.cc:112:10
    protocolbuffers#8 0x7f817143db24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
    protocolbuffers#9 0x48904d in _start (/mnt/ch/ClickHouse/build_msan/contrib/protobuf-cmake/protoc+0x48904d)

  Uninitialized value was created by an allocation of 'sb' in the stack frame of function '_ZN6google8protobuf8compiler14DiskSourceTree12OpenDiskFileERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE'
    #0 0xdd3320 in google::protobuf::compiler::DiskSourceTree::OpenDiskFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) build_msan/./contrib/protobuf/src/google/protobuf/compiler/importer.cc:492

SUMMARY: MemorySanitizer: use-of-uninitialized-value build_msan/./contrib/protobuf/src/google/protobuf/compiler/importer.cc:504:7 in google::protobuf::compiler::DiskSourceTree::OpenDiskFile(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Exiting
rinarakaki pushed a commit to rinarakaki/protobuf that referenced this issue Aug 30, 2023
This fixes an MSAN warning of the form:

```
WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x7fc964f2a597 in arena_findroot third_party/upb/upb/mem/arena.c:64:3
    #1 0x7fc964f2a597 in upb_Arena_Free third_party/upb/upb/mem/arena.c:211:7
    protocolbuffers#2 0x7fc9d2af0028 in std::__msan::unique_ptr<upb_Arena, void (*)(upb_Arena*)>::~unique_ptr() third_party/crosstool/v18/stable/toolchain/bin/../include/c++/v1/__memory/unique_ptr.h:277:7
    protocolbuffers#3 0x7fc9d2aef7a2 in ~Arena third_party/upb/upb/upb.hpp:70:7
    protocolbuffers#4 0x7fc9d2aef7a2 in ~InlinedArena third_party/upb/upb/upb.hpp:97:7
    protocolbuffers#5 0x7fc9d2aef7a2 in Cpp_InlinedArena2_Test::TestBody() third_party/upb/upb/test/test_cpp.cc:187:1
    protocolbuffers#6 0x7fc97da78a57 in testing::Test::Run() third_party/googletest/googletest/src/gtest.cc:2695:5
    protocolbuffers#7 0x7fc97da7a3e8 in testing::TestInfo::Run() third_party/googletest/googletest/src/gtest.cc:2844:11
    protocolbuffers#8 0x7fc97da7b897 in testing::TestSuite::Run() third_party/googletest/googletest/src/gtest.cc:3003:30
    protocolbuffers#9 0x7fc97daa5136 in testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/googletest/src/gtest.cc:5899:44
    protocolbuffers#10 0x7fc97daa455c in HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/googletest/src/gtest.cc
    protocolbuffers#11 0x7fc97daa455c in testing::UnitTest::Run() third_party/googletest/googletest/src/gtest.cc:5464:10
    protocolbuffers#12 0x562a7fb876f0 in RUN_ALL_TESTS third_party/googletest/googletest/include/gtest/gtest.h:2329:73
    protocolbuffers#13 0x562a7fb876f0 in main testing/base/internal/gunit_main.cc:86:10
    protocolbuffers#14 0x7fc9ba9b7632 in __libc_start_main (/usr/grte/v5/lib64/libc.so.6+0x61632) (BuildId: 280088eab084c30a3992a9bce5c35b44)
    protocolbuffers#15 0x562a7fafdbe9 in _start /build/work/ab393f4ac612f9027aae6b1a7226027ba2a2/google3/blaze-out/k8-opt/bin/third_party/grte/v5_src/grte-scratch/BUILD/src/csu/../sysdeps/x86_64/start.S:120

  Member fields were destroyed
    #0 0x562a7fb0b13d in __sanitizer_dtor_callback_fields third_party/llvm/llvm-project/compiler-rt/lib/msan/msan_interceptors.cpp:960:5
    #1 0x7fc9d2aef79a in ~InlinedArena third_party/upb/upb/upb.hpp:105:8
    protocolbuffers#2 0x7fc9d2aef79a in ~InlinedArena third_party/upb/upb/upb.hpp:97:7
    protocolbuffers#3 0x7fc9d2aef79a in Cpp_InlinedArena2_Test::TestBody() third_party/upb/upb/test/test_cpp.cc:187:1
    protocolbuffers#4 0x7fc97da78a57 in testing::Test::Run() third_party/googletest/googletest/src/gtest.cc:2695:5
    protocolbuffers#5 0x7fc97da7a3e8 in testing::TestInfo::Run() third_party/googletest/googletest/src/gtest.cc:2844:11
    protocolbuffers#6 0x7fc97da7b897 in testing::TestSuite::Run() third_party/googletest/googletest/src/gtest.cc:3003:30
    protocolbuffers#7 0x7fc97daa5136 in testing::internal::UnitTestImpl::RunAllTests() third_party/googletest/googletest/src/gtest.cc:5899:44
    protocolbuffers#8 0x7fc97daa455c in HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> third_party/googletest/googletest/src/gtest.cc
    protocolbuffers#9 0x7fc97daa455c in testing::UnitTest::Run() third_party/googletest/googletest/src/gtest.cc:5464:10
    protocolbuffers#10 0x562a7fb876f0 in RUN_ALL_TESTS third_party/googletest/googletest/include/gtest/gtest.h:2329:73
    protocolbuffers#11 0x562a7fb876f0 in main testing/base/internal/gunit_main.cc:86:10
    protocolbuffers#12 0x7fc9ba9b7632 in __libc_start_main (/usr/grte/v5/lib64/libc.so.6+0x61632) (BuildId: 280088eab084c30a3992a9bce5c35b44)
    protocolbuffers#13 0x562a7fafdbe9 in _start /build/work/ab393f4ac612f9027aae6b1a7226027ba2a2/google3/blaze-out/k8-opt/bin/third_party/grte/v5_src/grte-scratch/BUILD/src/csu/../sysdeps/x86_64/start.S:120
```

PiperOrigin-RevId: 511849224
copybara-service bot pushed a commit that referenced this issue Oct 13, 2023
COPYBARA_INTEGRATE_REVIEW=#13869 from edgarriba:patch-1 177a0c4
FUTURE_COPYBARA_INTEGRATE_REVIEW=#13869 from edgarriba:patch-1 177a0c4
PiperOrigin-RevId: 573295697
copybara-service bot pushed a commit that referenced this issue Oct 13, 2023
PiperOrigin-RevId: 573325336
copybara-service bot pushed a commit that referenced this issue Oct 14, 2023
PiperOrigin-RevId: 573369498
copybara-service bot pushed a commit that referenced this issue Oct 17, 2023
This also switch upb to using legacy editions for all proto2/proto3 logic.

There is a ~10% increase in allocations, but only a ~1% increase in peak memory.  There are some <5% increases in instructions and cycles, but apparently no increase in time:

```
name                                           old cpu/op   new cpu/op   delta
BM_ArenaOneAlloc                                 17.8ns ±11%  16.9ns ±17%     ~     (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     5.99ns ±13%  5.35ns ± 2%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.4ns ±11%  63.1ns ± 3%     ~     (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          509ns ± 2%   532ns ±15%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.73µs ±20%  4.43µs ±10%     ~     (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.77µs ±12%  8.64µs ± 4%     ~     (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                           67.5ns ±13%  62.6ns ± 3%     ~     (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            552ns ±23%   496ns ±25%     ~     (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.76µs ±14%  4.24µs ± 4%     ~     (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                         10.2µs ±14%   8.6µs ± 4%  -15.61%  (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.20ms ±12%  6.18ms ±16%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.91ms ±12%  6.63ms ± 3%     ~     (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.0ms ±12%  13.7ms ± 3%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.1ms ±13%  13.8ms ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.4µs ±13%  13.2µs ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%  11.8µs ± 3%     ~     (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.7µs ±12%  12.9µs ± 3%     ~     (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.1µs ±11%  11.6µs ± 3%     ~     (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.7µs ±12%  22.6µs ± 8%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.6µs ±13%  10.9µs ± 2%     ~     (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±10%  10.6µs ± 3%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.4µs ±12%  12.3µs ± 4%     ~     (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.62µs ±13%  6.00µs ± 6%     ~     (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.1µs ±13%  10.3µs ± 3%     ~     (p=1.000 n=5+5)

name                                           old time/op             new time/op             delta
BM_ArenaOneAlloc                                 17.9ns ±12%             17.0ns ±17%     ~             (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     6.03ns ±14%             5.36ns ± 2%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.9ns ±12%             63.3ns ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          511ns ± 2%              533ns ±15%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.75µs ±20%             4.44µs ±10%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.83µs ±12%             8.66µs ± 4%     ~             (p=0.151 n=5+5)
BM_ArenaFuseBalanced/2                           67.8ns ±13%             62.7ns ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            555ns ±24%              497ns ±26%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.79µs ±14%             4.25µs ± 4%     ~             (p=0.310 n=5+5)
BM_ArenaFuseBalanced/128                         10.3µs ±14%              8.6µs ± 4%  -15.93%          (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.25ms ±12%             6.20ms ±16%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.96ms ±13%             6.65ms ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.2ms ±12%             13.7ms ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.3ms ±14%             13.8ms ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.5µs ±14%             13.2µs ± 3%     ~             (p=0.690 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%             11.8µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.8µs ±13%             13.0µs ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.2µs ±12%             11.6µs ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.9µs ±12%             22.6µs ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.7µs ±14%             10.9µs ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±11%             10.7µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.5µs ±12%             12.3µs ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.65µs ±13%             6.01µs ± 6%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.2µs ±13%             10.3µs ± 3%     ~             (p=1.000 n=5+5)

name                                           old INSTRUCTIONS/op     new INSTRUCTIONS/op     delta
BM_ArenaOneAlloc                                    189 ± 0%                189 ± 0%     ~             (p=0.881 n=5+5)
BM_ArenaInitialBlockOneAlloc                       69.0 ± 0%               69.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            458 ± 0%                458 ± 0%     ~             (p=1.000 n=5+5)
BM_ArenaFuseUnbalanced/8                          3.28k ±15%              3.60k ± 0%     ~             (p=0.286 n=5+4)
BM_ArenaFuseUnbalanced/64                         28.6k ± 2%              29.2k ± 0%   +2.17%          (p=0.032 n=5+4)
BM_ArenaFuseUnbalanced/128                        57.9k ± 1%              57.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/2                              482 ± 0%                482 ± 0%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/8                            3.35k ±14%              3.35k ±14%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/64                           29.2k ± 2%              29.3k ± 1%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          59.2k ± 1%              59.3k ± 1%     ~             (p=0.556 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                37.3M ± 0%              38.2M ± 0%   +2.39%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              40.9M ± 0%              41.7M ± 0%   +2.02%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             87.2M ± 0%              88.3M ± 1%   +1.25%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           88.0M ± 0%              88.9M ± 1%   +1.13%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              154k ± 0%               154k ± 0%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>             143k ± 0%               143k ± 0%     ~             (p=0.310 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>             153k ± 0%               153k ± 0%     ~             (p=1.016 n=5+4)
BM_Parse_Upb_FileDesc<InitBlock, Alias>            142k ± 0%               142k ± 0%     ~             (p=0.127 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>           213k ± 1%               217k ± 5%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          122k ± 0%               123k ± 0%   +0.86%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>         120k ± 0%               120k ± 0%     ~             (p=0.421 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>      124k ± 0%               124k ± 0%     ~             (p=0.587 n=5+5)
BM_SerializeDescriptor_Proto2                     63.5k ± 0%              63.5k ± 0%     ~             (p=0.278 n=5+5)
BM_SerializeDescriptor_Upb                         111k ± 0%               111k ± 0%     ~             (p=1.000 n=5+5)

name                                           old CYCLES/op           new CYCLES/op           delta
BM_ArenaOneAlloc                                   53.5 ± 0%               53.4 ± 0%     ~             (p=0.095 n=5+5)
BM_ArenaInitialBlockOneAlloc                       17.5 ± 1%               17.4 ± 0%     ~             (p=0.087 n=5+5)
BM_ArenaFuseUnbalanced/2                            206 ± 0%                206 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/8                          1.55k ±12%              1.67k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/64                         14.1k ± 8%              14.1k ± 1%     ~             (p=0.222 n=5+5)
BM_ArenaFuseUnbalanced/128                        28.2k ± 1%              28.3k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/2                              205 ± 0%                204 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/8                            1.57k ±12%              1.56k ±12%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/64                           13.9k ± 2%              13.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/128                          28.1k ± 1%              28.2k ± 1%     ~             (p=0.730 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                18.7M ± 0%              19.3M ± 1%   +3.38%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              20.9M ± 0%              21.6M ± 0%   +3.09%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             43.4M ± 0%              44.4M ± 1%   +2.33%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           44.0M ± 0%              44.9M ± 2%   +1.92%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>             42.0k ± 1%              43.0k ± 1%   +2.32%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>            38.2k ± 1%              38.4k ± 0%   +0.74%          (p=0.032 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>            41.6k ± 0%              42.6k ± 1%   +2.51%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>           37.6k ± 0%              38.1k ± 0%   +1.34%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          71.9k ± 1%              74.1k ± 6%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         35.4k ± 1%              35.8k ± 0%   +1.10%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>        34.6k ± 1%              34.9k ± 1%     ~             (p=0.095 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>     40.5k ± 0%              40.0k ± 1%   -1.36%          (p=0.008 n=5+5)
BM_SerializeDescriptor_Proto2                     20.1k ± 1%              19.7k ± 4%     ~             (p=0.421 n=5+5)
BM_SerializeDescriptor_Upb                        33.7k ± 0%              33.7k ± 0%     ~             (p=0.222 n=5+5)

name                                           old allocs/op           new allocs/op           delta
BM_ArenaOneAlloc                                   1.00 ± 0%               1.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                           2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                           8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                          64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                          128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                             2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                             8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                            64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                            128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                6.21k ± 0%              6.93k ± 0%  +11.54%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              6.54k ± 0%              6.96k ± 0%   +6.34%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>              124k ± 0%               124k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>            126k ± 0%               126k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>             7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>            709 ± 0%                709 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)

name                                           old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_ArenaOneAlloc                                    328 ± 0%                328 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                          2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                         21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                        42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                              656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                            2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                           21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                          42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                10.2M ± 0%              10.4M ± 0%   +1.15%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              10.5M ± 0%              10.5M ± 0%   +0.11%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             7.14M ± 0%              7.14M ± 0%     ~             (p=0.317 n=4+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           7.18M ± 0%              7.18M ± 0%     ~             (p=0.159 n=5+4)
BM_Parse_Upb_FileDesc<UseArena, Copy>             36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>            36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          35.4k ± 0%              35.4k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         65.3k ± 0%              65.3k ± 0%     ~     (all samples are equal)

name                                           old items/s             new items/s             delta
BM_ArenaFuseUnbalanced/2                          28.2M ±12%              31.7M ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          15.7M ± 2%              15.1M ±14%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                         13.7M ±18%              14.5M ± 9%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                        13.2M ±12%              14.8M ± 5%     ~             (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                            29.9M ±12%              32.0M ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            14.8M ±28%              16.5M ±22%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                           13.6M ±15%              15.1M ± 4%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          12.6M ±15%              14.9M ± 4%  +17.88%          (p=0.016 n=5+5)

name                                           old speed               new speed               delta
BM_LoadAdsDescriptor_Upb<NoLayout>              128MB/s ±11%            128MB/s ±14%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>            115MB/s ±12%            119MB/s ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>          52.9MB/s ±12%           57.6MB/s ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>        52.6MB/s ±14%           57.2MB/s ± 2%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>           527MB/s ±14%            571MB/s ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>          595MB/s ±11%            640MB/s ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>          553MB/s ±12%            582MB/s ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>         576MB/s ±12%            649MB/s ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>        307MB/s ±13%            334MB/s ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>       653MB/s ±13%            689MB/s ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>      650MB/s ±10%            708MB/s ± 3%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>   564MB/s ±12%            614MB/s ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                  1.15GB/s ±12%           1.25GB/s ± 5%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                      684MB/s ±12%            730MB/s ± 3%     ~             (p=1.000 n=5+5)
```

This adds about 5Ki of code size.  Some of this likely comes from the fact that we now link in `message/copy.c` to perform a deep copy of a FeatureSet proto.

```
$ /google/bin/releases/protobuf-team/bloaty/bloaty-google3-diff --blaze-build-opts="-c opt" third_party/upb/upb/conformance/conformance_upb
    FILE SIZE        VM SIZE
 --------------  --------------
  +0.5% +4.19Ki  +0.5% +4.19Ki    .text
  +0.4%    +656  +0.4%    +656    .rodata
  +0.1%    +504  [ = ]       0    .strtab
  +0.2%    +384  [ = ]       0    .symtab
  +0.2%    +280  +0.2%    +280    .eh_frame
  +0.2%    +216  +0.2%    +216    .rela.dyn
  +0.3%     +96  +0.3%     +96    .data.rel.ro
  +0.2%     +64  +0.2%     +64    .eh_frame_hdr
  +1.1%     +16  [ = ]       0    .got.plt
  +0.2%      +8  +0.2%      +8    .rela.plt
  -4.6%      -8  -4.6%      -8    [LOAD #2 [RX]]
 -50.0%     -48  [ = ]       0    [Unmapped]
  [ = ]       0 -81.7% -1.47Ki    .relro_padding
  +0.1% +6.30Ki  +0.0% +4.00Ki    TOTAL
```

PiperOrigin-RevId: 570106628
copybara-service bot pushed a commit that referenced this issue Oct 18, 2023
This also switch upb to using legacy editions for all proto2/proto3 logic.

There is a ~10% increase in allocations, but only a ~1% increase in peak memory.  There are some <5% increases in instructions and cycles, but apparently no increase in time:

```
name                                           old cpu/op   new cpu/op   delta
BM_ArenaOneAlloc                                 17.8ns ±11%  16.9ns ±17%     ~     (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     5.99ns ±13%  5.35ns ± 2%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.4ns ±11%  63.1ns ± 3%     ~     (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          509ns ± 2%   532ns ±15%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.73µs ±20%  4.43µs ±10%     ~     (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.77µs ±12%  8.64µs ± 4%     ~     (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                           67.5ns ±13%  62.6ns ± 3%     ~     (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            552ns ±23%   496ns ±25%     ~     (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.76µs ±14%  4.24µs ± 4%     ~     (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                         10.2µs ±14%   8.6µs ± 4%  -15.61%  (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.20ms ±12%  6.18ms ±16%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.91ms ±12%  6.63ms ± 3%     ~     (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.0ms ±12%  13.7ms ± 3%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.1ms ±13%  13.8ms ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.4µs ±13%  13.2µs ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%  11.8µs ± 3%     ~     (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.7µs ±12%  12.9µs ± 3%     ~     (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.1µs ±11%  11.6µs ± 3%     ~     (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.7µs ±12%  22.6µs ± 8%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.6µs ±13%  10.9µs ± 2%     ~     (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±10%  10.6µs ± 3%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.4µs ±12%  12.3µs ± 4%     ~     (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.62µs ±13%  6.00µs ± 6%     ~     (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.1µs ±13%  10.3µs ± 3%     ~     (p=1.000 n=5+5)

name                                           old time/op             new time/op             delta
BM_ArenaOneAlloc                                 17.9ns ±12%             17.0ns ±17%     ~             (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     6.03ns ±14%             5.36ns ± 2%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.9ns ±12%             63.3ns ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          511ns ± 2%              533ns ±15%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.75µs ±20%             4.44µs ±10%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.83µs ±12%             8.66µs ± 4%     ~             (p=0.151 n=5+5)
BM_ArenaFuseBalanced/2                           67.8ns ±13%             62.7ns ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            555ns ±24%              497ns ±26%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.79µs ±14%             4.25µs ± 4%     ~             (p=0.310 n=5+5)
BM_ArenaFuseBalanced/128                         10.3µs ±14%              8.6µs ± 4%  -15.93%          (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.25ms ±12%             6.20ms ±16%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.96ms ±13%             6.65ms ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.2ms ±12%             13.7ms ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.3ms ±14%             13.8ms ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.5µs ±14%             13.2µs ± 3%     ~             (p=0.690 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%             11.8µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.8µs ±13%             13.0µs ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.2µs ±12%             11.6µs ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.9µs ±12%             22.6µs ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.7µs ±14%             10.9µs ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±11%             10.7µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.5µs ±12%             12.3µs ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.65µs ±13%             6.01µs ± 6%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.2µs ±13%             10.3µs ± 3%     ~             (p=1.000 n=5+5)

name                                           old INSTRUCTIONS/op     new INSTRUCTIONS/op     delta
BM_ArenaOneAlloc                                    189 ± 0%                189 ± 0%     ~             (p=0.881 n=5+5)
BM_ArenaInitialBlockOneAlloc                       69.0 ± 0%               69.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            458 ± 0%                458 ± 0%     ~             (p=1.000 n=5+5)
BM_ArenaFuseUnbalanced/8                          3.28k ±15%              3.60k ± 0%     ~             (p=0.286 n=5+4)
BM_ArenaFuseUnbalanced/64                         28.6k ± 2%              29.2k ± 0%   +2.17%          (p=0.032 n=5+4)
BM_ArenaFuseUnbalanced/128                        57.9k ± 1%              57.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/2                              482 ± 0%                482 ± 0%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/8                            3.35k ±14%              3.35k ±14%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/64                           29.2k ± 2%              29.3k ± 1%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          59.2k ± 1%              59.3k ± 1%     ~             (p=0.556 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                37.3M ± 0%              38.2M ± 0%   +2.39%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              40.9M ± 0%              41.7M ± 0%   +2.02%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             87.2M ± 0%              88.3M ± 1%   +1.25%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           88.0M ± 0%              88.9M ± 1%   +1.13%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              154k ± 0%               154k ± 0%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>             143k ± 0%               143k ± 0%     ~             (p=0.310 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>             153k ± 0%               153k ± 0%     ~             (p=1.016 n=5+4)
BM_Parse_Upb_FileDesc<InitBlock, Alias>            142k ± 0%               142k ± 0%     ~             (p=0.127 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>           213k ± 1%               217k ± 5%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          122k ± 0%               123k ± 0%   +0.86%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>         120k ± 0%               120k ± 0%     ~             (p=0.421 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>      124k ± 0%               124k ± 0%     ~             (p=0.587 n=5+5)
BM_SerializeDescriptor_Proto2                     63.5k ± 0%              63.5k ± 0%     ~             (p=0.278 n=5+5)
BM_SerializeDescriptor_Upb                         111k ± 0%               111k ± 0%     ~             (p=1.000 n=5+5)

name                                           old CYCLES/op           new CYCLES/op           delta
BM_ArenaOneAlloc                                   53.5 ± 0%               53.4 ± 0%     ~             (p=0.095 n=5+5)
BM_ArenaInitialBlockOneAlloc                       17.5 ± 1%               17.4 ± 0%     ~             (p=0.087 n=5+5)
BM_ArenaFuseUnbalanced/2                            206 ± 0%                206 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/8                          1.55k ±12%              1.67k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/64                         14.1k ± 8%              14.1k ± 1%     ~             (p=0.222 n=5+5)
BM_ArenaFuseUnbalanced/128                        28.2k ± 1%              28.3k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/2                              205 ± 0%                204 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/8                            1.57k ±12%              1.56k ±12%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/64                           13.9k ± 2%              13.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/128                          28.1k ± 1%              28.2k ± 1%     ~             (p=0.730 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                18.7M ± 0%              19.3M ± 1%   +3.38%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              20.9M ± 0%              21.6M ± 0%   +3.09%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             43.4M ± 0%              44.4M ± 1%   +2.33%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           44.0M ± 0%              44.9M ± 2%   +1.92%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>             42.0k ± 1%              43.0k ± 1%   +2.32%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>            38.2k ± 1%              38.4k ± 0%   +0.74%          (p=0.032 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>            41.6k ± 0%              42.6k ± 1%   +2.51%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>           37.6k ± 0%              38.1k ± 0%   +1.34%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          71.9k ± 1%              74.1k ± 6%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         35.4k ± 1%              35.8k ± 0%   +1.10%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>        34.6k ± 1%              34.9k ± 1%     ~             (p=0.095 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>     40.5k ± 0%              40.0k ± 1%   -1.36%          (p=0.008 n=5+5)
BM_SerializeDescriptor_Proto2                     20.1k ± 1%              19.7k ± 4%     ~             (p=0.421 n=5+5)
BM_SerializeDescriptor_Upb                        33.7k ± 0%              33.7k ± 0%     ~             (p=0.222 n=5+5)

name                                           old allocs/op           new allocs/op           delta
BM_ArenaOneAlloc                                   1.00 ± 0%               1.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                           2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                           8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                          64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                          128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                             2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                             8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                            64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                            128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                6.21k ± 0%              6.93k ± 0%  +11.54%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              6.54k ± 0%              6.96k ± 0%   +6.34%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>              124k ± 0%               124k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>            126k ± 0%               126k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>             7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>            709 ± 0%                709 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)

name                                           old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_ArenaOneAlloc                                    328 ± 0%                328 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                          2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                         21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                        42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                              656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                            2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                           21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                          42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                10.2M ± 0%              10.4M ± 0%   +1.15%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              10.5M ± 0%              10.5M ± 0%   +0.11%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             7.14M ± 0%              7.14M ± 0%     ~             (p=0.317 n=4+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           7.18M ± 0%              7.18M ± 0%     ~             (p=0.159 n=5+4)
BM_Parse_Upb_FileDesc<UseArena, Copy>             36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>            36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          35.4k ± 0%              35.4k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         65.3k ± 0%              65.3k ± 0%     ~     (all samples are equal)

name                                           old items/s             new items/s             delta
BM_ArenaFuseUnbalanced/2                          28.2M ±12%              31.7M ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          15.7M ± 2%              15.1M ±14%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                         13.7M ±18%              14.5M ± 9%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                        13.2M ±12%              14.8M ± 5%     ~             (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                            29.9M ±12%              32.0M ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            14.8M ±28%              16.5M ±22%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                           13.6M ±15%              15.1M ± 4%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          12.6M ±15%              14.9M ± 4%  +17.88%          (p=0.016 n=5+5)

name                                           old speed               new speed               delta
BM_LoadAdsDescriptor_Upb<NoLayout>              128MB/s ±11%            128MB/s ±14%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>            115MB/s ±12%            119MB/s ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>          52.9MB/s ±12%           57.6MB/s ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>        52.6MB/s ±14%           57.2MB/s ± 2%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>           527MB/s ±14%            571MB/s ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>          595MB/s ±11%            640MB/s ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>          553MB/s ±12%            582MB/s ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>         576MB/s ±12%            649MB/s ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>        307MB/s ±13%            334MB/s ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>       653MB/s ±13%            689MB/s ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>      650MB/s ±10%            708MB/s ± 3%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>   564MB/s ±12%            614MB/s ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                  1.15GB/s ±12%           1.25GB/s ± 5%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                      684MB/s ±12%            730MB/s ± 3%     ~             (p=1.000 n=5+5)
```

This adds about 5Ki of code size.  Some of this likely comes from the fact that we now link in `message/copy.c` to perform a deep copy of a FeatureSet proto.

```
$ /google/bin/releases/protobuf-team/bloaty/bloaty-google3-diff --blaze-build-opts="-c opt" third_party/upb/upb/conformance/conformance_upb
    FILE SIZE        VM SIZE
 --------------  --------------
  +0.5% +4.19Ki  +0.5% +4.19Ki    .text
  +0.4%    +656  +0.4%    +656    .rodata
  +0.1%    +504  [ = ]       0    .strtab
  +0.2%    +384  [ = ]       0    .symtab
  +0.2%    +280  +0.2%    +280    .eh_frame
  +0.2%    +216  +0.2%    +216    .rela.dyn
  +0.3%     +96  +0.3%     +96    .data.rel.ro
  +0.2%     +64  +0.2%     +64    .eh_frame_hdr
  +1.1%     +16  [ = ]       0    .got.plt
  +0.2%      +8  +0.2%      +8    .rela.plt
  -4.6%      -8  -4.6%      -8    [LOAD #2 [RX]]
 -50.0%     -48  [ = ]       0    [Unmapped]
  [ = ]       0 -81.7% -1.47Ki    .relro_padding
  +0.1% +6.30Ki  +0.0% +4.00Ki    TOTAL
```

PiperOrigin-RevId: 570106628
copybara-service bot pushed a commit that referenced this issue Oct 19, 2023
This also switch upb to using legacy editions for all proto2/proto3 logic.

There is a ~10% increase in allocations, but only a ~1% increase in peak memory.  There are some <5% increases in instructions and cycles, but apparently no increase in time:

```
name                                           old cpu/op   new cpu/op   delta
BM_ArenaOneAlloc                                 17.8ns ±11%  16.9ns ±17%     ~     (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     5.99ns ±13%  5.35ns ± 2%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.4ns ±11%  63.1ns ± 3%     ~     (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          509ns ± 2%   532ns ±15%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.73µs ±20%  4.43µs ±10%     ~     (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.77µs ±12%  8.64µs ± 4%     ~     (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                           67.5ns ±13%  62.6ns ± 3%     ~     (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            552ns ±23%   496ns ±25%     ~     (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.76µs ±14%  4.24µs ± 4%     ~     (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                         10.2µs ±14%   8.6µs ± 4%  -15.61%  (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.20ms ±12%  6.18ms ±16%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.91ms ±12%  6.63ms ± 3%     ~     (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.0ms ±12%  13.7ms ± 3%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.1ms ±13%  13.8ms ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.4µs ±13%  13.2µs ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%  11.8µs ± 3%     ~     (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.7µs ±12%  12.9µs ± 3%     ~     (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.1µs ±11%  11.6µs ± 3%     ~     (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.7µs ±12%  22.6µs ± 8%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.6µs ±13%  10.9µs ± 2%     ~     (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±10%  10.6µs ± 3%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.4µs ±12%  12.3µs ± 4%     ~     (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.62µs ±13%  6.00µs ± 6%     ~     (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.1µs ±13%  10.3µs ± 3%     ~     (p=1.000 n=5+5)

name                                           old time/op             new time/op             delta
BM_ArenaOneAlloc                                 17.9ns ±12%             17.0ns ±17%     ~             (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     6.03ns ±14%             5.36ns ± 2%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.9ns ±12%             63.3ns ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          511ns ± 2%              533ns ±15%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.75µs ±20%             4.44µs ±10%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.83µs ±12%             8.66µs ± 4%     ~             (p=0.151 n=5+5)
BM_ArenaFuseBalanced/2                           67.8ns ±13%             62.7ns ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            555ns ±24%              497ns ±26%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.79µs ±14%             4.25µs ± 4%     ~             (p=0.310 n=5+5)
BM_ArenaFuseBalanced/128                         10.3µs ±14%              8.6µs ± 4%  -15.93%          (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.25ms ±12%             6.20ms ±16%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.96ms ±13%             6.65ms ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.2ms ±12%             13.7ms ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.3ms ±14%             13.8ms ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.5µs ±14%             13.2µs ± 3%     ~             (p=0.690 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%             11.8µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.8µs ±13%             13.0µs ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.2µs ±12%             11.6µs ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.9µs ±12%             22.6µs ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.7µs ±14%             10.9µs ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±11%             10.7µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.5µs ±12%             12.3µs ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.65µs ±13%             6.01µs ± 6%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.2µs ±13%             10.3µs ± 3%     ~             (p=1.000 n=5+5)

name                                           old INSTRUCTIONS/op     new INSTRUCTIONS/op     delta
BM_ArenaOneAlloc                                    189 ± 0%                189 ± 0%     ~             (p=0.881 n=5+5)
BM_ArenaInitialBlockOneAlloc                       69.0 ± 0%               69.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            458 ± 0%                458 ± 0%     ~             (p=1.000 n=5+5)
BM_ArenaFuseUnbalanced/8                          3.28k ±15%              3.60k ± 0%     ~             (p=0.286 n=5+4)
BM_ArenaFuseUnbalanced/64                         28.6k ± 2%              29.2k ± 0%   +2.17%          (p=0.032 n=5+4)
BM_ArenaFuseUnbalanced/128                        57.9k ± 1%              57.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/2                              482 ± 0%                482 ± 0%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/8                            3.35k ±14%              3.35k ±14%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/64                           29.2k ± 2%              29.3k ± 1%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          59.2k ± 1%              59.3k ± 1%     ~             (p=0.556 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                37.3M ± 0%              38.2M ± 0%   +2.39%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              40.9M ± 0%              41.7M ± 0%   +2.02%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             87.2M ± 0%              88.3M ± 1%   +1.25%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           88.0M ± 0%              88.9M ± 1%   +1.13%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              154k ± 0%               154k ± 0%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>             143k ± 0%               143k ± 0%     ~             (p=0.310 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>             153k ± 0%               153k ± 0%     ~             (p=1.016 n=5+4)
BM_Parse_Upb_FileDesc<InitBlock, Alias>            142k ± 0%               142k ± 0%     ~             (p=0.127 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>           213k ± 1%               217k ± 5%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          122k ± 0%               123k ± 0%   +0.86%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>         120k ± 0%               120k ± 0%     ~             (p=0.421 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>      124k ± 0%               124k ± 0%     ~             (p=0.587 n=5+5)
BM_SerializeDescriptor_Proto2                     63.5k ± 0%              63.5k ± 0%     ~             (p=0.278 n=5+5)
BM_SerializeDescriptor_Upb                         111k ± 0%               111k ± 0%     ~             (p=1.000 n=5+5)

name                                           old CYCLES/op           new CYCLES/op           delta
BM_ArenaOneAlloc                                   53.5 ± 0%               53.4 ± 0%     ~             (p=0.095 n=5+5)
BM_ArenaInitialBlockOneAlloc                       17.5 ± 1%               17.4 ± 0%     ~             (p=0.087 n=5+5)
BM_ArenaFuseUnbalanced/2                            206 ± 0%                206 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/8                          1.55k ±12%              1.67k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/64                         14.1k ± 8%              14.1k ± 1%     ~             (p=0.222 n=5+5)
BM_ArenaFuseUnbalanced/128                        28.2k ± 1%              28.3k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/2                              205 ± 0%                204 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/8                            1.57k ±12%              1.56k ±12%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/64                           13.9k ± 2%              13.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/128                          28.1k ± 1%              28.2k ± 1%     ~             (p=0.730 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                18.7M ± 0%              19.3M ± 1%   +3.38%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              20.9M ± 0%              21.6M ± 0%   +3.09%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             43.4M ± 0%              44.4M ± 1%   +2.33%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           44.0M ± 0%              44.9M ± 2%   +1.92%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>             42.0k ± 1%              43.0k ± 1%   +2.32%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>            38.2k ± 1%              38.4k ± 0%   +0.74%          (p=0.032 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>            41.6k ± 0%              42.6k ± 1%   +2.51%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>           37.6k ± 0%              38.1k ± 0%   +1.34%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          71.9k ± 1%              74.1k ± 6%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         35.4k ± 1%              35.8k ± 0%   +1.10%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>        34.6k ± 1%              34.9k ± 1%     ~             (p=0.095 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>     40.5k ± 0%              40.0k ± 1%   -1.36%          (p=0.008 n=5+5)
BM_SerializeDescriptor_Proto2                     20.1k ± 1%              19.7k ± 4%     ~             (p=0.421 n=5+5)
BM_SerializeDescriptor_Upb                        33.7k ± 0%              33.7k ± 0%     ~             (p=0.222 n=5+5)

name                                           old allocs/op           new allocs/op           delta
BM_ArenaOneAlloc                                   1.00 ± 0%               1.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                           2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                           8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                          64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                          128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                             2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                             8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                            64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                            128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                6.21k ± 0%              6.93k ± 0%  +11.54%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              6.54k ± 0%              6.96k ± 0%   +6.34%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>              124k ± 0%               124k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>            126k ± 0%               126k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>             7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>            709 ± 0%                709 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)

name                                           old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_ArenaOneAlloc                                    328 ± 0%                328 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                          2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                         21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                        42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                              656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                            2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                           21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                          42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                10.2M ± 0%              10.4M ± 0%   +1.15%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              10.5M ± 0%              10.5M ± 0%   +0.11%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             7.14M ± 0%              7.14M ± 0%     ~             (p=0.317 n=4+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           7.18M ± 0%              7.18M ± 0%     ~             (p=0.159 n=5+4)
BM_Parse_Upb_FileDesc<UseArena, Copy>             36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>            36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          35.4k ± 0%              35.4k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         65.3k ± 0%              65.3k ± 0%     ~     (all samples are equal)

name                                           old items/s             new items/s             delta
BM_ArenaFuseUnbalanced/2                          28.2M ±12%              31.7M ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          15.7M ± 2%              15.1M ±14%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                         13.7M ±18%              14.5M ± 9%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                        13.2M ±12%              14.8M ± 5%     ~             (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                            29.9M ±12%              32.0M ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            14.8M ±28%              16.5M ±22%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                           13.6M ±15%              15.1M ± 4%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          12.6M ±15%              14.9M ± 4%  +17.88%          (p=0.016 n=5+5)

name                                           old speed               new speed               delta
BM_LoadAdsDescriptor_Upb<NoLayout>              128MB/s ±11%            128MB/s ±14%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>            115MB/s ±12%            119MB/s ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>          52.9MB/s ±12%           57.6MB/s ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>        52.6MB/s ±14%           57.2MB/s ± 2%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>           527MB/s ±14%            571MB/s ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>          595MB/s ±11%            640MB/s ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>          553MB/s ±12%            582MB/s ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>         576MB/s ±12%            649MB/s ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>        307MB/s ±13%            334MB/s ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>       653MB/s ±13%            689MB/s ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>      650MB/s ±10%            708MB/s ± 3%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>   564MB/s ±12%            614MB/s ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                  1.15GB/s ±12%           1.25GB/s ± 5%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                      684MB/s ±12%            730MB/s ± 3%     ~             (p=1.000 n=5+5)
```

This adds about 5Ki of code size.  Some of this likely comes from the fact that we now link in `message/copy.c` to perform a deep copy of a FeatureSet proto.

```
$ /google/bin/releases/protobuf-team/bloaty/bloaty-google3-diff --blaze-build-opts="-c opt" third_party/upb/upb/conformance/conformance_upb
    FILE SIZE        VM SIZE
 --------------  --------------
  +0.5% +4.19Ki  +0.5% +4.19Ki    .text
  +0.4%    +656  +0.4%    +656    .rodata
  +0.1%    +504  [ = ]       0    .strtab
  +0.2%    +384  [ = ]       0    .symtab
  +0.2%    +280  +0.2%    +280    .eh_frame
  +0.2%    +216  +0.2%    +216    .rela.dyn
  +0.3%     +96  +0.3%     +96    .data.rel.ro
  +0.2%     +64  +0.2%     +64    .eh_frame_hdr
  +1.1%     +16  [ = ]       0    .got.plt
  +0.2%      +8  +0.2%      +8    .rela.plt
  -4.6%      -8  -4.6%      -8    [LOAD #2 [RX]]
 -50.0%     -48  [ = ]       0    [Unmapped]
  [ = ]       0 -81.7% -1.47Ki    .relro_padding
  +0.1% +6.30Ki  +0.0% +4.00Ki    TOTAL
```

PiperOrigin-RevId: 570106628
copybara-service bot pushed a commit that referenced this issue Nov 3, 2023
This switches upb to using legacy editions for all proto2/proto3 logic.  This does not yet enable code generation for editions protos (ie. we do not yet turn on `FEATURE_SUPPORTS_EDITIONS`), but with feature inheritance in place, this will be a much smaller follow-on change.

There is a ~10% increase in allocations, but only a ~1% increase in peak memory.  There are some <5% increases in instructions and cycles, but apparently no increase in time:

```
name                                           old cpu/op   new cpu/op   delta
BM_ArenaOneAlloc                                 17.8ns ±11%  16.9ns ±17%     ~     (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     5.99ns ±13%  5.35ns ± 2%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.4ns ±11%  63.1ns ± 3%     ~     (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          509ns ± 2%   532ns ±15%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.73µs ±20%  4.43µs ±10%     ~     (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.77µs ±12%  8.64µs ± 4%     ~     (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                           67.5ns ±13%  62.6ns ± 3%     ~     (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            552ns ±23%   496ns ±25%     ~     (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.76µs ±14%  4.24µs ± 4%     ~     (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                         10.2µs ±14%   8.6µs ± 4%  -15.61%  (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.20ms ±12%  6.18ms ±16%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.91ms ±12%  6.63ms ± 3%     ~     (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.0ms ±12%  13.7ms ± 3%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.1ms ±13%  13.8ms ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.4µs ±13%  13.2µs ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%  11.8µs ± 3%     ~     (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.7µs ±12%  12.9µs ± 3%     ~     (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.1µs ±11%  11.6µs ± 3%     ~     (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.7µs ±12%  22.6µs ± 8%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.6µs ±13%  10.9µs ± 2%     ~     (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±10%  10.6µs ± 3%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.4µs ±12%  12.3µs ± 4%     ~     (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.62µs ±13%  6.00µs ± 6%     ~     (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.1µs ±13%  10.3µs ± 3%     ~     (p=1.000 n=5+5)

name                                           old time/op             new time/op             delta
BM_ArenaOneAlloc                                 17.9ns ±12%             17.0ns ±17%     ~             (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     6.03ns ±14%             5.36ns ± 2%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.9ns ±12%             63.3ns ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          511ns ± 2%              533ns ±15%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.75µs ±20%             4.44µs ±10%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.83µs ±12%             8.66µs ± 4%     ~             (p=0.151 n=5+5)
BM_ArenaFuseBalanced/2                           67.8ns ±13%             62.7ns ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            555ns ±24%              497ns ±26%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.79µs ±14%             4.25µs ± 4%     ~             (p=0.310 n=5+5)
BM_ArenaFuseBalanced/128                         10.3µs ±14%              8.6µs ± 4%  -15.93%          (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.25ms ±12%             6.20ms ±16%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.96ms ±13%             6.65ms ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.2ms ±12%             13.7ms ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.3ms ±14%             13.8ms ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.5µs ±14%             13.2µs ± 3%     ~             (p=0.690 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%             11.8µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.8µs ±13%             13.0µs ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.2µs ±12%             11.6µs ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.9µs ±12%             22.6µs ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.7µs ±14%             10.9µs ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±11%             10.7µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.5µs ±12%             12.3µs ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.65µs ±13%             6.01µs ± 6%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.2µs ±13%             10.3µs ± 3%     ~             (p=1.000 n=5+5)

name                                           old INSTRUCTIONS/op     new INSTRUCTIONS/op     delta
BM_ArenaOneAlloc                                    189 ± 0%                189 ± 0%     ~             (p=0.881 n=5+5)
BM_ArenaInitialBlockOneAlloc                       69.0 ± 0%               69.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            458 ± 0%                458 ± 0%     ~             (p=1.000 n=5+5)
BM_ArenaFuseUnbalanced/8                          3.28k ±15%              3.60k ± 0%     ~             (p=0.286 n=5+4)
BM_ArenaFuseUnbalanced/64                         28.6k ± 2%              29.2k ± 0%   +2.17%          (p=0.032 n=5+4)
BM_ArenaFuseUnbalanced/128                        57.9k ± 1%              57.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/2                              482 ± 0%                482 ± 0%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/8                            3.35k ±14%              3.35k ±14%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/64                           29.2k ± 2%              29.3k ± 1%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          59.2k ± 1%              59.3k ± 1%     ~             (p=0.556 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                37.3M ± 0%              38.2M ± 0%   +2.39%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              40.9M ± 0%              41.7M ± 0%   +2.02%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             87.2M ± 0%              88.3M ± 1%   +1.25%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           88.0M ± 0%              88.9M ± 1%   +1.13%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              154k ± 0%               154k ± 0%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>             143k ± 0%               143k ± 0%     ~             (p=0.310 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>             153k ± 0%               153k ± 0%     ~             (p=1.016 n=5+4)
BM_Parse_Upb_FileDesc<InitBlock, Alias>            142k ± 0%               142k ± 0%     ~             (p=0.127 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>           213k ± 1%               217k ± 5%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          122k ± 0%               123k ± 0%   +0.86%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>         120k ± 0%               120k ± 0%     ~             (p=0.421 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>      124k ± 0%               124k ± 0%     ~             (p=0.587 n=5+5)
BM_SerializeDescriptor_Proto2                     63.5k ± 0%              63.5k ± 0%     ~             (p=0.278 n=5+5)
BM_SerializeDescriptor_Upb                         111k ± 0%               111k ± 0%     ~             (p=1.000 n=5+5)

name                                           old CYCLES/op           new CYCLES/op           delta
BM_ArenaOneAlloc                                   53.5 ± 0%               53.4 ± 0%     ~             (p=0.095 n=5+5)
BM_ArenaInitialBlockOneAlloc                       17.5 ± 1%               17.4 ± 0%     ~             (p=0.087 n=5+5)
BM_ArenaFuseUnbalanced/2                            206 ± 0%                206 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/8                          1.55k ±12%              1.67k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/64                         14.1k ± 8%              14.1k ± 1%     ~             (p=0.222 n=5+5)
BM_ArenaFuseUnbalanced/128                        28.2k ± 1%              28.3k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/2                              205 ± 0%                204 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/8                            1.57k ±12%              1.56k ±12%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/64                           13.9k ± 2%              13.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/128                          28.1k ± 1%              28.2k ± 1%     ~             (p=0.730 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                18.7M ± 0%              19.3M ± 1%   +3.38%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              20.9M ± 0%              21.6M ± 0%   +3.09%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             43.4M ± 0%              44.4M ± 1%   +2.33%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           44.0M ± 0%              44.9M ± 2%   +1.92%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>             42.0k ± 1%              43.0k ± 1%   +2.32%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>            38.2k ± 1%              38.4k ± 0%   +0.74%          (p=0.032 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>            41.6k ± 0%              42.6k ± 1%   +2.51%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>           37.6k ± 0%              38.1k ± 0%   +1.34%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          71.9k ± 1%              74.1k ± 6%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         35.4k ± 1%              35.8k ± 0%   +1.10%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>        34.6k ± 1%              34.9k ± 1%     ~             (p=0.095 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>     40.5k ± 0%              40.0k ± 1%   -1.36%          (p=0.008 n=5+5)
BM_SerializeDescriptor_Proto2                     20.1k ± 1%              19.7k ± 4%     ~             (p=0.421 n=5+5)
BM_SerializeDescriptor_Upb                        33.7k ± 0%              33.7k ± 0%     ~             (p=0.222 n=5+5)

name                                           old allocs/op           new allocs/op           delta
BM_ArenaOneAlloc                                   1.00 ± 0%               1.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                           2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                           8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                          64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                          128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                             2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                             8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                            64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                            128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                6.21k ± 0%              6.93k ± 0%  +11.54%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              6.54k ± 0%              6.96k ± 0%   +6.34%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>              124k ± 0%               124k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>            126k ± 0%               126k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>             7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>            709 ± 0%                709 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)

name                                           old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_ArenaOneAlloc                                    328 ± 0%                328 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                          2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                         21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                        42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                              656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                            2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                           21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                          42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                10.2M ± 0%              10.4M ± 0%   +1.15%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              10.5M ± 0%              10.5M ± 0%   +0.11%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             7.14M ± 0%              7.14M ± 0%     ~             (p=0.317 n=4+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           7.18M ± 0%              7.18M ± 0%     ~             (p=0.159 n=5+4)
BM_Parse_Upb_FileDesc<UseArena, Copy>             36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>            36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          35.4k ± 0%              35.4k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         65.3k ± 0%              65.3k ± 0%     ~     (all samples are equal)

name                                           old items/s             new items/s             delta
BM_ArenaFuseUnbalanced/2                          28.2M ±12%              31.7M ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          15.7M ± 2%              15.1M ±14%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                         13.7M ±18%              14.5M ± 9%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                        13.2M ±12%              14.8M ± 5%     ~             (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                            29.9M ±12%              32.0M ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            14.8M ±28%              16.5M ±22%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                           13.6M ±15%              15.1M ± 4%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          12.6M ±15%              14.9M ± 4%  +17.88%          (p=0.016 n=5+5)

name                                           old speed               new speed               delta
BM_LoadAdsDescriptor_Upb<NoLayout>              128MB/s ±11%            128MB/s ±14%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>            115MB/s ±12%            119MB/s ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>          52.9MB/s ±12%           57.6MB/s ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>        52.6MB/s ±14%           57.2MB/s ± 2%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>           527MB/s ±14%            571MB/s ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>          595MB/s ±11%            640MB/s ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>          553MB/s ±12%            582MB/s ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>         576MB/s ±12%            649MB/s ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>        307MB/s ±13%            334MB/s ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>       653MB/s ±13%            689MB/s ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>      650MB/s ±10%            708MB/s ± 3%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>   564MB/s ±12%            614MB/s ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                  1.15GB/s ±12%           1.25GB/s ± 5%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                      684MB/s ±12%            730MB/s ± 3%     ~             (p=1.000 n=5+5)
```

This adds about 5Ki of code size.  Some of this likely comes from the fact that we now link in `message/copy.c` to perform a deep copy of a FeatureSet proto.

```
$ /google/bin/releases/protobuf-team/bloaty/bloaty-google3-diff --blaze-build-opts="-c opt" third_party/upb/upb/conformance/conformance_upb
    FILE SIZE        VM SIZE
 --------------  --------------
  +0.5% +4.19Ki  +0.5% +4.19Ki    .text
  +0.4%    +656  +0.4%    +656    .rodata
  +0.1%    +504  [ = ]       0    .strtab
  +0.2%    +384  [ = ]       0    .symtab
  +0.2%    +280  +0.2%    +280    .eh_frame
  +0.2%    +216  +0.2%    +216    .rela.dyn
  +0.3%     +96  +0.3%     +96    .data.rel.ro
  +0.2%     +64  +0.2%     +64    .eh_frame_hdr
  +1.1%     +16  [ = ]       0    .got.plt
  +0.2%      +8  +0.2%      +8    .rela.plt
  -4.6%      -8  -4.6%      -8    [LOAD #2 [RX]]
 -50.0%     -48  [ = ]       0    [Unmapped]
  [ = ]       0 -81.7% -1.47Ki    .relro_padding
  +0.1% +6.30Ki  +0.0% +4.00Ki    TOTAL
```

PiperOrigin-RevId: 570106628
copybara-service bot pushed a commit that referenced this issue Nov 3, 2023
This switches upb to using legacy editions for all proto2/proto3 logic.  This does not yet enable code generation for editions protos (ie. we do not yet turn on `FEATURE_SUPPORTS_EDITIONS`), but with feature inheritance in place, this will be a much smaller follow-on change.

There is a ~10% increase in allocations, but only a ~1% increase in peak memory.  There are some <5% increases in instructions and cycles, but apparently no increase in time:

```
name                                           old cpu/op   new cpu/op   delta
BM_ArenaOneAlloc                                 17.8ns ±11%  16.9ns ±17%     ~     (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     5.99ns ±13%  5.35ns ± 2%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.4ns ±11%  63.1ns ± 3%     ~     (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          509ns ± 2%   532ns ±15%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.73µs ±20%  4.43µs ±10%     ~     (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.77µs ±12%  8.64µs ± 4%     ~     (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                           67.5ns ±13%  62.6ns ± 3%     ~     (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            552ns ±23%   496ns ±25%     ~     (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.76µs ±14%  4.24µs ± 4%     ~     (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                         10.2µs ±14%   8.6µs ± 4%  -15.61%  (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.20ms ±12%  6.18ms ±16%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.91ms ±12%  6.63ms ± 3%     ~     (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.0ms ±12%  13.7ms ± 3%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.1ms ±13%  13.8ms ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.4µs ±13%  13.2µs ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%  11.8µs ± 3%     ~     (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.7µs ±12%  12.9µs ± 3%     ~     (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.1µs ±11%  11.6µs ± 3%     ~     (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.7µs ±12%  22.6µs ± 8%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.6µs ±13%  10.9µs ± 2%     ~     (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±10%  10.6µs ± 3%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.4µs ±12%  12.3µs ± 4%     ~     (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.62µs ±13%  6.00µs ± 6%     ~     (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.1µs ±13%  10.3µs ± 3%     ~     (p=1.000 n=5+5)

name                                           old time/op             new time/op             delta
BM_ArenaOneAlloc                                 17.9ns ±12%             17.0ns ±17%     ~             (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     6.03ns ±14%             5.36ns ± 2%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.9ns ±12%             63.3ns ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          511ns ± 2%              533ns ±15%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.75µs ±20%             4.44µs ±10%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.83µs ±12%             8.66µs ± 4%     ~             (p=0.151 n=5+5)
BM_ArenaFuseBalanced/2                           67.8ns ±13%             62.7ns ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            555ns ±24%              497ns ±26%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.79µs ±14%             4.25µs ± 4%     ~             (p=0.310 n=5+5)
BM_ArenaFuseBalanced/128                         10.3µs ±14%              8.6µs ± 4%  -15.93%          (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.25ms ±12%             6.20ms ±16%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.96ms ±13%             6.65ms ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.2ms ±12%             13.7ms ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.3ms ±14%             13.8ms ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.5µs ±14%             13.2µs ± 3%     ~             (p=0.690 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%             11.8µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.8µs ±13%             13.0µs ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.2µs ±12%             11.6µs ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.9µs ±12%             22.6µs ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.7µs ±14%             10.9µs ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±11%             10.7µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.5µs ±12%             12.3µs ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.65µs ±13%             6.01µs ± 6%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.2µs ±13%             10.3µs ± 3%     ~             (p=1.000 n=5+5)

name                                           old INSTRUCTIONS/op     new INSTRUCTIONS/op     delta
BM_ArenaOneAlloc                                    189 ± 0%                189 ± 0%     ~             (p=0.881 n=5+5)
BM_ArenaInitialBlockOneAlloc                       69.0 ± 0%               69.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            458 ± 0%                458 ± 0%     ~             (p=1.000 n=5+5)
BM_ArenaFuseUnbalanced/8                          3.28k ±15%              3.60k ± 0%     ~             (p=0.286 n=5+4)
BM_ArenaFuseUnbalanced/64                         28.6k ± 2%              29.2k ± 0%   +2.17%          (p=0.032 n=5+4)
BM_ArenaFuseUnbalanced/128                        57.9k ± 1%              57.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/2                              482 ± 0%                482 ± 0%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/8                            3.35k ±14%              3.35k ±14%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/64                           29.2k ± 2%              29.3k ± 1%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          59.2k ± 1%              59.3k ± 1%     ~             (p=0.556 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                37.3M ± 0%              38.2M ± 0%   +2.39%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              40.9M ± 0%              41.7M ± 0%   +2.02%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             87.2M ± 0%              88.3M ± 1%   +1.25%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           88.0M ± 0%              88.9M ± 1%   +1.13%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              154k ± 0%               154k ± 0%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>             143k ± 0%               143k ± 0%     ~             (p=0.310 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>             153k ± 0%               153k ± 0%     ~             (p=1.016 n=5+4)
BM_Parse_Upb_FileDesc<InitBlock, Alias>            142k ± 0%               142k ± 0%     ~             (p=0.127 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>           213k ± 1%               217k ± 5%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          122k ± 0%               123k ± 0%   +0.86%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>         120k ± 0%               120k ± 0%     ~             (p=0.421 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>      124k ± 0%               124k ± 0%     ~             (p=0.587 n=5+5)
BM_SerializeDescriptor_Proto2                     63.5k ± 0%              63.5k ± 0%     ~             (p=0.278 n=5+5)
BM_SerializeDescriptor_Upb                         111k ± 0%               111k ± 0%     ~             (p=1.000 n=5+5)

name                                           old CYCLES/op           new CYCLES/op           delta
BM_ArenaOneAlloc                                   53.5 ± 0%               53.4 ± 0%     ~             (p=0.095 n=5+5)
BM_ArenaInitialBlockOneAlloc                       17.5 ± 1%               17.4 ± 0%     ~             (p=0.087 n=5+5)
BM_ArenaFuseUnbalanced/2                            206 ± 0%                206 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/8                          1.55k ±12%              1.67k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/64                         14.1k ± 8%              14.1k ± 1%     ~             (p=0.222 n=5+5)
BM_ArenaFuseUnbalanced/128                        28.2k ± 1%              28.3k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/2                              205 ± 0%                204 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/8                            1.57k ±12%              1.56k ±12%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/64                           13.9k ± 2%              13.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/128                          28.1k ± 1%              28.2k ± 1%     ~             (p=0.730 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                18.7M ± 0%              19.3M ± 1%   +3.38%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              20.9M ± 0%              21.6M ± 0%   +3.09%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             43.4M ± 0%              44.4M ± 1%   +2.33%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           44.0M ± 0%              44.9M ± 2%   +1.92%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>             42.0k ± 1%              43.0k ± 1%   +2.32%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>            38.2k ± 1%              38.4k ± 0%   +0.74%          (p=0.032 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>            41.6k ± 0%              42.6k ± 1%   +2.51%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>           37.6k ± 0%              38.1k ± 0%   +1.34%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          71.9k ± 1%              74.1k ± 6%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         35.4k ± 1%              35.8k ± 0%   +1.10%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>        34.6k ± 1%              34.9k ± 1%     ~             (p=0.095 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>     40.5k ± 0%              40.0k ± 1%   -1.36%          (p=0.008 n=5+5)
BM_SerializeDescriptor_Proto2                     20.1k ± 1%              19.7k ± 4%     ~             (p=0.421 n=5+5)
BM_SerializeDescriptor_Upb                        33.7k ± 0%              33.7k ± 0%     ~             (p=0.222 n=5+5)

name                                           old allocs/op           new allocs/op           delta
BM_ArenaOneAlloc                                   1.00 ± 0%               1.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                           2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                           8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                          64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                          128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                             2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                             8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                            64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                            128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                6.21k ± 0%              6.93k ± 0%  +11.54%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              6.54k ± 0%              6.96k ± 0%   +6.34%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>              124k ± 0%               124k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>            126k ± 0%               126k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>             7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>            709 ± 0%                709 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)

name                                           old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_ArenaOneAlloc                                    328 ± 0%                328 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                          2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                         21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                        42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                              656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                            2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                           21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                          42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                10.2M ± 0%              10.4M ± 0%   +1.15%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              10.5M ± 0%              10.5M ± 0%   +0.11%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             7.14M ± 0%              7.14M ± 0%     ~             (p=0.317 n=4+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           7.18M ± 0%              7.18M ± 0%     ~             (p=0.159 n=5+4)
BM_Parse_Upb_FileDesc<UseArena, Copy>             36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>            36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          35.4k ± 0%              35.4k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         65.3k ± 0%              65.3k ± 0%     ~     (all samples are equal)

name                                           old items/s             new items/s             delta
BM_ArenaFuseUnbalanced/2                          28.2M ±12%              31.7M ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          15.7M ± 2%              15.1M ±14%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                         13.7M ±18%              14.5M ± 9%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                        13.2M ±12%              14.8M ± 5%     ~             (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                            29.9M ±12%              32.0M ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            14.8M ±28%              16.5M ±22%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                           13.6M ±15%              15.1M ± 4%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          12.6M ±15%              14.9M ± 4%  +17.88%          (p=0.016 n=5+5)

name                                           old speed               new speed               delta
BM_LoadAdsDescriptor_Upb<NoLayout>              128MB/s ±11%            128MB/s ±14%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>            115MB/s ±12%            119MB/s ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>          52.9MB/s ±12%           57.6MB/s ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>        52.6MB/s ±14%           57.2MB/s ± 2%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>           527MB/s ±14%            571MB/s ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>          595MB/s ±11%            640MB/s ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>          553MB/s ±12%            582MB/s ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>         576MB/s ±12%            649MB/s ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>        307MB/s ±13%            334MB/s ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>       653MB/s ±13%            689MB/s ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>      650MB/s ±10%            708MB/s ± 3%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>   564MB/s ±12%            614MB/s ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                  1.15GB/s ±12%           1.25GB/s ± 5%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                      684MB/s ±12%            730MB/s ± 3%     ~             (p=1.000 n=5+5)
```

This adds about 5Ki of code size.  Some of this likely comes from the fact that we now link in `message/copy.c` to perform a deep copy of a FeatureSet proto.

```
$ /google/bin/releases/protobuf-team/bloaty/bloaty-google3-diff --blaze-build-opts="-c opt" third_party/upb/upb/conformance/conformance_upb
    FILE SIZE        VM SIZE
 --------------  --------------
  +0.5% +4.19Ki  +0.5% +4.19Ki    .text
  +0.4%    +656  +0.4%    +656    .rodata
  +0.1%    +504  [ = ]       0    .strtab
  +0.2%    +384  [ = ]       0    .symtab
  +0.2%    +280  +0.2%    +280    .eh_frame
  +0.2%    +216  +0.2%    +216    .rela.dyn
  +0.3%     +96  +0.3%     +96    .data.rel.ro
  +0.2%     +64  +0.2%     +64    .eh_frame_hdr
  +1.1%     +16  [ = ]       0    .got.plt
  +0.2%      +8  +0.2%      +8    .rela.plt
  -4.6%      -8  -4.6%      -8    [LOAD #2 [RX]]
 -50.0%     -48  [ = ]       0    [Unmapped]
  [ = ]       0 -81.7% -1.47Ki    .relro_padding
  +0.1% +6.30Ki  +0.0% +4.00Ki    TOTAL
```

PiperOrigin-RevId: 570106628
copybara-service bot pushed a commit that referenced this issue Nov 3, 2023
This switches upb to using legacy editions for all proto2/proto3 logic.  This does not yet enable code generation for editions protos (ie. we do not yet turn on `FEATURE_SUPPORTS_EDITIONS`), but with feature inheritance in place, this will be a much smaller follow-on change.

There is a ~10% increase in allocations, but only a ~1% increase in peak memory.  There are some <5% increases in instructions and cycles, but apparently no increase in time:

```
name                                           old cpu/op   new cpu/op   delta
BM_ArenaOneAlloc                                 17.8ns ±11%  16.9ns ±17%     ~     (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     5.99ns ±13%  5.35ns ± 2%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.4ns ±11%  63.1ns ± 3%     ~     (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          509ns ± 2%   532ns ±15%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.73µs ±20%  4.43µs ±10%     ~     (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.77µs ±12%  8.64µs ± 4%     ~     (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                           67.5ns ±13%  62.6ns ± 3%     ~     (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            552ns ±23%   496ns ±25%     ~     (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.76µs ±14%  4.24µs ± 4%     ~     (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                         10.2µs ±14%   8.6µs ± 4%  -15.61%  (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.20ms ±12%  6.18ms ±16%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.91ms ±12%  6.63ms ± 3%     ~     (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.0ms ±12%  13.7ms ± 3%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.1ms ±13%  13.8ms ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.4µs ±13%  13.2µs ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%  11.8µs ± 3%     ~     (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.7µs ±12%  12.9µs ± 3%     ~     (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.1µs ±11%  11.6µs ± 3%     ~     (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.7µs ±12%  22.6µs ± 8%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.6µs ±13%  10.9µs ± 2%     ~     (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±10%  10.6µs ± 3%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.4µs ±12%  12.3µs ± 4%     ~     (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.62µs ±13%  6.00µs ± 6%     ~     (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.1µs ±13%  10.3µs ± 3%     ~     (p=1.000 n=5+5)

name                                           old time/op             new time/op             delta
BM_ArenaOneAlloc                                 17.9ns ±12%             17.0ns ±17%     ~             (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     6.03ns ±14%             5.36ns ± 2%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.9ns ±12%             63.3ns ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          511ns ± 2%              533ns ±15%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.75µs ±20%             4.44µs ±10%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.83µs ±12%             8.66µs ± 4%     ~             (p=0.151 n=5+5)
BM_ArenaFuseBalanced/2                           67.8ns ±13%             62.7ns ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            555ns ±24%              497ns ±26%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.79µs ±14%             4.25µs ± 4%     ~             (p=0.310 n=5+5)
BM_ArenaFuseBalanced/128                         10.3µs ±14%              8.6µs ± 4%  -15.93%          (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.25ms ±12%             6.20ms ±16%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.96ms ±13%             6.65ms ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.2ms ±12%             13.7ms ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.3ms ±14%             13.8ms ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.5µs ±14%             13.2µs ± 3%     ~             (p=0.690 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%             11.8µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.8µs ±13%             13.0µs ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.2µs ±12%             11.6µs ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.9µs ±12%             22.6µs ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.7µs ±14%             10.9µs ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±11%             10.7µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.5µs ±12%             12.3µs ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.65µs ±13%             6.01µs ± 6%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.2µs ±13%             10.3µs ± 3%     ~             (p=1.000 n=5+5)

name                                           old INSTRUCTIONS/op     new INSTRUCTIONS/op     delta
BM_ArenaOneAlloc                                    189 ± 0%                189 ± 0%     ~             (p=0.881 n=5+5)
BM_ArenaInitialBlockOneAlloc                       69.0 ± 0%               69.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            458 ± 0%                458 ± 0%     ~             (p=1.000 n=5+5)
BM_ArenaFuseUnbalanced/8                          3.28k ±15%              3.60k ± 0%     ~             (p=0.286 n=5+4)
BM_ArenaFuseUnbalanced/64                         28.6k ± 2%              29.2k ± 0%   +2.17%          (p=0.032 n=5+4)
BM_ArenaFuseUnbalanced/128                        57.9k ± 1%              57.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/2                              482 ± 0%                482 ± 0%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/8                            3.35k ±14%              3.35k ±14%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/64                           29.2k ± 2%              29.3k ± 1%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          59.2k ± 1%              59.3k ± 1%     ~             (p=0.556 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                37.3M ± 0%              38.2M ± 0%   +2.39%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              40.9M ± 0%              41.7M ± 0%   +2.02%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             87.2M ± 0%              88.3M ± 1%   +1.25%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           88.0M ± 0%              88.9M ± 1%   +1.13%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              154k ± 0%               154k ± 0%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>             143k ± 0%               143k ± 0%     ~             (p=0.310 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>             153k ± 0%               153k ± 0%     ~             (p=1.016 n=5+4)
BM_Parse_Upb_FileDesc<InitBlock, Alias>            142k ± 0%               142k ± 0%     ~             (p=0.127 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>           213k ± 1%               217k ± 5%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          122k ± 0%               123k ± 0%   +0.86%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>         120k ± 0%               120k ± 0%     ~             (p=0.421 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>      124k ± 0%               124k ± 0%     ~             (p=0.587 n=5+5)
BM_SerializeDescriptor_Proto2                     63.5k ± 0%              63.5k ± 0%     ~             (p=0.278 n=5+5)
BM_SerializeDescriptor_Upb                         111k ± 0%               111k ± 0%     ~             (p=1.000 n=5+5)

name                                           old CYCLES/op           new CYCLES/op           delta
BM_ArenaOneAlloc                                   53.5 ± 0%               53.4 ± 0%     ~             (p=0.095 n=5+5)
BM_ArenaInitialBlockOneAlloc                       17.5 ± 1%               17.4 ± 0%     ~             (p=0.087 n=5+5)
BM_ArenaFuseUnbalanced/2                            206 ± 0%                206 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/8                          1.55k ±12%              1.67k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/64                         14.1k ± 8%              14.1k ± 1%     ~             (p=0.222 n=5+5)
BM_ArenaFuseUnbalanced/128                        28.2k ± 1%              28.3k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/2                              205 ± 0%                204 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/8                            1.57k ±12%              1.56k ±12%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/64                           13.9k ± 2%              13.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/128                          28.1k ± 1%              28.2k ± 1%     ~             (p=0.730 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                18.7M ± 0%              19.3M ± 1%   +3.38%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              20.9M ± 0%              21.6M ± 0%   +3.09%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             43.4M ± 0%              44.4M ± 1%   +2.33%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           44.0M ± 0%              44.9M ± 2%   +1.92%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>             42.0k ± 1%              43.0k ± 1%   +2.32%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>            38.2k ± 1%              38.4k ± 0%   +0.74%          (p=0.032 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>            41.6k ± 0%              42.6k ± 1%   +2.51%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>           37.6k ± 0%              38.1k ± 0%   +1.34%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          71.9k ± 1%              74.1k ± 6%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         35.4k ± 1%              35.8k ± 0%   +1.10%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>        34.6k ± 1%              34.9k ± 1%     ~             (p=0.095 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>     40.5k ± 0%              40.0k ± 1%   -1.36%          (p=0.008 n=5+5)
BM_SerializeDescriptor_Proto2                     20.1k ± 1%              19.7k ± 4%     ~             (p=0.421 n=5+5)
BM_SerializeDescriptor_Upb                        33.7k ± 0%              33.7k ± 0%     ~             (p=0.222 n=5+5)

name                                           old allocs/op           new allocs/op           delta
BM_ArenaOneAlloc                                   1.00 ± 0%               1.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                           2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                           8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                          64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                          128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                             2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                             8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                            64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                            128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                6.21k ± 0%              6.93k ± 0%  +11.54%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              6.54k ± 0%              6.96k ± 0%   +6.34%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>              124k ± 0%               124k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>            126k ± 0%               126k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>             7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>            709 ± 0%                709 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)

name                                           old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_ArenaOneAlloc                                    328 ± 0%                328 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                          2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                         21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                        42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                              656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                            2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                           21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                          42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                10.2M ± 0%              10.4M ± 0%   +1.15%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              10.5M ± 0%              10.5M ± 0%   +0.11%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             7.14M ± 0%              7.14M ± 0%     ~             (p=0.317 n=4+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           7.18M ± 0%              7.18M ± 0%     ~             (p=0.159 n=5+4)
BM_Parse_Upb_FileDesc<UseArena, Copy>             36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>            36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          35.4k ± 0%              35.4k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         65.3k ± 0%              65.3k ± 0%     ~     (all samples are equal)

name                                           old items/s             new items/s             delta
BM_ArenaFuseUnbalanced/2                          28.2M ±12%              31.7M ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          15.7M ± 2%              15.1M ±14%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                         13.7M ±18%              14.5M ± 9%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                        13.2M ±12%              14.8M ± 5%     ~             (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                            29.9M ±12%              32.0M ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            14.8M ±28%              16.5M ±22%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                           13.6M ±15%              15.1M ± 4%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          12.6M ±15%              14.9M ± 4%  +17.88%          (p=0.016 n=5+5)

name                                           old speed               new speed               delta
BM_LoadAdsDescriptor_Upb<NoLayout>              128MB/s ±11%            128MB/s ±14%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>            115MB/s ±12%            119MB/s ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>          52.9MB/s ±12%           57.6MB/s ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>        52.6MB/s ±14%           57.2MB/s ± 2%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>           527MB/s ±14%            571MB/s ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>          595MB/s ±11%            640MB/s ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>          553MB/s ±12%            582MB/s ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>         576MB/s ±12%            649MB/s ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>        307MB/s ±13%            334MB/s ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>       653MB/s ±13%            689MB/s ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>      650MB/s ±10%            708MB/s ± 3%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>   564MB/s ±12%            614MB/s ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                  1.15GB/s ±12%           1.25GB/s ± 5%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                      684MB/s ±12%            730MB/s ± 3%     ~             (p=1.000 n=5+5)
```

This adds about 5Ki of code size.  Some of this likely comes from the fact that we now link in `message/copy.c` to perform a deep copy of a FeatureSet proto.

```
$ /google/bin/releases/protobuf-team/bloaty/bloaty-google3-diff --blaze-build-opts="-c opt" third_party/upb/upb/conformance/conformance_upb
    FILE SIZE        VM SIZE
 --------------  --------------
  +0.5% +4.19Ki  +0.5% +4.19Ki    .text
  +0.4%    +656  +0.4%    +656    .rodata
  +0.1%    +504  [ = ]       0    .strtab
  +0.2%    +384  [ = ]       0    .symtab
  +0.2%    +280  +0.2%    +280    .eh_frame
  +0.2%    +216  +0.2%    +216    .rela.dyn
  +0.3%     +96  +0.3%     +96    .data.rel.ro
  +0.2%     +64  +0.2%     +64    .eh_frame_hdr
  +1.1%     +16  [ = ]       0    .got.plt
  +0.2%      +8  +0.2%      +8    .rela.plt
  -4.6%      -8  -4.6%      -8    [LOAD #2 [RX]]
 -50.0%     -48  [ = ]       0    [Unmapped]
  [ = ]       0 -81.7% -1.47Ki    .relro_padding
  +0.1% +6.30Ki  +0.0% +4.00Ki    TOTAL
```

PiperOrigin-RevId: 570106628
copybara-service bot pushed a commit that referenced this issue Nov 3, 2023
This switches upb to using legacy editions for all proto2/proto3 logic.  This does not yet enable code generation for editions protos (ie. we do not yet turn on `FEATURE_SUPPORTS_EDITIONS`), but with feature inheritance in place, this will be a much smaller follow-on change.

There is a ~10% increase in allocations, but only a ~1% increase in peak memory.  There are some <5% increases in instructions and cycles, but apparently no increase in time:

```
name                                           old cpu/op   new cpu/op   delta
BM_ArenaOneAlloc                                 17.8ns ±11%  16.9ns ±17%     ~     (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     5.99ns ±13%  5.35ns ± 2%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.4ns ±11%  63.1ns ± 3%     ~     (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          509ns ± 2%   532ns ±15%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.73µs ±20%  4.43µs ±10%     ~     (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.77µs ±12%  8.64µs ± 4%     ~     (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                           67.5ns ±13%  62.6ns ± 3%     ~     (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            552ns ±23%   496ns ±25%     ~     (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.76µs ±14%  4.24µs ± 4%     ~     (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                         10.2µs ±14%   8.6µs ± 4%  -15.61%  (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.20ms ±12%  6.18ms ±16%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.91ms ±12%  6.63ms ± 3%     ~     (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.0ms ±12%  13.7ms ± 3%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.1ms ±13%  13.8ms ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.4µs ±13%  13.2µs ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%  11.8µs ± 3%     ~     (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.7µs ±12%  12.9µs ± 3%     ~     (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.1µs ±11%  11.6µs ± 3%     ~     (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.7µs ±12%  22.6µs ± 8%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.6µs ±13%  10.9µs ± 2%     ~     (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±10%  10.6µs ± 3%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.4µs ±12%  12.3µs ± 4%     ~     (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.62µs ±13%  6.00µs ± 6%     ~     (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.1µs ±13%  10.3µs ± 3%     ~     (p=1.000 n=5+5)

name                                           old time/op             new time/op             delta
BM_ArenaOneAlloc                                 17.9ns ±12%             17.0ns ±17%     ~             (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     6.03ns ±14%             5.36ns ± 2%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.9ns ±12%             63.3ns ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          511ns ± 2%              533ns ±15%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.75µs ±20%             4.44µs ±10%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.83µs ±12%             8.66µs ± 4%     ~             (p=0.151 n=5+5)
BM_ArenaFuseBalanced/2                           67.8ns ±13%             62.7ns ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            555ns ±24%              497ns ±26%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.79µs ±14%             4.25µs ± 4%     ~             (p=0.310 n=5+5)
BM_ArenaFuseBalanced/128                         10.3µs ±14%              8.6µs ± 4%  -15.93%          (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.25ms ±12%             6.20ms ±16%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.96ms ±13%             6.65ms ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.2ms ±12%             13.7ms ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.3ms ±14%             13.8ms ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.5µs ±14%             13.2µs ± 3%     ~             (p=0.690 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%             11.8µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.8µs ±13%             13.0µs ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.2µs ±12%             11.6µs ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.9µs ±12%             22.6µs ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.7µs ±14%             10.9µs ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±11%             10.7µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.5µs ±12%             12.3µs ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.65µs ±13%             6.01µs ± 6%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.2µs ±13%             10.3µs ± 3%     ~             (p=1.000 n=5+5)

name                                           old INSTRUCTIONS/op     new INSTRUCTIONS/op     delta
BM_ArenaOneAlloc                                    189 ± 0%                189 ± 0%     ~             (p=0.881 n=5+5)
BM_ArenaInitialBlockOneAlloc                       69.0 ± 0%               69.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            458 ± 0%                458 ± 0%     ~             (p=1.000 n=5+5)
BM_ArenaFuseUnbalanced/8                          3.28k ±15%              3.60k ± 0%     ~             (p=0.286 n=5+4)
BM_ArenaFuseUnbalanced/64                         28.6k ± 2%              29.2k ± 0%   +2.17%          (p=0.032 n=5+4)
BM_ArenaFuseUnbalanced/128                        57.9k ± 1%              57.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/2                              482 ± 0%                482 ± 0%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/8                            3.35k ±14%              3.35k ±14%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/64                           29.2k ± 2%              29.3k ± 1%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          59.2k ± 1%              59.3k ± 1%     ~             (p=0.556 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                37.3M ± 0%              38.2M ± 0%   +2.39%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              40.9M ± 0%              41.7M ± 0%   +2.02%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             87.2M ± 0%              88.3M ± 1%   +1.25%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           88.0M ± 0%              88.9M ± 1%   +1.13%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              154k ± 0%               154k ± 0%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>             143k ± 0%               143k ± 0%     ~             (p=0.310 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>             153k ± 0%               153k ± 0%     ~             (p=1.016 n=5+4)
BM_Parse_Upb_FileDesc<InitBlock, Alias>            142k ± 0%               142k ± 0%     ~             (p=0.127 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>           213k ± 1%               217k ± 5%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          122k ± 0%               123k ± 0%   +0.86%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>         120k ± 0%               120k ± 0%     ~             (p=0.421 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>      124k ± 0%               124k ± 0%     ~             (p=0.587 n=5+5)
BM_SerializeDescriptor_Proto2                     63.5k ± 0%              63.5k ± 0%     ~             (p=0.278 n=5+5)
BM_SerializeDescriptor_Upb                         111k ± 0%               111k ± 0%     ~             (p=1.000 n=5+5)

name                                           old CYCLES/op           new CYCLES/op           delta
BM_ArenaOneAlloc                                   53.5 ± 0%               53.4 ± 0%     ~             (p=0.095 n=5+5)
BM_ArenaInitialBlockOneAlloc                       17.5 ± 1%               17.4 ± 0%     ~             (p=0.087 n=5+5)
BM_ArenaFuseUnbalanced/2                            206 ± 0%                206 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/8                          1.55k ±12%              1.67k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/64                         14.1k ± 8%              14.1k ± 1%     ~             (p=0.222 n=5+5)
BM_ArenaFuseUnbalanced/128                        28.2k ± 1%              28.3k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/2                              205 ± 0%                204 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/8                            1.57k ±12%              1.56k ±12%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/64                           13.9k ± 2%              13.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/128                          28.1k ± 1%              28.2k ± 1%     ~             (p=0.730 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                18.7M ± 0%              19.3M ± 1%   +3.38%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              20.9M ± 0%              21.6M ± 0%   +3.09%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             43.4M ± 0%              44.4M ± 1%   +2.33%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           44.0M ± 0%              44.9M ± 2%   +1.92%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>             42.0k ± 1%              43.0k ± 1%   +2.32%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>            38.2k ± 1%              38.4k ± 0%   +0.74%          (p=0.032 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>            41.6k ± 0%              42.6k ± 1%   +2.51%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>           37.6k ± 0%              38.1k ± 0%   +1.34%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          71.9k ± 1%              74.1k ± 6%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         35.4k ± 1%              35.8k ± 0%   +1.10%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>        34.6k ± 1%              34.9k ± 1%     ~             (p=0.095 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>     40.5k ± 0%              40.0k ± 1%   -1.36%          (p=0.008 n=5+5)
BM_SerializeDescriptor_Proto2                     20.1k ± 1%              19.7k ± 4%     ~             (p=0.421 n=5+5)
BM_SerializeDescriptor_Upb                        33.7k ± 0%              33.7k ± 0%     ~             (p=0.222 n=5+5)

name                                           old allocs/op           new allocs/op           delta
BM_ArenaOneAlloc                                   1.00 ± 0%               1.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                           2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                           8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                          64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                          128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                             2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                             8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                            64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                            128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                6.21k ± 0%              6.93k ± 0%  +11.54%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              6.54k ± 0%              6.96k ± 0%   +6.34%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>              124k ± 0%               124k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>            126k ± 0%               126k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>             7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>            709 ± 0%                709 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)

name                                           old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_ArenaOneAlloc                                    328 ± 0%                328 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                          2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                         21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                        42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                              656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                            2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                           21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                          42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                10.2M ± 0%              10.4M ± 0%   +1.15%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              10.5M ± 0%              10.5M ± 0%   +0.11%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             7.14M ± 0%              7.14M ± 0%     ~             (p=0.317 n=4+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           7.18M ± 0%              7.18M ± 0%     ~             (p=0.159 n=5+4)
BM_Parse_Upb_FileDesc<UseArena, Copy>             36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>            36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          35.4k ± 0%              35.4k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         65.3k ± 0%              65.3k ± 0%     ~     (all samples are equal)

name                                           old items/s             new items/s             delta
BM_ArenaFuseUnbalanced/2                          28.2M ±12%              31.7M ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          15.7M ± 2%              15.1M ±14%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                         13.7M ±18%              14.5M ± 9%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                        13.2M ±12%              14.8M ± 5%     ~             (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                            29.9M ±12%              32.0M ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            14.8M ±28%              16.5M ±22%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                           13.6M ±15%              15.1M ± 4%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          12.6M ±15%              14.9M ± 4%  +17.88%          (p=0.016 n=5+5)

name                                           old speed               new speed               delta
BM_LoadAdsDescriptor_Upb<NoLayout>              128MB/s ±11%            128MB/s ±14%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>            115MB/s ±12%            119MB/s ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>          52.9MB/s ±12%           57.6MB/s ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>        52.6MB/s ±14%           57.2MB/s ± 2%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>           527MB/s ±14%            571MB/s ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>          595MB/s ±11%            640MB/s ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>          553MB/s ±12%            582MB/s ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>         576MB/s ±12%            649MB/s ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>        307MB/s ±13%            334MB/s ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>       653MB/s ±13%            689MB/s ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>      650MB/s ±10%            708MB/s ± 3%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>   564MB/s ±12%            614MB/s ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                  1.15GB/s ±12%           1.25GB/s ± 5%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                      684MB/s ±12%            730MB/s ± 3%     ~             (p=1.000 n=5+5)
```

This adds about 5Ki of code size.  Some of this likely comes from the fact that we now link in `message/copy.c` to perform a deep copy of a FeatureSet proto.

```
$ /google/bin/releases/protobuf-team/bloaty/bloaty-google3-diff --blaze-build-opts="-c opt" third_party/upb/upb/conformance/conformance_upb
    FILE SIZE        VM SIZE
 --------------  --------------
  +0.5% +4.19Ki  +0.5% +4.19Ki    .text
  +0.4%    +656  +0.4%    +656    .rodata
  +0.1%    +504  [ = ]       0    .strtab
  +0.2%    +384  [ = ]       0    .symtab
  +0.2%    +280  +0.2%    +280    .eh_frame
  +0.2%    +216  +0.2%    +216    .rela.dyn
  +0.3%     +96  +0.3%     +96    .data.rel.ro
  +0.2%     +64  +0.2%     +64    .eh_frame_hdr
  +1.1%     +16  [ = ]       0    .got.plt
  +0.2%      +8  +0.2%      +8    .rela.plt
  -4.6%      -8  -4.6%      -8    [LOAD #2 [RX]]
 -50.0%     -48  [ = ]       0    [Unmapped]
  [ = ]       0 -81.7% -1.47Ki    .relro_padding
  +0.1% +6.30Ki  +0.0% +4.00Ki    TOTAL
```

PiperOrigin-RevId: 570106628
copybara-service bot pushed a commit that referenced this issue Nov 3, 2023
This switches upb to using legacy editions for all proto2/proto3 logic.  This does not yet enable code generation for editions protos (ie. we do not yet turn on `FEATURE_SUPPORTS_EDITIONS`), but with feature inheritance in place, this will be a much smaller follow-on change.

There is a ~10% increase in allocations, but only a ~1% increase in peak memory.  There are some <5% increases in instructions and cycles, but apparently no increase in time:

```
name                                           old cpu/op   new cpu/op   delta
BM_ArenaOneAlloc                                 17.8ns ±11%  16.9ns ±17%     ~     (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     5.99ns ±13%  5.35ns ± 2%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.4ns ±11%  63.1ns ± 3%     ~     (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          509ns ± 2%   532ns ±15%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.73µs ±20%  4.43µs ±10%     ~     (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.77µs ±12%  8.64µs ± 4%     ~     (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                           67.5ns ±13%  62.6ns ± 3%     ~     (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            552ns ±23%   496ns ±25%     ~     (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.76µs ±14%  4.24µs ± 4%     ~     (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                         10.2µs ±14%   8.6µs ± 4%  -15.61%  (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.20ms ±12%  6.18ms ±16%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.91ms ±12%  6.63ms ± 3%     ~     (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.0ms ±12%  13.7ms ± 3%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.1ms ±13%  13.8ms ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.4µs ±13%  13.2µs ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%  11.8µs ± 3%     ~     (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.7µs ±12%  12.9µs ± 3%     ~     (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.1µs ±11%  11.6µs ± 3%     ~     (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.7µs ±12%  22.6µs ± 8%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.6µs ±13%  10.9µs ± 2%     ~     (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±10%  10.6µs ± 3%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.4µs ±12%  12.3µs ± 4%     ~     (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.62µs ±13%  6.00µs ± 6%     ~     (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.1µs ±13%  10.3µs ± 3%     ~     (p=1.000 n=5+5)

name                                           old time/op             new time/op             delta
BM_ArenaOneAlloc                                 17.9ns ±12%             17.0ns ±17%     ~             (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     6.03ns ±14%             5.36ns ± 2%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.9ns ±12%             63.3ns ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          511ns ± 2%              533ns ±15%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.75µs ±20%             4.44µs ±10%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.83µs ±12%             8.66µs ± 4%     ~             (p=0.151 n=5+5)
BM_ArenaFuseBalanced/2                           67.8ns ±13%             62.7ns ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            555ns ±24%              497ns ±26%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.79µs ±14%             4.25µs ± 4%     ~             (p=0.310 n=5+5)
BM_ArenaFuseBalanced/128                         10.3µs ±14%              8.6µs ± 4%  -15.93%          (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.25ms ±12%             6.20ms ±16%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.96ms ±13%             6.65ms ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.2ms ±12%             13.7ms ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.3ms ±14%             13.8ms ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.5µs ±14%             13.2µs ± 3%     ~             (p=0.690 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%             11.8µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.8µs ±13%             13.0µs ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.2µs ±12%             11.6µs ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.9µs ±12%             22.6µs ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.7µs ±14%             10.9µs ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±11%             10.7µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.5µs ±12%             12.3µs ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.65µs ±13%             6.01µs ± 6%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.2µs ±13%             10.3µs ± 3%     ~             (p=1.000 n=5+5)

name                                           old INSTRUCTIONS/op     new INSTRUCTIONS/op     delta
BM_ArenaOneAlloc                                    189 ± 0%                189 ± 0%     ~             (p=0.881 n=5+5)
BM_ArenaInitialBlockOneAlloc                       69.0 ± 0%               69.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            458 ± 0%                458 ± 0%     ~             (p=1.000 n=5+5)
BM_ArenaFuseUnbalanced/8                          3.28k ±15%              3.60k ± 0%     ~             (p=0.286 n=5+4)
BM_ArenaFuseUnbalanced/64                         28.6k ± 2%              29.2k ± 0%   +2.17%          (p=0.032 n=5+4)
BM_ArenaFuseUnbalanced/128                        57.9k ± 1%              57.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/2                              482 ± 0%                482 ± 0%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/8                            3.35k ±14%              3.35k ±14%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/64                           29.2k ± 2%              29.3k ± 1%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          59.2k ± 1%              59.3k ± 1%     ~             (p=0.556 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                37.3M ± 0%              38.2M ± 0%   +2.39%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              40.9M ± 0%              41.7M ± 0%   +2.02%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             87.2M ± 0%              88.3M ± 1%   +1.25%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           88.0M ± 0%              88.9M ± 1%   +1.13%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              154k ± 0%               154k ± 0%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>             143k ± 0%               143k ± 0%     ~             (p=0.310 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>             153k ± 0%               153k ± 0%     ~             (p=1.016 n=5+4)
BM_Parse_Upb_FileDesc<InitBlock, Alias>            142k ± 0%               142k ± 0%     ~             (p=0.127 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>           213k ± 1%               217k ± 5%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          122k ± 0%               123k ± 0%   +0.86%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>         120k ± 0%               120k ± 0%     ~             (p=0.421 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>      124k ± 0%               124k ± 0%     ~             (p=0.587 n=5+5)
BM_SerializeDescriptor_Proto2                     63.5k ± 0%              63.5k ± 0%     ~             (p=0.278 n=5+5)
BM_SerializeDescriptor_Upb                         111k ± 0%               111k ± 0%     ~             (p=1.000 n=5+5)

name                                           old CYCLES/op           new CYCLES/op           delta
BM_ArenaOneAlloc                                   53.5 ± 0%               53.4 ± 0%     ~             (p=0.095 n=5+5)
BM_ArenaInitialBlockOneAlloc                       17.5 ± 1%               17.4 ± 0%     ~             (p=0.087 n=5+5)
BM_ArenaFuseUnbalanced/2                            206 ± 0%                206 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/8                          1.55k ±12%              1.67k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/64                         14.1k ± 8%              14.1k ± 1%     ~             (p=0.222 n=5+5)
BM_ArenaFuseUnbalanced/128                        28.2k ± 1%              28.3k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/2                              205 ± 0%                204 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/8                            1.57k ±12%              1.56k ±12%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/64                           13.9k ± 2%              13.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/128                          28.1k ± 1%              28.2k ± 1%     ~             (p=0.730 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                18.7M ± 0%              19.3M ± 1%   +3.38%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              20.9M ± 0%              21.6M ± 0%   +3.09%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             43.4M ± 0%              44.4M ± 1%   +2.33%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           44.0M ± 0%              44.9M ± 2%   +1.92%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>             42.0k ± 1%              43.0k ± 1%   +2.32%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>            38.2k ± 1%              38.4k ± 0%   +0.74%          (p=0.032 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>            41.6k ± 0%              42.6k ± 1%   +2.51%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>           37.6k ± 0%              38.1k ± 0%   +1.34%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          71.9k ± 1%              74.1k ± 6%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         35.4k ± 1%              35.8k ± 0%   +1.10%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>        34.6k ± 1%              34.9k ± 1%     ~             (p=0.095 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>     40.5k ± 0%              40.0k ± 1%   -1.36%          (p=0.008 n=5+5)
BM_SerializeDescriptor_Proto2                     20.1k ± 1%              19.7k ± 4%     ~             (p=0.421 n=5+5)
BM_SerializeDescriptor_Upb                        33.7k ± 0%              33.7k ± 0%     ~             (p=0.222 n=5+5)

name                                           old allocs/op           new allocs/op           delta
BM_ArenaOneAlloc                                   1.00 ± 0%               1.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                           2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                           8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                          64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                          128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                             2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                             8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                            64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                            128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                6.21k ± 0%              6.93k ± 0%  +11.54%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              6.54k ± 0%              6.96k ± 0%   +6.34%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>              124k ± 0%               124k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>            126k ± 0%               126k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>             7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>            709 ± 0%                709 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)

name                                           old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_ArenaOneAlloc                                    328 ± 0%                328 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                          2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                         21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                        42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                              656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                            2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                           21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                          42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                10.2M ± 0%              10.4M ± 0%   +1.15%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              10.5M ± 0%              10.5M ± 0%   +0.11%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             7.14M ± 0%              7.14M ± 0%     ~             (p=0.317 n=4+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           7.18M ± 0%              7.18M ± 0%     ~             (p=0.159 n=5+4)
BM_Parse_Upb_FileDesc<UseArena, Copy>             36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>            36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          35.4k ± 0%              35.4k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         65.3k ± 0%              65.3k ± 0%     ~     (all samples are equal)

name                                           old items/s             new items/s             delta
BM_ArenaFuseUnbalanced/2                          28.2M ±12%              31.7M ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          15.7M ± 2%              15.1M ±14%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                         13.7M ±18%              14.5M ± 9%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                        13.2M ±12%              14.8M ± 5%     ~             (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                            29.9M ±12%              32.0M ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            14.8M ±28%              16.5M ±22%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                           13.6M ±15%              15.1M ± 4%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          12.6M ±15%              14.9M ± 4%  +17.88%          (p=0.016 n=5+5)

name                                           old speed               new speed               delta
BM_LoadAdsDescriptor_Upb<NoLayout>              128MB/s ±11%            128MB/s ±14%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>            115MB/s ±12%            119MB/s ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>          52.9MB/s ±12%           57.6MB/s ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>        52.6MB/s ±14%           57.2MB/s ± 2%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>           527MB/s ±14%            571MB/s ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>          595MB/s ±11%            640MB/s ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>          553MB/s ±12%            582MB/s ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>         576MB/s ±12%            649MB/s ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>        307MB/s ±13%            334MB/s ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>       653MB/s ±13%            689MB/s ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>      650MB/s ±10%            708MB/s ± 3%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>   564MB/s ±12%            614MB/s ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                  1.15GB/s ±12%           1.25GB/s ± 5%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                      684MB/s ±12%            730MB/s ± 3%     ~             (p=1.000 n=5+5)
```

This adds about 5Ki of code size.  Some of this likely comes from the fact that we now link in `message/copy.c` to perform a deep copy of a FeatureSet proto.

```
$ /google/bin/releases/protobuf-team/bloaty/bloaty-google3-diff --blaze-build-opts="-c opt" third_party/upb/upb/conformance/conformance_upb
    FILE SIZE        VM SIZE
 --------------  --------------
  +0.5% +4.19Ki  +0.5% +4.19Ki    .text
  +0.4%    +656  +0.4%    +656    .rodata
  +0.1%    +504  [ = ]       0    .strtab
  +0.2%    +384  [ = ]       0    .symtab
  +0.2%    +280  +0.2%    +280    .eh_frame
  +0.2%    +216  +0.2%    +216    .rela.dyn
  +0.3%     +96  +0.3%     +96    .data.rel.ro
  +0.2%     +64  +0.2%     +64    .eh_frame_hdr
  +1.1%     +16  [ = ]       0    .got.plt
  +0.2%      +8  +0.2%      +8    .rela.plt
  -4.6%      -8  -4.6%      -8    [LOAD #2 [RX]]
 -50.0%     -48  [ = ]       0    [Unmapped]
  [ = ]       0 -81.7% -1.47Ki    .relro_padding
  +0.1% +6.30Ki  +0.0% +4.00Ki    TOTAL
```

PiperOrigin-RevId: 570106628
copybara-service bot pushed a commit that referenced this issue Nov 3, 2023
This switches upb to using legacy editions for all proto2/proto3 logic.  This does not yet enable code generation for editions protos (ie. we do not yet turn on `FEATURE_SUPPORTS_EDITIONS`), but with feature inheritance in place, this will be a much smaller follow-on change.

There is a ~10% increase in allocations, but only a ~1% increase in peak memory.  There are some <5% increases in instructions and cycles, but apparently no increase in time:

```
name                                           old cpu/op   new cpu/op   delta
BM_ArenaOneAlloc                                 17.8ns ±11%  16.9ns ±17%     ~     (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     5.99ns ±13%  5.35ns ± 2%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.4ns ±11%  63.1ns ± 3%     ~     (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          509ns ± 2%   532ns ±15%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.73µs ±20%  4.43µs ±10%     ~     (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.77µs ±12%  8.64µs ± 4%     ~     (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                           67.5ns ±13%  62.6ns ± 3%     ~     (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            552ns ±23%   496ns ±25%     ~     (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.76µs ±14%  4.24µs ± 4%     ~     (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                         10.2µs ±14%   8.6µs ± 4%  -15.61%  (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.20ms ±12%  6.18ms ±16%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.91ms ±12%  6.63ms ± 3%     ~     (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.0ms ±12%  13.7ms ± 3%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.1ms ±13%  13.8ms ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.4µs ±13%  13.2µs ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%  11.8µs ± 3%     ~     (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.7µs ±12%  12.9µs ± 3%     ~     (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.1µs ±11%  11.6µs ± 3%     ~     (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.7µs ±12%  22.6µs ± 8%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.6µs ±13%  10.9µs ± 2%     ~     (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±10%  10.6µs ± 3%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.4µs ±12%  12.3µs ± 4%     ~     (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.62µs ±13%  6.00µs ± 6%     ~     (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.1µs ±13%  10.3µs ± 3%     ~     (p=1.000 n=5+5)

name                                           old time/op             new time/op             delta
BM_ArenaOneAlloc                                 17.9ns ±12%             17.0ns ±17%     ~             (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     6.03ns ±14%             5.36ns ± 2%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.9ns ±12%             63.3ns ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          511ns ± 2%              533ns ±15%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.75µs ±20%             4.44µs ±10%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.83µs ±12%             8.66µs ± 4%     ~             (p=0.151 n=5+5)
BM_ArenaFuseBalanced/2                           67.8ns ±13%             62.7ns ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            555ns ±24%              497ns ±26%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.79µs ±14%             4.25µs ± 4%     ~             (p=0.310 n=5+5)
BM_ArenaFuseBalanced/128                         10.3µs ±14%              8.6µs ± 4%  -15.93%          (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.25ms ±12%             6.20ms ±16%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.96ms ±13%             6.65ms ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.2ms ±12%             13.7ms ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.3ms ±14%             13.8ms ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.5µs ±14%             13.2µs ± 3%     ~             (p=0.690 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%             11.8µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.8µs ±13%             13.0µs ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.2µs ±12%             11.6µs ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.9µs ±12%             22.6µs ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.7µs ±14%             10.9µs ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±11%             10.7µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.5µs ±12%             12.3µs ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.65µs ±13%             6.01µs ± 6%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.2µs ±13%             10.3µs ± 3%     ~             (p=1.000 n=5+5)

name                                           old INSTRUCTIONS/op     new INSTRUCTIONS/op     delta
BM_ArenaOneAlloc                                    189 ± 0%                189 ± 0%     ~             (p=0.881 n=5+5)
BM_ArenaInitialBlockOneAlloc                       69.0 ± 0%               69.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            458 ± 0%                458 ± 0%     ~             (p=1.000 n=5+5)
BM_ArenaFuseUnbalanced/8                          3.28k ±15%              3.60k ± 0%     ~             (p=0.286 n=5+4)
BM_ArenaFuseUnbalanced/64                         28.6k ± 2%              29.2k ± 0%   +2.17%          (p=0.032 n=5+4)
BM_ArenaFuseUnbalanced/128                        57.9k ± 1%              57.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/2                              482 ± 0%                482 ± 0%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/8                            3.35k ±14%              3.35k ±14%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/64                           29.2k ± 2%              29.3k ± 1%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          59.2k ± 1%              59.3k ± 1%     ~             (p=0.556 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                37.3M ± 0%              38.2M ± 0%   +2.39%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              40.9M ± 0%              41.7M ± 0%   +2.02%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             87.2M ± 0%              88.3M ± 1%   +1.25%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           88.0M ± 0%              88.9M ± 1%   +1.13%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              154k ± 0%               154k ± 0%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>             143k ± 0%               143k ± 0%     ~             (p=0.310 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>             153k ± 0%               153k ± 0%     ~             (p=1.016 n=5+4)
BM_Parse_Upb_FileDesc<InitBlock, Alias>            142k ± 0%               142k ± 0%     ~             (p=0.127 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>           213k ± 1%               217k ± 5%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          122k ± 0%               123k ± 0%   +0.86%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>         120k ± 0%               120k ± 0%     ~             (p=0.421 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>      124k ± 0%               124k ± 0%     ~             (p=0.587 n=5+5)
BM_SerializeDescriptor_Proto2                     63.5k ± 0%              63.5k ± 0%     ~             (p=0.278 n=5+5)
BM_SerializeDescriptor_Upb                         111k ± 0%               111k ± 0%     ~             (p=1.000 n=5+5)

name                                           old CYCLES/op           new CYCLES/op           delta
BM_ArenaOneAlloc                                   53.5 ± 0%               53.4 ± 0%     ~             (p=0.095 n=5+5)
BM_ArenaInitialBlockOneAlloc                       17.5 ± 1%               17.4 ± 0%     ~             (p=0.087 n=5+5)
BM_ArenaFuseUnbalanced/2                            206 ± 0%                206 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/8                          1.55k ±12%              1.67k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/64                         14.1k ± 8%              14.1k ± 1%     ~             (p=0.222 n=5+5)
BM_ArenaFuseUnbalanced/128                        28.2k ± 1%              28.3k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/2                              205 ± 0%                204 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/8                            1.57k ±12%              1.56k ±12%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/64                           13.9k ± 2%              13.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/128                          28.1k ± 1%              28.2k ± 1%     ~             (p=0.730 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                18.7M ± 0%              19.3M ± 1%   +3.38%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              20.9M ± 0%              21.6M ± 0%   +3.09%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             43.4M ± 0%              44.4M ± 1%   +2.33%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           44.0M ± 0%              44.9M ± 2%   +1.92%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>             42.0k ± 1%              43.0k ± 1%   +2.32%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>            38.2k ± 1%              38.4k ± 0%   +0.74%          (p=0.032 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>            41.6k ± 0%              42.6k ± 1%   +2.51%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>           37.6k ± 0%              38.1k ± 0%   +1.34%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          71.9k ± 1%              74.1k ± 6%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         35.4k ± 1%              35.8k ± 0%   +1.10%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>        34.6k ± 1%              34.9k ± 1%     ~             (p=0.095 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>     40.5k ± 0%              40.0k ± 1%   -1.36%          (p=0.008 n=5+5)
BM_SerializeDescriptor_Proto2                     20.1k ± 1%              19.7k ± 4%     ~             (p=0.421 n=5+5)
BM_SerializeDescriptor_Upb                        33.7k ± 0%              33.7k ± 0%     ~             (p=0.222 n=5+5)

name                                           old allocs/op           new allocs/op           delta
BM_ArenaOneAlloc                                   1.00 ± 0%               1.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                           2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                           8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                          64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                          128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                             2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                             8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                            64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                            128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                6.21k ± 0%              6.93k ± 0%  +11.54%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              6.54k ± 0%              6.96k ± 0%   +6.34%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>              124k ± 0%               124k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>            126k ± 0%               126k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>             7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>            709 ± 0%                709 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)

name                                           old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_ArenaOneAlloc                                    328 ± 0%                328 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                          2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                         21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                        42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                              656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                            2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                           21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                          42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                10.2M ± 0%              10.4M ± 0%   +1.15%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              10.5M ± 0%              10.5M ± 0%   +0.11%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             7.14M ± 0%              7.14M ± 0%     ~             (p=0.317 n=4+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           7.18M ± 0%              7.18M ± 0%     ~             (p=0.159 n=5+4)
BM_Parse_Upb_FileDesc<UseArena, Copy>             36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>            36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          35.4k ± 0%              35.4k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         65.3k ± 0%              65.3k ± 0%     ~     (all samples are equal)

name                                           old items/s             new items/s             delta
BM_ArenaFuseUnbalanced/2                          28.2M ±12%              31.7M ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          15.7M ± 2%              15.1M ±14%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                         13.7M ±18%              14.5M ± 9%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                        13.2M ±12%              14.8M ± 5%     ~             (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                            29.9M ±12%              32.0M ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            14.8M ±28%              16.5M ±22%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                           13.6M ±15%              15.1M ± 4%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          12.6M ±15%              14.9M ± 4%  +17.88%          (p=0.016 n=5+5)

name                                           old speed               new speed               delta
BM_LoadAdsDescriptor_Upb<NoLayout>              128MB/s ±11%            128MB/s ±14%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>            115MB/s ±12%            119MB/s ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>          52.9MB/s ±12%           57.6MB/s ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>        52.6MB/s ±14%           57.2MB/s ± 2%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>           527MB/s ±14%            571MB/s ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>          595MB/s ±11%            640MB/s ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>          553MB/s ±12%            582MB/s ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>         576MB/s ±12%            649MB/s ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>        307MB/s ±13%            334MB/s ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>       653MB/s ±13%            689MB/s ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>      650MB/s ±10%            708MB/s ± 3%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>   564MB/s ±12%            614MB/s ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                  1.15GB/s ±12%           1.25GB/s ± 5%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                      684MB/s ±12%            730MB/s ± 3%     ~             (p=1.000 n=5+5)
```

This adds about 5Ki of code size.  Some of this likely comes from the fact that we now link in `message/copy.c` to perform a deep copy of a FeatureSet proto.

```
$ /google/bin/releases/protobuf-team/bloaty/bloaty-google3-diff --blaze-build-opts="-c opt" third_party/upb/upb/conformance/conformance_upb
    FILE SIZE        VM SIZE
 --------------  --------------
  +0.5% +4.19Ki  +0.5% +4.19Ki    .text
  +0.4%    +656  +0.4%    +656    .rodata
  +0.1%    +504  [ = ]       0    .strtab
  +0.2%    +384  [ = ]       0    .symtab
  +0.2%    +280  +0.2%    +280    .eh_frame
  +0.2%    +216  +0.2%    +216    .rela.dyn
  +0.3%     +96  +0.3%     +96    .data.rel.ro
  +0.2%     +64  +0.2%     +64    .eh_frame_hdr
  +1.1%     +16  [ = ]       0    .got.plt
  +0.2%      +8  +0.2%      +8    .rela.plt
  -4.6%      -8  -4.6%      -8    [LOAD #2 [RX]]
 -50.0%     -48  [ = ]       0    [Unmapped]
  [ = ]       0 -81.7% -1.47Ki    .relro_padding
  +0.1% +6.30Ki  +0.0% +4.00Ki    TOTAL
```

PiperOrigin-RevId: 570106628
copybara-service bot pushed a commit that referenced this issue Nov 3, 2023
This switches upb to using legacy editions for all proto2/proto3 logic.  This does not yet enable code generation for editions protos (ie. we do not yet turn on `FEATURE_SUPPORTS_EDITIONS`), but with feature inheritance in place, this will be a much smaller follow-on change.

There is a ~10% increase in allocations, but only a ~1% increase in peak memory.  There are some <5% increases in instructions and cycles, but apparently no increase in time:

```
name                                           old cpu/op   new cpu/op   delta
BM_ArenaOneAlloc                                 17.8ns ±11%  16.9ns ±17%     ~     (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     5.99ns ±13%  5.35ns ± 2%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.4ns ±11%  63.1ns ± 3%     ~     (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          509ns ± 2%   532ns ±15%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.73µs ±20%  4.43µs ±10%     ~     (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.77µs ±12%  8.64µs ± 4%     ~     (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                           67.5ns ±13%  62.6ns ± 3%     ~     (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            552ns ±23%   496ns ±25%     ~     (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.76µs ±14%  4.24µs ± 4%     ~     (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                         10.2µs ±14%   8.6µs ± 4%  -15.61%  (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.20ms ±12%  6.18ms ±16%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.91ms ±12%  6.63ms ± 3%     ~     (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.0ms ±12%  13.7ms ± 3%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.1ms ±13%  13.8ms ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.4µs ±13%  13.2µs ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%  11.8µs ± 3%     ~     (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.7µs ±12%  12.9µs ± 3%     ~     (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.1µs ±11%  11.6µs ± 3%     ~     (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.7µs ±12%  22.6µs ± 8%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.6µs ±13%  10.9µs ± 2%     ~     (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±10%  10.6µs ± 3%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.4µs ±12%  12.3µs ± 4%     ~     (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.62µs ±13%  6.00µs ± 6%     ~     (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.1µs ±13%  10.3µs ± 3%     ~     (p=1.000 n=5+5)

name                                           old time/op             new time/op             delta
BM_ArenaOneAlloc                                 17.9ns ±12%             17.0ns ±17%     ~             (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     6.03ns ±14%             5.36ns ± 2%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.9ns ±12%             63.3ns ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          511ns ± 2%              533ns ±15%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.75µs ±20%             4.44µs ±10%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.83µs ±12%             8.66µs ± 4%     ~             (p=0.151 n=5+5)
BM_ArenaFuseBalanced/2                           67.8ns ±13%             62.7ns ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            555ns ±24%              497ns ±26%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.79µs ±14%             4.25µs ± 4%     ~             (p=0.310 n=5+5)
BM_ArenaFuseBalanced/128                         10.3µs ±14%              8.6µs ± 4%  -15.93%          (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.25ms ±12%             6.20ms ±16%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.96ms ±13%             6.65ms ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.2ms ±12%             13.7ms ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.3ms ±14%             13.8ms ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.5µs ±14%             13.2µs ± 3%     ~             (p=0.690 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%             11.8µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.8µs ±13%             13.0µs ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.2µs ±12%             11.6µs ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.9µs ±12%             22.6µs ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.7µs ±14%             10.9µs ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±11%             10.7µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.5µs ±12%             12.3µs ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.65µs ±13%             6.01µs ± 6%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.2µs ±13%             10.3µs ± 3%     ~             (p=1.000 n=5+5)

name                                           old INSTRUCTIONS/op     new INSTRUCTIONS/op     delta
BM_ArenaOneAlloc                                    189 ± 0%                189 ± 0%     ~             (p=0.881 n=5+5)
BM_ArenaInitialBlockOneAlloc                       69.0 ± 0%               69.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            458 ± 0%                458 ± 0%     ~             (p=1.000 n=5+5)
BM_ArenaFuseUnbalanced/8                          3.28k ±15%              3.60k ± 0%     ~             (p=0.286 n=5+4)
BM_ArenaFuseUnbalanced/64                         28.6k ± 2%              29.2k ± 0%   +2.17%          (p=0.032 n=5+4)
BM_ArenaFuseUnbalanced/128                        57.9k ± 1%              57.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/2                              482 ± 0%                482 ± 0%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/8                            3.35k ±14%              3.35k ±14%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/64                           29.2k ± 2%              29.3k ± 1%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          59.2k ± 1%              59.3k ± 1%     ~             (p=0.556 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                37.3M ± 0%              38.2M ± 0%   +2.39%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              40.9M ± 0%              41.7M ± 0%   +2.02%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             87.2M ± 0%              88.3M ± 1%   +1.25%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           88.0M ± 0%              88.9M ± 1%   +1.13%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              154k ± 0%               154k ± 0%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>             143k ± 0%               143k ± 0%     ~             (p=0.310 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>             153k ± 0%               153k ± 0%     ~             (p=1.016 n=5+4)
BM_Parse_Upb_FileDesc<InitBlock, Alias>            142k ± 0%               142k ± 0%     ~             (p=0.127 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>           213k ± 1%               217k ± 5%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          122k ± 0%               123k ± 0%   +0.86%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>         120k ± 0%               120k ± 0%     ~             (p=0.421 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>      124k ± 0%               124k ± 0%     ~             (p=0.587 n=5+5)
BM_SerializeDescriptor_Proto2                     63.5k ± 0%              63.5k ± 0%     ~             (p=0.278 n=5+5)
BM_SerializeDescriptor_Upb                         111k ± 0%               111k ± 0%     ~             (p=1.000 n=5+5)

name                                           old CYCLES/op           new CYCLES/op           delta
BM_ArenaOneAlloc                                   53.5 ± 0%               53.4 ± 0%     ~             (p=0.095 n=5+5)
BM_ArenaInitialBlockOneAlloc                       17.5 ± 1%               17.4 ± 0%     ~             (p=0.087 n=5+5)
BM_ArenaFuseUnbalanced/2                            206 ± 0%                206 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/8                          1.55k ±12%              1.67k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/64                         14.1k ± 8%              14.1k ± 1%     ~             (p=0.222 n=5+5)
BM_ArenaFuseUnbalanced/128                        28.2k ± 1%              28.3k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/2                              205 ± 0%                204 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/8                            1.57k ±12%              1.56k ±12%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/64                           13.9k ± 2%              13.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/128                          28.1k ± 1%              28.2k ± 1%     ~             (p=0.730 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                18.7M ± 0%              19.3M ± 1%   +3.38%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              20.9M ± 0%              21.6M ± 0%   +3.09%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             43.4M ± 0%              44.4M ± 1%   +2.33%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           44.0M ± 0%              44.9M ± 2%   +1.92%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>             42.0k ± 1%              43.0k ± 1%   +2.32%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>            38.2k ± 1%              38.4k ± 0%   +0.74%          (p=0.032 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>            41.6k ± 0%              42.6k ± 1%   +2.51%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>           37.6k ± 0%              38.1k ± 0%   +1.34%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          71.9k ± 1%              74.1k ± 6%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         35.4k ± 1%              35.8k ± 0%   +1.10%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>        34.6k ± 1%              34.9k ± 1%     ~             (p=0.095 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>     40.5k ± 0%              40.0k ± 1%   -1.36%          (p=0.008 n=5+5)
BM_SerializeDescriptor_Proto2                     20.1k ± 1%              19.7k ± 4%     ~             (p=0.421 n=5+5)
BM_SerializeDescriptor_Upb                        33.7k ± 0%              33.7k ± 0%     ~             (p=0.222 n=5+5)

name                                           old allocs/op           new allocs/op           delta
BM_ArenaOneAlloc                                   1.00 ± 0%               1.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                           2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                           8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                          64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                          128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                             2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                             8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                            64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                            128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                6.21k ± 0%              6.93k ± 0%  +11.54%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              6.54k ± 0%              6.96k ± 0%   +6.34%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>              124k ± 0%               124k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>            126k ± 0%               126k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>             7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>            709 ± 0%                709 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)

name                                           old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_ArenaOneAlloc                                    328 ± 0%                328 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                          2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                         21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                        42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                              656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                            2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                           21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                          42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                10.2M ± 0%              10.4M ± 0%   +1.15%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              10.5M ± 0%              10.5M ± 0%   +0.11%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             7.14M ± 0%              7.14M ± 0%     ~             (p=0.317 n=4+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           7.18M ± 0%              7.18M ± 0%     ~             (p=0.159 n=5+4)
BM_Parse_Upb_FileDesc<UseArena, Copy>             36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>            36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          35.4k ± 0%              35.4k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         65.3k ± 0%              65.3k ± 0%     ~     (all samples are equal)

name                                           old items/s             new items/s             delta
BM_ArenaFuseUnbalanced/2                          28.2M ±12%              31.7M ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          15.7M ± 2%              15.1M ±14%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                         13.7M ±18%              14.5M ± 9%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                        13.2M ±12%              14.8M ± 5%     ~             (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                            29.9M ±12%              32.0M ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            14.8M ±28%              16.5M ±22%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                           13.6M ±15%              15.1M ± 4%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          12.6M ±15%              14.9M ± 4%  +17.88%          (p=0.016 n=5+5)

name                                           old speed               new speed               delta
BM_LoadAdsDescriptor_Upb<NoLayout>              128MB/s ±11%            128MB/s ±14%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>            115MB/s ±12%            119MB/s ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>          52.9MB/s ±12%           57.6MB/s ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>        52.6MB/s ±14%           57.2MB/s ± 2%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>           527MB/s ±14%            571MB/s ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>          595MB/s ±11%            640MB/s ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>          553MB/s ±12%            582MB/s ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>         576MB/s ±12%            649MB/s ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>        307MB/s ±13%            334MB/s ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>       653MB/s ±13%            689MB/s ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>      650MB/s ±10%            708MB/s ± 3%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>   564MB/s ±12%            614MB/s ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                  1.15GB/s ±12%           1.25GB/s ± 5%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                      684MB/s ±12%            730MB/s ± 3%     ~             (p=1.000 n=5+5)
```

This adds about 5Ki of code size.  Some of this likely comes from the fact that we now link in `message/copy.c` to perform a deep copy of a FeatureSet proto.

```
$ /google/bin/releases/protobuf-team/bloaty/bloaty-google3-diff --blaze-build-opts="-c opt" third_party/upb/upb/conformance/conformance_upb
    FILE SIZE        VM SIZE
 --------------  --------------
  +0.5% +4.19Ki  +0.5% +4.19Ki    .text
  +0.4%    +656  +0.4%    +656    .rodata
  +0.1%    +504  [ = ]       0    .strtab
  +0.2%    +384  [ = ]       0    .symtab
  +0.2%    +280  +0.2%    +280    .eh_frame
  +0.2%    +216  +0.2%    +216    .rela.dyn
  +0.3%     +96  +0.3%     +96    .data.rel.ro
  +0.2%     +64  +0.2%     +64    .eh_frame_hdr
  +1.1%     +16  [ = ]       0    .got.plt
  +0.2%      +8  +0.2%      +8    .rela.plt
  -4.6%      -8  -4.6%      -8    [LOAD #2 [RX]]
 -50.0%     -48  [ = ]       0    [Unmapped]
  [ = ]       0 -81.7% -1.47Ki    .relro_padding
  +0.1% +6.30Ki  +0.0% +4.00Ki    TOTAL
```

PiperOrigin-RevId: 570106628
copybara-service bot pushed a commit that referenced this issue Nov 3, 2023
This switches upb to using legacy editions for all proto2/proto3 logic.  This does not yet enable code generation for editions protos (ie. we do not yet turn on `FEATURE_SUPPORTS_EDITIONS`), but with feature inheritance in place, this will be a much smaller follow-on change.

There is a ~10% increase in allocations, but only a ~1% increase in peak memory.  There are some <5% increases in instructions and cycles, but apparently no increase in time:

```
name                                           old cpu/op   new cpu/op   delta
BM_ArenaOneAlloc                                 17.8ns ±11%  16.9ns ±17%     ~     (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     5.99ns ±13%  5.35ns ± 2%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.4ns ±11%  63.1ns ± 3%     ~     (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          509ns ± 2%   532ns ±15%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.73µs ±20%  4.43µs ±10%     ~     (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.77µs ±12%  8.64µs ± 4%     ~     (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                           67.5ns ±13%  62.6ns ± 3%     ~     (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            552ns ±23%   496ns ±25%     ~     (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.76µs ±14%  4.24µs ± 4%     ~     (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                         10.2µs ±14%   8.6µs ± 4%  -15.61%  (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.20ms ±12%  6.18ms ±16%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.91ms ±12%  6.63ms ± 3%     ~     (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.0ms ±12%  13.7ms ± 3%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.1ms ±13%  13.8ms ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.4µs ±13%  13.2µs ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%  11.8µs ± 3%     ~     (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.7µs ±12%  12.9µs ± 3%     ~     (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.1µs ±11%  11.6µs ± 3%     ~     (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.7µs ±12%  22.6µs ± 8%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.6µs ±13%  10.9µs ± 2%     ~     (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±10%  10.6µs ± 3%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.4µs ±12%  12.3µs ± 4%     ~     (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.62µs ±13%  6.00µs ± 6%     ~     (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.1µs ±13%  10.3µs ± 3%     ~     (p=1.000 n=5+5)

name                                           old time/op             new time/op             delta
BM_ArenaOneAlloc                                 17.9ns ±12%             17.0ns ±17%     ~             (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     6.03ns ±14%             5.36ns ± 2%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.9ns ±12%             63.3ns ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          511ns ± 2%              533ns ±15%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.75µs ±20%             4.44µs ±10%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.83µs ±12%             8.66µs ± 4%     ~             (p=0.151 n=5+5)
BM_ArenaFuseBalanced/2                           67.8ns ±13%             62.7ns ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            555ns ±24%              497ns ±26%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.79µs ±14%             4.25µs ± 4%     ~             (p=0.310 n=5+5)
BM_ArenaFuseBalanced/128                         10.3µs ±14%              8.6µs ± 4%  -15.93%          (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.25ms ±12%             6.20ms ±16%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.96ms ±13%             6.65ms ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.2ms ±12%             13.7ms ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.3ms ±14%             13.8ms ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.5µs ±14%             13.2µs ± 3%     ~             (p=0.690 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%             11.8µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.8µs ±13%             13.0µs ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.2µs ±12%             11.6µs ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.9µs ±12%             22.6µs ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.7µs ±14%             10.9µs ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±11%             10.7µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.5µs ±12%             12.3µs ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.65µs ±13%             6.01µs ± 6%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.2µs ±13%             10.3µs ± 3%     ~             (p=1.000 n=5+5)

name                                           old INSTRUCTIONS/op     new INSTRUCTIONS/op     delta
BM_ArenaOneAlloc                                    189 ± 0%                189 ± 0%     ~             (p=0.881 n=5+5)
BM_ArenaInitialBlockOneAlloc                       69.0 ± 0%               69.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            458 ± 0%                458 ± 0%     ~             (p=1.000 n=5+5)
BM_ArenaFuseUnbalanced/8                          3.28k ±15%              3.60k ± 0%     ~             (p=0.286 n=5+4)
BM_ArenaFuseUnbalanced/64                         28.6k ± 2%              29.2k ± 0%   +2.17%          (p=0.032 n=5+4)
BM_ArenaFuseUnbalanced/128                        57.9k ± 1%              57.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/2                              482 ± 0%                482 ± 0%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/8                            3.35k ±14%              3.35k ±14%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/64                           29.2k ± 2%              29.3k ± 1%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          59.2k ± 1%              59.3k ± 1%     ~             (p=0.556 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                37.3M ± 0%              38.2M ± 0%   +2.39%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              40.9M ± 0%              41.7M ± 0%   +2.02%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             87.2M ± 0%              88.3M ± 1%   +1.25%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           88.0M ± 0%              88.9M ± 1%   +1.13%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              154k ± 0%               154k ± 0%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>             143k ± 0%               143k ± 0%     ~             (p=0.310 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>             153k ± 0%               153k ± 0%     ~             (p=1.016 n=5+4)
BM_Parse_Upb_FileDesc<InitBlock, Alias>            142k ± 0%               142k ± 0%     ~             (p=0.127 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>           213k ± 1%               217k ± 5%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          122k ± 0%               123k ± 0%   +0.86%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>         120k ± 0%               120k ± 0%     ~             (p=0.421 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>      124k ± 0%               124k ± 0%     ~             (p=0.587 n=5+5)
BM_SerializeDescriptor_Proto2                     63.5k ± 0%              63.5k ± 0%     ~             (p=0.278 n=5+5)
BM_SerializeDescriptor_Upb                         111k ± 0%               111k ± 0%     ~             (p=1.000 n=5+5)

name                                           old CYCLES/op           new CYCLES/op           delta
BM_ArenaOneAlloc                                   53.5 ± 0%               53.4 ± 0%     ~             (p=0.095 n=5+5)
BM_ArenaInitialBlockOneAlloc                       17.5 ± 1%               17.4 ± 0%     ~             (p=0.087 n=5+5)
BM_ArenaFuseUnbalanced/2                            206 ± 0%                206 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/8                          1.55k ±12%              1.67k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/64                         14.1k ± 8%              14.1k ± 1%     ~             (p=0.222 n=5+5)
BM_ArenaFuseUnbalanced/128                        28.2k ± 1%              28.3k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/2                              205 ± 0%                204 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/8                            1.57k ±12%              1.56k ±12%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/64                           13.9k ± 2%              13.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/128                          28.1k ± 1%              28.2k ± 1%     ~             (p=0.730 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                18.7M ± 0%              19.3M ± 1%   +3.38%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              20.9M ± 0%              21.6M ± 0%   +3.09%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             43.4M ± 0%              44.4M ± 1%   +2.33%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           44.0M ± 0%              44.9M ± 2%   +1.92%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>             42.0k ± 1%              43.0k ± 1%   +2.32%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>            38.2k ± 1%              38.4k ± 0%   +0.74%          (p=0.032 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>            41.6k ± 0%              42.6k ± 1%   +2.51%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>           37.6k ± 0%              38.1k ± 0%   +1.34%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          71.9k ± 1%              74.1k ± 6%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         35.4k ± 1%              35.8k ± 0%   +1.10%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>        34.6k ± 1%              34.9k ± 1%     ~             (p=0.095 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>     40.5k ± 0%              40.0k ± 1%   -1.36%          (p=0.008 n=5+5)
BM_SerializeDescriptor_Proto2                     20.1k ± 1%              19.7k ± 4%     ~             (p=0.421 n=5+5)
BM_SerializeDescriptor_Upb                        33.7k ± 0%              33.7k ± 0%     ~             (p=0.222 n=5+5)

name                                           old allocs/op           new allocs/op           delta
BM_ArenaOneAlloc                                   1.00 ± 0%               1.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                           2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                           8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                          64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                          128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                             2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                             8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                            64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                            128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                6.21k ± 0%              6.93k ± 0%  +11.54%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              6.54k ± 0%              6.96k ± 0%   +6.34%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>              124k ± 0%               124k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>            126k ± 0%               126k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>             7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>            709 ± 0%                709 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)

name                                           old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_ArenaOneAlloc                                    328 ± 0%                328 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                          2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                         21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                        42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                              656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                            2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                           21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                          42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                10.2M ± 0%              10.4M ± 0%   +1.15%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              10.5M ± 0%              10.5M ± 0%   +0.11%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             7.14M ± 0%              7.14M ± 0%     ~             (p=0.317 n=4+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           7.18M ± 0%              7.18M ± 0%     ~             (p=0.159 n=5+4)
BM_Parse_Upb_FileDesc<UseArena, Copy>             36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>            36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          35.4k ± 0%              35.4k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         65.3k ± 0%              65.3k ± 0%     ~     (all samples are equal)

name                                           old items/s             new items/s             delta
BM_ArenaFuseUnbalanced/2                          28.2M ±12%              31.7M ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          15.7M ± 2%              15.1M ±14%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                         13.7M ±18%              14.5M ± 9%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                        13.2M ±12%              14.8M ± 5%     ~             (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                            29.9M ±12%              32.0M ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            14.8M ±28%              16.5M ±22%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                           13.6M ±15%              15.1M ± 4%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          12.6M ±15%              14.9M ± 4%  +17.88%          (p=0.016 n=5+5)

name                                           old speed               new speed               delta
BM_LoadAdsDescriptor_Upb<NoLayout>              128MB/s ±11%            128MB/s ±14%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>            115MB/s ±12%            119MB/s ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>          52.9MB/s ±12%           57.6MB/s ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>        52.6MB/s ±14%           57.2MB/s ± 2%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>           527MB/s ±14%            571MB/s ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>          595MB/s ±11%            640MB/s ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>          553MB/s ±12%            582MB/s ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>         576MB/s ±12%            649MB/s ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>        307MB/s ±13%            334MB/s ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>       653MB/s ±13%            689MB/s ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>      650MB/s ±10%            708MB/s ± 3%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>   564MB/s ±12%            614MB/s ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                  1.15GB/s ±12%           1.25GB/s ± 5%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                      684MB/s ±12%            730MB/s ± 3%     ~             (p=1.000 n=5+5)
```

This adds about 5Ki of code size.  Some of this likely comes from the fact that we now link in `message/copy.c` to perform a deep copy of a FeatureSet proto.

```
$ /google/bin/releases/protobuf-team/bloaty/bloaty-google3-diff --blaze-build-opts="-c opt" third_party/upb/upb/conformance/conformance_upb
    FILE SIZE        VM SIZE
 --------------  --------------
  +0.5% +4.19Ki  +0.5% +4.19Ki    .text
  +0.4%    +656  +0.4%    +656    .rodata
  +0.1%    +504  [ = ]       0    .strtab
  +0.2%    +384  [ = ]       0    .symtab
  +0.2%    +280  +0.2%    +280    .eh_frame
  +0.2%    +216  +0.2%    +216    .rela.dyn
  +0.3%     +96  +0.3%     +96    .data.rel.ro
  +0.2%     +64  +0.2%     +64    .eh_frame_hdr
  +1.1%     +16  [ = ]       0    .got.plt
  +0.2%      +8  +0.2%      +8    .rela.plt
  -4.6%      -8  -4.6%      -8    [LOAD #2 [RX]]
 -50.0%     -48  [ = ]       0    [Unmapped]
  [ = ]       0 -81.7% -1.47Ki    .relro_padding
  +0.1% +6.30Ki  +0.0% +4.00Ki    TOTAL
```

PiperOrigin-RevId: 570106628
copybara-service bot pushed a commit that referenced this issue Nov 3, 2023
This switches upb to using legacy editions for all proto2/proto3 logic.  This does not yet enable code generation for editions protos (ie. we do not yet turn on `FEATURE_SUPPORTS_EDITIONS`), but with feature inheritance in place, this will be a much smaller follow-on change.

There is a ~10% increase in allocations, but only a ~1% increase in peak memory.  There are some <5% increases in instructions and cycles, but apparently no increase in time:

```
name                                           old cpu/op   new cpu/op   delta
BM_ArenaOneAlloc                                 17.8ns ±11%  16.9ns ±17%     ~     (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     5.99ns ±13%  5.35ns ± 2%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.4ns ±11%  63.1ns ± 3%     ~     (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          509ns ± 2%   532ns ±15%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.73µs ±20%  4.43µs ±10%     ~     (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.77µs ±12%  8.64µs ± 4%     ~     (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                           67.5ns ±13%  62.6ns ± 3%     ~     (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            552ns ±23%   496ns ±25%     ~     (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.76µs ±14%  4.24µs ± 4%     ~     (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                         10.2µs ±14%   8.6µs ± 4%  -15.61%  (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.20ms ±12%  6.18ms ±16%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.91ms ±12%  6.63ms ± 3%     ~     (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.0ms ±12%  13.7ms ± 3%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.1ms ±13%  13.8ms ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.4µs ±13%  13.2µs ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%  11.8µs ± 3%     ~     (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.7µs ±12%  12.9µs ± 3%     ~     (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.1µs ±11%  11.6µs ± 3%     ~     (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.7µs ±12%  22.6µs ± 8%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.6µs ±13%  10.9µs ± 2%     ~     (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±10%  10.6µs ± 3%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.4µs ±12%  12.3µs ± 4%     ~     (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.62µs ±13%  6.00µs ± 6%     ~     (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.1µs ±13%  10.3µs ± 3%     ~     (p=1.000 n=5+5)

name                                           old time/op             new time/op             delta
BM_ArenaOneAlloc                                 17.9ns ±12%             17.0ns ±17%     ~             (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     6.03ns ±14%             5.36ns ± 2%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.9ns ±12%             63.3ns ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          511ns ± 2%              533ns ±15%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.75µs ±20%             4.44µs ±10%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.83µs ±12%             8.66µs ± 4%     ~             (p=0.151 n=5+5)
BM_ArenaFuseBalanced/2                           67.8ns ±13%             62.7ns ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            555ns ±24%              497ns ±26%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.79µs ±14%             4.25µs ± 4%     ~             (p=0.310 n=5+5)
BM_ArenaFuseBalanced/128                         10.3µs ±14%              8.6µs ± 4%  -15.93%          (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.25ms ±12%             6.20ms ±16%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.96ms ±13%             6.65ms ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.2ms ±12%             13.7ms ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.3ms ±14%             13.8ms ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.5µs ±14%             13.2µs ± 3%     ~             (p=0.690 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%             11.8µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.8µs ±13%             13.0µs ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.2µs ±12%             11.6µs ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.9µs ±12%             22.6µs ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.7µs ±14%             10.9µs ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±11%             10.7µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.5µs ±12%             12.3µs ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.65µs ±13%             6.01µs ± 6%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.2µs ±13%             10.3µs ± 3%     ~             (p=1.000 n=5+5)

name                                           old INSTRUCTIONS/op     new INSTRUCTIONS/op     delta
BM_ArenaOneAlloc                                    189 ± 0%                189 ± 0%     ~             (p=0.881 n=5+5)
BM_ArenaInitialBlockOneAlloc                       69.0 ± 0%               69.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            458 ± 0%                458 ± 0%     ~             (p=1.000 n=5+5)
BM_ArenaFuseUnbalanced/8                          3.28k ±15%              3.60k ± 0%     ~             (p=0.286 n=5+4)
BM_ArenaFuseUnbalanced/64                         28.6k ± 2%              29.2k ± 0%   +2.17%          (p=0.032 n=5+4)
BM_ArenaFuseUnbalanced/128                        57.9k ± 1%              57.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/2                              482 ± 0%                482 ± 0%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/8                            3.35k ±14%              3.35k ±14%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/64                           29.2k ± 2%              29.3k ± 1%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          59.2k ± 1%              59.3k ± 1%     ~             (p=0.556 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                37.3M ± 0%              38.2M ± 0%   +2.39%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              40.9M ± 0%              41.7M ± 0%   +2.02%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             87.2M ± 0%              88.3M ± 1%   +1.25%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           88.0M ± 0%              88.9M ± 1%   +1.13%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              154k ± 0%               154k ± 0%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>             143k ± 0%               143k ± 0%     ~             (p=0.310 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>             153k ± 0%               153k ± 0%     ~             (p=1.016 n=5+4)
BM_Parse_Upb_FileDesc<InitBlock, Alias>            142k ± 0%               142k ± 0%     ~             (p=0.127 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>           213k ± 1%               217k ± 5%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          122k ± 0%               123k ± 0%   +0.86%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>         120k ± 0%               120k ± 0%     ~             (p=0.421 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>      124k ± 0%               124k ± 0%     ~             (p=0.587 n=5+5)
BM_SerializeDescriptor_Proto2                     63.5k ± 0%              63.5k ± 0%     ~             (p=0.278 n=5+5)
BM_SerializeDescriptor_Upb                         111k ± 0%               111k ± 0%     ~             (p=1.000 n=5+5)

name                                           old CYCLES/op           new CYCLES/op           delta
BM_ArenaOneAlloc                                   53.5 ± 0%               53.4 ± 0%     ~             (p=0.095 n=5+5)
BM_ArenaInitialBlockOneAlloc                       17.5 ± 1%               17.4 ± 0%     ~             (p=0.087 n=5+5)
BM_ArenaFuseUnbalanced/2                            206 ± 0%                206 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/8                          1.55k ±12%              1.67k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/64                         14.1k ± 8%              14.1k ± 1%     ~             (p=0.222 n=5+5)
BM_ArenaFuseUnbalanced/128                        28.2k ± 1%              28.3k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/2                              205 ± 0%                204 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/8                            1.57k ±12%              1.56k ±12%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/64                           13.9k ± 2%              13.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/128                          28.1k ± 1%              28.2k ± 1%     ~             (p=0.730 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                18.7M ± 0%              19.3M ± 1%   +3.38%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              20.9M ± 0%              21.6M ± 0%   +3.09%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             43.4M ± 0%              44.4M ± 1%   +2.33%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           44.0M ± 0%              44.9M ± 2%   +1.92%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>             42.0k ± 1%              43.0k ± 1%   +2.32%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>            38.2k ± 1%              38.4k ± 0%   +0.74%          (p=0.032 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>            41.6k ± 0%              42.6k ± 1%   +2.51%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>           37.6k ± 0%              38.1k ± 0%   +1.34%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          71.9k ± 1%              74.1k ± 6%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         35.4k ± 1%              35.8k ± 0%   +1.10%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>        34.6k ± 1%              34.9k ± 1%     ~             (p=0.095 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>     40.5k ± 0%              40.0k ± 1%   -1.36%          (p=0.008 n=5+5)
BM_SerializeDescriptor_Proto2                     20.1k ± 1%              19.7k ± 4%     ~             (p=0.421 n=5+5)
BM_SerializeDescriptor_Upb                        33.7k ± 0%              33.7k ± 0%     ~             (p=0.222 n=5+5)

name                                           old allocs/op           new allocs/op           delta
BM_ArenaOneAlloc                                   1.00 ± 0%               1.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                           2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                           8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                          64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                          128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                             2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                             8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                            64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                            128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                6.21k ± 0%              6.93k ± 0%  +11.54%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              6.54k ± 0%              6.96k ± 0%   +6.34%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>              124k ± 0%               124k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>            126k ± 0%               126k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>             7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>            709 ± 0%                709 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)

name                                           old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_ArenaOneAlloc                                    328 ± 0%                328 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                          2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                         21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                        42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                              656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                            2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                           21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                          42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                10.2M ± 0%              10.4M ± 0%   +1.15%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              10.5M ± 0%              10.5M ± 0%   +0.11%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             7.14M ± 0%              7.14M ± 0%     ~             (p=0.317 n=4+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           7.18M ± 0%              7.18M ± 0%     ~             (p=0.159 n=5+4)
BM_Parse_Upb_FileDesc<UseArena, Copy>             36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>            36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          35.4k ± 0%              35.4k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         65.3k ± 0%              65.3k ± 0%     ~     (all samples are equal)

name                                           old items/s             new items/s             delta
BM_ArenaFuseUnbalanced/2                          28.2M ±12%              31.7M ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          15.7M ± 2%              15.1M ±14%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                         13.7M ±18%              14.5M ± 9%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                        13.2M ±12%              14.8M ± 5%     ~             (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                            29.9M ±12%              32.0M ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            14.8M ±28%              16.5M ±22%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                           13.6M ±15%              15.1M ± 4%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          12.6M ±15%              14.9M ± 4%  +17.88%          (p=0.016 n=5+5)

name                                           old speed               new speed               delta
BM_LoadAdsDescriptor_Upb<NoLayout>              128MB/s ±11%            128MB/s ±14%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>            115MB/s ±12%            119MB/s ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>          52.9MB/s ±12%           57.6MB/s ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>        52.6MB/s ±14%           57.2MB/s ± 2%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>           527MB/s ±14%            571MB/s ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>          595MB/s ±11%            640MB/s ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>          553MB/s ±12%            582MB/s ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>         576MB/s ±12%            649MB/s ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>        307MB/s ±13%            334MB/s ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>       653MB/s ±13%            689MB/s ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>      650MB/s ±10%            708MB/s ± 3%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>   564MB/s ±12%            614MB/s ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                  1.15GB/s ±12%           1.25GB/s ± 5%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                      684MB/s ±12%            730MB/s ± 3%     ~             (p=1.000 n=5+5)
```

This adds about 5Ki of code size.  Some of this likely comes from the fact that we now link in `message/copy.c` to perform a deep copy of a FeatureSet proto.

```
$ /google/bin/releases/protobuf-team/bloaty/bloaty-google3-diff --blaze-build-opts="-c opt" third_party/upb/upb/conformance/conformance_upb
    FILE SIZE        VM SIZE
 --------------  --------------
  +0.5% +4.19Ki  +0.5% +4.19Ki    .text
  +0.4%    +656  +0.4%    +656    .rodata
  +0.1%    +504  [ = ]       0    .strtab
  +0.2%    +384  [ = ]       0    .symtab
  +0.2%    +280  +0.2%    +280    .eh_frame
  +0.2%    +216  +0.2%    +216    .rela.dyn
  +0.3%     +96  +0.3%     +96    .data.rel.ro
  +0.2%     +64  +0.2%     +64    .eh_frame_hdr
  +1.1%     +16  [ = ]       0    .got.plt
  +0.2%      +8  +0.2%      +8    .rela.plt
  -4.6%      -8  -4.6%      -8    [LOAD #2 [RX]]
 -50.0%     -48  [ = ]       0    [Unmapped]
  [ = ]       0 -81.7% -1.47Ki    .relro_padding
  +0.1% +6.30Ki  +0.0% +4.00Ki    TOTAL
```

PiperOrigin-RevId: 570106628
copybara-service bot pushed a commit that referenced this issue Nov 3, 2023
This switches upb to using legacy editions for all proto2/proto3 logic.  This does not yet enable code generation for editions protos (ie. we do not yet turn on `FEATURE_SUPPORTS_EDITIONS`), but with feature inheritance in place, this will be a much smaller follow-on change.

There is a ~10% increase in allocations, but only a ~1% increase in peak memory.  There are some <5% increases in instructions and cycles, but apparently no increase in time:

```
name                                           old cpu/op   new cpu/op   delta
BM_ArenaOneAlloc                                 17.8ns ±11%  16.9ns ±17%     ~     (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     5.99ns ±13%  5.35ns ± 2%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.4ns ±11%  63.1ns ± 3%     ~     (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          509ns ± 2%   532ns ±15%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.73µs ±20%  4.43µs ±10%     ~     (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.77µs ±12%  8.64µs ± 4%     ~     (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                           67.5ns ±13%  62.6ns ± 3%     ~     (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            552ns ±23%   496ns ±25%     ~     (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.76µs ±14%  4.24µs ± 4%     ~     (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                         10.2µs ±14%   8.6µs ± 4%  -15.61%  (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.20ms ±12%  6.18ms ±16%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.91ms ±12%  6.63ms ± 3%     ~     (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.0ms ±12%  13.7ms ± 3%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.1ms ±13%  13.8ms ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.4µs ±13%  13.2µs ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%  11.8µs ± 3%     ~     (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.7µs ±12%  12.9µs ± 3%     ~     (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.1µs ±11%  11.6µs ± 3%     ~     (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.7µs ±12%  22.6µs ± 8%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.6µs ±13%  10.9µs ± 2%     ~     (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±10%  10.6µs ± 3%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.4µs ±12%  12.3µs ± 4%     ~     (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.62µs ±13%  6.00µs ± 6%     ~     (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.1µs ±13%  10.3µs ± 3%     ~     (p=1.000 n=5+5)

name                                           old time/op             new time/op             delta
BM_ArenaOneAlloc                                 17.9ns ±12%             17.0ns ±17%     ~             (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     6.03ns ±14%             5.36ns ± 2%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.9ns ±12%             63.3ns ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          511ns ± 2%              533ns ±15%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.75µs ±20%             4.44µs ±10%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.83µs ±12%             8.66µs ± 4%     ~             (p=0.151 n=5+5)
BM_ArenaFuseBalanced/2                           67.8ns ±13%             62.7ns ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            555ns ±24%              497ns ±26%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.79µs ±14%             4.25µs ± 4%     ~             (p=0.310 n=5+5)
BM_ArenaFuseBalanced/128                         10.3µs ±14%              8.6µs ± 4%  -15.93%          (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.25ms ±12%             6.20ms ±16%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.96ms ±13%             6.65ms ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.2ms ±12%             13.7ms ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.3ms ±14%             13.8ms ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.5µs ±14%             13.2µs ± 3%     ~             (p=0.690 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%             11.8µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.8µs ±13%             13.0µs ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.2µs ±12%             11.6µs ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.9µs ±12%             22.6µs ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.7µs ±14%             10.9µs ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±11%             10.7µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.5µs ±12%             12.3µs ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.65µs ±13%             6.01µs ± 6%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.2µs ±13%             10.3µs ± 3%     ~             (p=1.000 n=5+5)

name                                           old INSTRUCTIONS/op     new INSTRUCTIONS/op     delta
BM_ArenaOneAlloc                                    189 ± 0%                189 ± 0%     ~             (p=0.881 n=5+5)
BM_ArenaInitialBlockOneAlloc                       69.0 ± 0%               69.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            458 ± 0%                458 ± 0%     ~             (p=1.000 n=5+5)
BM_ArenaFuseUnbalanced/8                          3.28k ±15%              3.60k ± 0%     ~             (p=0.286 n=5+4)
BM_ArenaFuseUnbalanced/64                         28.6k ± 2%              29.2k ± 0%   +2.17%          (p=0.032 n=5+4)
BM_ArenaFuseUnbalanced/128                        57.9k ± 1%              57.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/2                              482 ± 0%                482 ± 0%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/8                            3.35k ±14%              3.35k ±14%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/64                           29.2k ± 2%              29.3k ± 1%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          59.2k ± 1%              59.3k ± 1%     ~             (p=0.556 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                37.3M ± 0%              38.2M ± 0%   +2.39%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              40.9M ± 0%              41.7M ± 0%   +2.02%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             87.2M ± 0%              88.3M ± 1%   +1.25%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           88.0M ± 0%              88.9M ± 1%   +1.13%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              154k ± 0%               154k ± 0%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>             143k ± 0%               143k ± 0%     ~             (p=0.310 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>             153k ± 0%               153k ± 0%     ~             (p=1.016 n=5+4)
BM_Parse_Upb_FileDesc<InitBlock, Alias>            142k ± 0%               142k ± 0%     ~             (p=0.127 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>           213k ± 1%               217k ± 5%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          122k ± 0%               123k ± 0%   +0.86%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>         120k ± 0%               120k ± 0%     ~             (p=0.421 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>      124k ± 0%               124k ± 0%     ~             (p=0.587 n=5+5)
BM_SerializeDescriptor_Proto2                     63.5k ± 0%              63.5k ± 0%     ~             (p=0.278 n=5+5)
BM_SerializeDescriptor_Upb                         111k ± 0%               111k ± 0%     ~             (p=1.000 n=5+5)

name                                           old CYCLES/op           new CYCLES/op           delta
BM_ArenaOneAlloc                                   53.5 ± 0%               53.4 ± 0%     ~             (p=0.095 n=5+5)
BM_ArenaInitialBlockOneAlloc                       17.5 ± 1%               17.4 ± 0%     ~             (p=0.087 n=5+5)
BM_ArenaFuseUnbalanced/2                            206 ± 0%                206 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/8                          1.55k ±12%              1.67k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/64                         14.1k ± 8%              14.1k ± 1%     ~             (p=0.222 n=5+5)
BM_ArenaFuseUnbalanced/128                        28.2k ± 1%              28.3k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/2                              205 ± 0%                204 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/8                            1.57k ±12%              1.56k ±12%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/64                           13.9k ± 2%              13.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/128                          28.1k ± 1%              28.2k ± 1%     ~             (p=0.730 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                18.7M ± 0%              19.3M ± 1%   +3.38%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              20.9M ± 0%              21.6M ± 0%   +3.09%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             43.4M ± 0%              44.4M ± 1%   +2.33%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           44.0M ± 0%              44.9M ± 2%   +1.92%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>             42.0k ± 1%              43.0k ± 1%   +2.32%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>            38.2k ± 1%              38.4k ± 0%   +0.74%          (p=0.032 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>            41.6k ± 0%              42.6k ± 1%   +2.51%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>           37.6k ± 0%              38.1k ± 0%   +1.34%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          71.9k ± 1%              74.1k ± 6%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         35.4k ± 1%              35.8k ± 0%   +1.10%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>        34.6k ± 1%              34.9k ± 1%     ~             (p=0.095 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>     40.5k ± 0%              40.0k ± 1%   -1.36%          (p=0.008 n=5+5)
BM_SerializeDescriptor_Proto2                     20.1k ± 1%              19.7k ± 4%     ~             (p=0.421 n=5+5)
BM_SerializeDescriptor_Upb                        33.7k ± 0%              33.7k ± 0%     ~             (p=0.222 n=5+5)

name                                           old allocs/op           new allocs/op           delta
BM_ArenaOneAlloc                                   1.00 ± 0%               1.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                           2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                           8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                          64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                          128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                             2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                             8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                            64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                            128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                6.21k ± 0%              6.93k ± 0%  +11.54%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              6.54k ± 0%              6.96k ± 0%   +6.34%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>              124k ± 0%               124k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>            126k ± 0%               126k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>             7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>            709 ± 0%                709 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)

name                                           old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_ArenaOneAlloc                                    328 ± 0%                328 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                          2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                         21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                        42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                              656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                            2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                           21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                          42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                10.2M ± 0%              10.4M ± 0%   +1.15%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              10.5M ± 0%              10.5M ± 0%   +0.11%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             7.14M ± 0%              7.14M ± 0%     ~             (p=0.317 n=4+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           7.18M ± 0%              7.18M ± 0%     ~             (p=0.159 n=5+4)
BM_Parse_Upb_FileDesc<UseArena, Copy>             36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>            36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          35.4k ± 0%              35.4k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         65.3k ± 0%              65.3k ± 0%     ~     (all samples are equal)

name                                           old items/s             new items/s             delta
BM_ArenaFuseUnbalanced/2                          28.2M ±12%              31.7M ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          15.7M ± 2%              15.1M ±14%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                         13.7M ±18%              14.5M ± 9%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                        13.2M ±12%              14.8M ± 5%     ~             (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                            29.9M ±12%              32.0M ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            14.8M ±28%              16.5M ±22%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                           13.6M ±15%              15.1M ± 4%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          12.6M ±15%              14.9M ± 4%  +17.88%          (p=0.016 n=5+5)

name                                           old speed               new speed               delta
BM_LoadAdsDescriptor_Upb<NoLayout>              128MB/s ±11%            128MB/s ±14%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>            115MB/s ±12%            119MB/s ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>          52.9MB/s ±12%           57.6MB/s ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>        52.6MB/s ±14%           57.2MB/s ± 2%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>           527MB/s ±14%            571MB/s ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>          595MB/s ±11%            640MB/s ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>          553MB/s ±12%            582MB/s ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>         576MB/s ±12%            649MB/s ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>        307MB/s ±13%            334MB/s ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>       653MB/s ±13%            689MB/s ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>      650MB/s ±10%            708MB/s ± 3%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>   564MB/s ±12%            614MB/s ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                  1.15GB/s ±12%           1.25GB/s ± 5%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                      684MB/s ±12%            730MB/s ± 3%     ~             (p=1.000 n=5+5)
```

This adds about 5Ki of code size.  Some of this likely comes from the fact that we now link in `message/copy.c` to perform a deep copy of a FeatureSet proto.

```
$ /google/bin/releases/protobuf-team/bloaty/bloaty-google3-diff --blaze-build-opts="-c opt" third_party/upb/upb/conformance/conformance_upb
    FILE SIZE        VM SIZE
 --------------  --------------
  +0.5% +4.19Ki  +0.5% +4.19Ki    .text
  +0.4%    +656  +0.4%    +656    .rodata
  +0.1%    +504  [ = ]       0    .strtab
  +0.2%    +384  [ = ]       0    .symtab
  +0.2%    +280  +0.2%    +280    .eh_frame
  +0.2%    +216  +0.2%    +216    .rela.dyn
  +0.3%     +96  +0.3%     +96    .data.rel.ro
  +0.2%     +64  +0.2%     +64    .eh_frame_hdr
  +1.1%     +16  [ = ]       0    .got.plt
  +0.2%      +8  +0.2%      +8    .rela.plt
  -4.6%      -8  -4.6%      -8    [LOAD #2 [RX]]
 -50.0%     -48  [ = ]       0    [Unmapped]
  [ = ]       0 -81.7% -1.47Ki    .relro_padding
  +0.1% +6.30Ki  +0.0% +4.00Ki    TOTAL
```

PiperOrigin-RevId: 570106628
copybara-service bot pushed a commit that referenced this issue Nov 3, 2023
This switches upb to using legacy editions for all proto2/proto3 logic.  This does not yet enable code generation for editions protos (ie. we do not yet turn on `FEATURE_SUPPORTS_EDITIONS`), but with feature inheritance in place, this will be a much smaller follow-on change.

There is a ~10% increase in allocations, but only a ~1% increase in peak memory.  There are some <5% increases in instructions and cycles, but apparently no increase in time:

```
name                                           old cpu/op   new cpu/op   delta
BM_ArenaOneAlloc                                 17.8ns ±11%  16.9ns ±17%     ~     (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     5.99ns ±13%  5.35ns ± 2%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.4ns ±11%  63.1ns ± 3%     ~     (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          509ns ± 2%   532ns ±15%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.73µs ±20%  4.43µs ±10%     ~     (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.77µs ±12%  8.64µs ± 4%     ~     (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                           67.5ns ±13%  62.6ns ± 3%     ~     (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            552ns ±23%   496ns ±25%     ~     (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.76µs ±14%  4.24µs ± 4%     ~     (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                         10.2µs ±14%   8.6µs ± 4%  -15.61%  (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.20ms ±12%  6.18ms ±16%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.91ms ±12%  6.63ms ± 3%     ~     (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.0ms ±12%  13.7ms ± 3%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.1ms ±13%  13.8ms ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.4µs ±13%  13.2µs ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%  11.8µs ± 3%     ~     (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.7µs ±12%  12.9µs ± 3%     ~     (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.1µs ±11%  11.6µs ± 3%     ~     (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.7µs ±12%  22.6µs ± 8%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.6µs ±13%  10.9µs ± 2%     ~     (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±10%  10.6µs ± 3%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.4µs ±12%  12.3µs ± 4%     ~     (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.62µs ±13%  6.00µs ± 6%     ~     (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.1µs ±13%  10.3µs ± 3%     ~     (p=1.000 n=5+5)

name                                           old time/op             new time/op             delta
BM_ArenaOneAlloc                                 17.9ns ±12%             17.0ns ±17%     ~             (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     6.03ns ±14%             5.36ns ± 2%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.9ns ±12%             63.3ns ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          511ns ± 2%              533ns ±15%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.75µs ±20%             4.44µs ±10%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.83µs ±12%             8.66µs ± 4%     ~             (p=0.151 n=5+5)
BM_ArenaFuseBalanced/2                           67.8ns ±13%             62.7ns ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            555ns ±24%              497ns ±26%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.79µs ±14%             4.25µs ± 4%     ~             (p=0.310 n=5+5)
BM_ArenaFuseBalanced/128                         10.3µs ±14%              8.6µs ± 4%  -15.93%          (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.25ms ±12%             6.20ms ±16%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.96ms ±13%             6.65ms ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.2ms ±12%             13.7ms ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.3ms ±14%             13.8ms ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.5µs ±14%             13.2µs ± 3%     ~             (p=0.690 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%             11.8µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.8µs ±13%             13.0µs ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.2µs ±12%             11.6µs ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.9µs ±12%             22.6µs ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.7µs ±14%             10.9µs ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±11%             10.7µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.5µs ±12%             12.3µs ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.65µs ±13%             6.01µs ± 6%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.2µs ±13%             10.3µs ± 3%     ~             (p=1.000 n=5+5)

name                                           old INSTRUCTIONS/op     new INSTRUCTIONS/op     delta
BM_ArenaOneAlloc                                    189 ± 0%                189 ± 0%     ~             (p=0.881 n=5+5)
BM_ArenaInitialBlockOneAlloc                       69.0 ± 0%               69.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            458 ± 0%                458 ± 0%     ~             (p=1.000 n=5+5)
BM_ArenaFuseUnbalanced/8                          3.28k ±15%              3.60k ± 0%     ~             (p=0.286 n=5+4)
BM_ArenaFuseUnbalanced/64                         28.6k ± 2%              29.2k ± 0%   +2.17%          (p=0.032 n=5+4)
BM_ArenaFuseUnbalanced/128                        57.9k ± 1%              57.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/2                              482 ± 0%                482 ± 0%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/8                            3.35k ±14%              3.35k ±14%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/64                           29.2k ± 2%              29.3k ± 1%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          59.2k ± 1%              59.3k ± 1%     ~             (p=0.556 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                37.3M ± 0%              38.2M ± 0%   +2.39%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              40.9M ± 0%              41.7M ± 0%   +2.02%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             87.2M ± 0%              88.3M ± 1%   +1.25%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           88.0M ± 0%              88.9M ± 1%   +1.13%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              154k ± 0%               154k ± 0%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>             143k ± 0%               143k ± 0%     ~             (p=0.310 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>             153k ± 0%               153k ± 0%     ~             (p=1.016 n=5+4)
BM_Parse_Upb_FileDesc<InitBlock, Alias>            142k ± 0%               142k ± 0%     ~             (p=0.127 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>           213k ± 1%               217k ± 5%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          122k ± 0%               123k ± 0%   +0.86%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>         120k ± 0%               120k ± 0%     ~             (p=0.421 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>      124k ± 0%               124k ± 0%     ~             (p=0.587 n=5+5)
BM_SerializeDescriptor_Proto2                     63.5k ± 0%              63.5k ± 0%     ~             (p=0.278 n=5+5)
BM_SerializeDescriptor_Upb                         111k ± 0%               111k ± 0%     ~             (p=1.000 n=5+5)

name                                           old CYCLES/op           new CYCLES/op           delta
BM_ArenaOneAlloc                                   53.5 ± 0%               53.4 ± 0%     ~             (p=0.095 n=5+5)
BM_ArenaInitialBlockOneAlloc                       17.5 ± 1%               17.4 ± 0%     ~             (p=0.087 n=5+5)
BM_ArenaFuseUnbalanced/2                            206 ± 0%                206 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/8                          1.55k ±12%              1.67k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/64                         14.1k ± 8%              14.1k ± 1%     ~             (p=0.222 n=5+5)
BM_ArenaFuseUnbalanced/128                        28.2k ± 1%              28.3k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/2                              205 ± 0%                204 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/8                            1.57k ±12%              1.56k ±12%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/64                           13.9k ± 2%              13.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/128                          28.1k ± 1%              28.2k ± 1%     ~             (p=0.730 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                18.7M ± 0%              19.3M ± 1%   +3.38%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              20.9M ± 0%              21.6M ± 0%   +3.09%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             43.4M ± 0%              44.4M ± 1%   +2.33%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           44.0M ± 0%              44.9M ± 2%   +1.92%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>             42.0k ± 1%              43.0k ± 1%   +2.32%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>            38.2k ± 1%              38.4k ± 0%   +0.74%          (p=0.032 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>            41.6k ± 0%              42.6k ± 1%   +2.51%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>           37.6k ± 0%              38.1k ± 0%   +1.34%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          71.9k ± 1%              74.1k ± 6%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         35.4k ± 1%              35.8k ± 0%   +1.10%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>        34.6k ± 1%              34.9k ± 1%     ~             (p=0.095 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>     40.5k ± 0%              40.0k ± 1%   -1.36%          (p=0.008 n=5+5)
BM_SerializeDescriptor_Proto2                     20.1k ± 1%              19.7k ± 4%     ~             (p=0.421 n=5+5)
BM_SerializeDescriptor_Upb                        33.7k ± 0%              33.7k ± 0%     ~             (p=0.222 n=5+5)

name                                           old allocs/op           new allocs/op           delta
BM_ArenaOneAlloc                                   1.00 ± 0%               1.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                           2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                           8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                          64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                          128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                             2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                             8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                            64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                            128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                6.21k ± 0%              6.93k ± 0%  +11.54%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              6.54k ± 0%              6.96k ± 0%   +6.34%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>              124k ± 0%               124k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>            126k ± 0%               126k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>             7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>            709 ± 0%                709 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)

name                                           old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_ArenaOneAlloc                                    328 ± 0%                328 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                          2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                         21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                        42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                              656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                            2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                           21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                          42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                10.2M ± 0%              10.4M ± 0%   +1.15%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              10.5M ± 0%              10.5M ± 0%   +0.11%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             7.14M ± 0%              7.14M ± 0%     ~             (p=0.317 n=4+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           7.18M ± 0%              7.18M ± 0%     ~             (p=0.159 n=5+4)
BM_Parse_Upb_FileDesc<UseArena, Copy>             36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>            36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          35.4k ± 0%              35.4k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         65.3k ± 0%              65.3k ± 0%     ~     (all samples are equal)

name                                           old items/s             new items/s             delta
BM_ArenaFuseUnbalanced/2                          28.2M ±12%              31.7M ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          15.7M ± 2%              15.1M ±14%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                         13.7M ±18%              14.5M ± 9%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                        13.2M ±12%              14.8M ± 5%     ~             (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                            29.9M ±12%              32.0M ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            14.8M ±28%              16.5M ±22%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                           13.6M ±15%              15.1M ± 4%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          12.6M ±15%              14.9M ± 4%  +17.88%          (p=0.016 n=5+5)

name                                           old speed               new speed               delta
BM_LoadAdsDescriptor_Upb<NoLayout>              128MB/s ±11%            128MB/s ±14%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>            115MB/s ±12%            119MB/s ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>          52.9MB/s ±12%           57.6MB/s ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>        52.6MB/s ±14%           57.2MB/s ± 2%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>           527MB/s ±14%            571MB/s ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>          595MB/s ±11%            640MB/s ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>          553MB/s ±12%            582MB/s ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>         576MB/s ±12%            649MB/s ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>        307MB/s ±13%            334MB/s ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>       653MB/s ±13%            689MB/s ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>      650MB/s ±10%            708MB/s ± 3%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>   564MB/s ±12%            614MB/s ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                  1.15GB/s ±12%           1.25GB/s ± 5%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                      684MB/s ±12%            730MB/s ± 3%     ~             (p=1.000 n=5+5)
```

This adds about 5Ki of code size.  Some of this likely comes from the fact that we now link in `message/copy.c` to perform a deep copy of a FeatureSet proto.

```
$ /google/bin/releases/protobuf-team/bloaty/bloaty-google3-diff --blaze-build-opts="-c opt" third_party/upb/upb/conformance/conformance_upb
    FILE SIZE        VM SIZE
 --------------  --------------
  +0.5% +4.19Ki  +0.5% +4.19Ki    .text
  +0.4%    +656  +0.4%    +656    .rodata
  +0.1%    +504  [ = ]       0    .strtab
  +0.2%    +384  [ = ]       0    .symtab
  +0.2%    +280  +0.2%    +280    .eh_frame
  +0.2%    +216  +0.2%    +216    .rela.dyn
  +0.3%     +96  +0.3%     +96    .data.rel.ro
  +0.2%     +64  +0.2%     +64    .eh_frame_hdr
  +1.1%     +16  [ = ]       0    .got.plt
  +0.2%      +8  +0.2%      +8    .rela.plt
  -4.6%      -8  -4.6%      -8    [LOAD #2 [RX]]
 -50.0%     -48  [ = ]       0    [Unmapped]
  [ = ]       0 -81.7% -1.47Ki    .relro_padding
  +0.1% +6.30Ki  +0.0% +4.00Ki    TOTAL
```

PiperOrigin-RevId: 570106628
copybara-service bot pushed a commit that referenced this issue Nov 3, 2023
This switches upb to using legacy editions for all proto2/proto3 logic.  This does not yet enable code generation for editions protos (ie. we do not yet turn on `FEATURE_SUPPORTS_EDITIONS`), but with feature inheritance in place, this will be a much smaller follow-on change.

There is a ~10% increase in allocations, but only a ~1% increase in peak memory.  There are some <5% increases in instructions and cycles, but apparently no increase in time:

```
name                                           old cpu/op   new cpu/op   delta
BM_ArenaOneAlloc                                 17.8ns ±11%  16.9ns ±17%     ~     (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     5.99ns ±13%  5.35ns ± 2%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.4ns ±11%  63.1ns ± 3%     ~     (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          509ns ± 2%   532ns ±15%     ~     (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.73µs ±20%  4.43µs ±10%     ~     (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.77µs ±12%  8.64µs ± 4%     ~     (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                           67.5ns ±13%  62.6ns ± 3%     ~     (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            552ns ±23%   496ns ±25%     ~     (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.76µs ±14%  4.24µs ± 4%     ~     (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                         10.2µs ±14%   8.6µs ± 4%  -15.61%  (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.20ms ±12%  6.18ms ±16%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.91ms ±12%  6.63ms ± 3%     ~     (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.0ms ±12%  13.7ms ± 3%     ~     (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.1ms ±13%  13.8ms ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.4µs ±13%  13.2µs ± 3%     ~     (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%  11.8µs ± 3%     ~     (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.7µs ±12%  12.9µs ± 3%     ~     (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.1µs ±11%  11.6µs ± 3%     ~     (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.7µs ±12%  22.6µs ± 8%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.6µs ±13%  10.9µs ± 2%     ~     (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±10%  10.6µs ± 3%     ~     (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.4µs ±12%  12.3µs ± 4%     ~     (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.62µs ±13%  6.00µs ± 6%     ~     (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.1µs ±13%  10.3µs ± 3%     ~     (p=1.000 n=5+5)

name                                           old time/op             new time/op             delta
BM_ArenaOneAlloc                                 17.9ns ±12%             17.0ns ±17%     ~             (p=0.310 n=5+5)
BM_ArenaInitialBlockOneAlloc                     6.03ns ±14%             5.36ns ± 2%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/2                         71.9ns ±12%             63.3ns ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          511ns ± 2%              533ns ±15%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                        4.75µs ±20%             4.44µs ±10%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                       9.83µs ±12%             8.66µs ± 4%     ~             (p=0.151 n=5+5)
BM_ArenaFuseBalanced/2                           67.8ns ±13%             62.7ns ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            555ns ±24%              497ns ±26%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                          4.79µs ±14%             4.25µs ± 4%     ~             (p=0.310 n=5+5)
BM_ArenaFuseBalanced/128                         10.3µs ±14%              8.6µs ± 4%  -15.93%          (p=0.016 n=5+5)
BM_LoadAdsDescriptor_Upb<NoLayout>               6.25ms ±12%             6.20ms ±16%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>             6.96ms ±13%             6.65ms ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>            15.2ms ±12%             13.7ms ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>          15.3ms ±14%             13.8ms ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>            14.5µs ±14%             13.2µs ± 3%     ~             (p=0.690 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>           12.8µs ±12%             11.8µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>           13.8µs ±13%             13.0µs ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>          13.2µs ±12%             11.6µs ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>         24.9µs ±12%             22.6µs ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>        11.7µs ±14%             10.9µs ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>       11.7µs ±11%             10.7µs ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>    13.5µs ±12%             12.3µs ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                    6.65µs ±13%             6.01µs ± 6%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                       11.2µs ±13%             10.3µs ± 3%     ~             (p=1.000 n=5+5)

name                                           old INSTRUCTIONS/op     new INSTRUCTIONS/op     delta
BM_ArenaOneAlloc                                    189 ± 0%                189 ± 0%     ~             (p=0.881 n=5+5)
BM_ArenaInitialBlockOneAlloc                       69.0 ± 0%               69.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            458 ± 0%                458 ± 0%     ~             (p=1.000 n=5+5)
BM_ArenaFuseUnbalanced/8                          3.28k ±15%              3.60k ± 0%     ~             (p=0.286 n=5+4)
BM_ArenaFuseUnbalanced/64                         28.6k ± 2%              29.2k ± 0%   +2.17%          (p=0.032 n=5+4)
BM_ArenaFuseUnbalanced/128                        57.9k ± 1%              57.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/2                              482 ± 0%                482 ± 0%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/8                            3.35k ±14%              3.35k ±14%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/64                           29.2k ± 2%              29.3k ± 1%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          59.2k ± 1%              59.3k ± 1%     ~             (p=0.556 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                37.3M ± 0%              38.2M ± 0%   +2.39%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              40.9M ± 0%              41.7M ± 0%   +2.02%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             87.2M ± 0%              88.3M ± 1%   +1.25%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           88.0M ± 0%              88.9M ± 1%   +1.13%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              154k ± 0%               154k ± 0%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>             143k ± 0%               143k ± 0%     ~             (p=0.310 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>             153k ± 0%               153k ± 0%     ~             (p=1.016 n=5+4)
BM_Parse_Upb_FileDesc<InitBlock, Alias>            142k ± 0%               142k ± 0%     ~             (p=0.127 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>           213k ± 1%               217k ± 5%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          122k ± 0%               123k ± 0%   +0.86%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>         120k ± 0%               120k ± 0%     ~             (p=0.421 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>      124k ± 0%               124k ± 0%     ~             (p=0.587 n=5+5)
BM_SerializeDescriptor_Proto2                     63.5k ± 0%              63.5k ± 0%     ~             (p=0.278 n=5+5)
BM_SerializeDescriptor_Upb                         111k ± 0%               111k ± 0%     ~             (p=1.000 n=5+5)

name                                           old CYCLES/op           new CYCLES/op           delta
BM_ArenaOneAlloc                                   53.5 ± 0%               53.4 ± 0%     ~             (p=0.095 n=5+5)
BM_ArenaInitialBlockOneAlloc                       17.5 ± 1%               17.4 ± 0%     ~             (p=0.087 n=5+5)
BM_ArenaFuseUnbalanced/2                            206 ± 0%                206 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/8                          1.55k ±12%              1.67k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseUnbalanced/64                         14.1k ± 8%              14.1k ± 1%     ~             (p=0.222 n=5+5)
BM_ArenaFuseUnbalanced/128                        28.2k ± 1%              28.3k ± 1%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/2                              205 ± 0%                204 ± 0%     ~             (p=0.548 n=5+5)
BM_ArenaFuseBalanced/8                            1.57k ±12%              1.56k ±12%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/64                           13.9k ± 2%              13.9k ± 1%     ~             (p=1.000 n=5+5)
BM_ArenaFuseBalanced/128                          28.1k ± 1%              28.2k ± 1%     ~             (p=0.730 n=4+5)
BM_LoadAdsDescriptor_Upb<NoLayout>                18.7M ± 0%              19.3M ± 1%   +3.38%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              20.9M ± 0%              21.6M ± 0%   +3.09%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             43.4M ± 0%              44.4M ± 1%   +2.33%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           44.0M ± 0%              44.9M ± 2%   +1.92%          (p=0.016 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>             42.0k ± 1%              43.0k ± 1%   +2.32%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>            38.2k ± 1%              38.4k ± 0%   +0.74%          (p=0.032 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>            41.6k ± 0%              42.6k ± 1%   +2.51%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>           37.6k ± 0%              38.1k ± 0%   +1.34%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          71.9k ± 1%              74.1k ± 6%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         35.4k ± 1%              35.8k ± 0%   +1.10%          (p=0.008 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>        34.6k ± 1%              34.9k ± 1%     ~             (p=0.095 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>     40.5k ± 0%              40.0k ± 1%   -1.36%          (p=0.008 n=5+5)
BM_SerializeDescriptor_Proto2                     20.1k ± 1%              19.7k ± 4%     ~             (p=0.421 n=5+5)
BM_SerializeDescriptor_Upb                        33.7k ± 0%              33.7k ± 0%     ~             (p=0.222 n=5+5)

name                                           old allocs/op           new allocs/op           delta
BM_ArenaOneAlloc                                   1.00 ± 0%               1.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                           2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                           8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                          64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                          128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                             2.00 ± 0%               2.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                             8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                            64.0 ± 0%               64.0 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                            128 ± 0%                128 ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                6.21k ± 0%              6.93k ± 0%  +11.54%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              6.54k ± 0%              6.96k ± 0%   +6.34%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>              124k ± 0%               124k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>            126k ± 0%               126k ± 0%   +0.00%          (p=0.008 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>              7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>             7.00 ± 0%               7.00 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>            709 ± 0%                709 ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>          8.00 ± 0%               8.00 ± 0%     ~     (all samples are equal)

name                                           old peak-mem(Bytes)/op  new peak-mem(Bytes)/op  delta
BM_ArenaOneAlloc                                    328 ± 0%                328 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/2                            656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/8                          2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/64                         21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseUnbalanced/128                        42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/2                              656 ± 0%                656 ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/8                            2.62k ± 0%              2.62k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/64                           21.0k ± 0%              21.0k ± 0%     ~     (all samples are equal)
BM_ArenaFuseBalanced/128                          42.0k ± 0%              42.0k ± 0%     ~     (all samples are equal)
BM_LoadAdsDescriptor_Upb<NoLayout>                10.2M ± 0%              10.4M ± 0%   +1.15%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>              10.5M ± 0%              10.5M ± 0%   +0.11%          (p=0.008 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>             7.14M ± 0%              7.14M ± 0%     ~             (p=0.317 n=4+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>           7.18M ± 0%              7.18M ± 0%     ~             (p=0.159 n=5+4)
BM_Parse_Upb_FileDesc<UseArena, Copy>             36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Upb_FileDesc<UseArena, Alias>            36.5k ± 0%              36.5k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, NoArena, Copy>          35.4k ± 0%              35.4k ± 0%     ~     (all samples are equal)
BM_Parse_Proto2<FileDesc, UseArena, Copy>         65.3k ± 0%              65.3k ± 0%     ~     (all samples are equal)

name                                           old items/s             new items/s             delta
BM_ArenaFuseUnbalanced/2                          28.2M ±12%              31.7M ± 3%     ~             (p=0.095 n=5+5)
BM_ArenaFuseUnbalanced/8                          15.7M ± 2%              15.1M ±14%     ~             (p=0.421 n=5+5)
BM_ArenaFuseUnbalanced/64                         13.7M ±18%              14.5M ± 9%     ~             (p=0.841 n=5+5)
BM_ArenaFuseUnbalanced/128                        13.2M ±12%              14.8M ± 5%     ~             (p=0.095 n=5+5)
BM_ArenaFuseBalanced/2                            29.9M ±12%              32.0M ± 3%     ~             (p=0.841 n=5+5)
BM_ArenaFuseBalanced/8                            14.8M ±28%              16.5M ±22%     ~             (p=0.222 n=5+5)
BM_ArenaFuseBalanced/64                           13.6M ±15%              15.1M ± 4%     ~             (p=0.421 n=5+5)
BM_ArenaFuseBalanced/128                          12.6M ±15%              14.9M ± 4%  +17.88%          (p=0.016 n=5+5)

name                                           old speed               new speed               delta
BM_LoadAdsDescriptor_Upb<NoLayout>              128MB/s ±11%            128MB/s ±14%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Upb<WithLayout>            115MB/s ±12%            119MB/s ± 3%     ~             (p=0.690 n=5+5)
BM_LoadAdsDescriptor_Proto2<NoLayout>          52.9MB/s ±12%           57.6MB/s ± 3%     ~             (p=0.421 n=5+5)
BM_LoadAdsDescriptor_Proto2<WithLayout>        52.6MB/s ±14%           57.2MB/s ± 2%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Copy>           527MB/s ±14%            571MB/s ± 3%     ~             (p=0.548 n=5+5)
BM_Parse_Upb_FileDesc<UseArena, Alias>          595MB/s ±11%            640MB/s ± 3%     ~             (p=0.222 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Copy>          553MB/s ±12%            582MB/s ± 3%     ~             (p=1.000 n=5+5)
BM_Parse_Upb_FileDesc<InitBlock, Alias>         576MB/s ±12%            649MB/s ± 3%     ~             (p=0.056 n=5+5)
BM_Parse_Proto2<FileDesc, NoArena, Copy>        307MB/s ±13%            334MB/s ± 8%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDesc, UseArena, Copy>       653MB/s ±13%            689MB/s ± 2%     ~             (p=1.000 n=5+5)
BM_Parse_Proto2<FileDesc, InitBlock, Copy>      650MB/s ±10%            708MB/s ± 3%     ~             (p=0.310 n=5+5)
BM_Parse_Proto2<FileDescSV, InitBlock, Alias>   564MB/s ±12%            614MB/s ± 4%     ~             (p=0.310 n=5+5)
BM_SerializeDescriptor_Proto2                  1.15GB/s ±12%           1.25GB/s ± 5%     ~             (p=0.056 n=5+5)
BM_SerializeDescriptor_Upb                      684MB/s ±12%            730MB/s ± 3%     ~             (p=1.000 n=5+5)
```

This adds about 5Ki of code size.  Some of this likely comes from the fact that we now link in `message/copy.c` to perform a deep copy of a FeatureSet proto.

```
$ /google/bin/releases/protobuf-team/bloaty/bloaty-google3-diff --blaze-build-opts="-c opt" third_party/upb/upb/conformance/conformance_upb
    FILE SIZE        VM SIZE
 --------------  --------------
  +0.5% +4.19Ki  +0.5% +4.19Ki    .text
  +0.4%    +656  +0.4%    +656    .rodata
  +0.1%    +504  [ = ]       0    .strtab
  +0.2%    +384  [ = ]       0    .symtab
  +0.2%    +280  +0.2%    +280    .eh_frame
  +0.2%    +216  +0.2%    +216    .rela.dyn
  +0.3%     +96  +0.3%     +96    .data.rel.ro
  +0.2%     +64  +0.2%     +64    .eh_frame_hdr
  +1.1%     +16  [ = ]       0    .got.plt
  +0.2%      +8  +0.2%      +8    .rela.plt
  -4.6%      -8  -4.6%      -8    [LOAD #2 [RX]]
 -50.0%     -48  [ = ]       0    [Unmapped]
  [ = ]       0 -81.7% -1.47Ki    .relro_padding
  +0.1% +6.30Ki  +0.0% +4.00Ki    TOTAL
```

PiperOrigin-RevId: 579321454
GerHobbelt pushed a commit to GerHobbelt/protobuf that referenced this issue Aug 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants