public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/27440]  New: [4.0/4.1/4.2 regression] code quality regression due to ivopts
@ 2006-05-04 22:50 dann at godzilla dot ics dot uci dot edu
  2006-05-04 23:04 ` [Bug target/27440] " pinskia at gcc dot gnu dot org
                   ` (20 more replies)
  0 siblings, 21 replies; 22+ messages in thread
From: dann at godzilla dot ics dot uci dot edu @ 2006-05-04 22:50 UTC (permalink / raw)
  To: gcc-bugs

Compiling this code with 3.4.6
void fill2 (unsigned int *arr,  unsigned int val, unsigned int start, unsigned
int limit)
{
  unsigned int i;
  for (i = start; i < start + limit; i++)
    arr[i] = val;
}
generates: 
.L10:
        movl    %ecx, (%ebx,%eax,4)
        incl    %eax
.L8:
        cmpl    %eax, %edx
        ja      .L10
4.0/4.1/4.2 -O2 generate:

.L4:
        incl    %edx
        movl    %esi, (%eax)
        addl    $4, %eax
        cmpl    %ecx, %edx
        jne     .L4
which is both slower and bigger. 

using -O2 -fno-ivopts the result is much better:
.L4:
        movl    %ecx, (%ebx,%eax,4)
        incl    %eax
        cmpl    %edx, %eax
        jb      .L4

The difference in the .final_cleanup dump with and without ivopts is obvious:
With ivopts: 

  void * ivtmp.29;
  unsigned int ivtmp.26;
  unsigned int D.1290;

<bb 0>:
  D.1290 = start + limit;
  if (start < D.1290) goto <L6>; else goto <L2>;

<L6>:;
  ivtmp.29 = arr + (unsigned int *) (start * 4);
  ivtmp.26 = 0;

<L0>:;
  MEM[base: (unsigned int *) ivtmp.29] = val;
  ivtmp.26 = ivtmp.26 + 1;
  ivtmp.29 = ivtmp.29 + 4B;
  if (ivtmp.26 != D.1290 - start) goto <L0>; else goto <L2>;

<L2>:;
  return;

Without ivopts:
  unsigned int i;
  unsigned int D.1290;

<bb 0>:
  D.1290 = start + limit;
  if (start < D.1290) goto <L11>; else goto <L2>;

<L11>:;
  i = start;

<L0>:;
  *((unsigned int *) (i * 4) + arr) = val;
  i = i + 1;
  if (i < D.1290) goto <L0>; else goto <L2>;

<L2>:;
  return;


The   "void * ivtmp.29" is created by the ivopts pass. Why is it
a void* when it is known to be assigned to a unsigned int* ? 

Note that loops like the one in this example are quite common. For example in
the assembly for PR8361 there are about 37 "fill" functions with very similar
code (they are intantiations of 2 different templates, but still...)


-- 
           Summary: [4.0/4.1/4.2 regression] code quality regression due to
                    ivopts
           Product: gcc
           Version: 4.0.3
            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
GCC target triplet: i686-pc-linux-gnu


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


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

* [Bug target/27440] [4.0/4.1/4.2 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
@ 2006-05-04 23:04 ` pinskia at gcc dot gnu dot org
  2006-05-04 23:09 ` dann at godzilla dot ics dot uci dot edu
                   ` (19 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-05-04 23:04 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pinskia at gcc dot gnu dot org  2006-05-04 23:04 -------
IV-OPTs just gets info from the target.  Now if the target says weird
addressing mode is the same as cheap ones, what do you think will happen?


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |minor
          Component|tree-optimization           |target
           Keywords|                            |missed-optimization
   Target Milestone|---                         |4.0.4


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


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

* [Bug target/27440] [4.0/4.1/4.2 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
  2006-05-04 23:04 ` [Bug target/27440] " pinskia at gcc dot gnu dot org
@ 2006-05-04 23:09 ` dann at godzilla dot ics dot uci dot edu
  2006-05-05 13:10 ` rguenth at gcc dot gnu dot org
                   ` (18 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: dann at godzilla dot ics dot uci dot edu @ 2006-05-04 23:09 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from dann at godzilla dot ics dot uci dot edu  2006-05-04 23:09 -------
(In reply to comment #1)
> IV-OPTs just gets info from the target.  Now if the target says weird
> addressing mode is the same as cheap ones, what do you think will happen?

Does IV-OPTs also take into consideration the cost of having 2 IVs instead of
1? 


-- 


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


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

* [Bug target/27440] [4.0/4.1/4.2 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
  2006-05-04 23:04 ` [Bug target/27440] " pinskia at gcc dot gnu dot org
  2006-05-04 23:09 ` dann at godzilla dot ics dot uci dot edu
@ 2006-05-05 13:10 ` rguenth at gcc dot gnu dot org
  2006-06-04 18:50 ` mmitchel at gcc dot gnu dot org
                   ` (17 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-05-05 13:10 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from rguenth at gcc dot gnu dot org  2006-05-05 13:10 -------
Yes it does.  Not that the outcome is optimal here...


-- 


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


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

* [Bug target/27440] [4.0/4.1/4.2 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (2 preceding siblings ...)
  2006-05-05 13:10 ` rguenth at gcc dot gnu dot org
@ 2006-06-04 18:50 ` mmitchel at gcc dot gnu dot org
  2006-09-13  3:32 ` bangerth at dealii dot org
                   ` (16 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2006-06-04 18:50 UTC (permalink / raw)
  To: gcc-bugs



-- 

mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2


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


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

* [Bug target/27440] [4.0/4.1/4.2 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (3 preceding siblings ...)
  2006-06-04 18:50 ` mmitchel at gcc dot gnu dot org
@ 2006-09-13  3:32 ` bangerth at dealii dot org
  2006-09-13  4:26 ` pinskia at gcc dot gnu dot org
                   ` (15 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: bangerth at dealii dot org @ 2006-09-13  3:32 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from bangerth at dealii dot org  2006-09-13 03:32 -------
With today's 4.1.x snapshot and on x86_64, I get this at -O2:
----------------
.L4:
        mov     %edx, %eax
        incl    %edx
        cmpl    %edx, %ecx
        movl    %esi, (%rdi,%rax,4)
        jne     .L4
----------------
and this at -O2 -fno-ivopts
----------------
.L4:
        mov     %edx, %eax
        incl    %edx
        cmpl    %ecx, %edx
        movl    %esi, (%rdi,%rax,4)
        jb      .L4
----------------

That means we get the same bad code there in both cases :-(

W.


-- 

bangerth at dealii dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bangerth at dealii dot org


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


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

* [Bug target/27440] [4.0/4.1/4.2 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (4 preceding siblings ...)
  2006-09-13  3:32 ` bangerth at dealii dot org
@ 2006-09-13  4:26 ` pinskia at gcc dot gnu dot org
  2006-10-10 14:06 ` rguenth at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-09-13  4:26 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from pinskia at gcc dot gnu dot org  2006-09-13 04:25 -------
(In reply to comment #4)
> That means we get the same bad code there in both cases :-(

Actually that is better code than was produced before.  Only the extra move is
there now.  Except I don't get your results for either the mainline or 4.1.2.


-- 


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


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

* [Bug target/27440] [4.0/4.1/4.2 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (5 preceding siblings ...)
  2006-09-13  4:26 ` pinskia at gcc dot gnu dot org
@ 2006-10-10 14:06 ` rguenth at gcc dot gnu dot org
  2006-10-10 14:36 ` rakdver at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-10-10 14:06 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from rguenth at gcc dot gnu dot org  2006-10-10 14:06 -------
Confirmed (as in comment #1).  With -Os instead of -O2 we even produce

.L3:
        movl    %ebx, -4(%edx)
        incl    %eax
.L2:
        addl    $4, %edx
        cmpl    %ecx, %eax
        jb      .L3

(because loop header copying is disabled there).


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rakdver at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
      Known to work|                            |3.4.6
   Last reconfirmed|0000-00-00 00:00:00         |2006-10-10 14:06:28
               date|                            |


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


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

* [Bug target/27440] [4.0/4.1/4.2 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (6 preceding siblings ...)
  2006-10-10 14:06 ` rguenth at gcc dot gnu dot org
@ 2006-10-10 14:36 ` rakdver at gcc dot gnu dot org
  2006-10-10 14:48 ` uros at kss-loka dot si
                   ` (12 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: rakdver at gcc dot gnu dot org @ 2006-10-10 14:36 UTC (permalink / raw)
  To: gcc-bugs



-- 

rakdver at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |rakdver at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2006-10-10 14:06:28         |2006-10-10 14:36:32
               date|                            |


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


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

* [Bug target/27440] [4.0/4.1/4.2 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (7 preceding siblings ...)
  2006-10-10 14:36 ` rakdver at gcc dot gnu dot org
@ 2006-10-10 14:48 ` uros at kss-loka dot si
  2007-02-03 16:55 ` [Bug target/27440] [4.0/4.1/4.2/4.3 " gdr at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: uros at kss-loka dot si @ 2006-10-10 14:48 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from uros at kss-loka dot si  2006-10-10 14:48 -------
(In reply to comment #6)
> Confirmed (as in comment #1).  With -Os instead of -O2 we even produce
> 
> .L3:
>         movl    %ebx, -4(%edx)

The -4(...) part comes from PR 24669.


-- 


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


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

* [Bug target/27440] [4.0/4.1/4.2/4.3 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (8 preceding siblings ...)
  2006-10-10 14:48 ` uros at kss-loka dot si
@ 2007-02-03 16:55 ` gdr at gcc dot gnu dot org
  2007-02-03 20:30 ` pinskia at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: gdr at gcc dot gnu dot org @ 2007-02-03 16:55 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from gdr at gcc dot gnu dot org  2007-02-03 16:55 -------
Won't fix in GCC-4.0.x.  Adjusting milestone.


-- 

gdr at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.0.4                       |4.1.3


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


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

* [Bug target/27440] [4.0/4.1/4.2/4.3 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (9 preceding siblings ...)
  2007-02-03 16:55 ` [Bug target/27440] [4.0/4.1/4.2/4.3 " gdr at gcc dot gnu dot org
@ 2007-02-03 20:30 ` pinskia at gcc dot gnu dot org
  2007-02-14  9:25 ` mmitchel at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-02-03 20:30 UTC (permalink / raw)
  To: gcc-bugs



-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.1.3                       |4.1.2


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


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

* [Bug target/27440] [4.0/4.1/4.2/4.3 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (10 preceding siblings ...)
  2007-02-03 20:30 ` pinskia at gcc dot gnu dot org
@ 2007-02-14  9:25 ` mmitchel at gcc dot gnu dot org
  2007-11-19 10:07 ` steven at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2007-02-14  9:25 UTC (permalink / raw)
  To: gcc-bugs



-- 

mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.1.2                       |4.1.3


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


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

* [Bug target/27440] [4.0/4.1/4.2/4.3 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (11 preceding siblings ...)
  2007-02-14  9:25 ` mmitchel at gcc dot gnu dot org
@ 2007-11-19 10:07 ` steven at gcc dot gnu dot org
  2007-11-20  7:36 ` ubizjak at gmail dot com
                   ` (7 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: steven at gcc dot gnu dot org @ 2007-11-19 10:07 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from steven at gcc dot gnu dot org  2007-11-19 10:07 -------
What does GCC 4.3 do with the test case of this bug?


-- 

steven at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |WAITING


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


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

* [Bug target/27440] [4.0/4.1/4.2/4.3 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (12 preceding siblings ...)
  2007-11-19 10:07 ` steven at gcc dot gnu dot org
@ 2007-11-20  7:36 ` ubizjak at gmail dot com
  2007-11-20  7:37 ` ubizjak at gmail dot com
                   ` (6 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: ubizjak at gmail dot com @ 2007-11-20  7:36 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from ubizjak at gmail dot com  2007-11-20 07:36 -------
(In reply to comment #9)
> What does GCC 4.3 do with the test case of this bug?

gcc -Os:

.L3:
        movl    %ebx, -4(%edx)
        incl    %eax
.L2:
        addl    $4, %edx
        cmpl    %ecx, %eax
        jb      .L3

And the -4(...) is due to PR 26726, look at comment #18.


-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|2007-07-04 22:16:36         |2007-11-20 07:36:22
               date|                            |


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


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

* [Bug target/27440] [4.0/4.1/4.2/4.3 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (13 preceding siblings ...)
  2007-11-20  7:36 ` ubizjak at gmail dot com
@ 2007-11-20  7:37 ` ubizjak at gmail dot com
  2008-07-04 21:22 ` [Bug target/27440] [4.2/4.3/4.4 " jsm28 at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: ubizjak at gmail dot com @ 2007-11-20  7:37 UTC (permalink / raw)
  To: gcc-bugs



-- 

ubizjak at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW
   Last reconfirmed|2007-11-20 07:36:22         |2007-11-20 07:36:56
               date|                            |


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


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

* [Bug target/27440] [4.2/4.3/4.4 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (14 preceding siblings ...)
  2007-11-20  7:37 ` ubizjak at gmail dot com
@ 2008-07-04 21:22 ` jsm28 at gcc dot gnu dot org
  2009-02-03 16:25 ` bonzini at gnu dot org
                   ` (4 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: jsm28 at gcc dot gnu dot org @ 2008-07-04 21:22 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from jsm28 at gcc dot gnu dot org  2008-07-04 21:21 -------
Closing 4.1 branch.


-- 

jsm28 at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.1/4.2/4.3/4.4 regression]|[4.2/4.3/4.4 regression]
                   |code quality regression due |code quality regression due
                   |to ivopts                   |to ivopts
   Target Milestone|4.1.3                       |4.2.5


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


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

* [Bug target/27440] [4.2/4.3/4.4 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (15 preceding siblings ...)
  2008-07-04 21:22 ` [Bug target/27440] [4.2/4.3/4.4 " jsm28 at gcc dot gnu dot org
@ 2009-02-03 16:25 ` bonzini at gnu dot org
  2009-03-31 19:36 ` [Bug target/27440] [4.3/4.4/4.5 " jsm28 at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: bonzini at gnu dot org @ 2009-02-03 16:25 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from bonzini at gnu dot org  2009-02-03 16:25 -------
When generating 64-bit code we produce good induction variables either with or
without ivopts, but with an extra mov.

For 32-bit code the situation is the same as reported originally.


-- 

bonzini at gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bonzini at gnu dot org
   Last reconfirmed|2007-11-20 07:36:56         |2009-02-03 16:25:29
               date|                            |


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


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

* [Bug target/27440] [4.3/4.4/4.5 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (16 preceding siblings ...)
  2009-02-03 16:25 ` bonzini at gnu dot org
@ 2009-03-31 19:36 ` jsm28 at gcc dot gnu dot org
  2009-08-04 12:34 ` rguenth at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: jsm28 at gcc dot gnu dot org @ 2009-03-31 19:36 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from jsm28 at gcc dot gnu dot org  2009-03-31 19:36 -------
Closing 4.2 branch.


-- 

jsm28 at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.2/4.3/4.4/4.5 regression]|[4.3/4.4/4.5 regression]
                   |code quality regression due |code quality regression due
                   |to ivopts                   |to ivopts
   Target Milestone|4.2.5                       |4.3.4


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


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

* [Bug target/27440] [4.3/4.4/4.5 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (17 preceding siblings ...)
  2009-03-31 19:36 ` [Bug target/27440] [4.3/4.4/4.5 " jsm28 at gcc dot gnu dot org
@ 2009-08-04 12:34 ` rguenth at gcc dot gnu dot org
  2009-12-30 16:40 ` [Bug target/27440] [4.3/4.4 " steven at gcc dot gnu dot org
  2010-05-22 18:17 ` rguenth at gcc dot gnu dot org
  20 siblings, 0 replies; 22+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-08-04 12:34 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from rguenth at gcc dot gnu dot org  2009-08-04 12:27 -------
GCC 4.3.4 is being released, adjusting target milestone.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.3.4                       |4.3.5


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


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

* [Bug target/27440] [4.3/4.4 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (18 preceding siblings ...)
  2009-08-04 12:34 ` rguenth at gcc dot gnu dot org
@ 2009-12-30 16:40 ` steven at gcc dot gnu dot org
  2010-05-22 18:17 ` rguenth at gcc dot gnu dot org
  20 siblings, 0 replies; 22+ messages in thread
From: steven at gcc dot gnu dot org @ 2009-12-30 16:40 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from steven at gcc dot gnu dot org  2009-12-30 16:39 -------
With "GCC: (GNU) 4.5.0 20091228 (experimental) [trunk revision 155486]" I get
identical code at -O2 with and without -fno-ivopts for i686:

.L3:
        movl    %ebx, (%ecx,%eax,4)
        addl    $1, %eax
        cmpl    %edx, %eax
        jb      .L3


For x86_64 at -O2, there is still the extra mov. The extra mov is not there
with -Os (with and without -fno-ivopts).

Since the mov on x86_64 is essentially free, I consider this fixed for GCC
4.5.0.


-- 

steven at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|3.4.6                       |3.4.6 4.5.0
            Summary|[4.3/4.4/4.5 regression]    |[4.3/4.4 regression] code
                   |code quality regression due |quality regression due to
                   |to ivopts                   |ivopts


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


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

* [Bug target/27440] [4.3/4.4 regression] code quality regression due to ivopts
  2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
                   ` (19 preceding siblings ...)
  2009-12-30 16:40 ` [Bug target/27440] [4.3/4.4 " steven at gcc dot gnu dot org
@ 2010-05-22 18:17 ` rguenth at gcc dot gnu dot org
  20 siblings, 0 replies; 22+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-05-22 18:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from rguenth at gcc dot gnu dot org  2010-05-22 18:11 -------
GCC 4.3.5 is being released, adjusting target milestone.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.3.5                       |4.3.6


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


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

end of thread, other threads:[~2010-05-22 18:17 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-05-04 22:50 [Bug tree-optimization/27440] New: [4.0/4.1/4.2 regression] code quality regression due to ivopts dann at godzilla dot ics dot uci dot edu
2006-05-04 23:04 ` [Bug target/27440] " pinskia at gcc dot gnu dot org
2006-05-04 23:09 ` dann at godzilla dot ics dot uci dot edu
2006-05-05 13:10 ` rguenth at gcc dot gnu dot org
2006-06-04 18:50 ` mmitchel at gcc dot gnu dot org
2006-09-13  3:32 ` bangerth at dealii dot org
2006-09-13  4:26 ` pinskia at gcc dot gnu dot org
2006-10-10 14:06 ` rguenth at gcc dot gnu dot org
2006-10-10 14:36 ` rakdver at gcc dot gnu dot org
2006-10-10 14:48 ` uros at kss-loka dot si
2007-02-03 16:55 ` [Bug target/27440] [4.0/4.1/4.2/4.3 " gdr at gcc dot gnu dot org
2007-02-03 20:30 ` pinskia at gcc dot gnu dot org
2007-02-14  9:25 ` mmitchel at gcc dot gnu dot org
2007-11-19 10:07 ` steven at gcc dot gnu dot org
2007-11-20  7:36 ` ubizjak at gmail dot com
2007-11-20  7:37 ` ubizjak at gmail dot com
2008-07-04 21:22 ` [Bug target/27440] [4.2/4.3/4.4 " jsm28 at gcc dot gnu dot org
2009-02-03 16:25 ` bonzini at gnu dot org
2009-03-31 19:36 ` [Bug target/27440] [4.3/4.4/4.5 " jsm28 at gcc dot gnu dot org
2009-08-04 12:34 ` rguenth at gcc dot gnu dot org
2009-12-30 16:40 ` [Bug target/27440] [4.3/4.4 " steven at gcc dot gnu dot org
2010-05-22 18:17 ` 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).