mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-24 03:59:25 +08:00
re PR tree-optimization/26360 (Autovectorization of char -> int loop gets ICE)
Changelog: PR tree-optimization/26360 * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern stmts. testsuite/Changelog: PR tree-optimizations/26360 * gcc.dg/vect/vect.exp: Compile tests prefixed with "no-tree-dce" with -fno-tree-dce. * gcc.dg/vect/no-tree-dce-pr26360.c: New test. Co-Authored-By: Victor Kaplansky <victork@il.ibm.com> From-SVN: r114386
This commit is contained in:
parent
6690a9e079
commit
a8b2849215
@ -1,3 +1,10 @@
|
|||||||
|
2006-06-05 Dorit Nuzman <dorit@il.ibm.com>
|
||||||
|
Victor Kaplansky <victork@il.ibm.com>
|
||||||
|
|
||||||
|
PR tree-optimization/26360
|
||||||
|
* tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
|
||||||
|
stmts.
|
||||||
|
|
||||||
2006-06-04 Roger Sayle <roger@eyesopen.com>
|
2006-06-04 Roger Sayle <roger@eyesopen.com>
|
||||||
Andrew Pinski <pinskia@physics.uc.edu>
|
Andrew Pinski <pinskia@physics.uc.edu>
|
||||||
|
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
2006-06-05 Dorit Nuzman <dorit@il.ibm.com>
|
||||||
|
Victor Kaplansky <victork@il.ibm.com>
|
||||||
|
|
||||||
|
PR tree-optimizations/26360
|
||||||
|
* gcc.dg/vect/vect.exp: Compile tests prefixed with "no-tree-dce"
|
||||||
|
with -fno-tree-dce.
|
||||||
|
* gcc.dg/vect/no-tree-dce-pr26360.c: New test.
|
||||||
|
|
||||||
2006-06-05 Paul Thomas <pault@gcc.gnu.org>
|
2006-06-05 Paul Thomas <pault@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/14067
|
PR fortran/14067
|
||||||
|
@ -115,6 +115,12 @@ lappend DEFAULT_VECTCFLAGS "-fdump-tree-dceloop-details"
|
|||||||
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/dump-tree-dceloop-*.\[cS\]]] \
|
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/dump-tree-dceloop-*.\[cS\]]] \
|
||||||
"" $DEFAULT_VECTCFLAGS
|
"" $DEFAULT_VECTCFLAGS
|
||||||
|
|
||||||
|
# -fno-tree-dce tests
|
||||||
|
set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
|
||||||
|
lappend DEFAULT_VECTCFLAGS "-fno-tree-dce"
|
||||||
|
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/no-tree-dce-*.\[cS\]]] \
|
||||||
|
"" $DEFAULT_VECTCFLAGS
|
||||||
|
|
||||||
# With -Os
|
# With -Os
|
||||||
lappend DEFAULT_VECTCFLAGS "-Os"
|
lappend DEFAULT_VECTCFLAGS "-Os"
|
||||||
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/Os-vect-*.\[cS\]]] \
|
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/Os-vect-*.\[cS\]]] \
|
||||||
|
@ -1467,7 +1467,7 @@ destroy_loop_vec_info (loop_vec_info loop_vinfo)
|
|||||||
set_stmt_info (ann, NULL);
|
set_stmt_info (ann, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (si = bsi_start (bb); !bsi_end_p (si); bsi_next (&si))
|
for (si = bsi_start (bb); !bsi_end_p (si); )
|
||||||
{
|
{
|
||||||
tree stmt = bsi_stmt (si);
|
tree stmt = bsi_stmt (si);
|
||||||
stmt_ann_t ann = stmt_ann (stmt);
|
stmt_ann_t ann = stmt_ann (stmt);
|
||||||
@ -1475,10 +1475,28 @@ destroy_loop_vec_info (loop_vec_info loop_vinfo)
|
|||||||
|
|
||||||
if (stmt_info)
|
if (stmt_info)
|
||||||
{
|
{
|
||||||
|
/* Check if this is a "pattern stmt" (introduced by the
|
||||||
|
vectorizer during the pattern recognition pass). */
|
||||||
|
bool remove_stmt_p = false;
|
||||||
|
tree orig_stmt = STMT_VINFO_RELATED_STMT (stmt_info);
|
||||||
|
if (orig_stmt)
|
||||||
|
{
|
||||||
|
stmt_vec_info orig_stmt_info = vinfo_for_stmt (orig_stmt);
|
||||||
|
if (orig_stmt_info
|
||||||
|
&& STMT_VINFO_IN_PATTERN_P (orig_stmt_info))
|
||||||
|
remove_stmt_p = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Free stmt_vec_info. */
|
||||||
VEC_free (dr_p, heap, STMT_VINFO_SAME_ALIGN_REFS (stmt_info));
|
VEC_free (dr_p, heap, STMT_VINFO_SAME_ALIGN_REFS (stmt_info));
|
||||||
free (stmt_info);
|
free (stmt_info);
|
||||||
set_stmt_info ((tree_ann_t)ann, NULL);
|
set_stmt_info ((tree_ann_t)ann, NULL);
|
||||||
|
|
||||||
|
/* Remove dead "pattern stmts". */
|
||||||
|
if (remove_stmt_p)
|
||||||
|
bsi_remove (&si, true);
|
||||||
}
|
}
|
||||||
|
bsi_next (&si);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user