http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54585
--- Comment #3 from Chip Salzenberg <chip at pobox dot com> --- It's worth it for cache reasons I believe. The data cache works better you don't spread out the stack data unnecessarily. More concretely, if the stack frame can entirely disappear then you also reduce the instruction count. That's fewer instructions to dispatch and less icache pressure.