[dataflow]: Status for spu-elf

2006-12-11 Thread Andrew Pinski
Hi,
  I ran part of the testsuite on the dataflow branch for spu-elf.  I
only ran compile.exp as I don't have access to hardware (at home) and I
have not figured out how to use the "free" simulator from IBM yet.

There is one regression:
gcc.c-torture/compile/930513-2.c ICEs in find_reg_note when compiled
with -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions.

SPU has libcalls for double compares.

The backtrace is:
#1  0x08499f85 in find_reg_note (insn=0x0, kind=REG_LIBCALL, datum=0x0)
at ../../gcc/rtlanal.c:1593
#2  0x082fa876 in emit_copy_of_insn_after (insn=0xb7c4e4b0,
after=0xb7c4b210) at ../../gcc/emit-rtl.c:5326
#3  0x0826a3da in duplicate_insn_chain (from=0xb7c433a8, to=0xb7c4b18c)
at ../../gcc/cfglayout.c:971
#4  0x0826a4d6 in cfg_layout_duplicate_bb (bb=0xb7c44168)
at ../../gcc/cfglayout.c:1038
#5  0x0852535a in duplicate_block (bb=0xb7c44168, e=0x0,
after=0xb7c44480) at ../../gcc/cfghooks.c:804
#6  0x0826a914 in copy_bbs (bbs=0xa600cc8, n=2, new_bbs=0xa5e6b58,
edges=0xbfd5283c, num_edges=2, new_edges=0xbfd52834,
base=0xa60aa30, after=0xb7c44480) at ../../gcc/cfglayout.c:1221
#7  0x0827152d in duplicate_loop_to_header_edge (loop=0xa60aa30,
e=0xb7c4e780, loops=0xa5e6358, ndupl=7,
wont_exit=0xa5e5038, orig=0x0, to_remove=0x0, n_to_remove=0x0,
flags=3) at ../../gcc/cfgloopmanip.c:990
#8  0x08277508 in unroll_loop_stupid (loops=0xa5e6358, loop=0xa60aa30)
at ../../gcc/loop-unroll.c:1452
#9  0x08274839 in unroll_and_peel_loops (loops=0xa5e6358, flags=6)
at ../../gcc/loop-unroll.c:190


Also there is a progressions in that gcc.c-torture/compile/2804-1.c
no longer ICEs at -O3 -funroll-loops.

I will run the full testsuite tomorrow when I get to work as I have
access to hardware there.

Thanks,
Andrew Pinski



Re: Bootstrap broken on mipsel-linux...

2006-12-11 Thread David Daney

Steven Bosscher wrote:

On 12/11/06, David Daney <[EMAIL PROTECTED]> wrote:

 From svn r119726 (Sun, 10 Dec 2006) I am getting an ICE during
bootstrap on mipsel-linux.  This is a new failure  since Wed Dec 6
06:34:07 UTC 2006 (revision 119575) which bootstrapped and tested just
fine. I don't really want to do a regression hunt as bootstraps take 3
or 4 days for me.  I will update and try it again.


No need.  It's my CSE patch, no doubt:
http://gcc.gnu.org/ml/gcc-patches/2006-12/msg00698.html

I'll try to figure out what's wrong.


/home/build/gcc-build/./prev-gcc/xgcc
-B/home/build/gcc-build/./prev-gcc/
-B/usr/local/mipsel-unknown-linux-gnu/bin/ -c   -g -O2 -DIN_GCC   -W
-Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic
-Wno-long-long -Wno-variadic-macros -Wno-overlength-strings
-Wold-style-definition -Wmissing-format-attribute -Werror -fno-common
-DHAVE_CONFIG_H -I. -I. -I../../gcc/gcc -I../../gcc/gcc/.
-I../../gcc/gcc/../include -I../../gcc/gcc/../libcpp/include
-I../../gcc/gcc/../libdecnumber -I../libdecnumber
../../gcc/gcc/c-decl.c -o c-decl.o
../../gcc/gcc/c-decl.c: In function 'set_type_context':
../../gcc/gcc/c-decl.c:691: internal compiler error: in cse_find_path,
at cse.c:5930
Please submit a full bug report,
with preprocessed source if appropriate.


Sic :-)  A test case would be helpful.

Lets assume that it doesn't effect i686 or x86_64.  Because if it did, 
someone else would have been hit by it by now.


So you would need a mips[el]-linux system in order to reproduce it.  But 
if you had that, you could compile c-decl.c yourself to reproduce it.  
But if you really want it, I can get you a preprocessed version of 
c-decl.c.  I suppose one could try it on a  cross-compiler, but I have 
no idea if that would fail in the same manner.


David Daney


ggdb3 information lost using temporary preprocessed file

2006-12-11 Thread s b

Hello,

I already post this message on gcc-help but had no answer.
Does anybody have a suggestion?

--

I recently started to test 'distcc' to speedup some compilations.
Then I noticed the sizes of generated objects were not the same
compiled locally (using gcc only) and remotely (using gcc through
distcc). After some investigations I found the issue was related to
the '-ggdb3' flag and the fact distcc splits the compilation in two
steps.


The issue can be reproduced without distcc; for the following 'main.c'
code the local command used is: 'gcc -ggdb3 -c main.c' and the distcc
one is equivalent to a local: 'gcc -ggdb3 -c main.c -E > main.i; gcc
-ggdb3 -c main.i'.


The resulting sizes are respectively 15400 and 3992 bytes. Using
'-ggdb2' the generated objects are the same. I guess some debugging
information is lost when the compilation is split into two steps but
it could prevent the use of 'distcc' in some cases.
Does anybody know if this is the expected behavior or if it is a bug?
Does a workaround exist?


Thanks in advance and best regards,
sb


PS: we use gcc 3.4.5 on a Linux/Suse Linux Enterprise Server 9 but the
behavior is the same on Solaris 10 (same gcc version).


The main.c code:
#include 
int main(int argc, char **argv)
{
printf("Hello\n");
return 0;
}


re: ggdb3 information lost using temporary preprocessed file

2006-12-11 Thread Dan Kegel

You might want to file a bug at http://gcc.gnu.org/bugzilla/ for this.


Re: Bootstrap broken on mipsel-linux...

2006-12-11 Thread Steven Bosscher

On 12/11/06, David Daney <[EMAIL PROTECTED]> wrote:

Lets assume that it doesn't effect i686 or x86_64.  Because if it did,
someone else would have been hit by it by now.


I'm sure it doesn't, I bootstrapped&tested on those targets (and on ia64).


So you would need a mips[el]-linux system in order to reproduce it.  But
if you had that, you could compile c-decl.c yourself to reproduce it.
But if you really want it, I can get you a preprocessed version of
c-decl.c.  I suppose one could try it on a  cross-compiler, but I have
no idea if that would fail in the same manner.


If you have a test case, I should be able to reproduce it with a
cross.  Getting a test case with a cross-compiler is the more
difficult part.  I could try to use a preprocessed c-decl.c from the
cross-compiler configuration. But it wouldn't be the same input file
as the one from your ICE, so whether that would allow me to reproduce
the problem remains to be seen. If you have a preprocessed c-decl.c
that ICEs for you, that would be helpful.  If not, I'll just have to
figure out a way to reproduce the ICE in some different way.

Gr.
Steven


Re: Bootstrap broken on mipsel-linux...

2006-12-11 Thread Kaz Kojima
David Daney <[EMAIL PROTECTED]> wrote:
>  From svn r119726 (Sun, 10 Dec 2006) I am getting an ICE during 
> bootstrap on mipsel-linux.  This is a new failure  since Wed Dec 6 
> 06:34:07 UTC 2006 (revision 119575) which bootstrapped and tested just 
> fine. I don't really want to do a regression hunt as bootstraps take 3 
> or 4 days for me.  I will update and try it again.

While I've looked at a wrong code problem on sh-elf, I've
noticed that it happens also on mips-elf.  It might affect
mipsel-linux.
Now gcc.c-torture/execute/20010422-1.c is compiled like as

foo:
.frame  $sp,0,$31   # vars= 0, regs= 0/0, args= 0, gp= 0
.mask   0x,0
.fmask  0x,0
.setnoreorder
.setnomacro

sltu$2,$2,5
beq $2,$0,$L2
nop
...

which looks wrong.  The binary search shows that before

  r119711 | amacleod | 2006-12-11 06:25:40 +0900 (Mon, 11 Dec 2006) | 103 lines

the assembler output is

foo:
.frame  $sp,0,$31   # vars= 0, regs= 0/0, args= 0, gp= 0
.mask   0x,0
.fmask  0x,0
.setnoreorder
.setnomacro

sltu$4,$4,5
beq $4,$0,$L2
nop
...

It seems that the first tree dump which differs before and
after r119711 is .099t.optimized.

[r119710 .099t.optimized]
;; Function foo (foo)

Analyzing Edge Insertions.
foo (x)
{
  unsigned int x.24;

:
  if (x <= 4) goto ; else goto ;

:;
  x.24 = 4;
  goto  ();

:;
  x.24 = 8;

:;
  return x.24;

}

[r119711 .099t.optimized]
;; Function foo (foo)

Analyzing Edge Insertions.
foo (x)
{
  unsigned int x.24;

:
  if (x.24 <= 4) goto ; else goto ;

:;
  x = 4;
  goto  ();

:;
  x = 8;

:;
  return x;

}

Regards,
kaz


Re: Bootstrap broken on mipsel-linux...

2006-12-11 Thread Steven Bosscher

On 12/11/06, Kaz Kojima <[EMAIL PROTECTED]> wrote:

It seems that the first tree dump which differs before and
after r119711 is .099t.optimized.


In that case, this is a different problem, probably caused by the new
out-of-SSA pass.  But to be sure, I suggest you revert my CSE patch
and see if that makes the problem go away for you.

Gr.
Steven


Re: Bootstrap broken on mipsel-linux...

2006-12-11 Thread Andrew MacLeod
On Mon, 2006-12-11 at 15:16 +0100, Steven Bosscher wrote:
> On 12/11/06, Kaz Kojima <[EMAIL PROTECTED]> wrote:
> > It seems that the first tree dump which differs before and
> > after r119711 is .099t.optimized.
> 
> In that case, this is a different problem, probably caused by the new
> out-of-SSA pass.  But to be sure, I suggest you revert my CSE patch
> and see if that makes the problem go away for you.


The out of ssa pass can generate different code since the costing
routine was tweaked slightly. I am not suprised the listing is
different, but that alone will not determine if that is where the bug
is. 

Andrew



Re: Serious SPEC CPU 2006 FP performance regressions on IA32 and x86-64

2006-12-11 Thread H. J. Lu
On Fri, Dec 08, 2006 at 01:02:27PM -0600, Menezes, Evandro wrote:
> HJ, 
> 
> I'll run the three worst offenders below and get back to y'all.
> 
> The full results will take longer.


Hi Evandro, 

I also saw similar issues on x86-64 with -O2 -ffast-math:

 gcc-4.2 rev 116820   gcc 4.3 rev 119497
410.bwaves   10.910.6-2.75229%
416.gamess   15.015.64%
433.milc 13.012.9-0.769231%
434.zeusmp   13.913.90%
435.gromacs  8.418.40-0.118906%
436.cactusADM10.310.2-0.970874%
437.leslie3d 10.67.55-28.7736%
444.namd 13.613.60%
447.dealII   23.723.80.421941%
450.soplex   15.515.4-0.645161%
453.povray   17.718.75.64972%
454.calculix 6.967.041.14943%
459.GemsFDTD 12.39.87-19.7561%
465.tonto12.612.4-1.5873%
470.lbm  15.916.00.628931%
481.wrf  10.39.97-3.20388%
482.sphinx3  18.518.4-0.540541%
Est. SPECfp_base2006 12.912.5-3.10078%

Did you see it on AMD?


H.J.


Accessing CVS

2006-12-11 Thread Rohit Arul Raj

Hi all,

How to download GCC projects from CVS
For e.g.i tried this one
cvs -d :pserver:[EMAIL PROTECTED]:/cvsroot/gcc checkout -P
/branches./fixed-point

But it did not work.

Regards,
Rohit


Re: Accessing CVS

2006-12-11 Thread Manuel López-Ibáñez

You have to use subversion, not CVS. Everything is explained here:

http://gcc.gnu.org/svn.html

The command you probably want is:

svn -q checkout svn://gcc.gnu.org/svn/gcc/branches/fixed-point/ fixed-point

I hope this helps.

Cheers,

Manuel.


On 11/12/06, Rohit Arul Raj <[EMAIL PROTECTED]> wrote:

Hi all,

How to download GCC projects from CVS
For e.g.i tried this one
cvs -d :pserver:[EMAIL PROTECTED]:/cvsroot/gcc checkout -P
/branches./fixed-point

But it did not work.

Regards,
Rohit



RE: Serious SPEC CPU 2006 FP performance regressions on IA32

2006-12-11 Thread Menezes, Evandro
HJ,

> > Gcc 4.3 revision 119497 has very poor SPEC CPU 2006 FP performance
> > regressions on P4, Pentium M and Core Duo, comparing aganst
> > gcc 4.2 20060910. With -O2, the typical regressions look like
> > 
> > Gcc 4.2 Gcc 4.3
> > 410.bwaves   9.899.14-7.58342%
> > 416.gamess   7.177.16-0.13947%
> > 433.milc 7.687.65-0.390625%
> > 434.zeusmp   5.575.55-0.359066%
> > 435.gromacs  3.994.020.75188%
> > 436.cactusADM4.594.50-1.96078%
> > 437.leslie3d 5.783.98-31.1419%
> > 444.namd 6.256.18-1.12%
> > 447.dealII   11.311.30%
> > 450.soplex   8.618.59-0.232288%
> > 453.povray   6.706.720.298507%
> > 454.calculix 2.812.74-2.4911%
> > 459.GemsFDTD 6.074.95-18.4514%
> > 465.tonto4.444.450.225225%
> > 470.lbm  10.610.70.943396%
> > 481.wrf  4.564.50-1.31579%
> > 482.sphinx3  11.211.1-0.892857%
> > Est. SPECfp_base2006 6.426.15-4.20561%
> > 
> > Evandro, what do you get on AMD?
> > 
> > Is that related to recent i386 backend FP changes?

Here's what we got:

  ?%
CPU2006 
410.bwaves   -6%
416.gamess  
433.milc
434.zeusmp  
435.gromacs 
436.cactusADM   
437.leslie3d-26%
444.namd
447.dealII  
450.soplex  
453.povray  
454.calculix
459.GemsFDTD-12%
465.tonto   
470.lbm 
481.wrf 
482.sphinx3  

Though not as pronounced, definitely significant.

-- 
___
Evandro Menezes   AMDAustin, TX





Re: Serious SPEC CPU 2006 FP performance regressions on IA32

2006-12-11 Thread H. J. Lu
On Mon, Dec 11, 2006 at 11:35:27AM -0600, Menezes, Evandro wrote:
> HJ,
> 
> > > Gcc 4.3 revision 119497 has very poor SPEC CPU 2006 FP performance
> > > regressions on P4, Pentium M and Core Duo, comparing aganst
> > > gcc 4.2 20060910. With -O2, the typical regressions look like
> > > 
> > >   Gcc 4.2 Gcc 4.3
> > > 410.bwaves   9.899.14-7.58342%
> > > 416.gamess   7.177.16-0.13947%
> > > 433.milc 7.687.65-0.390625%
> > > 434.zeusmp   5.575.55-0.359066%
> > > 435.gromacs  3.994.020.75188%
> > > 436.cactusADM4.594.50-1.96078%
> > > 437.leslie3d 5.783.98-31.1419%
> > > 444.namd 6.256.18-1.12%
> > > 447.dealII   11.311.30%
> > > 450.soplex   8.618.59-0.232288%
> > > 453.povray   6.706.720.298507%
> > > 454.calculix 2.812.74-2.4911%
> > > 459.GemsFDTD 6.074.95-18.4514%
> > > 465.tonto4.444.450.225225%
> > > 470.lbm  10.610.70.943396%
> > > 481.wrf  4.564.50-1.31579%
> > > 482.sphinx3  11.211.1-0.892857%
> > > Est. SPECfp_base2006 6.426.15-4.20561%
> > > 
> > > Evandro, what do you get on AMD?
> > > 
> > > Is that related to recent i386 backend FP changes?
> 
> Here's what we got:
> 
> ?%
> CPU2006   
> 410.bwaves -6%
> 416.gamess
> 433.milc  
> 434.zeusmp
> 435.gromacs   
> 436.cactusADM 
> 437.leslie3d  -26%
> 444.namd  
> 447.dealII
> 450.soplex
> 453.povray
> 454.calculix  
> 459.GemsFDTD  -12%
> 465.tonto 
> 470.lbm   
> 481.wrf   
> 482.sphinx3
> 
> Though not as pronounced, definitely significant.
> 

It is close to what we see on both x86 and x86-64. Are you going to
track it down?


H.J.


Re: failed to compile gcc-4.3-20061209/gcc/varasm.c on OSX 10.3

2006-12-11 Thread Steve Ellcey
Andreas Tobler wrote:

> Dominique Dhumieres wrote:
>>...
>>cc1: warnings being treated as errors
>>../../gcc-4.3-20061209/gcc/varasm.c: In function 'elf_record_gcc_switches':
>>../../gcc-4.3-20061209/gcc/varasm.c:6268: warning: format '%llu' expects type 
>>'long long unsigned int', but argument 3 has type 'long int'
>>../../gcc-4.3-20061209/gcc/varasm.c:6275: warning: format '%llu' expects type 
>>'long long unsigned int', but argument 3 has type 'long int'
>>../../gcc-4.3-20061209/gcc/varasm.c:6283: warning: format '%llu' expects type 
>>'long long unsigned int', but argument 3 has type 'long int'
>>../../gcc-4.3-20061209/gcc/varasm.c:6302: warning: format '%llu' expects type 
>>'long long unsigned int', but argument 3 has type 'long int'
>>make[3]: *** [varasm.o] Error 1
>>
>> Any idea around about the cause and/or the way to fix it?
> 
> This is known to break on all 32-bit targets. (afaik) On 64-bit targets 
> it works.
> 
> You can either wait until the patch is reverted or the correct fix is done.

Do you know if there a GCC bug report for this defect?  I couldn't find
one in bugzilla.  I am seeing this problem with IA64 HP-UX on ToT.  I
tried the workaround you gave and that makes IA64 HP-UX work but causes
other platforms to fail so I am wondering when there will be a real fix
for this bootstrap problem.

Steve Ellcey
[EMAIL PROTECTED]


Unwinding CFI gcc practice of assumed `same value' regs

2006-12-11 Thread Jan Kratochvil
Hello,

currently (on x86_64) the gdb backtrace does not properly stop at the outermost
frame:

#3  0x0036ddb0610a in start_thread () from /lib64/tls/libpthread.so.0
#4  0x0036dd0c68c3 in clone () from /lib64/tls/libc.so.6
#5  0x in ?? ()

Currently it relies only on clearing %rbp (0x above is
unrelated to it, it got read from uninitialized memory).

http://sourceware.org/ml/gdb/2004-08/msg00060.html suggests frame pointer 0x0
should be enough for a debugger not finding CFI to stop unwinding, still it is
a heuristic.  In the -fno-frame-pointer compiled code there is no indication
the frame pointer register became a regular one and 0x0 is its valid value.

The right unwinding stop indication should be CFI-undefined PC:
http://dwarf.freestandards.org/Dwarf3.pdf - page 118 (130/267)
- If a Return Address register is defined in the virtual unwind table,
  and its rule is undefined (for example, by DW_CFA_undefined), then
  there is no return address and no call address, and the virtual
  unwind of stack activations is complete.

It has been recently patched for glibc clone() (as the outermost frame)
http://sourceware.org/ml/libc-alpha/2006-11/msg00082.html
but it had to be reverted as the current libgcc_s unwinder is incompatible:
http://sourceware.org/ml/libc-alpha/2006-12/msg00078.html

Current libgcc_s unwinder does not differentiate between `DW_CFA_undefined' and
`DW_CFA_same_value' as both set a register state to its `REG_UNSAVED'.

Updating its behavior unfortunately relies on another current ABI incoherency
as DWARF specifies all the registers should be `undefined' by default
http://dwarf.freestandards.org/Dwarf3.pdf - page 111 (123/267)
- The default rule for all columns before interpretation of the initial
  instructions is the undefined rule.  However, an ABI authoring body
  or a compilation system authoring body may specify an alternate
  default value for any or all columns.

but current gcc produces CFI code assuming the default state of all the
registers is `same value'.

The strictly DWARF compliant gcc behavior would be to initialize all the callee
saved registers to `DW_CFA_same_value' in all the CIE initial instructions
blocks.  This is currently not done and it would introduce a large increase of
`.eh_frame' size, despite the merging of common CIEs.


Therefore (Jakub is) proposing for gcc `compilation system authoring' to define
the default callee saved registers as `same value' and callee unsaved registers
as `undefined'.  It would make the current gcc CFI practice stanards compliant
and the unwinding stop CFI would became clear and -fomit-frame-pointer reliable.


GCC: `unwind-dw2' needs update to differentiate `undefined' and `same value'.
 AFAIK its code (CFI) generator may remain the same.

GLIBC: Reintroduce the patch above utilizing `.cfi_undefined rip'.

GDB: The currently disabled (default `set complaints 0') warnings made obsolete:
During symbol reading, incomplete CFI data; unspecified registers 
(e.g., eax) at 0xfc1400.

Other unwinders: May need fix to support `DW_CFA_undefined', done for libunwind.


Most of the problem analysis by the courtesy of Jakub Jelinek.

Not providing any patches so far until the final solution decision is made.


Regards,
Jan


Re: failed to compile gcc-4.3-20061209/gcc/varasm.c on OSX 10.3

2006-12-11 Thread Andreas Schwab
Steve Ellcey <[EMAIL PROTECTED]> writes:

> Do you know if there a GCC bug report for this defect?  I couldn't find
> one in bugzilla.  I am seeing this problem with IA64 HP-UX on ToT.

Should be fixed now.

Andreas.

-- 
Andreas Schwab, SuSE Labs, [EMAIL PROTECTED]
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


Re: "Fix alias slowdown" patch miscompiles 464.h264ref in SPEC CPU

2006-12-11 Thread Daniel Berlin

On 12/11/06, H. J. Lu <[EMAIL PROTECTED]> wrote:

On Sun, Dec 10, 2006 at 09:42:35PM -0800, H. J. Lu wrote:
> On Mon, Dec 11, 2006 at 12:27:07AM -0500, Daniel Berlin wrote:
> > Hey, by chance does the attached fix it?
> >
>
> Yes, it fixes 464.h264ref with the test input. I am running the real
> input now.
>

Do you need a testcase for your fix? We can try to extract one from
464.h264ref.



No, i've got a short but valid testcase that will fail without this change.

I'll finish the bootstrap and regtested and commit this.
Thanks


RE: Serious SPEC CPU 2006 FP performance regressions on IA32

2006-12-11 Thread Meissner, Michael
> -Original Message-
> From: H. J. Lu [mailto:[EMAIL PROTECTED]
> Sent: Monday, December 11, 2006 1:09 PM
> To: Menezes, Evandro
> Cc: gcc@gcc.gnu.org; [EMAIL PROTECTED]; rajagopal, dwarak; Meissner,
> Michael
> Subject: Re: Serious SPEC CPU 2006 FP performance regressions on IA32
> 
> On Mon, Dec 11, 2006 at 11:35:27AM -0600, Menezes, Evandro wrote:
> > HJ,
> >
> > > > Gcc 4.3 revision 119497 has very poor SPEC CPU 2006 FP
performance
> > > > regressions on P4, Pentium M and Core Duo, comparing aganst
> > > > gcc 4.2 20060910. With -O2, the typical regressions look like
> > > >
> > > > Gcc 4.2 Gcc 4.3
> > > > 410.bwaves   9.899.14-7.58342%
> > > > 416.gamess   7.177.16-0.13947%
> > > > 433.milc 7.687.65-0.390625%
> > > > 434.zeusmp   5.575.55-0.359066%
> > > > 435.gromacs  3.994.020.75188%
> > > > 436.cactusADM4.594.50-1.96078%
> > > > 437.leslie3d 5.783.98-31.1419%
> > > > 444.namd 6.256.18-1.12%
> > > > 447.dealII   11.311.30%
> > > > 450.soplex   8.618.59-0.232288%
> > > > 453.povray   6.706.720.298507%
> > > > 454.calculix 2.812.74-2.4911%
> > > > 459.GemsFDTD 6.074.95-18.4514%
> > > > 465.tonto4.444.450.225225%
> > > > 470.lbm  10.610.70.943396%
> > > > 481.wrf  4.564.50-1.31579%
> > > > 482.sphinx3  11.211.1-0.892857%
> > > > Est. SPECfp_base2006 6.426.15-4.20561%
> > > >
> > > > Evandro, what do you get on AMD?
> > > >
> > > > Is that related to recent i386 backend FP changes?
> >
> > Here's what we got:
> >
> >   ?%
> > CPU2006
> > 410.bwaves   -6%
> > 416.gamess
> > 433.milc
> > 434.zeusmp
> > 435.gromacs
> > 436.cactusADM
> > 437.leslie3d-26%
> > 444.namd
> > 447.dealII
> > 450.soplex
> > 453.povray
> > 454.calculix
> > 459.GemsFDTD-12%
> > 465.tonto
> > 470.lbm
> > 481.wrf
> > 482.sphinx3
> >
> > Though not as pronounced, definitely significant.
> >
> 
> It is close to what we see on both x86 and x86-64. Are you going to
> track it down?

Just in case people are cherry picking the gcc mailing list and not
reading all of the threads, this is also discussed in this thread, where
it was felt that the PPRE patches that were added on November 13th were
the cause of the slowdown:
http://gcc.gnu.org/ml/gcc/2006-12/msg00023.html

Has anybody tried doing a run with just ppre disabled?




Re: What's the status of autovectorization for MMX and 3DNow!?

2006-12-11 Thread Uros Bizjak

Hello!


I'm particularly interested in this patch
(http://gcc.gnu.org/ml/gcc-patches/2005-07/msg01128.html); pretty 

nice for

users of Pentium 3 and Athlon. Has it been or will it be integrated into
mainline?


This patch heavily depends on the functionality of optimize mode
switching pass. Unfortunatelly, there is currently no way to tell
optimize_mode_switching() which modes are exclusive. Due to the way how
the emms switching patch was designed, it expects that either MMX or X87
mode can be active at once, to properly switch between x87 and MMX
registers.

PR target/19161 (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19161)
comment #17 has an example of the control flow that can block both
register sets  at once. Otherwise, the patch works as expected.

Uros.



Re: Unwinding CFI gcc practice of assumed `same value' regs

2006-12-11 Thread Roland McGrath
GCC's unwinder doesn't distinguish undefined from same_value, because it
doesn't matter for EH unwinding purposes.  Both mean "nothing to be done
for this register".  The distinction only matters to informative unwinding
purposes like debugging.  I'm not sure why libgcc's unwinder really ought
to care.  It's not that I'm against it knowing the difference; that
certainly seems a cleaner way for it to be internally.  But as to the idea
that it needs to distinguish them for correctness, and thus other things
need to rely on having a libgcc_s version that does, and so forth, I don't
see the motivation.  

In the ideal world, things would use cfi_undefined on the pc regno to
indicate the base frame, as the dwarf3 spec says to.  I certainly think it
would be cleanest for everything to do that.  But again, in practice on
i386 and x86_64, I'm not sure I see the need.  Correct unwind info should
always restore the caller's bp register value.  When that unwinds to the
outermost frame, that will be a zero value as the runtime code of base
frames sets it.  

My reading is that the "ABI authoring body" for GNU systems or the
"compilation system authoring body" for GNU compilers already specifies
that the default rule is same_value for callee-saves registers (as chosen
by each particular ABI), even if this has not been formally documented
anywhere heretofore.  (This is how I've written ABI support in another
unwinder implementation I've worked on.)  As you've said, this is the only
reading by which current CFI is correct and complete for getting the values
of callee-saves registers.  I presume that GCC's omission of rules for
those registers is in fact simply because EH unwinding doesn't care and
people on the generation side just didn't think about it beyond that.
Regardless of the true reasons for the history, the description above
applies to the manifest practice that constitutes what we want the formal
specification to mean.


Thanks,
Roland


Re: Bootstrap broken on mipsel-linux...

2006-12-11 Thread Kaz Kojima
"Steven Bosscher" <[EMAIL PROTECTED]> wrote:
> In that case, this is a different problem, probably caused by the new
> out-of-SSA pass.  But to be sure, I suggest you revert my CSE patch
> and see if that makes the problem go away for you.

I've confirmed that that problem is remained after reverting
r119706 changes of cse.c.  So it may be another problem, though
it might produce a wrong stage 1 compiler for mipsel-linux and
end up with the ICE in stage 2.

Regards,
kaz


Re: Bootstrap broken on mipsel-linux...

2006-12-11 Thread Steven Bosscher

On 12/12/06, Kaz Kojima <[EMAIL PROTECTED]> wrote:

"Steven Bosscher" <[EMAIL PROTECTED]> wrote:
> In that case, this is a different problem, probably caused by the new
> out-of-SSA pass.  But to be sure, I suggest you revert my CSE patch
> and see if that makes the problem go away for you.

I've confirmed that that problem is remained after reverting
r119706 changes of cse.c.  So it may be another problem, though
it might produce a wrong stage 1 compiler for mipsel-linux and
end up with the ICE in stage 2.


In the mipsel-linux case, we ended up with a diamond region where the
jump in the IF-block was folded, so that we could extend the path
along one of the diamond's arms with the JOIN-block.  This could
happen because cse_main traversed the basic blocks in DFS order
instead of in topological order.  I have just posted a hopeful fix for
this.

Gr.
Steven


bogon in a gcc-testresults post (sparc-sun-solaris2.8)

2006-12-11 Thread Joe Buck
Hi all,

The report in

http://gcc.gnu.org/ml/gcc-testresults/2006-12/msg00459.html

claims to be from the 4_2_branch at

Mon Dec 11 08:40:27 UTC 2006 (revision 119731)

That's wrong; it's actually from

Sun Dec 10 08:39:43 UTC 2006 (revision 119704)

but the run took more than 24 hours and the cron job re-synced.  And
that's without building Java.

The test wasn't using -j, and it's only a 400 MHz Sparc.  Seems I need
to fix that.  Running the tests twice (for 32 and 64 bits) seems to take
ages.

Sorry, especially to sparc/solaris folks, for any confusion.



Re: Bootstrap broken on mipsel-linux...

2006-12-11 Thread Kaz Kojima
"Steven Bosscher" <[EMAIL PROTECTED]> wrote:
> In the mipsel-linux case, we ended up with a diamond region where the
> jump in the IF-block was folded, so that we could extend the path
> along one of the diamond's arms with the JOIN-block.  This could
> happen because cse_main traversed the basic blocks in DFS order
> instead of in topological order.  I have just posted a hopeful fix for
> this.

Thanks for the explanation.  I'd like to file the problem
in http://gcc.gnu.org/ml/gcc/2006-12/msg00284.html as
an independent PR.

Regards,
kaz


Re: bogon in a gcc-testresults post (sparc-sun-solaris2.8)

2006-12-11 Thread Eric Botcazou
> The report in
>
> http://gcc.gnu.org/ml/gcc-testresults/2006-12/msg00459.html
>
> claims to be from the 4_2_branch at
>
> Mon Dec 11 08:40:27 UTC 2006 (revision 119731)
>
> That's wrong; it's actually from
>
> Sun Dec 10 08:39:43 UTC 2006 (revision 119704)
>
> but the run took more than 24 hours and the cron job re-synced.  And
> that's without building Java.

Thanks for letting us know.

> The test wasn't using -j, and it's only a 400 MHz Sparc.  Seems I need
> to fix that.  Running the tests twice (for 32 and 64 bits) seems to take
> ages.

Right, this seems to be noticeably slower with 4.2, especially libstdc++.

-- 
Eric Botcazou


Re: [PATCH] Relocated compiler should not look in $prefix.

2006-12-11 Thread Andrew Pinski
On Fri, 2006-10-13 at 12:51 -0400, Carlos O'Donell wrote:
> A relocated compiler should not look in $prefix.
> Comments?
> OK for Stage1?

I do have another issue with these set of patches which I did not notice
until today.
I can no longer do inside a just built GCC do:
./cc1 t.c
or
./xgcc -B. t.c
If I used the same prefix of an already installed GCC.
This makes debugging driver issues without installing the driver again.

Thanks,
Andrew Pinski