diff mbox

Vectorizer TLC

Message ID Pine.LNX.4.64.1205161519500.11924@jbgna.fhfr.qr
State New
Headers show

Commit Message

Richard Biener May 16, 2012, 1:20 p.m. UTC
I noticed a write-only bitmap and some odd CFG hooks initializing code.

Removed as follows.

Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2012-05-16  Richard Guenther  <rguenther@suse.de>

	* tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
	Remove set-only bitmap of new names.
	(slpeel_tree_peel_loop_to_edge): Likewise.  Do not set
	CFG hooks.
	* tree-flow.h (ssa_names_to_replace): Remove.
	* tree-into-ssa.c (ssa_names_to_replace): Likewise.

Index: gcc/tree-flow.h
===================================================================
*** gcc/tree-flow.h	(revision 187589)
--- gcc/tree-flow.h	(working copy)
*************** tree create_new_def_for (tree, gimple, d
*** 576,582 ****
  bool need_ssa_update_p (struct function *);
  bool name_mappings_registered_p (void);
  bool name_registered_for_update_p (tree);
- bitmap ssa_names_to_replace (void);
  void release_ssa_name_after_update_ssa (tree);
  void compute_global_livein (bitmap, bitmap);
  void mark_sym_for_renaming (tree);
--- 574,579 ----
Index: gcc/tree-into-ssa.c
===================================================================
*** gcc/tree-into-ssa.c	(revision 187589)
--- gcc/tree-into-ssa.c	(working copy)
*************** name_registered_for_update_p (tree n ATT
*** 3053,3078 ****
  }
  
  
- /* Return the set of all the SSA names marked to be replaced.  */
- 
- bitmap
- ssa_names_to_replace (void)
- {
-   unsigned i = 0;
-   bitmap ret;
-   sbitmap_iterator sbi;
- 
-   gcc_assert (update_ssa_initialized_fn == NULL
- 	      || update_ssa_initialized_fn == cfun);
- 
-   ret = BITMAP_ALLOC (NULL);
-   EXECUTE_IF_SET_IN_SBITMAP (old_ssa_names, 0, i, sbi)
-     bitmap_set_bit (ret, i);
- 
-   return ret;
- }
- 
- 
  /* Mark NAME to be released after update_ssa has finished.  */
  
  void
--- 3053,3058 ----
diff mbox

Patch

Index: gcc/tree-vect-loop-manip.c
===================================================================
--- gcc/tree-vect-loop-manip.c	(revision 187534)
+++ gcc/tree-vect-loop-manip.c	(working copy)
@@ -489,8 +489,7 @@  LOOP->  loop1
 
 static void
 slpeel_update_phi_nodes_for_guard1 (edge guard_edge, struct loop *loop,
-                                    bool is_new_loop, basic_block *new_exit_bb,
-                                    bitmap *defs)
+                                    bool is_new_loop, basic_block *new_exit_bb)
 {
   gimple orig_phi, new_phi;
   gimple update_phi, update_phi2;
@@ -586,7 +585,6 @@  slpeel_update_phi_nodes_for_guard1 (edge
       gcc_assert (get_current_def (current_new_name) == NULL_TREE);
 
       set_current_def (current_new_name, PHI_RESULT (new_phi));
-      bitmap_set_bit (*defs, SSA_NAME_VERSION (current_new_name));
     }
 }
 
@@ -1159,7 +1157,6 @@  slpeel_tree_peel_loop_to_edge (struct lo
   struct loop *new_loop = NULL, *first_loop, *second_loop;
   edge skip_e;
   tree pre_condition = NULL_TREE;
-  bitmap definitions;
   basic_block bb_before_second_loop, bb_after_second_loop;
   basic_block bb_before_first_loop;
   basic_block bb_between_loops;
@@ -1172,12 +1169,6 @@  slpeel_tree_peel_loop_to_edge (struct lo
   if (!slpeel_can_duplicate_loop_p (loop, e))
     return NULL;
 
-  /* We have to initialize cfg_hooks. Then, when calling
-   cfg_hooks->split_edge, the function tree_split_edge
-   is actually called and, when calling cfg_hooks->duplicate_block,
-   the function tree_duplicate_bb is called.  */
-  gimple_register_cfg_hooks ();
-
   /* If the loop has a virtual PHI, but exit bb doesn't, create a virtual PHI
      in the exit bb and rename all the uses after the loop.  This simplifies
      the *guard[12] routines, which assume loop closed SSA form for all PHIs
@@ -1259,7 +1250,6 @@  slpeel_tree_peel_loop_to_edge (struct lo
       second_loop = loop;
     }
 
-  definitions = ssa_names_to_replace ();
   slpeel_update_phis_for_duplicate_loop (loop, new_loop, e == exit_e);
   rename_variables_in_loop (new_loop);
 
@@ -1397,7 +1387,7 @@  slpeel_tree_peel_loop_to_edge (struct lo
                                   bb_before_second_loop, bb_before_first_loop);
   slpeel_update_phi_nodes_for_guard1 (skip_e, first_loop,
 				      first_loop == new_loop,
-				      &new_exit_bb, &definitions);
+				      &new_exit_bb);
 
 
   /* 3. Add the guard that controls whether the second loop is executed.
@@ -1441,7 +1431,6 @@  slpeel_tree_peel_loop_to_edge (struct lo
   if (update_first_loop_count)
     slpeel_make_loop_iterate_ntimes (first_loop, *first_niters);
 
-  BITMAP_FREE (definitions);
   delete_update_ssa ();
 
   adjust_vec_debug_stmts ();