diff options
author | Dorit Naishlos <dorit@il.ibm.com> | 2005-02-20 20:32:41 +0000 |
---|---|---|
committer | Dorit Nuzman <dorit@gcc.gnu.org> | 2005-02-20 20:32:41 +0000 |
commit | 237eaf79a5cb53340d8451e3379d6c483ec4f1aa (patch) | |
tree | 6afc7e05c074393a103861ad33c742c981d84043 /gcc | |
parent | 50c177f74466e46e2048d30c18856f9e6f9a4d2e (diff) | |
download | gcc-237eaf79a5cb53340d8451e3379d6c483ec4f1aa.zip gcc-237eaf79a5cb53340d8451e3379d6c483ec4f1aa.tar.gz gcc-237eaf79a5cb53340d8451e3379d6c483ec4f1aa.tar.bz2 |
re PR tree-optimization/19951 (ICE in tree_split_edge, at tree-cfg.c:3199 with -ftree-vectorize)
PR tree-optimization/19951
* g++.dg/vect: New directory.
* g++.dg/vect/vect.exp: New file.
* g++.dg/vect/pr19951.cc: New testcase.
* g++.dg/dg.exp: Also prune vectorizer tests.
From-SVN: r95309
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/dg.exp | 1 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/vect/pr19951.cc | 17 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/vect/vect.exp | 95 |
4 files changed, 121 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index bfcbe97..68594ec 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2005-02-20 Dorit Naishlos <dorit@il.ibm.com> + + PR tree-optimization/19951 + * g++.dg/vect: New directory. + * g++.dg/vect/vect.exp: New file. + * g++.dg/vect/pr19951.cc: New testcase. + * g++.dg/dg.exp: Also prune vectorizer tests. + 2005-02-20 Zack Weinberg <zack@codesourcery.com> PR 18785 diff --git a/gcc/testsuite/g++.dg/dg.exp b/gcc/testsuite/g++.dg/dg.exp index f809f10..f4ec94c 100644 --- a/gcc/testsuite/g++.dg/dg.exp +++ b/gcc/testsuite/g++.dg/dg.exp @@ -39,6 +39,7 @@ set tests [prune $tests $srcdir/$subdir/gcov/*] set tests [prune $tests $srcdir/$subdir/pch/*] set tests [prune $tests $srcdir/$subdir/special/*] set tests [prune $tests $srcdir/$subdir/tls/*] +set tests [prune $tests $srcdir/$subdir/vect/*] # Main loop. dg-runtest $tests "" $DEFAULT_CXXFLAGS diff --git a/gcc/testsuite/g++.dg/vect/pr19951.cc b/gcc/testsuite/g++.dg/vect/pr19951.cc new file mode 100644 index 0000000..bb6586c --- /dev/null +++ b/gcc/testsuite/g++.dg/vect/pr19951.cc @@ -0,0 +1,17 @@ +/* { dg-do compile } */ + +struct A +{ + ~A(); +}; + +void foo(); + +void bar() +{ + A a; + + foo(); + for (;;) + foo(); +} diff --git a/gcc/testsuite/g++.dg/vect/vect.exp b/gcc/testsuite/g++.dg/vect/vect.exp new file mode 100644 index 0000000..cc2e4e3 --- /dev/null +++ b/gcc/testsuite/g++.dg/vect/vect.exp @@ -0,0 +1,95 @@ +# Copyright (C) 2004 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# GCC testsuite that uses the 'dg.exp' driver. + +# There's a bunch of headers we need. +if [is_remote host] { + foreach header [glob -nocomplain $srcdir/$subdir/*.{h,def} ] { + remote_download host $header + } +} + +# Load support procs. +load_lib g++-dg.exp +load_lib target-supports.exp + +# If the target system supports vector instructions, the default action +# for a test is 'run', otherwise it's 'compile'. Save current default. +# Executing vector instructions on a system without hardware vector support +# is also disabled by a call to check_vect, but disabling execution here is +# more efficient. +global dg-do-what-default +set save-dg-do-what-default ${dg-do-what-default} + +# Set up flags used for tests that don't specify options. +set DEFAULT_VECTCFLAGS "" + +# These flags are used for all targets. +lappend DEFAULT_VECTCFLAGS "-O2" "-ftree-vectorize" \ + "-ftree-vectorizer-verbose=3" "-fdump-tree-vect-stats" + +# Skip these tests for targets that do not support generating vector +# code. Set additional target-dependent vector flags, which can be +# overridden by using dg-options in individual tests. +if [istarget "powerpc*-*-*"] { + # If there are powerpc targets to skip, do it here. + + lappend DEFAULT_VECTCFLAGS "-maltivec" + if [check_vmx_hw_available] { + set dg-do-what-default run + } else { + if [is-effective-target ilp32] { + # Specify a cpu that supports VMX for compile-only tests. + lappend DEFAULT_VECTCFLAGS "-mcpu=7400" + } + set dg-do-what-default compile + } +} elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } { + lappend DEFAULT_VECTCFLAGS "-msse2" + set dg-do-what-default run +} elseif [istarget "mipsisa64*-*-*"] { + lappend DEFAULT_VECTCFLAGS "-mpaired-single" + set dg-do-what-default run +} elseif [istarget "sparc*-*-*"] { + lappend DEFAULT_VECTCFLAGS "-mcpu=ultrasparc" "-mvis" + set dg-do-what-default run +} elseif [istarget "alpha*-*-*"] { + lappend DEFAULT_VECTCFLAGS "-mmax" + if [check_alpha_max_hw_available] { + set dg-do-what-default run + } else { + set dg-do-what-default compile + } +} elseif [istarget "ia64-*-*"] { + set dg-do-what-default run +} else { + return +} + + +# Initialize `dg'. +dg-init + +# Main loop. +dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.{c,cc,S} ]] \ + "" $DEFAULT_VECTCFLAGS + +# Clean up. +set dg-do-what-default ${save-dg-do-what-default} + +# All done. +dg-finish |