[LLVMdev] Performance vs other VMs

Jon Harrop jon at ffconsultancy.com
Fri Jan 30 12:56:44 PST 2009


The release of a new code generator in Mono 2.2 prompted me to benchmark the 
performance of various VMs using the SciMark2 benchmark on an 8x 2.1GHz 
64-bit Opteron and I have published the results here:

  http://flyingfrogblog.blogspot.com/2009/01/mono-22.html

The LLVM results were generated using llvm-gcc 4.2.1 on the C version of 
SciMark2 with the following command-line options:

  llvm-gcc -Wall -lm -O2 -funroll-loops *.c -o scimark2

Mono was up to 12x slower than LLVM before and is now only 2.2x slower on 
average. Interestingly, the JVM scores slightly higher than LLVM on this 
benchmark on average and beats LLVM on two of the five individual tests.

The individual scores are particularly enlightening. Specifically:

. LLVM outperforms all other VMs by a significant margin on FFT, Monte Carlo 
and sparse matrix multiply.

. LLVM is beaten by the JVM on successive over-relaxation (SOR) and LU 
decomposition.

In the context of the SOR test, I suspect the JVM is using alias information 
to perform optimizations that LLVM and llvm-gcc probably do not do.

I am not sure what causes the performance discrepancy on LU. Perhaps the JVM 
is generating SSE instructions. Does llvm-gcc generate SSE instructions under 
any circumstances?

-- 
Dr Jon Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/?e



More information about the llvm-dev mailing list