public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug ipa/66760] New: [4.9/5/6 Regression] compile time regression in IPA inline analysis on PR26854 testcase
@ 2015-07-04 10:02 bonzini at gnu dot org
  2015-07-04 10:02 ` [Bug ipa/66760] " bonzini at gnu dot org
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: bonzini at gnu dot org @ 2015-07-04 10:02 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66760

            Bug ID: 66760
           Summary: [4.9/5/6 Regression] compile time regression in IPA
                    inline analysis on PR26854 testcase
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ipa
          Assignee: unassigned at gcc dot gnu.org
          Reporter: bonzini at gnu dot org
  Target Milestone: ---

PR26854 is spending a lot of time in alias stmt walking

 alias stmt walking      : 272.52 (65%)  (-O2)
 alias stmt walking      : 116.06 (67%)  (-O1)

walk_aliased_vdefs has a high % of time spent, but the time is spent in bitmap
operations rather than the callbacks!

This is because the callback is the trivial mark_modified function.  The guilty
walk_aliased_vdefs invocation is parm_ref_data_preserved_p, invoked from
ipa_load_from_parm_agg and in turn from unmodified_parm_or_parm_agg_item. 
Memoization via parms_ainfo seems like a plan.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug ipa/66760] [4.9/5/6 Regression] compile time regression in IPA inline analysis on PR26854 testcase
  2015-07-04 10:02 [Bug ipa/66760] New: [4.9/5/6 Regression] compile time regression in IPA inline analysis on PR26854 testcase bonzini at gnu dot org
@ 2015-07-04 10:02 ` bonzini at gnu dot org
  2015-07-06  7:15 ` rguenth at gcc dot gnu.org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: bonzini at gnu dot org @ 2015-07-04 10:02 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66760

Paolo Bonzini <bonzini at gnu dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |compile-time-hog
                 CC|                            |hubicka at gcc dot gnu.org

--- Comment #1 from Paolo Bonzini <bonzini at gnu dot org> ---
Testcase: http://www.math.purdue.edu/~lucier/gcc/test-files/bugzilla/1/all.i.gz


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug ipa/66760] [4.9/5/6 Regression] compile time regression in IPA inline analysis on PR26854 testcase
  2015-07-04 10:02 [Bug ipa/66760] New: [4.9/5/6 Regression] compile time regression in IPA inline analysis on PR26854 testcase bonzini at gnu dot org
  2015-07-04 10:02 ` [Bug ipa/66760] " bonzini at gnu dot org
@ 2015-07-06  7:15 ` rguenth at gcc dot gnu.org
  2015-07-08 14:47 ` jamborm at gcc dot gnu.org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-07-06  7:15 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66760

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2015-07-06
                 CC|                            |jamborm at gcc dot gnu.org
   Target Milestone|---                         |4.9.4
     Ever confirmed|0                           |1

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
I've already questioned the compile-time cost of those at introduction time.
It is limited by fbi->aa_walked but only if fbi is passed which it is not
when called via ipa_load_from_parm_agg.  Changing the interface to pass
the counter separately and add one to inline_summary similar to the ones
in func_body_info could fix this.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug ipa/66760] [4.9/5/6 Regression] compile time regression in IPA inline analysis on PR26854 testcase
  2015-07-04 10:02 [Bug ipa/66760] New: [4.9/5/6 Regression] compile time regression in IPA inline analysis on PR26854 testcase bonzini at gnu dot org
  2015-07-04 10:02 ` [Bug ipa/66760] " bonzini at gnu dot org
  2015-07-06  7:15 ` rguenth at gcc dot gnu.org
@ 2015-07-08 14:47 ` jamborm at gcc dot gnu.org
  2015-07-13 11:59 ` jamborm at gcc dot gnu.org
  2015-07-23 16:10 ` [Bug ipa/66760] [4.9/5 " jamborm at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: jamborm at gcc dot gnu.org @ 2015-07-08 14:47 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66760

--- Comment #3 from Martin Jambor <jamborm at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #2)
> I've already questioned the compile-time cost of those at introduction time.
> It is limited by fbi->aa_walked but only if fbi is passed which it is not
> when called via ipa_load_from_parm_agg.  Changing the interface to pass
> the counter separately and add one to inline_summary similar to the ones
> in func_body_info could fix this.

Right.  And me and Honza have meant to do that for a long time.
Hopefully this PR will finally force us to sit down and make inliner
use these limiting provisions too.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug ipa/66760] [4.9/5/6 Regression] compile time regression in IPA inline analysis on PR26854 testcase
  2015-07-04 10:02 [Bug ipa/66760] New: [4.9/5/6 Regression] compile time regression in IPA inline analysis on PR26854 testcase bonzini at gnu dot org
                   ` (2 preceding siblings ...)
  2015-07-08 14:47 ` jamborm at gcc dot gnu.org
@ 2015-07-13 11:59 ` jamborm at gcc dot gnu.org
  2015-07-23 16:10 ` [Bug ipa/66760] [4.9/5 " jamborm at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: jamborm at gcc dot gnu.org @ 2015-07-13 11:59 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66760

--- Comment #4 from Martin Jambor <jamborm at gcc dot gnu.org> ---
Paolo has submitted a patch for this issue to the mailing list:

https://gcc.gnu.org/ml/gcc-patches/2015-07/msg00984.html


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug ipa/66760] [4.9/5 Regression] compile time regression in IPA inline analysis on PR26854 testcase
  2015-07-04 10:02 [Bug ipa/66760] New: [4.9/5/6 Regression] compile time regression in IPA inline analysis on PR26854 testcase bonzini at gnu dot org
                   ` (3 preceding siblings ...)
  2015-07-13 11:59 ` jamborm at gcc dot gnu.org
@ 2015-07-23 16:10 ` jamborm at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: jamborm at gcc dot gnu.org @ 2015-07-23 16:10 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66760

--- Comment #6 from Martin Jambor <jamborm at gcc dot gnu.org> ---
Author: jamborm
Date: Thu Jul 23 16:09:56 2015
New Revision: 226114

URL: https://gcc.gnu.org/viewcvs?rev=226114&root=gcc&view=rev
Log:
2015-07-23  Martin Jambor  <mjambor@suse.cz>

        Backport from mainline r225838.
        2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
                    Martin Jambor  <mjambor@suse.cz>

        PR ipa/66760
        * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
        struct func_body_info* instead of struct ipa_node_params*, expecting
        fbi->info to be filled in.  Replace throughout.  Adjust call to
        ipa_load_from_parm_agg.
        (set_cond_stmt_execution_predicate): Accept struct func_body_info*
        instead of struct ipa_node_params*.  Adjust calls to other functions
        so that they pass either fbi or fbi->info.
        (set_switch_stmt_execution_predicate): Likewise.
        (will_be_nonconstant_predicate): Likewise.
        (compute_bb_predicates): Likewise.
        (estimate_function_body_sizes): Move asserts earlier.  Fill in
        struct func_body_info, replace parms_info with fbi.info.  Adjust
        calls to functions that now accept struct func_body_info.
        * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
        (struct func_body_info): Likewise.
        (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
        remove static.  Adjust callers.
        (ipa_load_from_parm_agg): Remove.
        * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
        (func_body_info): Likewise.
        (ipa_load_from_parm_agg): Adjust prototype.


Modified:
    branches/gcc-5-branch/gcc/ChangeLog
    branches/gcc-5-branch/gcc/ipa-inline-analysis.c
    branches/gcc-5-branch/gcc/ipa-prop.c
    branches/gcc-5-branch/gcc/ipa-prop.h


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-07-23 16:10 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-04 10:02 [Bug ipa/66760] New: [4.9/5/6 Regression] compile time regression in IPA inline analysis on PR26854 testcase bonzini at gnu dot org
2015-07-04 10:02 ` [Bug ipa/66760] " bonzini at gnu dot org
2015-07-06  7:15 ` rguenth at gcc dot gnu.org
2015-07-08 14:47 ` jamborm at gcc dot gnu.org
2015-07-13 11:59 ` jamborm at gcc dot gnu.org
2015-07-23 16:10 ` [Bug ipa/66760] [4.9/5 " jamborm at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).