public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/21676] [4.0/4.1/4.2 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
@ 2006-06-04 19:59 ` jsm28 at gcc dot gnu dot org
  2006-06-04 20:06 ` pinskia at gcc dot gnu dot org
                   ` (19 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: jsm28 at gcc dot gnu dot org @ 2006-06-04 19:59 UTC (permalink / raw)
  To: gcc-bugs



-- 

jsm28 at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Optimizer regression:       |[4.0/4.1/4.2 Regression]
                   |SciMark sparse matrix       |Optimizer regression:
                   |benchmark                   |SciMark sparse matrix
                   |                            |benchmark
   Target Milestone|---                         |4.1.2


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


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

* [Bug rtl-optimization/21676] [4.0/4.1/4.2 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
  2006-06-04 19:59 ` [Bug rtl-optimization/21676] [4.0/4.1/4.2 Regression] Optimizer regression: SciMark sparse matrix benchmark jsm28 at gcc dot gnu dot org
@ 2006-06-04 20:06 ` pinskia at gcc dot gnu dot org
  2006-06-06 11:46 ` gcc at pdoerfler dot com
                   ` (18 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-06-04 20:06 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from pinskia at gcc dot gnu dot org  2006-06-04 20:06 -------
It would be nice if we could get 4.1.x numbers.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   GCC host triplet|i686-pc-linux-gnu           |
 GCC target triplet|                            |i686-pc-linux-gnu


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


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

* [Bug rtl-optimization/21676] [4.0/4.1/4.2 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
  2006-06-04 19:59 ` [Bug rtl-optimization/21676] [4.0/4.1/4.2 Regression] Optimizer regression: SciMark sparse matrix benchmark jsm28 at gcc dot gnu dot org
  2006-06-04 20:06 ` pinskia at gcc dot gnu dot org
@ 2006-06-06 11:46 ` gcc at pdoerfler dot com
  2006-07-10 12:45 ` rguenth at gcc dot gnu dot org
                   ` (17 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: gcc at pdoerfler dot com @ 2006-06-06 11:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from gcc at pdoerfler dot com  2006-06-06 11:22 -------
I get the following with -O3 -march=pentium4 -fomit-frame-pointer on a pentium4
gentoo machine:

gcc-3.4.6   gcc-4.0.2   gcc-4.1.1
    2.69s       4.14s       3.26s

These are all with gentoo's patches.
Also, current mainline is the same as gcc-4.1.1

I can confirm that the difference without -fomit-frame-pointer is much smaller.
In fact, 3.4.6 and 4.1.1 are almost the same without it. 


-- 

gcc at pdoerfler dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |gcc at pdoerfler dot com


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


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

* [Bug rtl-optimization/21676] [4.0/4.1/4.2 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2006-06-06 11:46 ` gcc at pdoerfler dot com
@ 2006-07-10 12:45 ` rguenth at gcc dot gnu dot org
  2006-08-16  6:50 ` pinskia at gcc dot gnu dot org
                   ` (16 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-07-10 12:45 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from rguenth at gcc dot gnu dot org  2006-07-10 12:45 -------
I get on a Pentium 4, -O3 -march=pentium4 -fomit-frame-pointer -o bench
Random.i SparseCompRow.i array.i kernel.i main.i

3.4.6: 3.48s 
4.0.3: 4.44s
4.1.1: 4.12s
4.2.0: 4.13s


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu dot
                   |                            |org


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


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

* [Bug rtl-optimization/21676] [4.0/4.1/4.2 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (3 preceding siblings ...)
  2006-07-10 12:45 ` rguenth at gcc dot gnu dot org
@ 2006-08-16  6:50 ` pinskia at gcc dot gnu dot org
  2006-08-16 12:16 ` uros at kss-loka dot si
                   ` (15 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-08-16  6:50 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from pinskia at gcc dot gnu dot org  2006-08-16 06:50 -------
Can someone try the mainline again after Paolo B.'s patch?


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |missed-optimization


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


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

* [Bug rtl-optimization/21676] [4.0/4.1/4.2 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (4 preceding siblings ...)
  2006-08-16  6:50 ` pinskia at gcc dot gnu dot org
@ 2006-08-16 12:16 ` uros at kss-loka dot si
  2006-08-17  7:21 ` uros at kss-loka dot si
                   ` (14 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: uros at kss-loka dot si @ 2006-08-16 12:16 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from uros at kss-loka dot si  2006-08-16 12:15 -------
IMO the problem here is in IVopts. Using gcc-3.x, the innermost loop compiles
to:

.L15:
        movl    (%edi,%edx,4), %eax
        fldl    (%ebp,%edx,8)
        addl    $1, %edx
        fmull   (%esi,%eax,8)
        cmpl    %ecx, %edx
        faddp   %st, %st(1)
        jl      .L15

and with current SVN gcc-4.2 into:

.L12:
        movl    (%ecx), %eax
        fldl    (%ebp,%eax,8)
        fmull   (%edx)
        faddp   %st, %st(1)
        addl    $1, %ebx
        addl    $4, %ecx
        addl    $8, %edx
        cmpl    %esi, %ebx
        jne     .L12

Adding -fno-ivopts, this loop gets compiled into:

.L12:
        movl    (%edi,%edx,4), %eax
        fldl    (%esi,%eax,8)
        fmull   (%ebp,%edx,8)
        faddp   %st, %st(1)
        addl    $1, %edx
        cmpl    %edx, %ecx
        jg      .L12

Timings (-O3 -march=pentium4 -fomit-frame-pointer):

gcc-3.2: 0m2.301s
gcc-4.2: 0m2.713s
gcc-4.2 + -fno-ivopts: 0m2.473s

with:

gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)
gcc version 4.2.0 20060816 (experimental)

I think that remaining time difference is due to strange loop above innermost:
gcc-3.2:

        fld     %st(0)
.L16:
        movl    36(%esp), %eax
        fld     %st(0)
        movl    4(%eax,%ebx,4), %ecx
        movl    (%eax,%ebx,4), %edx
        cmpl    %ecx, %edx
        jge     .L23
.L15:
        movl    (%edi,%edx,4), %eax
        fldl    (%ebp,%edx,8)
        addl    $1, %edx
        fmull   (%esi,%eax,8)
        cmpl    %ecx, %edx
        faddp   %st, %st(1)
        jl      .L15
.L23:
        movl    28(%esp), %eax
        fstpl   (%eax,%ebx,8)
        addl    $1, %ebx
        cmpl    24(%esp), %ebx
        jl      .L16

========
gcc-4.2:

.L8:
        movl    36(%esp), %edx
        movl    (%edx,%edi,4), %eax
        movl    4(%edx,%edi,4), %esi
        fldz
        cmpl    %esi, %eax
        jge     .L11
        fstp    %st(0)
        movl    40(%esp), %ebx
        leal    (%ebx,%eax,4), %ecx
        movl    32(%esp), %ebx
        leal    (%ebx,%eax,8), %edx
        fldz
        xorl    %ebx, %ebx
        subl    %eax, %esi
.L12:
        movl    (%ecx), %eax
        fldl    (%ebp,%eax,8)
        fmull   (%edx)
        faddp   %st, %st(1)
        addl    $1, %ebx
        addl    $4, %ecx
        addl    $8, %edx
        cmpl    %esi, %ebx
        jne     .L12
.L11:
        movl    28(%esp), %eax
        fstpl   (%eax,%edi,8)
        addl    $1, %edi
        cmpl    24(%esp), %edi
        jne     .L8

========
and gcc-4.2 -fno-ivopts:

.L8:
        leal    (%ebx,%ebx), %eax
        movl    40(%esp), %edx
        movl    (%edx,%eax,2), %edx
        movl    %edx, (%esp)
        movl    40(%esp), %edx
        movl    4(%edx,%eax,2), %ecx
        fldz
        cmpl    %ecx, (%esp)
        jge     .L11
        fstp    %st(0)
        movl    (%esp), %edx
        fldz
.L12:
        movl    (%edi,%edx,4), %eax
        fldl    (%esi,%eax,8)
        fmull   (%ebp,%edx,8)
        faddp   %st, %st(1)
        addl    $1, %edx
        cmpl    %edx, %ecx
        jg      .L12
.L11:
        movl    32(%esp), %ecx
        fstpl   (%ecx,%ebx,8)
        addl    $1, %ebx
        cmpl    %ebx, 28(%esp)
        jg      .L8


-- 

uros at kss-loka dot si changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |uros at kss-loka dot si
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2006-08-16 12:15:56
               date|                            |


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


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

* [Bug rtl-optimization/21676] [4.0/4.1/4.2 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (5 preceding siblings ...)
  2006-08-16 12:16 ` uros at kss-loka dot si
@ 2006-08-17  7:21 ` uros at kss-loka dot si
  2006-08-17  7:46 ` uros at kss-loka dot si
                   ` (13 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: uros at kss-loka dot si @ 2006-08-17  7:21 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from uros at kss-loka dot si  2006-08-17 07:21 -------
(In reply to comment #6)

> I think that remaining time difference is due to strange loop above innermost:

... due to strange _header_ above innermost loop ...

The problem is that we load zero in both arms of "if".

This is what I get in .099t.optimized (using gcc-4.2 -O2 -fno-ivopts):

<L1>:;
  r.0 = (unsigned int) r;
  D.1556 = r.0 * 4;
  rowR = *((int *) D.1556 + row);
  rowRp1 = *((int *) D.1556 + row + 4B);
  if (rowR < rowRp1) goto <L41>; else goto <L42>;

<L42>:;
  sum = 0.0;
  goto <bb 5> (<L4>);

<L41>:;
  i = rowR;
  sum = 0.0;

Assignment to sum should be moved before if...

SSE is able to somehow CSE zero load during RTL:

.L8:
        movl 20(%ebp), %edx
        movapd  %xmm2, %xmm1
        movl (%edx,%ebx,4), %eax
        movl 4(%edx,%ebx,4), %ecx
        cmpl %ecx, %eax
        jge .L11
        movl %eax, %edx
        .p2align 4,,7
.L12:


-- 


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


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

* [Bug rtl-optimization/21676] [4.0/4.1/4.2 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (6 preceding siblings ...)
  2006-08-17  7:21 ` uros at kss-loka dot si
@ 2006-08-17  7:46 ` uros at kss-loka dot si
  2006-08-29  5:24 ` [Bug rtl-optimization/21676] [4.0/4.1 " pinskia at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: uros at kss-loka dot si @ 2006-08-17  7:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from uros at kss-loka dot si  2006-08-17 07:45 -------
Also interesting is, that -march=pentium4 produces following "de-optimized"
code, adding a couple more instructions and wasting %eax register:

.L8:
        leal    (%ebx,%ebx), %eax
        movl    40(%esp), %edx
        movl    (%edx,%eax,2), %edx
        movl    %edx, (%esp)
        movl    40(%esp), %edx
        movl    4(%edx,%eax,2), %ecx
        movapd  %xmm2, %xmm1
        cmpl    %ecx, (%esp)
        jge     .L11
        movl    (%esp), %edx
.L12:

Some additiona timing can be shown (gcc-4.2 -O2 -fomit-frame-pointer): 

-march=pentium4: 0m2.756s
-march=pentium4 -fno-ivopts: 0m2.500s
-march=pentium4 -fno-ivopts -mfpmath=sse: 0m2.461s
-msse2 -fno-ivopts -mfmpath=sse: 0m2.311s

In the last case, the generated code is equal to gcc-3.2 generated one:

.L8:
        movl    36(%esp), %edx
        movapd  %xmm2, %xmm1
        movl    (%edx,%ebx,4), %eax
        movl    4(%edx,%ebx,4), %ecx
        cmpl    %ecx, %eax
        jge     .L11
        movl    %eax, %edx
        .p2align 4,,7
.L12:
        movl    (%edi,%edx,4), %eax
        movsd   (%esi,%eax,8), %xmm0
        mulsd   (%ebp,%edx,8), %xmm0
        addl    $1, %edx
        cmpl    %edx, %ecx
        addsd   %xmm0, %xmm1
        jg      .L12


-- 


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


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

* [Bug rtl-optimization/21676] [4.0/4.1 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (7 preceding siblings ...)
  2006-08-17  7:46 ` uros at kss-loka dot si
@ 2006-08-29  5:24 ` pinskia at gcc dot gnu dot org
  2006-08-29  6:13 ` [Bug rtl-optimization/21676] [4.0/4.1/4.2 " uros at kss-loka dot si
                   ` (11 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-08-29  5:24 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from pinskia at gcc dot gnu dot org  2006-08-29 05:24 -------
Fixed on the mainline by:
http://gcc.gnu.org/ml/gcc-patches/2006-08/msg01036.html


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.0/4.1/4.2 Regression]    |[4.0/4.1 Regression]
                   |Optimizer regression:       |Optimizer regression:
                   |SciMark sparse matrix       |SciMark sparse matrix
                   |benchmark                   |benchmark


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


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

* [Bug rtl-optimization/21676] [4.0/4.1/4.2 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (8 preceding siblings ...)
  2006-08-29  5:24 ` [Bug rtl-optimization/21676] [4.0/4.1 " pinskia at gcc dot gnu dot org
@ 2006-08-29  6:13 ` uros at kss-loka dot si
  2007-02-14  9:11 ` [Bug rtl-optimization/21676] [4.0/4.1/4.2/4.3 " mmitchel at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: uros at kss-loka dot si @ 2006-08-29  6:13 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from uros at kss-loka dot si  2006-08-29 06:12 -------
(In reply to comment #9)
> Fixed on the mainline by:
> http://gcc.gnu.org/ml/gcc-patches/2006-08/msg01036.html

Not really, the above patch fixed only one of three problems. The other two
remains, that is:

- ivopts problem (see comment #6)
- -march=pentium4 (see comment #8)

I'll try to see which option causes problems, described in #8.


-- 

uros at kss-loka dot si changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.0/4.1 Regression]        |[4.0/4.1/4.2 Regression]
                   |Optimizer regression:       |Optimizer regression:
                   |SciMark sparse matrix       |SciMark sparse matrix
                   |benchmark                   |benchmark


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


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

* [Bug rtl-optimization/21676] [4.0/4.1/4.2/4.3 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (9 preceding siblings ...)
  2006-08-29  6:13 ` [Bug rtl-optimization/21676] [4.0/4.1/4.2 " uros at kss-loka dot si
@ 2007-02-14  9:11 ` mmitchel at gcc dot gnu dot org
  2007-12-16 23:17 ` steven at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2007-02-14  9:11 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=21676


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

* [Bug rtl-optimization/21676] [4.0/4.1/4.2/4.3 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (10 preceding siblings ...)
  2007-02-14  9:11 ` [Bug rtl-optimization/21676] [4.0/4.1/4.2/4.3 " mmitchel at gcc dot gnu dot org
@ 2007-12-16 23:17 ` steven at gcc dot gnu dot org
  2007-12-16 23:49 ` ubizjak at gmail dot com
                   ` (8 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: steven at gcc dot gnu dot org @ 2007-12-16 23:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from steven at gcc dot gnu dot org  2007-12-16 23:17 -------
Open regression with no activity since February 14.  Ping?


-- 


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


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

* [Bug rtl-optimization/21676] [4.0/4.1/4.2/4.3 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (11 preceding siblings ...)
  2007-12-16 23:17 ` steven at gcc dot gnu dot org
@ 2007-12-16 23:49 ` ubizjak at gmail dot com
  2008-01-12 15:29 ` steven at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: ubizjak at gmail dot com @ 2007-12-16 23:49 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from ubizjak at gmail dot com  2007-12-16 23:49 -------
(In reply to comment #11)
> Open regression with no activity since February 14.  Ping?

Current 4.3 SVN produces (-O3 -march=pentium4):

.L8:
        movl    (%ebx), %eax    #* ivtmp.33, tmp84
        fldl    (%edi,%eax,8)   #
        fmull   (%ecx)  #* ivtmp.35
        faddp   %st, %st(1)     #,
        addl    $1, %edx        #, i
        addl    $4, %ebx        #, ivtmp.33
        addl    $8, %ecx        #, ivtmp.35
        cmpl    %edx, %esi      # i, rowRp1
        jg      .L8     #,

(+ -fno-ivopts):

.L8:
        movl    (%esi,%edx,4), %eax     #, tmp76
        fldl    (%edi,%eax,8)   #* x
        movl    16(%ebp), %eax  # val,                  <-----here
        fmull   (%eax,%edx,8)   #
        faddp   %st, %st(1)     #,
        addl    $1, %edx        #, i
        cmpl    %edx, %ecx      # i, rowRp1
        jg      .L8     #,

We regressed vs. 4.2 in this case; "val" is loaded inside the loop.


-- 


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


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

* [Bug rtl-optimization/21676] [4.0/4.1/4.2/4.3 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (12 preceding siblings ...)
  2007-12-16 23:49 ` ubizjak at gmail dot com
@ 2008-01-12 15:29 ` steven at gcc dot gnu dot org
  2008-02-06 11:06 ` ubizjak at gmail dot com
                   ` (6 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: steven at gcc dot gnu dot org @ 2008-01-12 15:29 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from steven at gcc dot gnu dot org  2008-01-12 14:34 -------
Re. comment #7, "Assignment to sum should be moved before if..."

This is called code hoisting, and it is not performed in GCC except with -Os. 
See bug 24001, bug 33315, and other reports about the same issue in Bugzilla.


-- 


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


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

* [Bug rtl-optimization/21676] [4.0/4.1/4.2/4.3 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (13 preceding siblings ...)
  2008-01-12 15:29 ` steven at gcc dot gnu dot org
@ 2008-02-06 11:06 ` ubizjak at gmail dot com
  2008-07-04 16:54 ` [Bug rtl-optimization/21676] [4.2/4.3/4.4 " jsm28 at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: ubizjak at gmail dot com @ 2008-02-06 11:06 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from ubizjak at gmail dot com  2008-02-06 11:05 -------
We still generate:

.L8:
        movl    (%ebx), %eax
        addl    $1, %edx
        addl    $4, %ebx
        fldl    (%edi,%eax,8)
        fmull   (%ecx)
        addl    $8, %ecx
        cmpl    %edx, %esi
        faddp   %st, %st(1)
        jg      .L8

This could IMO be optimized on RTL level, to use %edx as a count variable:

.L8:
        movl    (%ebx,%edx,4), %eax
        fldl    (%edi,%eax,8)
        fmull   (%ecx,%edx,8)
        addl    $1, %edx
        cmpl    %edx, %esi
        faddp   %st, %st(1)
        jg      .L8

This would be optimal code for this loop.


-- 


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


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

* [Bug rtl-optimization/21676] [4.2/4.3/4.4 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (14 preceding siblings ...)
  2008-02-06 11:06 ` ubizjak at gmail dot com
@ 2008-07-04 16:54 ` jsm28 at gcc dot gnu dot org
  2008-11-22 10:33 ` steven at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: jsm28 at gcc dot gnu dot org @ 2008-07-04 16:54 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from jsm28 at gcc dot gnu dot org  2008-07-04 16:53 -------
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]
                   |Optimizer regression:       |Optimizer regression:
                   |SciMark sparse matrix       |SciMark sparse matrix
                   |benchmark                   |benchmark
   Target Milestone|4.1.3                       |4.2.5


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


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

* [Bug rtl-optimization/21676] [4.2/4.3/4.4 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (15 preceding siblings ...)
  2008-07-04 16:54 ` [Bug rtl-optimization/21676] [4.2/4.3/4.4 " jsm28 at gcc dot gnu dot org
@ 2008-11-22 10:33 ` steven at gcc dot gnu dot org
  2009-02-05  8:03 ` [Bug tree-optimization/21676] " bonzini at gnu dot org
                   ` (3 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: steven at gcc dot gnu dot org @ 2008-11-22 10:33 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from steven at gcc dot gnu dot org  2008-11-22 10:31 -------
See comment #7 and comment #13.


-- 

steven at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  BugsThisDependsOn|                            |23286


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


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

* [Bug tree-optimization/21676] [4.2/4.3/4.4 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (16 preceding siblings ...)
  2008-11-22 10:33 ` steven at gcc dot gnu dot org
@ 2009-02-05  8:03 ` bonzini at gnu dot org
  2009-02-16  9:04 ` [Bug tree-optimization/21676] [4.2/4.3 " bonzini at gnu dot org
                   ` (2 subsequent siblings)
  20 siblings, 0 replies; 21+ messages in thread
From: bonzini at gnu dot org @ 2009-02-05  8:03 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #17 from bonzini at gnu dot org  2009-02-05 08:03 -------
Confirmed:

3.3 -O2               3.11s
4.1 -O2               3.44s
4.4 -O2               3.36s
4.4 -O2 -fno-ivopts   3.00s


-- 

bonzini at gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bonzini at gnu dot org
          Component|rtl-optimization            |tree-optimization
   Last reconfirmed|2006-08-16 12:15:56         |2009-02-05 08:03:22
               date|                            |


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


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

* [Bug tree-optimization/21676] [4.2/4.3 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (17 preceding siblings ...)
  2009-02-05  8:03 ` [Bug tree-optimization/21676] " bonzini at gnu dot org
@ 2009-02-16  9:04 ` bonzini at gnu dot org
  2009-03-31 18:47 ` [Bug tree-optimization/21676] [4.3 " jsm28 at gcc dot gnu dot org
  2009-04-22 15:10 ` rguenth at gcc dot gnu dot org
  20 siblings, 0 replies; 21+ messages in thread
From: bonzini at gnu dot org @ 2009-02-16  9:04 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #18 from bonzini at gnu dot org  2009-02-16 09:04 -------
For whatever reason, we're now faster than GCC 3.3.

-O2 -fno-ivopts is still faster than -O2, will open an enhancement request for
that.


-- 

bonzini at gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|                            |4.4.0
            Summary|[4.2/4.3/4.4 Regression]    |[4.2/4.3 Regression]
                   |Optimizer regression:       |Optimizer regression:
                   |SciMark sparse matrix       |SciMark sparse matrix
                   |benchmark                   |benchmark


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


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

* [Bug tree-optimization/21676] [4.3 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (18 preceding siblings ...)
  2009-02-16  9:04 ` [Bug tree-optimization/21676] [4.2/4.3 " bonzini at gnu dot org
@ 2009-03-31 18:47 ` jsm28 at gcc dot gnu dot org
  2009-04-22 15:10 ` rguenth at gcc dot gnu dot org
  20 siblings, 0 replies; 21+ messages in thread
From: jsm28 at gcc dot gnu dot org @ 2009-03-31 18:47 UTC (permalink / raw)
  To: gcc-bugs



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


-- 

jsm28 at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.2/4.3 Regression]        |[4.3 Regression] Optimizer
                   |Optimizer regression:       |regression: SciMark sparse
                   |SciMark sparse matrix       |matrix benchmark
                   |benchmark                   |
   Target Milestone|4.2.5                       |4.3.4


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


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

* [Bug tree-optimization/21676] [4.3 Regression] Optimizer regression: SciMark sparse matrix benchmark
       [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
                   ` (19 preceding siblings ...)
  2009-03-31 18:47 ` [Bug tree-optimization/21676] [4.3 " jsm28 at gcc dot gnu dot org
@ 2009-04-22 15:10 ` rguenth at gcc dot gnu dot org
  20 siblings, 0 replies; 21+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-04-22 15:10 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #20 from rguenth at gcc dot gnu dot org  2009-04-22 15:10 -------
WONTFIX on the 4.3 branch.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
      Known to fail|4.0.4                       |4.0.4 4.3.3
         Resolution|                            |FIXED
   Target Milestone|4.3.4                       |4.4.0


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


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

end of thread, other threads:[~2009-04-22 15:10 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-21676-10607@http.gcc.gnu.org/bugzilla/>
2006-06-04 19:59 ` [Bug rtl-optimization/21676] [4.0/4.1/4.2 Regression] Optimizer regression: SciMark sparse matrix benchmark jsm28 at gcc dot gnu dot org
2006-06-04 20:06 ` pinskia at gcc dot gnu dot org
2006-06-06 11:46 ` gcc at pdoerfler dot com
2006-07-10 12:45 ` rguenth at gcc dot gnu dot org
2006-08-16  6:50 ` pinskia at gcc dot gnu dot org
2006-08-16 12:16 ` uros at kss-loka dot si
2006-08-17  7:21 ` uros at kss-loka dot si
2006-08-17  7:46 ` uros at kss-loka dot si
2006-08-29  5:24 ` [Bug rtl-optimization/21676] [4.0/4.1 " pinskia at gcc dot gnu dot org
2006-08-29  6:13 ` [Bug rtl-optimization/21676] [4.0/4.1/4.2 " uros at kss-loka dot si
2007-02-14  9:11 ` [Bug rtl-optimization/21676] [4.0/4.1/4.2/4.3 " mmitchel at gcc dot gnu dot org
2007-12-16 23:17 ` steven at gcc dot gnu dot org
2007-12-16 23:49 ` ubizjak at gmail dot com
2008-01-12 15:29 ` steven at gcc dot gnu dot org
2008-02-06 11:06 ` ubizjak at gmail dot com
2008-07-04 16:54 ` [Bug rtl-optimization/21676] [4.2/4.3/4.4 " jsm28 at gcc dot gnu dot org
2008-11-22 10:33 ` steven at gcc dot gnu dot org
2009-02-05  8:03 ` [Bug tree-optimization/21676] " bonzini at gnu dot org
2009-02-16  9:04 ` [Bug tree-optimization/21676] [4.2/4.3 " bonzini at gnu dot org
2009-03-31 18:47 ` [Bug tree-optimization/21676] [4.3 " jsm28 at gcc dot gnu dot org
2009-04-22 15:10 ` 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).