Re: RFC - COST of const_double for x86 prevents constant copy propagation in cse

2005-08-25 Thread Richard Henderson
On Thu, Aug 25, 2005 at 12:37:32PM -0700, Ian Lance Taylor wrote: > For what it's worth, as I told Fariborz, I suspect that returning 0 is > correct for SFmode, but I'm somewhat doubtful for DFmode. Indeed. > And his test case is odd since the resulting code has more instructions > and is larger.

Re: RFC - COST of const_double for x86 prevents constant copy propagation in cse

2005-08-25 Thread Andrew Pinski
On Aug 25, 2005, at 3:59 PM, Fariborz Jahanian wrote: I think the problem may be somewhere else. I got the same xmm0 code sequence on Linux/ia32 with -msse3 -mfpmath=sse. However, I got xorl%eax, %eax movq%rax, 16(%rdi) movq%rax, 8(%rdi) movq%rax

Re: RFC - COST of const_double for x86 prevents constant copy propagation in cse

2005-08-25 Thread Fariborz Jahanian
On Aug 25, 2005, at 12:47 PM, H. J. Lu wrote: On Thu, Aug 25, 2005 at 12:37:32PM -0700, Ian Lance Taylor wrote: Fariborz Jahanian <[EMAIL PROTECTED]> writes: Forgot to attach the patch: Index: i386.c === RCS file: /cvs/gcc/gc

Re: RFC - COST of const_double for x86 prevents constant copy propagation in cse

2005-08-25 Thread H. J. Lu
On Thu, Aug 25, 2005 at 12:37:32PM -0700, Ian Lance Taylor wrote: > Fariborz Jahanian <[EMAIL PROTECTED]> writes: > > > Forgot to attach the patch: > > > > Index: i386.c > > === > > RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.c,v > >

Re: RFC - COST of const_double for x86 prevents constant copy propagation in cse

2005-08-25 Thread Ian Lance Taylor
Fariborz Jahanian <[EMAIL PROTECTED]> writes: > Forgot to attach the patch: > > Index: i386.c > === > RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.c,v > retrieving revision 1.795.4.33 > diff -c -p -r1.795.4.33 i386.c > *** i386.c

Re: RFC - COST of const_double for x86 prevents constant copy propagation in cse

2005-08-25 Thread Andrew Pinski
On Aug 25, 2005, at 2:09 PM, Fariborz Jahanian wrote: Compiled with -O1 -mdynamic-no-pic -march=pentium4 produces: pxor%xmm0, %xmm0 movsd %xmm0, 16(%eax) movsd %xmm0, 8(%eax) movsd %xmm0, (%eax) But following code results in 7% performance gain in eon

Re: RFC - COST of const_double for x86 prevents constant copy propagation in cse

2005-08-25 Thread Fariborz Jahanian
Forgot to attach the patch: Index: i386.c === RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.c,v retrieving revision 1.795.4.33 diff -c -p -r1.795.4.33 i386.c *** i386.c 15 Aug 2005 23:36:10 - 1.795.4.33 --- i386.c 25

RFC - COST of const_double for x86 prevents constant copy propagation in cse

2005-08-25 Thread Fariborz Jahanian
(Note! I am starting a new thread of an old thread because of old thread's corruption which prevented me from responding). Following test case: struct S { double d1, d2, d3; }; struct S ms() { struct S s = {0,0,0}; return s; } Compiled with -O1 -mdynamic-no-pic -march