Below are the results for the Polyhedron 2005 benchmarks compiled with the
llvm/compiler-rt/dragonegg 3.3
release and 3.4svn against FSF gcc 4.8.2. The *-stock-de runs omit the
-fplugin-arg-dragonegg-enable-gcc-optzns
flag and the *-de-optnz runs include it. There seems to be little improvement
between llvm 3.3 and 3.4 in the
stock case which relies entirely on llvm for vectorization.
Duncan, has dragonegg been updated to enable the same llvm vectorization options
as clang for the 3.4 release?
If not, we may be leaving some potential vectorization improvements on the table
here.
Jack
Tested on x86_apple-darwin12
Compile Flags: -fplugin=/sw/lib/gcc4.8/lib/dragonegg.so
-specs=/sw/lib/gcc4.8/lib/integrated-as.specs -ffast-math -funroll-loops -O3
Run time (secs)
Benchmark llvm33-stock-de llvm34-stock-de llvm33-de-optnz
llvm34-de-optnz
ac 11.57 11.29 8.14 8.07
aermod 16.46 16.79 14.43 14.59
air 6.79 7.22 5.29 5.50
capacita 37.76 38.26 33.33 33.78
channel 2.06 2.41 1.99 1.89
doduc 27.18 27.29 26.32 26.16
fatigue 8.79 8.72 5.22 5.03
gas_dyn 7.94 7.89 4.24 4.28
induct 24.04 23.57 11.87 11.98
linpk 15.47 15.46 15.81 15.80
mdbx 12.16 11.85 11.29 11.30
nf 29.75 29.99 29.45 29.32
protein 36.48 36.29 33.73 34.79
rnflow 26.16 26.18 22.22 22.52
test_fpu 11.54 11.84 9.35 10.51
tfft 1.93 1.88 1.90 1.92
Geom. Mean 12.84 12.98 10.44 10.54
Compile time (secs)
Benchmark llvm33-stock-de llvm34-stock-de llvm33-de-optnz
llvm34-de-optnz
ac 0.45 1.27 0.73 0.75
aermod 24.60 21.74 30.81 28.21
air 1.52 0.88 2.51 2.27
capacita 0.69 0.67 1.07 1.00
channel 0.34 0.31 0.50 0.46
doduc 2.25 1.86 3.76 3.42
fatigue 1.09 1.02 1.62 1.48
gas_dyn 1.04 0.82 1.53 1.33
induct 2.16 1.91 3.28 3.08
linpk 0.34 0.30 0.78 0.68
mdbx 0.88 0.66 1.22 1.09
nf 0.69 0.64 0.83 0.72
protein 1.45 1.09 1.94 1.72
rnflow 1.88 1.55 3.03 2.64
test_fpu 1.37 1.20 2.45 2.14
tfft 0.25 0.23 0.47 0.44
Executable (bytes)
Benchmark llvm33-stock-de llvm34-stock-de llvm33-de-optnz
llvm34-de-optnz
ac 30888 26792 34904
34904
aermod 1031232 1031240 1031552
1031552
air 61924 53732 61852
61852
capacita 41120 45216 45016
45016
channel 22584 22584 22528
22528
doduc 120172 116072 136272
132176
fatigue 69712 65616 73824
69728
gas_dyn 59008 59008 71280
71280
induct 162864 158768 166896
162800
linpk 22880 22880 34896
34896
mdbx 57676 49484 53580
53580
nf 27960 32064 32080
32080
protein 75016 75016 83104
83112
rnflow 79976 84112 92024
92024
test_fpu 62280 62280 78432
78432
tfft 18552 18552 22520
22520
