> Honza, > > Your patch seems to make --param max-inline-insns-auto= ineffective: > > gfc -Ofast -funroll-loops -ftree-loop-linear -fomit-frame-pointer --param > max-inline-insns-auto=4000 -fwhole-program -fstack-arrays ac.f90 > 8.105u 0.005s 0:08.11 99.8% 0+0k 0+5io 0pf+0w > > while the timing was ~2.7s with a 125 threshold before the patch.
For me, I get everything inlined except for: not inlinable: main/5 -> MAIN__/4, --param large-stack-frame-growth limit reached and indeed in my program there is only main and MAIN function. You may try if increasing large-stack-frame-grwoth makes the regression go away, but in a way I doubt so, since main() is: main (integer(kind=4) argc, character(kind=1) * * argv) { static integer(kind=4) options.90[8] = {68, 511, 0, 0, 0, 1, 0, 1}; <bb 2>: _gfortran_set_args (argc_1(D), argv_2(D)); _gfortran_set_options (8, &options.90[0]); MAIN__ (); return 0; } and inlining into it is not most fruitable thing anyway. --param max-inline-insns-auto needed for me is also way bellow 125. If I believe right, the function is estimated to 94 with 14 of benefit, so it should be about 80. Any idea what makes the regression for you? Can you confirm that you also get everything inlined? I can't easilly reproduce your result since I don't have graphite enabled setup. I think I should add -Winline-all that will report reasons for not inlining functions that are not declared inline, too, so these things are easier to look at. Honza > > Cheers, > > Dominique