public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/27810]  New: inefficient gimplification of function calls
@ 2006-05-29 22:21 dann at godzilla dot ics dot uci dot edu
  2006-05-29 22:28 ` [Bug tree-optimization/27810] " pinskia at gcc dot gnu dot org
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: dann at godzilla dot ics dot uci dot edu @ 2006-05-29 22:21 UTC (permalink / raw)
  To: gcc-bugs

int qqq (int a) {  int result;   result = bar (a);   return result;}

is gimplified to:

qqq (a)
{
  int D.2147;
  int D.2148;
  int result;

  D.2147 = bar (a);
  result = D.2147;
  D.2148 = result;
  return D.2148;
}

The D.2147 variable is redundant, the result of "bar" can be directly assigned 
to "result". Doing this just increases the memory footprint... 
(PR27800 is about the fact that D.2148 is also redundant)


-- 
           Summary: inefficient gimplification of function calls
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dann at godzilla dot ics dot uci dot edu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27810


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

* [Bug tree-optimization/27810] inefficient gimplification of function calls
  2006-05-29 22:21 [Bug tree-optimization/27810] New: inefficient gimplification of function calls dann at godzilla dot ics dot uci dot edu
@ 2006-05-29 22:28 ` pinskia at gcc dot gnu dot org
  2006-05-31 21:47 ` dann at godzilla dot ics dot uci dot edu
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-05-29 22:28 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pinskia at gcc dot gnu dot org  2006-05-29 22:28 -------
Confirmed.  IIRC this has do with exceptions though so it might be harder to
fix this.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |enhancement
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |memory-hog
   Last reconfirmed|0000-00-00 00:00:00         |2006-05-29 22:28:02
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27810


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

* [Bug tree-optimization/27810] inefficient gimplification of function calls
  2006-05-29 22:21 [Bug tree-optimization/27810] New: inefficient gimplification of function calls dann at godzilla dot ics dot uci dot edu
  2006-05-29 22:28 ` [Bug tree-optimization/27810] " pinskia at gcc dot gnu dot org
@ 2006-05-31 21:47 ` dann at godzilla dot ics dot uci dot edu
  2006-06-20 19:38 ` dann at godzilla dot ics dot uci dot edu
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: dann at godzilla dot ics dot uci dot edu @ 2006-05-31 21:47 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from dann at godzilla dot ics dot uci dot edu  2006-05-31 21:47 -------
My guesstimate is that for combine.i about 5-8% of the total number of
expressions
in the gimple dump are due to the gimplification inefficiencies shown in 
PRs 27798 27800 27809 27810, so these issues might have a compilation time
impact if fixed...


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27810


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

* [Bug tree-optimization/27810] inefficient gimplification of function calls
  2006-05-29 22:21 [Bug tree-optimization/27810] New: inefficient gimplification of function calls dann at godzilla dot ics dot uci dot edu
  2006-05-29 22:28 ` [Bug tree-optimization/27810] " pinskia at gcc dot gnu dot org
  2006-05-31 21:47 ` dann at godzilla dot ics dot uci dot edu
@ 2006-06-20 19:38 ` dann at godzilla dot ics dot uci dot edu
  2008-11-20 18:44 ` dann at godzilla dot ics dot uci dot edu
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: dann at godzilla dot ics dot uci dot edu @ 2006-06-20 19:38 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from dann at godzilla dot ics dot uci dot edu  2006-06-20 19:09 -------
More data: for PR8361 the number of functions in the .gimple dump is 5045, the
number of functions in the cleanup_cfg dump is 1341. The majority of the
functions that are eliminated are small functions, for those the extra overhead
due to inefficiencies in gimplification is significant. Maybe the people
interested in compilation speed at -O0 (especially for C++) want to take a look
at this and the related PRs...


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27810


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

* [Bug tree-optimization/27810] inefficient gimplification of function calls
  2006-05-29 22:21 [Bug tree-optimization/27810] New: inefficient gimplification of function calls dann at godzilla dot ics dot uci dot edu
                   ` (2 preceding siblings ...)
  2006-06-20 19:38 ` dann at godzilla dot ics dot uci dot edu
@ 2008-11-20 18:44 ` dann at godzilla dot ics dot uci dot edu
  2008-12-07 12:09 ` rguenth at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: dann at godzilla dot ics dot uci dot edu @ 2008-11-20 18:44 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from dann at godzilla dot ics dot uci dot edu  2008-11-20 18:43 -------
Still happens with 4.4.0:

qqq (int a)
{
  int result.0;
  int D.1236;
  int result;

  result.0 = bar (a);
  result = result.0;
  D.1236 = result;
  return D.1236;
}


-- 

dann at godzilla dot ics dot uci dot edu changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|unknown                     |4.4.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27810


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

* [Bug tree-optimization/27810] inefficient gimplification of function calls
  2006-05-29 22:21 [Bug tree-optimization/27810] New: inefficient gimplification of function calls dann at godzilla dot ics dot uci dot edu
                   ` (3 preceding siblings ...)
  2008-11-20 18:44 ` dann at godzilla dot ics dot uci dot edu
@ 2008-12-07 12:09 ` rguenth at gcc dot gnu dot org
  2009-03-31 10:24 ` rguenth at gcc dot gnu dot org
  2009-03-31 10:32 ` rguenth at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-12-07 12:09 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from rguenth at gcc dot gnu dot org  2008-12-07 12:07 -------
Mine.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
                   |dot org                     |org
                URL|                            |http://gcc.gnu.org/ml/gcc-
                   |                            |patches/2008-
                   |                            |12/msg00415.html
             Status|NEW                         |ASSIGNED
           Keywords|                            |patch
   Last reconfirmed|2006-05-29 22:28:02         |2008-12-07 12:07:28
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27810


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

* [Bug tree-optimization/27810] inefficient gimplification of function calls
  2006-05-29 22:21 [Bug tree-optimization/27810] New: inefficient gimplification of function calls dann at godzilla dot ics dot uci dot edu
                   ` (4 preceding siblings ...)
  2008-12-07 12:09 ` rguenth at gcc dot gnu dot org
@ 2009-03-31 10:24 ` rguenth at gcc dot gnu dot org
  2009-03-31 10:32 ` rguenth at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-03-31 10:24 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from rguenth at gcc dot gnu dot org  2009-03-31 10:23 -------
Subject: Bug 27810

Author: rguenth
Date: Tue Mar 31 10:23:44 2009
New Revision: 145338

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145338
Log:
2009-03-31  Richard Guenther  <rguenther@suse.de>

        PR middle-end/23401
        PR middle-end/27810
        * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
        (struct tree_decl_with_vis): Remove gimple_formal_temp member.
        * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
        a separate statement.
        * gimplify.c (pop_gimplify_context): Remove formal temp handling.
        (lookup_tmp_var): Likewise.
        (is_gimple_formal_tmp_or_call_rhs): Remove.
        (is_gimple_reg_or_call_rhs): Rename to ...
        (is_gimple_reg_rhs_or_call): ... this.
        (is_gimple_mem_or_call_rhs): Rename to ...
        (is_gimple_mem_rhs_or_call): ... this.
        (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
        DECL_GIMPLE_REG_P only if is_formal is true.
        (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
        for non-proper post-modify expression gimplification.
        (gimplify_self_mod_expr): For post-modify expressions gimplify
        the lvalue to a minimal lvalue.
        (rhs_predicate_for): Remove formal temp case.
        (gimplify_modify_expr_rhs): Likewise.
        (gimplify_addr_expr): Use is_gimple_reg.
        (gimplify_expr): Remove formal temp cases.
        (gimple_regimplify_operands): Likewise.
        * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
        and FILTER_EXPR like constants.
        * gimple.c (walk_gimple_op): Fix val_only initialization, use
        is_gimple_reg.
        (is_gimple_formal_tmp_rhs): Remove.
        (is_gimple_reg_rhs): Remove special casing.
        (is_gimple_mem_rhs): Fix.
        (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
        (is_gimple_formal_tmp_var): Remove.
        (is_gimple_formal_tmp_reg): Likewise.
        (is_gimple_min_lval): Allow invariant component ref parts.
        * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
        is_gimple_formal_tmp_reg): Remove declarations.
        * tree-cfg.c (verify_expr): Verify that variables with address
        taken do not have DECL_GIMPLE_REG_P set.
        * tree-mudflap.c (mf_build_check_statement_for): Use
        force_gimple_operand instead of gimplify_expr.

        java/
        * java-gimplify.c (java_gimplify_expr): Do not manually gimplify
        the first operand of binary and comaprison expressions.

        * gcc.dg/tree-ssa/pr23401.c: New testcase.
        * gcc.dg/tree-ssa/pr27810.c: Likewise.

Added:
    trunk/gcc/testsuite/gcc.dg/tree-ssa/pr23401.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/pr27810.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/gimple.c
    trunk/gcc/gimple.h
    trunk/gcc/gimplify.c
    trunk/gcc/java/ChangeLog
    trunk/gcc/java/java-gimplify.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-cfg.c
    trunk/gcc/tree-eh.c
    trunk/gcc/tree-mudflap.c
    trunk/gcc/tree-ssa-pre.c
    trunk/gcc/tree.h


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27810


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

* [Bug tree-optimization/27810] inefficient gimplification of function calls
  2006-05-29 22:21 [Bug tree-optimization/27810] New: inefficient gimplification of function calls dann at godzilla dot ics dot uci dot edu
                   ` (5 preceding siblings ...)
  2009-03-31 10:24 ` rguenth at gcc dot gnu dot org
@ 2009-03-31 10:32 ` rguenth at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-03-31 10:32 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from rguenth at gcc dot gnu dot org  2009-03-31 10:32 -------
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |4.5.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27810


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

end of thread, other threads:[~2009-03-31 10:32 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-05-29 22:21 [Bug tree-optimization/27810] New: inefficient gimplification of function calls dann at godzilla dot ics dot uci dot edu
2006-05-29 22:28 ` [Bug tree-optimization/27810] " pinskia at gcc dot gnu dot org
2006-05-31 21:47 ` dann at godzilla dot ics dot uci dot edu
2006-06-20 19:38 ` dann at godzilla dot ics dot uci dot edu
2008-11-20 18:44 ` dann at godzilla dot ics dot uci dot edu
2008-12-07 12:09 ` rguenth at gcc dot gnu dot org
2009-03-31 10:24 ` rguenth at gcc dot gnu dot org
2009-03-31 10:32 ` rguenth at gcc dot gnu dot 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).