tree fb6e46f71f14d04b7c42f3e0b107724fc1f81471
parent 67c93924d8c4242b2bcc7e753431beed47716044
author Vitaly Goldshteyn <goldvitaly@google.com> 1736871076 -0800
committer Copybara-Service <copybara-worker@google.com> 1736871133 -0800

LSC: Apply performance-unnecessary-value-param where it matters for performance.

This cl was generated with go/gwp-clang-tidy.
The following lines are helpful in [determining](http://go/gwp-clang-tidy#metrics-summary) the impact of the change:
```
gwp_clang_tidy_metric: 667.275 gcus
gwp_clang_tidy_metric_for_key: 667.275 gcus
gwp_clang_tidy_fn_name: quic::(anonymous namespace)::AppendIetfConnectionIds(bool, bool, quic::QuicConnectionId, quic::QuicConnectionId, quic::QuicDataWriter*)
gwp_clang_tidy_num_overlapping_findings: 6
gwp_clang_tidy_call: quic::QuicFramer::AppendIetfPacketHeader(quic::QuicPacketHeader const&, quic::QuicDataWriter*, unsigned long*) -> quic::QuicConnectionId::QuicConnectionId(quic::QuicConnectionId const&) (590.613 gcus)
gwp_clang_tidy_call: quic::QuicFramer::BuildIetfVersionNegotiationPacket(bool, quic::QuicConnectionId, quic::QuicConnectionId, std::__u::vector<quic::ParsedQuicVersion, std::__u::allocator<quic::ParsedQuicVersion>> const&) -> quic::QuicConnectionId::~QuicConnectionId() (0.0511007 gcus)
gwp_clang_tidy_call: quic::QuicFramer::BuildDataPacket(quic::QuicPacketHeader const&, absl::InlinedVector<quic::QuicFrame, 1ul, std::__u::allocator<quic::QuicFrame>> const&, char*, unsigned long, quic::EncryptionLevel) -> quic::QuicConnectionId::QuicConnectionId(quic::QuicConnectionId const&) (3.16413 gcus)
gwp_clang_tidy_call: quic::QuicFramer::BuildIetfVersionNegotiationPacket(bool, quic::QuicConnectionId, quic::QuicConnectionId, std::__u::vector<quic::ParsedQuicVersion, std::__u::allocator<quic::ParsedQuicVersion>> const&) -> quic::QuicConnectionId::QuicConnectionId(quic::QuicConnectionId const&) (0.215968 gcus)
gwp_clang_tidy_call: quic::QuicFramer::WriteClientVersionNegotiationProbePacket(char*, unsigned long, char const*, unsigned char) -> quic::QuicConnectionId::~QuicConnectionId() (0.0205518 gcus)
gwp_clang_tidy_call: quic::QuicFramer::WriteClientVersionNegotiationProbePacket(char*, unsigned long, char const*, unsigned char) -> quic::QuicConnectionId::QuicConnectionId(quic::QuicConnectionId const&) (0.128068 gcus)
gwp_clang_tidy_call: quic::QuicFramer::AppendIetfPacketHeader(quic::QuicPacketHeader const&, quic::QuicDataWriter*, unsigned long*) -> quic::QuicConnectionId::~QuicConnectionId() (73.0821 gcus)
gwp_clang_tidy_type_name: class quic::QuicConnectionId
gwp_clang_tidy_check: google3-custom-unnecessary-value-param
```

Tested:
    http://test/OCL:713980267:BASE:715300728:1736851372677:caa9282b
    Some test failures are present; the CL author decided to mail
PiperOrigin-RevId: 715386954
