[Bug tree-optimization/26667] Inlining always_inline functions causes further inlining that reduces function size to fail
rguenth at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Mon Mar 13 16:22:00 GMT 2006
------- 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
More information about the Gcc-bugs
mailing list