http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45810
--- Comment #13 from Jan Hubicka <hubicka at gcc dot gnu.org> 2011-01-23 16:45:23 UTC --- OK, the slowdown comes away when both hookers_law and perida is inlined. First needs -finline-limit=380 the second needs large-function-growth=10000000 (or large increase of inline limit to make perida to be considered as small function and inlined before iztaccihuatl grows that much). Without large-function-growth we fail at: Considering perdida size 1056. Called once from iztaccihuatl 6151 insns. Not inlining: --param large-function-growth limit reached. This is because inlining for functions called once first process read_input: Considering read_input size 3099. Called once from iztaccihuatl 3128 insns. Inlined into iztaccihuatl which now has 6151 size for a net change of -76 size. that makes it too large. large-function-insns is 2700, large-function-growth is 100%, so iztaccihuatl can't growth past 3128*2 insns. We might increase large-function-growth (I will give it a try on our benchmarks) or we might convince inlined to inline first perida rather than read_input because perida is smaller... Honza