This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
fix mass vectorization failures
- From: Richard Henderson <rth at twiddle dot net>
- To: Dorit Nuzman <dorit at il dot ibm dot com>, gcc-patches at gcc dot gnu dot org
- Date: Fri, 17 Jun 2005 15:05:01 -0700
- Subject: fix mass vectorization failures
All of which are of the form
gcc.dg/tree-ssa/gen-vect-26.c:11: internal compiler error: in get_bb_copy, \
at cfg.c:1082
which is complaining that the copy infrastructure has not been initialized.
This appears to fix the problem.
r~
* tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use
initialize_original_copy_tables and free_original_copy_tables.
(vect_do_peeling_for_alignment): Likewise.
Index: tree-vect-transform.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-vect-transform.c,v
retrieving revision 2.25
diff -u -p -r2.25 tree-vect-transform.c
--- tree-vect-transform.c 10 Jun 2005 14:51:44 -0000 2.25
+++ tree-vect-transform.c 17 Jun 2005 22:02:22 -0000
@@ -1765,7 +1765,6 @@ static void
vect_do_peeling_for_loop_bound (loop_vec_info loop_vinfo, tree *ratio,
struct loops *loops)
{
-
tree ni_name, ratio_mult_vf_name;
struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
struct loop *new_loop;
@@ -1778,6 +1777,8 @@ vect_do_peeling_for_loop_bound (loop_vec
if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
fprintf (vect_dump, "=== vect_do_peeling_for_loop_bound ===");
+ initialize_original_copy_tables ();
+
/* Generate the following variables on the preheader of original loop:
ni_name = number of iteration the original loop executes
@@ -1816,7 +1817,7 @@ vect_do_peeling_for_loop_bound (loop_vec
/* After peeling we have to reset scalar evolution analyzer. */
scev_reset ();
- return;
+ free_original_copy_tables ();
}
@@ -2000,6 +2001,8 @@ vect_do_peeling_for_alignment (loop_vec_
if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
fprintf (vect_dump, "=== vect_do_peeling_for_alignment ===");
+ initialize_original_copy_tables ();
+
ni_name = vect_build_loop_niters (loop_vinfo);
niters_of_prolog_loop = vect_gen_niters_for_prolog_loop (loop_vinfo, ni_name);
@@ -2023,7 +2026,7 @@ vect_do_peeling_for_alignment (loop_vec_
/* After peeling we have to reset scalar evolution analyzer. */
scev_reset ();
- return;
+ free_original_copy_tables ();
}