1# Copyright (C) 2008-2021 Free Software Foundation, Inc. 2 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 3 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with GCC; see the file COPYING3. If not see 15# <http://www.gnu.org/licenses/>. 16 17# GCC testsuite that uses the `dg.exp' driver. 18 19# Load support procs. 20load_lib gfortran-dg.exp 21 22if ![check_effective_target_fgraphite] { 23 return 24} 25 26# Remove VALUE from LIST_VARIABLE. 27proc lremove {list_variable value} { 28 upvar 1 $list_variable var 29 set idx [lsearch -exact $var $value] 30 set var [lreplace $var $idx $idx] 31} 32 33# The default action for a test is 'compile'. Save current default. 34global dg-do-what-default 35set save-dg-do-what-default ${dg-do-what-default} 36 37# Initialize `dg'. 38dg-init 39 40set wait_to_run_files [lsort [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ] ] 41set id_files [lsort [glob -nocomplain $srcdir/$subdir/id-*.\[fF\]{,90,95,03,08} ] ] 42set opt_files [lsort [glob -nocomplain $srcdir/$subdir/interchange-*.\[fF\]{,90,95,03,08} \ 43 $srcdir/$subdir/block-*.\[fF\]{,90,95,03,08} ] ] 44set scop_files [lsort [glob -nocomplain $srcdir/$subdir/scop-*.\[fF\]{,90,95,03,08} ] ] 45set run_id_files [lsort [glob -nocomplain $srcdir/$subdir/run-id-*.\[fF\]{,90,95,03,08} ] ] 46set vect_files [lsort [glob -nocomplain $srcdir/$subdir/vect-*.\[fF\]{,90,95,03,08} ] ] 47 48# Tests to be compiled. 49set dg-do-what-default compile 50gfortran-dg-runtest $scop_files "" "-O2 -fgraphite -fdump-tree-graphite-all" 51gfortran-dg-runtest $id_files "" "-O2 -fgraphite-identity -ffast-math" 52gfortran-dg-runtest $opt_files "" "-O2 -floop-nest-optimize -ffast-math -fdump-tree-graphite-all" 53 54# Set up a list of effective targets to run vector tests for all supported 55# targets. 56global EFFECTIVE_TARGETS 57set EFFECTIVE_TARGETS "" 58 59# Vectorizer tests, to be run or compiled, depending on target capabilities. 60if [check_vect_support_and_set_flags] { 61 et-dg-runtest gfortran-dg-runtest $vect_files "" \ 62 "-O2 -fgraphite-identity -ftree-vectorize -fno-vect-cost-model -fdump-tree-vect-details -ffast-math" 63} 64 65# Tests to be run. 66set dg-do-what-default run 67gfortran-dg-runtest $run_id_files "" "-O2 -fgraphite-identity" 68 69# The default action for the rest of the files is 'compile'. 70set dg-do-what-default compile 71foreach f $id_files {lremove wait_to_run_files $f} 72foreach f $opt_files {lremove wait_to_run_files $f} 73foreach f $scop_files {lremove wait_to_run_files $f} 74foreach f $run_id_files {lremove wait_to_run_files $f} 75foreach f $vect_files {lremove wait_to_run_files $f} 76gfortran-dg-runtest $wait_to_run_files "" "" 77 78# Clean up. 79set dg-do-what-default ${save-dg-do-what-default} 80 81# All done. 82dg-finish 83