Hello! After recent discussions, I would like to propose a transition to -fomit-frame-pointer for x86_32.
The transition should be smooth as much as possible, should have option to revert to old behaviour and still providing path for the improvement. And we have learned something from cld issues, too (cough, cough...). I support the idea to change x86_32 defaults w.r.t. frame pointer (and unwind tables) to the same defaults as x86_64 has. The patch should also introduce --enable-frame-pointer configure option (off by default) that would revert back to old x86_32 behaviour. So, if there are codes that depend on FP, their users (or distributions) should either (re-)configure the compiler with --enable-frame-pointer or they should use older compiler - 4.5.x will still be supported for many years. OTOH, it looks that users don't care that much whether backtraces on x86_64 are totally accurate, so IMO the sky won't fall down if x86_32 misses some backtraces in the same way. And as I have learned from the discussion, the problem is fixable with some effort on the user's side, thus fixing both targets in one shot. Of course, this change and the option to revert to the previous behaviour should be announced and documented in GCC release notes for 4.6.0. IMO, we have to bite the bullet from time to time in order to improve the generated code. We should not claim that gcc is "no-code-left-behind compiler" - from my experience, introducing new compiler always means that some parts of the code have to be fixed (as in case of the change to -fno-strict-aliasing). Uros.