This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/26667] Inlining always_inline functions causes further inlining that reduces function size to fail
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 13 Mar 2006 16:22:26 -0000
- Subject: [Bug tree-optimization/26667] Inlining always_inline functions causes further inlining that reduces function size to fail
- References: <bug-26667-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #1 from rguenth at gcc dot gnu dot org 2006-03-13 16:22 -------
Created an attachment (id=11039)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11039&action=view)
testcase
Compile with -O3 -msse2, look at the optimized ipa-inline dump to see
Deciding on inlining. Starting with 873 insns.
Inlining always_inline functions:
Considering bool bloatit(float __vector__, float __vector__) 413 insns (always
inline)
Inlined into bool finalblow(float __vector__, float __vector__, float
__vector__, float __vector__, float __vector__, float __vector__) which now has
753 insns.
...
Inlined into bool finalblow(float __vector__, float __vector__, float
__vector__, float __vector__, float __vector__, float __vector__) which now has
5810 insns.
Inlined for a net change of +5033 insns.
Deciding on smaller functions:
Considering inline candidate int mm_movemask_ps(float __vector__).
Considering inline candidate float __vector__ mm_or_ps(float __vector__, float
__vector__).
Considering inline candidate float __vector__ mm_div_ps(float __vector__, float
__vector__).
Considering inline candidate float __vector__ mm_mul_ps(float __vector__, float
__vector__).
Considering inline candidate float __vector__ mm_min_ps(float __vector__, float
__vector__).
Considering inline candidate float __vector__ mm_max_ps(float __vector__, float
__vector__).
Considering float __vector__ mm_or_ps(float __vector__, float __vector__) with
16 insns
to be inlined into bool bloatit(float __vector__, float __vector__)
Estimated growth after inlined into all callees is -576 insns.
Estimated badness is -147456.
Not inlining into bool bloatit(float __vector__, float __vector__):--param
large-function-growth limit reached.
... etc. ...
doh!
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26667