Hi, PR testsuite/16464 notes that some g77/*.f that contain loops were not compiled with loop flags. Compiling only testcases with loop optimization that contain "endfor/enddo" will lead to ~25% fewer tests (some 30000 instead of previously 40000).
Testing in progess, ok if this completes successfully? gcc/testsuite/ChangeLog: 2012-03-02 Bernhard Reutner-Fischer <al...@gcc.gnu.org> PR testsuite/16464 * lib/gfortran-dg.exp (gfortran-dg-runtest): Depend options on weather the testcase is just preprocessed/compiled or contains loop statements. Signed-off-by: Bernhard Reutner-Fischer <rep.dot....@gmail.com> --- gcc/testsuite/lib/gfortran-dg.exp | 28 +++++++++++++++++++++------- 1 files changed, 21 insertions(+), 7 deletions(-) diff --git a/gcc/testsuite/lib/gfortran-dg.exp b/gcc/testsuite/lib/gfortran-dg.exp index 50753df..56ecc69 100644 --- a/gcc/testsuite/lib/gfortran-dg.exp +++ b/gcc/testsuite/lib/gfortran-dg.exp @@ -90,7 +90,7 @@ proc gfortran-dg-prune { system text } { # as c-torture does. proc gfortran-dg-runtest { testcases default-extra-flags } { global runtests - global DG_TORTURE_OPTIONS torture_with_loops + global DG_TORTURE_OPTIONS torture_with_loops torture_without_loops torture-init set-torture-options $DG_TORTURE_OPTIONS @@ -102,12 +102,26 @@ proc gfortran-dg-runtest { testcases default-extra-flags } { continue } - # look if this is dg-do-run test, in which case - # we cycle through the option list, otherwise we don't - if [expr [search_for $test "dg-do run"]] { - set option_list $torture_with_loops - } else { - set option_list [list { -O } ] + # look if this is a dg-do-preprocess or dg-to-compile test, + # in which case we do not need to cycle through all options. + set option_list $torture_without_loops + set tmp [grep $test "(dg-do\[ \t\]+(preprocess|compile)|^(?:\[^!\]*\[ \t\]*)\[eE\]\[nN\]\[dD\]\[ \t\]*(\[fF\]\[oO\]\[rR\]|\[dD\]\[oO\]))" line] + foreach i $tmp { + regexp "(\[0-9\]+)\[ \t\]+(?:dg-do\[ \t\]+)(preprocess|compile)" $i i lineno what + if {[info exists what]} { + set option_list [list { -O } ] + verbose "Line $lineno: dg-do $what, trimming option_list" 3 + break + } else { + regexp "(\[0-9\]+)(?:.*)(\[eE\]\[nN\]\[dD\]\[ \t\]*(\[fF\]\[oO\]\[rR\]|\[dD\]\[oO\]))" $i i lineno loop + if {[info exists loop]} { + set option_list $torture_with_loops + verbose "Line $lineno: extending option_list: loop detected: `$loop'" 3 + break + # } else { + # set option_list $torture_without_loops + } + } } set nshort [file tail [file dirname $test]]/[file tail $test] -- 1.7.9