Greetings!

2007-12-24 Thread Angel
You remember me? I d!o Here my page: http://a-zifg.nm.ru


[lto] preliminary SPECint benchmark numbers

2007-12-24 Thread Nathan Froyd
In one of my recent messages about a patch to the LTO branch, I
mentioned that we could compile and successfully run all of the C
SPECint benchmarks except 176.gcc.  Chris Lattner asked if I had done
any benchmarking now that real programs could be run; I said that I
hadn't but would try to do some soon.  This is the result of that.

I don't have numbers on what compile times look like, but I don't think
they're good.  176.gcc takes several minutes to compile (basically -flto
*.o, not counting the time to compile individual .o files); the other
benchmarks are all a minute or more apiece.

Executive summary: LTO is currently *not* a win.

In the table below, runtimes are in seconds.  I ran the tests on an
8-core 1.6GHz machine with 8 GB RAM.  I believe the machine was
relatively idle; I ran the tests over a weekend evening.  The last merge
from mainline to the LTO branch was mainline r130155, so that's about
what the -O2 numbers correspond to--I don't think we've changed too much
core code on the branch.  The % change are just in-my-head estimates,
using -O2 as a baseline.

-O2 -flto   % change
164.gzip174 176 + 1
175.vpr 139 143 + 3
181.mcf 162 166 + 3
186.crafty  65.266.6+ < 1
197.parser  240 261 + 9
253.perlbmk 119 133 + 13
254.gap 84.487  + 4
256.bzip2   131 145 + 11
300.twolf   202 193 - 4 (!)

176.gcc doesn't run correctly with LTO yet; 255.vortex didn't run
correctly with "mainline", but it did with -flto, which is curious.  We
don't do C++ yet, so 252.eon is not included.

In general, things get worse with LTO, sometimes much worse.  I can
think of at least three possible reasons off the top of my head:

- Alias information.  We don't have any type-based alias information in
  -flto, which hurts.

- We don't merge types between compilation units, which could account
  for poor optimization behavior.

- I believe we lose some information in the LTO write/read process; edge
  probabilities, estimated # instructions in functions, etc. get lost.
  This hurts inlining decisions, block layout, alignment of jump
  targets, etc.  So there's information we need to write out or
  recompute.

-Nathan


gcc-4.1-20071224 is now available

2007-12-24 Thread gccadmin
Snapshot gcc-4.1-20071224 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.1-20071224/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.1 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch 
revision 131161

You'll find:

gcc-4.1-20071224.tar.bz2  Complete GCC (includes all of below)

gcc-core-4.1-20071224.tar.bz2 C front end and core compiler

gcc-ada-4.1-20071224.tar.bz2  Ada front end and runtime

gcc-fortran-4.1-20071224.tar.bz2  Fortran front end and runtime

gcc-g++-4.1-20071224.tar.bz2  C++ front end and runtime

gcc-java-4.1-20071224.tar.bz2 Java front end and runtime

gcc-objc-4.1-20071224.tar.bz2 Objective-C front end and runtime

gcc-testsuite-4.1-20071224.tar.bz2The GCC testsuite

Diffs from 4.1-20071217 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.1
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.