http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46639
Richard Guenther <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Keywords| |missed-optimization Last reconfirmed| |2010.11.24 12:18:23 CC| |hubicka at gcc dot gnu.org Ever Confirmed|0 |1 Target Milestone|--- |4.6.0 --- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-11-24 12:18:23 UTC --- Hm, confirmed. We don't clean up redundant conditionals before function splitting: if (n_3(D) > 1023) goto <bb 9>; else goto <bb 3>; if (n_3(D) > 1023) goto <bb 4>; else goto <bb 7>; and fnsplit considers splitting after the first one to be most beneficial. And we don't inline it back together because Not inlining into bar:--param large-stack-frame-growth limit reached. even though the original stack frame size is zero. We didn't make the call in main direct either (ipa-reference runs too late for that). In the end this of course asks for more early optimizations.