https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92738
--- Comment #10 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- (In reply to Martin Liška from comment #6) > So wrf grew starting with r271377, size (w/o debug info) goes from 20164464B > to 23674792. I think we've had this discussion before, although I cannot offhand recall the PR number. PR91512 is closely related. Since r271377, arguments which may be contiguous are now (conditionally) packed and unpacked inline (see PR88821). This was done so that the middle end can look into these conversions and possibly eliminate them, if it can be determined via inlining or LTO that the argument is contiguous anyway). This can lead to an extremely large performance boost for some test cases (*10 or more), but will, in general, lead to a size increase. Now, wrf has an extremely strange (and rare) programming style where they pass a ton of assumed shape arguments (where it is not clear, at compile-time, if they need packing/unpacking) to an old-style array argument. This causes considerable code size increase. So, it's a tradeoff, which we discussed at the time. This is why this is not done at -Os. Should we "fix" this? I think not, the style of wrf is just too horrid, and pessimizing other programs for the sake of one benchmark makes little sense to me.