This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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 ();
 }
 
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]