Skip to content
Dibyendu Majumdar edited this page Mar 31, 2020 · 4 revisions

First of LLVM 8 with hand-coded IR generation (including type based aliasing info, and some use of optimizer hints on branches):

a) Simple for loop (1000000000 iterations): 0 secs b) Fannkuchen(11): 3.36 secs c) matrix multiplication (1000): 0.98 secs d) mandelbrot(4000): 1.08 secs e) sieve: 5.65 secs

Next LLVM 8 with dmr_C based C code converted to IR.

a) Simple loop: 0.87 secs b) Fannkuchen(11): 3.28 secs c) matrix multiplication (1000): 2.42 secs d) mandelbrot: 1.58 secs e) sieve: 4.91 secs

Next OMRJIT with dmr_C based C code converted to IR:

a) Simple loop: 0.88 secs b) Fannkuchen(11): 4.6 secs c) matrix multiplication (1000): 2.28 secs d) mandelbrot: 2.02 secs e) sieve: 6.86 secs

Finally, c2mir backend:

a) Simple loop: 0.87 secs b) Fannkuchen(11): 5.87 secs c) matrix multiplication (1000): 2.4 secs d) mandelbrot: 2.5 secs e) sieve: 7.18 secs

Lastly Ravi interpreter.

a) Simple loop: 3.0 secs b) Fannkuchen(11): 14.76 secs c) matrix multiplication (1000): 8.26 secs d) mandelbrot: 7.38 secs e) sieve: 18.32 secs

All tests use type-annotations in Ravi. All tests were done on RHEL 7.7 running on Xeon X86-64.

binarytrees (21) 78.47 95.56 matmul1 11.3 13.72 matmul1_ravi 8.3 matmul1_ravi MIR 2.49 fannkuchen (11) 19.89 24.37 fannkuchen.ravi 15.56 fannkuchen.ravi MIR 5.43 sieve.lua 23.46 24.7 sieve.ravi 19.66 sieve.ravi MIR 8.52 mandel1.lua (4000) 10.29 12.18 mandel1.ravi 7.87 mandel1.ravi (MIR) 2.52

Clone this wiki locally