llvm LTO SPEC2000 results?

Are there any results for the SPEC2000 benchmarks
using llvm with and without LTO? It would be interesting
to know how the current LTO in llvm compares to the
results being seen in current gcc trunk with their
LTO...

http://gcc.gnu.org/ml/gcc/2009-10/msg00155.html

It would appear that the gcc LTO implementation
is finally showing results (although with a lot
of wrong code results). I assume we really don't
have a functional -fwhole-program in llvm-gcc-4.2
but do we have one in clang?
                 Jack

Hi Jack,

It would appear that the gcc LTO implementation
is finally showing results (although with a lot
of wrong code results). I assume we really don't
have a functional -fwhole-program in llvm-gcc-4.2
but do we have one in clang?

it's been possible to do the equivalent of -fwhole-program
for ages in LLVM, you just have to run some LLVM tools by
hand or use the gold plugin. I never did it on SPEC (I don't
have SPEC) but for some scientific computation stuff I have here
I saw a 10% speed up (more or less) using whole program lto.

Ciao,

Duncan.

I don't know of anyone focusing on better SPEC numbers, although those who have access run a subset primarily as a regression test.
On Darwin, llvm-gcc-4.2 -O4 will get interprocedural optimizations; this makes the compiler emit LLVM bitcode and the linker invoke the interprocedural optimizer. You might need to have SnowLeopard. The linker dependency means this is not very portable; there is something called the LLVM gold plugin that is aimed at doing the same thing on Linux, but I don't know how well it works.