[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2021-11-16 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665
Bug 83665 depends on bug 79224, which changed state.

Bug 79224 Summary: [7 Regression] Large C-Ray slowdown
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79224

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-03-27 Thread pthaugen at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

--- Comment #18 from Pat Haugen  ---
(In reply to Richard Biener from comment #17)
> Pat, please open a new bug for the regression caused by the fix.

Done, pr85103.

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-03-27 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #17 from Richard Biener  ---
Pat, please open a new bug for the regression caused by the fix.

Closing original bug, IIRC numbers now show things are reasonable.

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-03-26 Thread pthaugen at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

Pat Haugen  changed:

   What|Removed |Added

 CC||pthaugen at gcc dot gnu.org

--- Comment #16 from Pat Haugen  ---
(In reply to Jan Hubicka from comment #14)
> Author: hubicka
> Date: Mon Feb 12 09:48:06 2018
> New Revision: 257582
> 
> URL: https://gcc.gnu.org/viewcvs?rev=257582&root=gcc&view=rev
> Log:
> 
>   PR middle-end/83665
>   * params.def (inline-min-speedup): Increase from 8 to 15.
>   (max-inline-insns-auto): Decrease from 40 to 30.
>   * ipa-split.c (consider_split): Add some buffer for function to
>   be considered inlining candidate.
>   * invoke.texi (max-inline-insns-auto, inline-min-speedup): UPdate
>   default values.
> 
> Modified:
> trunk/gcc/ChangeLog
> trunk/gcc/doc/invoke.texi
> trunk/gcc/ipa-split.c
> trunk/gcc/params.def

This change is responsible for a 6% degradation in CPU2000 175.vpr and a 12%
degradation in CPU2006 401.bzip2. Both run on a Power7 box.

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-03-19 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

--- Comment #15 from Martin Liška  ---
Honza, may I close this as fixed?

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-02-12 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

--- Comment #14 from Jan Hubicka  ---
Author: hubicka
Date: Mon Feb 12 09:48:06 2018
New Revision: 257582

URL: https://gcc.gnu.org/viewcvs?rev=257582&root=gcc&view=rev
Log:

PR middle-end/83665
* params.def (inline-min-speedup): Increase from 8 to 15.
(max-inline-insns-auto): Decrease from 40 to 30.
* ipa-split.c (consider_split): Add some buffer for function to
be considered inlining candidate.
* invoke.texi (max-inline-insns-auto, inline-min-speedup): UPdate
default values.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/doc/invoke.texi
trunk/gcc/ipa-split.c
trunk/gcc/params.def

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-02-01 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

--- Comment #13 from Jan Hubicka  ---
I have started with experiments on czerny. Set --param inline-min-speedup from
8 to 15 at 30th of January and to 30 yesterday.
Most of size regression comes away with 15 and I observed to off-noise
regressions.  GCC of spec2006 improves 32.5->34.5
With 30 there are regressions in botan (but not wrt earlier releases, just wrt
best values we got) that are bit random (improvements too) and mesa of spec2000
5200->4950.
There is still noticeable code size improvements and also facerec improves
6400->8000. (may be independent as it fixes regression from 19th)

So consistent improvement is possible with 15. I will also check
inline-insns-auto/single and arrive to patch hopefully by end of weekend.

Honza

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-01-30 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

--- Comment #12 from rguenther at suse dot de  ---
On Tue, 30 Jan 2018, hubicka at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665
> 
> --- Comment #11 from Jan Hubicka  ---
> Yes, I have started experiments with adjusting inliner limits: hopefully we 
> can
> tune up speedup limit because it is now applied more agresively (due to lack 
> of
> capping) and perhaps tune down size limits because we do better early opts and
> time/size estimations.
> 
> Last week we did some work with Martin Liska verifying that profile 
> propagation
> now works as expected and things seems to be in order now in ways we can test
> (i.e. no zero profiles on places where they should not be and IPA/BB profiles
> are in sync). Before those bugs was chased away inliner retuning made little
> sense.
> 
> From experiments this week I know that tramp3d still need early inlining of 
> 14,
> but other limits seems to have gained quite some border on spec2000/2006.  I
> would like to use czerny for searching the space this week and hope that 
> tuning
> some parameters down is still OK at this stage?

I think we can tolerate one change in terms of addressing code size
regressions but it's really late now already.  So if you end up
with profitable changes please post the patch and ask for an OK.

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-01-30 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

--- Comment #11 from Jan Hubicka  ---
Yes, I have started experiments with adjusting inliner limits: hopefully we can
tune up speedup limit because it is now applied more agresively (due to lack of
capping) and perhaps tune down size limits because we do better early opts and
time/size estimations.

Last week we did some work with Martin Liska verifying that profile propagation
now works as expected and things seems to be in order now in ways we can test
(i.e. no zero profiles on places where they should not be and IPA/BB profiles
are in sync). Before those bugs was chased away inliner retuning made little
sense.

>From experiments this week I know that tramp3d still need early inlining of 14,
but other limits seems to have gained quite some border on spec2000/2006.  I
would like to use czerny for searching the space this week and hope that tuning
some parameters down is still OK at this stage?

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-01-15 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

--- Comment #10 from Richard Biener  ---
Unsure what to do about this bug -- things have gone back a bit but as you say
the cap introduced artificial limit back in times.  But we do have
large-function-growth to limit big_speedup for large functions, no?

There was big size improvement with the big_speedup fuckup and comparing to
before that we only "regressed" for a few cases, like overall size is still
improving.

So is this fixed or do you plan more changes?

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-01-08 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

Jan Hubicka  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |hubicka at gcc dot 
gnu.org

--- Comment #9 from Jan Hubicka  ---
I have noticed that accidental change and plan to deal with it while retuning
inliner now.

I think overall the problem is caused by the fact that old code capped time to
1. This means that most larger functions was estimated to have time 1
and inlining seemed to produce no speedup.

With sreals we keep the ratios more realistic and see more benefits from
inlining and thus get big speedup more often.  I will see what I can do with
the default value wrt code size.

Thanks for bisecting this!

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-01-08 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

--- Comment #8 from rguenther at suse dot de  ---
On Mon, 8 Jan 2018, marxin at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665
> 
> --- Comment #6 from Martin Liška  ---
> Ok, for the gromacs
> 
> r255102: .text size: 737B
> r255103 + fix for sreal (r256072): .text size: 752B (+2.03%).
> 
> Honza can you please take a look?

suspicous chage:

@@ -1151,7 +1118,7 @@ edge_badness (struct cgraph_edge *edge,
overall_growth += 256 * 256 - 256;
  denominator *= overall_growth;
 }
-  denominator *= inlined_time;
+  /*denominator *= inlined_time;*/

   badness = - numerator / denominator;


does uncommenting fix that?

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-01-08 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

--- Comment #7 from Martin Liška  ---
Another experiment:

r255024: 741B
r255024 + patch r255103 + patch r256072: 752B

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-01-08 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

--- Comment #6 from Martin Liška  ---
Ok, for the gromacs

r255102: .text size: 737B
r255103 + fix for sreal (r256072): .text size: 752B (+2.03%).

Honza can you please take a look?

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-01-05 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

--- Comment #5 from Richard Biener  ---
Bisection of one or another example with the big_speedup_p fix manually patched
in would be appreciated I guess.

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-01-04 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

--- Comment #4 from Martin Liška  ---
I see change in r256072 that increased .text in gromacs from:
  83.6%   743Ki .text   743Ki  14.4%

to

  83.8%   760Ki .text   760Ki  14.4%

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-01-04 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

Markus Trippelsdorf  changed:

   What|Removed |Added

   Target Milestone|--- |8.0

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-01-04 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

Markus Trippelsdorf  changed:

   What|Removed |Added

   Keywords||needs-bisection
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-01-04
 Ever confirmed|0   |1

--- Comment #3 from Markus Trippelsdorf  ---
403.gcc with -flto is now ~6% slower.

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-01-03 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

--- Comment #2 from Jan Hubicka  ---
One potential candidate is the ipa-inline big_speedup_p fix by Richard.  It
does not seem to explain all the difference though. I have quickly checked that
it does affect gzip LTO binary, but less than reported - by about 2.5KB.

[Bug middle-end/83665] [8 regression] Big code size regression and some code quality improvement at Jan 2 2018

2018-01-03 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83665

Markus Trippelsdorf  changed:

   What|Removed |Added

 CC||trippels at gcc dot gnu.org

--- Comment #1 from Markus Trippelsdorf  ---
Also visible here:
https://vmakarov.fedorapeople.org/spec/spec2000.topka/gcc/home.html