http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57218
Bug #: 57218 Summary: Excessive inlining even at -Os Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: amyl...@gcc.gnu.org Created attachment 30062 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30062 test case (excerpt from newlib/libc/stdio/findfp.c) In the testcase, std is inlined (thrice) into __sinit at the tree level, even at -Os, thus increasing code size. I first noticed this as a regression for arc-elf32 going from 4.4 to 4.8. It used to be only inlined at -O3, not at -Os or -O2. I have since verified that it is also not inlined at -Os / -O2 for i686-pc-linux-gnu 4.7.2 20120921 (Red Hat 4.7.2-2), but it is inlined for i686-pc-linux-gnu GCC 4.8.0 and 4.9.0 20130422 (experimental) Going from 4.7.2 to 4.9.0 (experimental), that causes a size regression of 34.5% on i686-pc-linux-gnu at -Os.