llvm-gfortran polyhedron 2005 results [corrected]

The previously posted benchnarks for gcc vs
llvm-gfortran had one mistake. I was actually had
the gfortran for 4.3.1 installed instead of that
from gcc 4.2.4. Below are the polyhedron benchmark
results for all three compilers...

gfortran 4.2.4

   Benchmark Compile Executable Ave Run Number Estim
        Name (secs) (bytes) (secs) Repeats Err %
   --------- ------- ---------- ------- ------- ------
          ac 1.16 10000 18.30 10 0.0866
      aermod 60.57 10000 30.90 10 0.0385
         air 3.34 10000 10.85 10 0.0971
    capacita 1.49 10000 63.58 32 0.1145
     channel 0.81 10000 6.29 10 0.0242
       doduc 5.98 10000 47.94 10 0.0921
     fatigue 3.48 10000 16.00 10 0.0841
     gas_dyn 2.18 10000 22.91 33 0.0779
      induct 6.93 10000 68.95 10 0.0145
       linpk 0.59 10000 31.06 12 0.0591
        mdbx 1.71 10000 14.94 12 0.0504
          nf 0.94 10000 33.98 10 0.0897
     protein 2.89 10000 51.03 10 0.0890
      rnflow 3.43 10000 43.20 11 0.0924
    test_fpu 2.75 10000 15.05 10 0.0736
        tfft 0.46 10000 2.94 14 0.0833

Geometric Mean Execution Time = 22.58 seconds

gfortran 4.3.1

   Benchmark Compile Executable Ave Run Number Estim
        Name (secs) (bytes) (secs) Repeats Err %
   --------- ------- ---------- ------- ------- ------
          ac 3.96 10000 15.74 12 0.0413
      aermod 56.13 10000 34.64 12 0.0530
         air 3.15 10000 10.57 12 0.0700
    capacita 1.67 10000 58.43 23 0.0980
     channel 0.82 10000 3.77 10 0.0763
       doduc 6.41 10000 48.20 10 0.0705
     fatigue 2.55 10000 13.40 10 0.0590
     gas_dyn 2.67 10000 11.09 25 0.0926
      induct 5.10 10000 90.26 10 0.0782
       linpk 1.03 10000 30.20 11 0.0957
        mdbx 1.99 10000 15.47 12 0.0894
          nf 2.30 10000 31.97 12 0.0789
     protein 4.26 10000 50.58 10 0.0867
      rnflow 6.41 10000 42.79 12 0.0772
    test_fpu 5.84 10000 14.11 13 0.0725
        tfft 1.08 10000 2.89 12 0.0940

Geometric Mean Execution Time = 20.64 seconds

llvm-gfortran

Compile Executable Ave Run Number Estim
        Name (secs) (bytes) (secs) Repeats Err %
   --------- ------- ---------- ------- ------- ------
          ac 0.38 10000 19.33 10 0.0337
      aermod 33.57 10000 22.56 12 0.0205
         air 2.00 10000 11.34 10 0.0489
    capacita 0.65 10000 66.82 30 0.1579
     channel 0.66 10000 4.72 13 0.0949
       doduc 2.30 10000 48.87 10 0.0696
     fatigue 1.18 10000 16.91 10 0.0951
     gas_dyn 1.08 10000 26.84 18 0.0810
      induct 2.33 10000 68.04 10 0.0221
       linpk 0.62 10000 30.30 14 0.0494
        mdbx 1.26 10000 17.62 10 0.0350
          nf 0.67 10000 35.87 10 0.0555
     protein 1.48 10000 57.71 10 0.0866
      rnflow 1.79 10000 47.78 10 0.0487
    test_fpu 1.58 10000 16.88 12 0.0470
        tfft 0.54 10000 3.02 12 0.0545

Geometric Mean Execution Time = 23.04 seconds

The ratio of the execution times for each test with
FSF gfortran to that in llvm-gfortran 4.2.1 are then...

          gfortran gfortran
          4.2.4 4.3.1

ac 0.947 0.814
aermod 1.36 1.54
air 0.957 0.932
capacita 0.952 0.874
channel 1.33 0.799
doduc 0.981 0.986
fatigue 0.946 0.792
gas_dyn 0.854 0.413
induct 1.01 1.33
linpk 1.03 0.997
mdbx 0.848 0.878
nf 0.947 0.891
protein 0.884 1.06
rnflow 0.904 0.896
test_fpu 0.892 0.836
tfft 0.974 0.957

Interestingly, there appears to be a regression in
the performance of the induct test in gcc 4.3.1
(at least for the -ffast-math -funroll-loops -msse3 -O3
compiler flags). I'll look into this tonight to see
if any of these flags alone can produce this speed
reduction between gfortran 4.2.4 and 4.3.1 on the
induct test.
                   Jack
ps The corrected results do show that llvm-gfortran
4.2.1 isn't performing quite as bad against the same
major release of FSF gfortran. It does suggest we
would do well to get llvm-gcc resync'ed to gcc 4.3.