------- 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