Use preserve_none for DecodeMessage when fasttable is on
On x86 calling a preserve_none function from an normal one only results in spilling 5 registers; but on arm it spills 20 - there's more GPRs plus a bunch of callee-save simd&fp registers. In an ideal world we'd compile DecodeMessage twice, and only call the preserve_none one from the fast decoder; but doing this breaks clang's inlining heuristics which apply a discount to functions with only a single call site, which heavily penalizes the non-fast decoder, causing a -20% on the normal decoder in exchange for +2% on the fast one. PiperOrigin-RevId: 919171015
P
Protobuf Team Bot committed
221b24c9e297f849bf1e70773377cd492281e166
Parent: 4fcadf1
Committed by Copybara-Service <copybara-worker@google.com>
on 5/21/2026, 6:47:43 PM