At revision 142742 some tests in the polyhedron suite are miscompiled with -O3 and some other graphite options (-fgraphite-identity with/without -fgraphite: first table, with all possible (?) options: second table, the third table is given as reference).
I don't know how many of the failures are duplicates of pr38492, so I prefer to open a new pr. Note that protein.f90 is using recursivity. Apparently fatigue.f90 is now compiled correctly (it was not the case when I posted http://gcc.gnu.org/ml/gcc/2008-12/msg00184.html). ================================================================================ Date & Time : 13 Dec 2008 22:13:50 Test Name : pbharness Compile Command : gfc %n.f90 -m64 -O3 -ffast-math -funroll-loops -fgraphite-identity -o %n Benchmarks : ac aermod air capacita channel doduc fatigue gas_dyn induct linpk mdbx nf protein rnflow test_fpu tfft Maximum Times : 300.0 Target Error % : 0.200 Minimum Repeats : 2 Maximum Repeats : 5 Benchmark Compile Executable Ave Run Number Estim Name (secs) (bytes) (secs) Repeats Err % --------- ------- ---------- ------- ------- ------ ac 2.85 42560 12.35 2 0.1902 aermod 87.02 1274632 30.31 2 0.1369 air 5.49 77336 8.37 2 0.0657 capacita 3.43 60472 11.99 5 0.8089 <== WRONG CODE channel 1.55 30456 2.76 5 0.9950 doduc 11.56 195928 43.25 2 0.0381 fatigue 3.89 72640 11.49 2 0.0653 gas_dyn 5.63 688104 22.08 5 0.4231 <-- twice slower induct 9.62 164784 34.31 2 0.0379 linpk 1.52 42536 27.22 2 0.0349 mdbx 3.32 73000 14.88 2 0.0302 nf 4.86 67328 32.46 5 0.1689 protein 8.07 101912 0.12 5 0.3868 <== WRONG CODE rnflow 10.55 167368 36.43 2 0.0590 test_fpu 9.33 154224 12.88 2 0.0543 tfft 1.16 30528 2.86 5 0.2007 Geometric Mean Execution Time = 11.43 seconds ================================================================================ Polyhedron Benchmark Validator Copyright (C) Polyhedron Software Ltd - 2004 - All rights reserved ================================================================================ Date & Time : 13 Dec 2008 21:29:49 Test Name : pbharness Compile Command : gfc %n.f90 -m64 -O3 -ffast-math -funroll-loops -fgraphite -fgraphite-identity -floop-block -floop-strip-mine -floop-interchange -ftree-loop-linear -fomit-frame-pointer -finline-limit=600 --param min-vect-loop-bound=2 -o %n Benchmarks : ac aermod air capacita channel doduc fatigue gas_dyn induct linpk mdbx nf protein rnflow test_fpu tfft Maximum Times : 300.0 Target Error % : 0.200 Minimum Repeats : 2 Maximum Repeats : 5 Benchmark Compile Executable Ave Run Number Estim Name (secs) (bytes) (secs) Repeats Err % --------- ------- ---------- ------- ------- ------ ac 4.82 42560 12.35 5 0.3124 aermod 87.25 1266448 30.18 2 0.1872 air 5.66 77336 8.36 5 0.1105 capacita 4.36 68664 9.61 2 0.0312 <== WRONG CODE channel 1.77 30456 2.74 2 0.0913 doduc 11.48 195928 42.76 2 0.0900 fatigue 4.09 72640 12.78 2 0.0039 gas_dyn 5.78 688104 4.07 5 1.1516 <== WRONG CODE induct 9.44 172976 34.30 2 0.0889 linpk 1.64 42536 27.14 2 0.0442 mdbx 3.42 73000 14.84 5 0.1817 nf 15.02 108168 42.12 2 0.0772 <== WRONG CODE protein 9.77 114136 0.12 5 0.2319 <== WRONG CODE rnflow 11.13 171464 2.85 5 0.2826 <== WRONG CODE test_fpu 9.27 150128 4.88 5 0.2239 <== WRONG CODE tfft 1.08 26432 2.96 5 0.6601 Geometric Mean Execution Time = 8.34 seconds ================================================================================ Polyhedron Benchmark Validator Copyright (C) Polyhedron Software Ltd - 2004 - All rights reserved ================================================================================ Date & Time : 10 Dec 2008 10:41:52 Test Name : pbharness Compile Command : gfc %n.f90 -m64 -O3 -ffast-math -funroll-loops -ftree-loop-linear -fomit-frame-pointer -finline-limit=600 --param min-vect-loop-bound=2 -o %n Benchmarks : ac aermod air capacita channel doduc fatigue gas_dyn induct linpk mdbx nf protein rnflow test_fpu tfft Maximum Times : 300.0 Target Error % : 0.200 Minimum Repeats : 2 Maximum Repeats : 5 Benchmark Compile Executable Ave Run Number Estim Name (secs) (bytes) (secs) Repeats Err % --------- ------- ---------- ------- ------- ------ ac 2.31 42560 12.28 2 0.0163 aermod 85.67 1266448 29.84 4 0.1498 air 5.44 77336 8.36 2 0.1975 capacita 3.39 72760 53.92 2 0.0649 channel 2.09 38648 2.27 2 0.0220 doduc 11.30 195928 42.78 2 0.1204 fatigue 4.93 89024 10.87 5 0.2098 gas_dyn 6.51 708584 10.35 5 0.6354 induct 10.01 181168 34.47 2 0.0899 linpk 1.63 42536 27.15 2 0.0147 mdbx 3.26 73000 14.79 2 0.0270 nf 23.89 161416 31.64 2 0.0095 protein 10.24 126424 47.02 2 0.0532 rnflow 10.80 179616 36.22 2 0.0028 test_fpu 10.23 166512 12.30 2 0.0651 tfft 1.16 26432 2.80 2 0.0714 Geometric Mean Execution Time = 16.95 seconds ================================================================================ Polyhedron Benchmark Validator Copyright (C) Polyhedron Software Ltd - 2004 - All rights reserved -- Summary: [graphite] wrong code with -O3 -fgraphite-identity on polyhedron benchmarks Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dominiq at lps dot ens dot fr GCC build triplet: i686-apple-darwin9 GCC host triplet: i686-apple-darwin9 GCC target triplet: i686-apple-darwin9 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38520