> 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

Reply via email to