aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2009-09-04 19:03:49 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2009-09-04 19:03:49 +0000
commit3157b0c242844c97a2469591543208013cfc8a9c (patch)
treee2b42b3b4598b5ffaf768dd2e704c11712fc535f
parent510bc854f593e1cde35bd3423adbbf82c3e471bb (diff)
downloadgcc-3157b0c242844c97a2469591543208013cfc8a9c.zip
gcc-3157b0c242844c97a2469591543208013cfc8a9c.tar.gz
gcc-3157b0c242844c97a2469591543208013cfc8a9c.tar.bz2
re PR debug/41225 (VTA: internal compiler error: in vect_stmt_relevant_p, at tree-vect-stmts.c:150)
gcc/ChangeLog: PR debug/41225 * tree-vect-stmts.c (vect_stmt_relevant_p): Skip debug uses. gcc/testsuite/ChangeLog: PR debug/41225 * gfortran.dg/pr41225.f90: New. From-SVN: r151438
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr41225.f9020
-rw-r--r--gcc/tree-vect-stmts.c3
4 files changed, 33 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b871f58..902f7fc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2009-09-04 Alexandre Oliva <aoliva@redhat.com>
+ PR debug/41225
+ * tree-vect-stmts.c (vect_stmt_relevant_p): Skip debug uses.
+
+2009-09-04 Alexandre Oliva <aoliva@redhat.com>
+
PR target/41252
* config/arm/vfp.md (*cmpdf_split_vfp): Fix src mode in the second
pattern of the split.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ee774b1..7da08f9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2009-09-04 Alexandre Oliva <aoliva@redhat.com>
+ PR debug/41225
+ * gfortran.dg/pr41225.f90: New.
+
+2009-09-04 Alexandre Oliva <aoliva@redhat.com>
+
* gcc.dg/guality/guality.h: Include stdint.h. Drop unnecessary
unistd.h, sys/types.h and sys/wait.h.
(gualchk_t): New.
diff --git a/gcc/testsuite/gfortran.dg/pr41225.f90 b/gcc/testsuite/gfortran.dg/pr41225.f90
new file mode 100644
index 0000000..54daf4d
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr41225.f90
@@ -0,0 +1,20 @@
+! { dg-do compile }
+! { dg-options "-O2 -ffast-math -funroll-loops -ftree-vectorize -g" }
+ SUBROUTINE block_15_1_1_1(kbd,kbc,kad,kac,pbd,pbc,pad,pac,prim,scale)
+ INTEGER, PARAMETER :: dp=8
+ REAL(KIND=dp) :: kbd(1*1), kbc(1*1), kad(15*1), kac(15*1), pbd(1*1), &
+ pbc(1*1), pad(15*1), pac(15*1), prim(15*1*1*1), scale
+ INTEGER :: ma, mb, mc, md, p_index
+ DO md = 1,1
+ DO mc = 1,1
+ DO mb = 1,1
+ DO ma = 1,15
+ p_index=p_index+1
+ tmp = scale*prim(p_index)
+ ks_bd = ks_bd + tmp* pac((mc-1)*15+ma)
+ END DO
+ kbd((md-1)*1+mb) = kbd((md-1)*1+mb) - ks_bd
+ END DO
+ END DO
+ END DO
+ END SUBROUTINE block_15_1_1_1
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 0a2ab19..7e45123 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -145,6 +145,9 @@ vect_stmt_relevant_p (gimple stmt, loop_vec_info loop_vinfo,
if (vect_print_dump_info (REPORT_DETAILS))
fprintf (vect_dump, "vec_stmt_relevant_p: used out of loop.");
+ if (is_gimple_debug (USE_STMT (use_p)))
+ continue;
+
/* We expect all such uses to be in the loop exit phis
(because of loop closed form) */
gcc_assert (gimple_code (USE_STMT (use_p)) == GIMPLE_PHI);