* [Bug rtl-optimization/22563] [3.4/4.0/4.1 Regression] performance regression for gcc newer than 2.95
[not found] <bug-22563-10914@http.gcc.gnu.org/bugzilla/>
@ 2005-10-27 0:20 ` pinskia at gcc dot gnu dot org
2005-10-31 4:12 ` mmitchel at gcc dot gnu dot org
` (12 subsequent siblings)
13 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-10-27 0:20 UTC (permalink / raw)
To: gcc-bugs
------- Comment #6 from pinskia at gcc dot gnu dot org 2005-10-27 00:20 -------
Hmm, this is truely all bit-field issues.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
OtherBugsDependingO| |19466
nThis| |
Severity|normal |minor
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [3.4/4.0/4.1 Regression] performance regression for gcc newer than 2.95
[not found] <bug-22563-10914@http.gcc.gnu.org/bugzilla/>
2005-10-27 0:20 ` [Bug rtl-optimization/22563] [3.4/4.0/4.1 Regression] performance regression for gcc newer than 2.95 pinskia at gcc dot gnu dot org
@ 2005-10-31 4:12 ` mmitchel at gcc dot gnu dot org
2005-11-03 22:54 ` hubicka at gcc dot gnu dot org
` (11 subsequent siblings)
13 siblings, 0 replies; 19+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2005-10-31 4:12 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from mmitchel at gcc dot gnu dot org 2005-10-31 04:12 -------
Leaving as P2.
I've seen reports of similar bitfield problems on a variety of problems. This
kind of code doesn't show up much in scientific computing, but it does show up
in network applications, operating-system kernels, etc.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [3.4/4.0/4.1 Regression] performance regression for gcc newer than 2.95
[not found] <bug-22563-10914@http.gcc.gnu.org/bugzilla/>
2005-10-27 0:20 ` [Bug rtl-optimization/22563] [3.4/4.0/4.1 Regression] performance regression for gcc newer than 2.95 pinskia at gcc dot gnu dot org
2005-10-31 4:12 ` mmitchel at gcc dot gnu dot org
@ 2005-11-03 22:54 ` hubicka at gcc dot gnu dot org
2006-02-16 2:08 ` [Bug rtl-optimization/22563] [3.4/4.0/4.1/4.2 " ian at airs dot com
` (10 subsequent siblings)
13 siblings, 0 replies; 19+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2005-11-03 22:54 UTC (permalink / raw)
To: gcc-bugs
------- Comment #8 from hubicka at gcc dot gnu dot org 2005-11-03 22:54 -------
Actually the code 4.1 in comment #5 should execute faster on true i686. It is
longer and will trigger partial memory stalls on later chips.
Honza
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [3.4/4.0/4.1/4.2 Regression] performance regression for gcc newer than 2.95
[not found] <bug-22563-10914@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2005-11-03 22:54 ` hubicka at gcc dot gnu dot org
@ 2006-02-16 2:08 ` ian at airs dot com
2006-02-24 0:26 ` mmitchel at gcc dot gnu dot org
` (9 subsequent siblings)
13 siblings, 0 replies; 19+ messages in thread
From: ian at airs dot com @ 2006-02-16 2:08 UTC (permalink / raw)
To: gcc-bugs
------- Comment #9 from ian at airs dot com 2006-02-16 02:08 -------
FYI, this code looks OK to me on mainline, entering the loop at .L18:
.L29:
andl $-16, %edx
cmpb $80, %dl
jne .L27
subl $1, %ecx
je .L28
.L18:
movl $86, %edx
movl %edx, %eax
andl $7, %eax
cmpb $6, %al
movb $86, b_rec
je .L29
.L27:
call abort
.L28:
Still looks kind of sloppy in 4.1, though.
I haven't tried to figure out what fixed it on mainline.
--
ian at airs dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ian at airs dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [3.4/4.0/4.1/4.2 Regression] performance regression for gcc newer than 2.95
[not found] <bug-22563-10914@http.gcc.gnu.org/bugzilla/>
` (3 preceding siblings ...)
2006-02-16 2:08 ` [Bug rtl-optimization/22563] [3.4/4.0/4.1/4.2 " ian at airs dot com
@ 2006-02-24 0:26 ` mmitchel at gcc dot gnu dot org
2006-04-06 1:33 ` pinskia at gcc dot gnu dot org
` (8 subsequent siblings)
13 siblings, 0 replies; 19+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2006-02-24 0:26 UTC (permalink / raw)
To: gcc-bugs
------- Comment #10 from mmitchel at gcc dot gnu dot org 2006-02-24 00:25 -------
This issue will not be resolved in GCC 4.1.0; retargeted at GCC 4.1.1.
--
mmitchel at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|4.0.3 |4.1.1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [3.4/4.0/4.1/4.2 Regression] performance regression for gcc newer than 2.95
[not found] <bug-22563-10914@http.gcc.gnu.org/bugzilla/>
` (4 preceding siblings ...)
2006-02-24 0:26 ` mmitchel at gcc dot gnu dot org
@ 2006-04-06 1:33 ` pinskia at gcc dot gnu dot org
2006-04-06 2:46 ` ian at airs dot com
` (7 subsequent siblings)
13 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-04-06 1:33 UTC (permalink / raw)
To: gcc-bugs
------- Comment #11 from pinskia at gcc dot gnu dot org 2006-04-06 01:33 -------
(In reply to comment #9)
> FYI, this code looks OK to me on mainline, entering the loop at .L18:
Except for the fact the bit-fields that are looked at are constant :).
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [3.4/4.0/4.1/4.2 Regression] performance regression for gcc newer than 2.95
[not found] <bug-22563-10914@http.gcc.gnu.org/bugzilla/>
` (5 preceding siblings ...)
2006-04-06 1:33 ` pinskia at gcc dot gnu dot org
@ 2006-04-06 2:46 ` ian at airs dot com
2006-05-09 11:59 ` [Bug rtl-optimization/22563] [4.0/4.1/4.2 " hubicka at gcc dot gnu dot org
` (6 subsequent siblings)
13 siblings, 0 replies; 19+ messages in thread
From: ian at airs dot com @ 2006-04-06 2:46 UTC (permalink / raw)
To: gcc-bugs
------- Comment #12 from ian at airs dot com 2006-04-06 02:46 -------
Yes, true. I can get constant code by not producing BIT_FIELD_REF so early.
But that disables other worthy optimizations. I don't have a coherent patch
yet.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [4.0/4.1/4.2 Regression] performance regression for gcc newer than 2.95
[not found] <bug-22563-10914@http.gcc.gnu.org/bugzilla/>
` (6 preceding siblings ...)
2006-04-06 2:46 ` ian at airs dot com
@ 2006-05-09 11:59 ` hubicka at gcc dot gnu dot org
2006-05-14 15:48 ` sayle at gcc dot gnu dot org
` (5 subsequent siblings)
13 siblings, 0 replies; 19+ messages in thread
From: hubicka at gcc dot gnu dot org @ 2006-05-09 11:59 UTC (permalink / raw)
To: gcc-bugs
------- Comment #13 from hubicka at gcc dot gnu dot org 2006-05-09 11:59 -------
The simplified testcase seems to be solved now (on mainline and Athlon):
hubicka@kampanus:/aux/hubicka/gcc/build/gcc$ gcc-2.95 -O3 t.C -march=i686
hubicka@kampanus:/aux/hubicka/gcc/build/gcc$ ./a.out
hubicka@kampanus:/aux/hubicka/gcc/build/gcc$ time ./a.out
real 0m1.809s
user 0m1.798s
sys 0m0.000s
hubicka@kampanus:/aux/hubicka/gcc/build/gcc$ time ./a.out
real 0m1.841s
user 0m1.796s
sys 0m0.002s
hubicka@kampanus:/aux/hubicka/gcc/build/gcc$ /aux/hubicka/egcs-mainline/bin/g++
-O3 t.C -static -march=i686
hubicka@kampanus:/aux/hubicka/gcc/build/gcc$ time ./a.out
real 0m1.713s
user 0m1.676s
sys 0m0.003s
hubicka@kampanus:/aux/hubicka/gcc/build/gcc$ time ./a.out
real 0m1.719s
user 0m1.700s
sys 0m0.000s
hubicka@kampanus:/aux/hubicka/gcc/build/gcc$ /aux/hubicka/egcs-mainline/bin/g++
-O3 t.C -static -march=athlon
hubicka@kampanus:/aux/hubicka/gcc/build/gcc$ time ./a.out
real 0m1.353s
user 0m1.347s
sys 0m0.002s
hubicka@kampanus:/aux/hubicka/gcc/build/gcc$
The assembly looks comparable to 2.95 one (instruction count wise, form is
closer to 4.0)
.L29:
andl $-16, %edx
cmpb $80, %dl
jne .L27
decl %ecx
je .L28
.L18:
movl $86, %edx
movb $86, b_rec
movl %edx, %eax
andl $7, %eax
cmpb $6, %al
je .L29
.L27:
call abort
Since no direct testcase for code in comment 5 is attached, can I ask if the
problem presist with generic model? It looks like the benchmark was executed
on different core than i686 but compiled with i686. With generic we should now
assume the partial memory stores and thus avoid the integer moves by halves of
destination.
Honza
--
hubicka at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |WAITING
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [4.0/4.1/4.2 Regression] performance regression for gcc newer than 2.95
[not found] <bug-22563-10914@http.gcc.gnu.org/bugzilla/>
` (7 preceding siblings ...)
2006-05-09 11:59 ` [Bug rtl-optimization/22563] [4.0/4.1/4.2 " hubicka at gcc dot gnu dot org
@ 2006-05-14 15:48 ` sayle at gcc dot gnu dot org
2006-05-14 19:03 ` [Bug rtl-optimization/22563] [4.0/4.1 " pinskia at gcc dot gnu dot org
` (4 subsequent siblings)
13 siblings, 0 replies; 19+ messages in thread
From: sayle at gcc dot gnu dot org @ 2006-05-14 15:48 UTC (permalink / raw)
To: gcc-bugs
------- Comment #14 from sayle at gcc dot gnu dot org 2006-05-14 15:48 -------
Subject: Bug 22563
Author: sayle
Date: Sun May 14 15:48:11 2006
New Revision: 113762
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113762
Log:
PR rtl-optimization/22563
* expmed.c (store_fixed_bit_field): When using AND and IOR to store
a fixed width bitfield, always force the intermediates into psuedos.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/expmed.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [4.0/4.1 Regression] performance regression for gcc newer than 2.95
[not found] <bug-22563-10914@http.gcc.gnu.org/bugzilla/>
` (8 preceding siblings ...)
2006-05-14 15:48 ` sayle at gcc dot gnu dot org
@ 2006-05-14 19:03 ` pinskia at gcc dot gnu dot org
2006-05-15 4:43 ` sayle at gcc dot gnu dot org
` (3 subsequent siblings)
13 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-05-14 19:03 UTC (permalink / raw)
To: gcc-bugs
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |NEW
Known to work|2.95.3 |2.95.3 4.2.0
Last reconfirmed|2006-02-06 16:52:04 |2006-05-14 19:03:37
date| |
Summary|[4.0/4.1/4.2 Regression] |[4.0/4.1 Regression]
|performance regression for |performance regression for
|gcc newer than 2.95 |gcc newer than 2.95
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [4.0/4.1 Regression] performance regression for gcc newer than 2.95
[not found] <bug-22563-10914@http.gcc.gnu.org/bugzilla/>
` (9 preceding siblings ...)
2006-05-14 19:03 ` [Bug rtl-optimization/22563] [4.0/4.1 " pinskia at gcc dot gnu dot org
@ 2006-05-15 4:43 ` sayle at gcc dot gnu dot org
2006-05-15 16:55 ` [Bug rtl-optimization/22563] [4.0 " pinskia at gcc dot gnu dot org
` (2 subsequent siblings)
13 siblings, 0 replies; 19+ messages in thread
From: sayle at gcc dot gnu dot org @ 2006-05-15 4:43 UTC (permalink / raw)
To: gcc-bugs
------- Comment #15 from sayle at gcc dot gnu dot org 2006-05-15 04:43 -------
Subject: Bug 22563
Author: sayle
Date: Mon May 15 04:43:05 2006
New Revision: 113775
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113775
Log:
PR rtl-optimization/22563
Backports from mainline
* expmed.c (store_fixed_bit_field): When using AND and IOR to store
a fixed width bitfield, always force the intermediates into pseudos.
Also check whether the bitsize is valid for the machine's "insv"
instruction before moving the target into a pseudo for use with
the insv.
* config/i386/predicates.md (const8_operand): New predicate.
* config/i386/i386.md (extv, extzv, insv): Use the new
const8_operand predicate where appropriate.
Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/config/i386/i386.md
branches/gcc-4_1-branch/gcc/config/i386/predicates.md
branches/gcc-4_1-branch/gcc/expmed.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [4.0 Regression] performance regression for gcc newer than 2.95
[not found] <bug-22563-10914@http.gcc.gnu.org/bugzilla/>
` (10 preceding siblings ...)
2006-05-15 4:43 ` sayle at gcc dot gnu dot org
@ 2006-05-15 16:55 ` pinskia at gcc dot gnu dot org
2006-05-16 1:17 ` sayle at gcc dot gnu dot org
2007-02-03 15:33 ` gdr at gcc dot gnu dot org
13 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-05-15 16:55 UTC (permalink / raw)
To: gcc-bugs
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to fail|3.3.3 3.0.4 3.2.3 3.4.0 |3.3.3 3.0.4 3.2.3 3.4.0
| |4.1.0
Known to work|2.95.3 4.2.0 |2.95.3 4.2.0 4.1.1
Summary|[4.0/4.1 Regression] |[4.0 Regression] performance
|performance regression for |regression for gcc newer
|gcc newer than 2.95 |than 2.95
Target Milestone|4.1.1 |4.0.4
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [4.0 Regression] performance regression for gcc newer than 2.95
[not found] <bug-22563-10914@http.gcc.gnu.org/bugzilla/>
` (11 preceding siblings ...)
2006-05-15 16:55 ` [Bug rtl-optimization/22563] [4.0 " pinskia at gcc dot gnu dot org
@ 2006-05-16 1:17 ` sayle at gcc dot gnu dot org
2007-02-03 15:33 ` gdr at gcc dot gnu dot org
13 siblings, 0 replies; 19+ messages in thread
From: sayle at gcc dot gnu dot org @ 2006-05-16 1:17 UTC (permalink / raw)
To: gcc-bugs
------- Comment #16 from sayle at gcc dot gnu dot org 2006-05-16 01:17 -------
Subject: Bug 22563
Author: sayle
Date: Tue May 16 01:17:13 2006
New Revision: 113810
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113810
Log:
PR rtl-optimization/22563
Backports from mainline
* expmed.c (store_fixed_bit_field): When using AND and IOR to store
a fixed width bitfield, always force the intermediates into pseudos.
Also check whether the bitsize is valid for the machine's "insv"
instruction before moving the target into a pseudo for use with
the insv.
* config/i386/predicates.md (const8_operand): New predicate.
* config/i386/i386.md (extv, extzv, insv): Use the new
const8_operand predicate where appropriate.
Modified:
branches/gcc-4_0-branch/gcc/ChangeLog
branches/gcc-4_0-branch/gcc/config/i386/i386.md
branches/gcc-4_0-branch/gcc/config/i386/predicates.md
branches/gcc-4_0-branch/gcc/expmed.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [4.0 Regression] performance regression for gcc newer than 2.95
[not found] <bug-22563-10914@http.gcc.gnu.org/bugzilla/>
` (12 preceding siblings ...)
2006-05-16 1:17 ` sayle at gcc dot gnu dot org
@ 2007-02-03 15:33 ` gdr at gcc dot gnu dot org
13 siblings, 0 replies; 19+ messages in thread
From: gdr at gcc dot gnu dot org @ 2007-02-03 15:33 UTC (permalink / raw)
To: gcc-bugs
------- Comment #17 from gdr at gcc dot gnu dot org 2007-02-03 15:32 -------
Fixed in GCC-4.1.1 and higher.
--
gdr at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
Target Milestone|4.0.4 |4.1.1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [3.4/4.0/4.1 Regression] performance regression for gcc newer than 2.95
2005-07-19 19:20 [Bug rtl-optimization/22563] New: " danalis at cis dot udel dot edu
@ 2005-07-19 19:57 ` pinskia at gcc dot gnu dot org
2005-07-22 21:18 ` pinskia at gcc dot gnu dot org
` (3 subsequent siblings)
4 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-07-19 19:57 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-07-19 19:53 -------
There are a couple problems here, first we don't move the store to b_rec out side of the loop. Doing
that on the mainline, we remove the loop as it is now unswitchable and really just empty.
In fact that will not really be what you wantted but hey fast empty loops :).
The other issue is that we don't constant prop the constants as we have a BIT_FIELD_REF which is most
likely the cause of the orginal regression in the first place though BIT_FIELD_REF was there in 2.95.3.
We can reduce your testcase down to stores really but that might not help the orginal code (except for
the fact this is just a benchmark which is really useless).
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
Keywords| |missed-optimization
Known to fail| |3.3.3 3.0.4 3.2.3 3.4.0
Known to work| |2.95.3
Last reconfirmed|0000-00-00 00:00:00 |2005-07-19 19:53:16
date| |
Summary|performance regression for |[3.4/4.0/4.1 Regression]
|gcc newer than 2.95 |performance regression for
| |gcc newer than 2.95
Target Milestone|--- |3.4.5
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [3.4/4.0/4.1 Regression] performance regression for gcc newer than 2.95
2005-07-19 19:20 [Bug rtl-optimization/22563] New: " danalis at cis dot udel dot edu
2005-07-19 19:57 ` [Bug rtl-optimization/22563] [3.4/4.0/4.1 Regression] " pinskia at gcc dot gnu dot org
@ 2005-07-22 21:18 ` pinskia at gcc dot gnu dot org
2005-08-04 19:16 ` danalis at cis dot udel dot edu
` (2 subsequent siblings)
4 siblings, 0 replies; 19+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-07-22 21:18 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-07-22 21:12 -------
Moving to 4.0.2 pre Mark.
--
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|3.4.5 |4.0.2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [3.4/4.0/4.1 Regression] performance regression for gcc newer than 2.95
2005-07-19 19:20 [Bug rtl-optimization/22563] New: " danalis at cis dot udel dot edu
2005-07-19 19:57 ` [Bug rtl-optimization/22563] [3.4/4.0/4.1 Regression] " pinskia at gcc dot gnu dot org
2005-07-22 21:18 ` pinskia at gcc dot gnu dot org
@ 2005-08-04 19:16 ` danalis at cis dot udel dot edu
2005-08-25 3:26 ` dann at godzilla dot ics dot uci dot edu
2005-09-27 15:59 ` mmitchel at gcc dot gnu dot org
4 siblings, 0 replies; 19+ messages in thread
From: danalis at cis dot udel dot edu @ 2005-08-04 19:16 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From danalis at cis dot udel dot edu 2005-08-04 19:16 -------
For the record the reduced test case was derived from h000007.cpp of bench++
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [3.4/4.0/4.1 Regression] performance regression for gcc newer than 2.95
2005-07-19 19:20 [Bug rtl-optimization/22563] New: " danalis at cis dot udel dot edu
` (2 preceding siblings ...)
2005-08-04 19:16 ` danalis at cis dot udel dot edu
@ 2005-08-25 3:26 ` dann at godzilla dot ics dot uci dot edu
2005-09-27 15:59 ` mmitchel at gcc dot gnu dot org
4 siblings, 0 replies; 19+ messages in thread
From: dann at godzilla dot ics dot uci dot edu @ 2005-08-25 3:26 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From dann at godzilla dot ics dot uci dot edu 2005-08-25 02:49 -------
This message:
http://gcc.gnu.org/ml/gcc/2005-08/msg00208.html
was asking for the reason for the slowdown for S000005e
AFAICT the inner loop for the benchmark (in s000005e_test) gets compiled to:
.L153:
fstl (%edx)
leal 8(%edx), %eax
fstl (%eax)
fstl 8(%eax)
fstl 16(%eax)
fstl 24(%eax)
fstl 32(%eax)
fstl 40(%eax)
fstl 48(%eax)
leal 56(%eax), %edx
cmpl %edx, %ecx
jne .L153
and to:
.L9:
movl $0, (%edx)
movl $1074266112, 4(%edx)
movl $0, 8(%edx)
movl $1074266112, 12(%edx)
movl $0, 16(%edx)
movl $1074266112, 20(%edx)
movl $0, 24(%edx)
movl $1074266112, 28(%edx)
movl $0, 32(%edx)
movl $1074266112, 36(%edx)
movl $0, 40(%edx)
movl $1074266112, 44(%edx)
movl $0, 48(%edx)
movl $1074266112, 52(%edx)
movl $0, 56(%edx)
movl $1074266112, 60(%edx)
addl $64, %edx
cmpl %edx, %ebx
jne .L9
by 4.1
The 4.1 code looks much worse...
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Bug rtl-optimization/22563] [3.4/4.0/4.1 Regression] performance regression for gcc newer than 2.95
2005-07-19 19:20 [Bug rtl-optimization/22563] New: " danalis at cis dot udel dot edu
` (3 preceding siblings ...)
2005-08-25 3:26 ` dann at godzilla dot ics dot uci dot edu
@ 2005-09-27 15:59 ` mmitchel at gcc dot gnu dot org
4 siblings, 0 replies; 19+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2005-09-27 15:59 UTC (permalink / raw)
To: gcc-bugs
--
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|4.0.2 |4.0.3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22563
^ permalink raw reply [flat|nested] 19+ messages in thread