[LLVMdev] performance results?

Duraid Madina duraid at octopus.com.au
Sat May 21 06:40:15 PDT 2005


> Has anyone done performance comparision among llvm, gcc, and native
> compilers on x86 or sparc for SPEC CPU2000 or other large benchmarks?

This happens every day (more or less) on many of the nightly testers! 
Take a look at:

http://llvm.cs.uiuc.edu/testresults/

and you'll be able to find some of the testers running the SPEC cpu2000 
suite. There aren't any testers I'm aware of that run a non-gcc 
compiler, but for comparisons against gcc, well, the data's there. On 
x86 I think you'll find there's not a lot between the gcc backend and 
those of other compilers, but I'm not sure about SPARC to be honest.

The short story is that LLVM runs all sorts of wonderful interprocedural 
optimizations in a jiffy. It can also build code very (very!) quickly; I 
  have been surprised by how fast LLVM implementations of highly dynamic 
languages can be. Personally, I saw a huge speed gain moving from Anton 
Ertl's "vmgen" (an efficient interpreter toolkit, and an excellent one 
at that) to LLVM, even though my particular application still ends up 
spending ~10% of its time in LLVM. If there's a language out there that 
_still_ ends up more efficient interpreted, it's either a scripting 
language of some sort or else very, very weird*.

*However*, LLVM doesn't currently have things like whizz-bang register 
allocators or death-defying hyperblock schedulers. Worse, some targets 
have little beyond basic instruction selection - the IA64 backend 
doesn't currently have any sort of instruction scheduling whatsoever! 
This sort of thing is being worked on though, and if you'd like to help 
out it'd be welcome.

If you have more specific questions about LLVM performance, please ask!

	HTH,

	Duraid


* I'd love to see a port of "brew" (http://reppre51.home.solnet.ch/) to 
LLVM one day, if only because it would make an excellent benchmark. Or 
maybe Reid will turn 'stacker' into a complete FORTH implementation one day?




More information about the llvm-dev mailing list