This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/30908] New: -Os inlines functions that are called more than once (optimization regression)
- From: "j at uriah dot heep dot sax dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Feb 2007 11:48:39 -0000
- Subject: [Bug c/30908] New: -Os inlines functions that are called more than once (optimization regression)
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
This has been observed for the AVR target, but could perhaps also apply to
other targets.
Recent versions of GCC (4.1.1 and 4.3.0 trunk are confirmed) tend to inline
static functions with -Os even when they are being called more than once,
thus resulting in larger code than necessary. This violates the objective
of -Os to only apply those additional optimizations from level 2 that will
not increase the code size.
GCC 3.x versions did not do this, so it's an optimization regression.
Compiling the attached simple code snippet (which is completely independent
of the AVR target) with -Os, and either with or without -DNOINLINE yields:
...
/* function main size 17 (13) */
...
/* function main size 31 (27) */
...
--
Summary: -Os inlines functions that are called more than once
(optimization regression)
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: j at uriah dot heep dot sax dot de
GCC target triplet: avr-*-*
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30908