[Bug rtl-optimization/22563] [4.0/4.1/4.2 Regression] performance regression for gcc newer than 2.95

2006-05-09 Thread hubicka at gcc dot gnu dot org


--- 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):
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ gcc-2.95 -O3 t.C -march=i686  
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ ./a.out
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ time ./a.out

real0m1.809s
user0m1.798s
sys 0m0.000s
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ time ./a.out

real0m1.841s
user0m1.796s
sys 0m0.002s
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ /aux/hubicka/egcs-mainline/bin/g++
 -O3 t.C -static  -march=i686  
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ time ./a.out

real0m1.713s
user0m1.676s
sys 0m0.003s
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ time ./a.out

real0m1.719s
user0m1.700s
sys 0m0.000s
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ /aux/hubicka/egcs-mainline/bin/g++
 -O3 t.C -static  -march=athlon
[EMAIL PROTECTED]:/aux/hubicka/gcc/build/gcc$ time ./a.out
real0m1.353s
user0m1.347s
sys 0m0.002s
[EMAIL PROTECTED]:/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:
callabort


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



[Bug rtl-optimization/22563] [4.0/4.1/4.2 Regression] performance regression for gcc newer than 2.95

2006-05-14 Thread sayle at gcc dot gnu dot org


--- 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