mark phis for renaming.
* tree-vectorizer.c (vect_memsyms_to_rename): Remove.
(vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
Call mark_sym_for_renaming.
* tree-vectorizer.h (vect_memsyms_to_rename): Remove.
* tree-vect-loop.c (vect_transform_loop): Remove vect_memsyms_to_rename
initialization and a call to mark_set_for_renaming.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148013
138bc75d-0d04-0410-961f-
82ee72b054a4
+2009-05-31 Ira Rosen <irar@il.ibm.com>
+
+ * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
+ mark phis for renaming.
+ * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
+ (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
+ Call mark_sym_for_renaming.
+ * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
+ * tree-vect-loop.c (vect_transform_loop): Remove vect_memsyms_to_rename
+ initialization and a call to mark_set_for_renaming.
+
2009-05-31 Jakub Jelinek <jakub@redhat.com>
PR middle-end/40304
basic_block orig_bb = loop->header;
edge new_exit_e;
tree current_new_name;
- tree name;
gimple_stmt_iterator gsi_orig, gsi_update;
/* Create new bb between loop and new_merge_bb. */
orig_phi = gsi_stmt (gsi_orig);
update_phi = gsi_stmt (gsi_update);
- /* Virtual phi; Mark it for renaming. We actually want to call
- mar_sym_for_renaming, but since all ssa renaming datastructures
- are going to be freed before we get to call ssa_update, we just
- record this name for now in a bitmap, and will mark it for
- renaming later. */
- name = PHI_RESULT (orig_phi);
- if (!is_gimple_reg (SSA_NAME_VAR (name)))
- bitmap_set_bit (vect_memsyms_to_rename, DECL_UID (SSA_NAME_VAR (name)));
-
/** 1. Handle new-merge-point phis **/
/* 1.1. Generate new phi node in NEW_MERGE_BB: */
!do_peeling_for_loop_bound,
&cond_expr, &cond_expr_stmt_list);
- /* CHECKME: we wouldn't need this if we called update_ssa once
- for all loops. */
- bitmap_zero (vect_memsyms_to_rename);
-
/* If the loop has a symbolic number of iterations 'n' (i.e. it's not a
compile time constant), or it is a constant that doesn't divide by the
vectorization factor, then an epilog loop needs to be created.
slpeel_make_loop_iterate_ntimes (loop, ratio);
- mark_set_for_renaming (vect_memsyms_to_rename);
-
/* The memory tags and pointers in vectorized statements need to
have their SSA forms updated. FIXME, why can't this be delayed
until all the loops have been transformed? */
/* Loop or bb location. */
LOC vect_location;
-/* Bitmap of virtual variables to be renamed. */
-bitmap vect_memsyms_to_rename;
-
/* Vector mapping GIMPLE stmt to stmt_vec_info. */
VEC(vec_void_p,heap) *stmt_vec_info_vec;
/* Fix the verbosity level if not defined explicitly by the user. */
vect_set_dump_settings (false);
- /* Allocate the bitmap that records which virtual variables
- need to be renamed. */
- vect_memsyms_to_rename = BITMAP_ALLOC (NULL);
-
init_stmt_vec_info_vec ();
/* ----------- Analyze loops. ----------- */
/* ----------- Finalize. ----------- */
- BITMAP_FREE (vect_memsyms_to_rename);
+ mark_sym_for_renaming (gimple_vop (cfun));
for (i = 1; i < vect_loops_num; i++)
{
extern FILE *vect_dump;
extern LOC vect_loop_location;
-/* Bitmap of virtual variables to be renamed. */
-extern bitmap vect_memsyms_to_rename;
-
/*-----------------------------------------------------------------*/
/* Function prototypes. */
/*-----------------------------------------------------------------*/