[patch] tree-*.c: Replace TREE_CHAIN with PHI_CHAIN where appropriate.

Kazu Hirata kazu@cs.umass.edu
Mon Nov 8 08:52:00 GMT 2004


Hi,

Attached is a patch to replace TREE_CHAIN with PHI_CHAIN where
appropriate.

Tested on i686-pc-linux-gnu.  OK to apply?

Kazu Hirata

2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>

	* tree-cfg.c, tree-if-conv.c, tree-into-ssa.c,
	tree-scalar-evolution.c, tree-ssa-loop-im.c,
	tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa.c,
	tree-vectorizer.c: Replace TREE_CHAIN with PHI_CHAIN where
	appropriate.

Index: tree-cfg.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-cfg.c,v
retrieving revision 2.101
diff -u -d -p -r2.101 tree-cfg.c
--- tree-cfg.c	6 Nov 2004 15:57:25 -0000	2.101
+++ tree-cfg.c	6 Nov 2004 20:11:26 -0000
@@ -4279,7 +4279,7 @@ tree_duplicate_bb (basic_block bb)
   /* First copy the phi nodes.  We do not copy phi node arguments here,
      since the edges are not ready yet.  Keep the chain of phi nodes in
      the same order, so that we can add them later.  */
-  for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
     {
       mark_for_rewrite (PHI_RESULT (phi));
       create_phi_node (PHI_RESULT (phi), new_bb);
@@ -4501,7 +4501,7 @@ rewrite_to_new_ssa_names_bb (basic_block
     if (e->flags & EDGE_ABNORMAL)
       break;
 
-  for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
     {
       rewrite_to_new_ssa_names_def (PHI_RESULT_PTR (phi), phi, map);
       if (e)
@@ -4546,7 +4546,7 @@ rewrite_to_new_ssa_names_bb (basic_block
     }
 
   FOR_EACH_EDGE (e, ei, bb->succs)
-    for (phi = phi_nodes (e->dest); phi; phi = TREE_CHAIN (phi))
+    for (phi = phi_nodes (e->dest); phi; phi = PHI_CHAIN (phi))
       {
 	rewrite_to_new_ssa_names_use
 		(PHI_ARG_DEF_PTR_FROM_EDGE (phi, e), map);
Index: tree-if-conv.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-if-conv.c,v
retrieving revision 2.11
diff -u -d -p -r2.11 tree-if-conv.c
--- tree-if-conv.c	14 Oct 2004 18:19:46 -0000	2.11
+++ tree-if-conv.c	6 Nov 2004 20:11:27 -0000
@@ -591,7 +591,7 @@ if_convertable_loop_p (struct loop *loop
       /* ??? Check data dependency for vectorizer.  */
 
       /* What about phi nodes ? */
-      for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi))
+      for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
 	if (!if_convertable_phi_p (loop, bb, phi))
 	  return false;
 
Index: tree-into-ssa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-into-ssa.c,v
retrieving revision 2.29
diff -u -d -p -r2.29 tree-into-ssa.c
--- tree-into-ssa.c	4 Nov 2004 08:41:13 -0000	2.29
+++ tree-into-ssa.c	6 Nov 2004 20:11:29 -0000
@@ -298,7 +298,7 @@ ssa_mark_def_sites_initialize_block (str
 
   sbitmap_zero (kills);
 
-  for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
     {
       def = PHI_RESULT (phi);
       def_uid = SSA_NAME_VERSION (def);
@@ -328,7 +328,7 @@ ssa_mark_phi_uses (struct dom_walk_data 
       if (e->dest == EXIT_BLOCK_PTR)
 	continue;
 
-      for (phi = phi_nodes (e->dest); phi; phi = TREE_CHAIN (phi))
+      for (phi = phi_nodes (e->dest); phi; phi = PHI_CHAIN (phi))
 	{
 	  use = PHI_ARG_DEF_FROM_EDGE (phi, e);
 	  if (TREE_CODE (use) != SSA_NAME)
@@ -748,7 +748,7 @@ ssa_rewrite_initialize_block (struct dom
   /* Step 1.  Register new definitions for every PHI node in the block.
      Conceptually, all the PHI nodes are executed in parallel and each PHI
      node introduces a new version for the associated variable.  */
-  for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
     {
       tree result = PHI_RESULT (phi);
 
@@ -783,7 +783,7 @@ rewrite_add_phi_arguments (struct dom_wa
     {
       tree phi;
 
-      for (phi = phi_nodes (e->dest); phi; phi = TREE_CHAIN (phi))
+      for (phi = phi_nodes (e->dest); phi; phi = PHI_CHAIN (phi))
 	{
 	  tree currdef;
 
@@ -818,7 +818,7 @@ rewrite_virtual_phi_arguments (struct do
       if (e->dest == EXIT_BLOCK_PTR)
 	continue;
 
-      for (phi = phi_nodes (e->dest); phi; phi = TREE_CHAIN (phi))
+      for (phi = phi_nodes (e->dest); phi; phi = PHI_CHAIN (phi))
 	{
 	  tree result = PHI_RESULT (phi);
 	  op = PHI_ARG_DEF_PTR_FROM_EDGE (phi, e);
@@ -852,7 +852,7 @@ ssa_rewrite_phi_arguments (struct dom_wa
       if (e->dest == EXIT_BLOCK_PTR)
 	continue;
 
-      for (phi = phi_nodes (e->dest); phi; phi = TREE_CHAIN (phi))
+      for (phi = phi_nodes (e->dest); phi; phi = PHI_CHAIN (phi))
 	{
 	  op = PHI_ARG_DEF_PTR_FROM_EDGE (phi, e);
 	  if (TREE_CODE (USE_FROM_PTR (op)) != SSA_NAME)
Index: tree-scalar-evolution.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-scalar-evolution.c,v
retrieving revision 2.9
diff -u -d -p -r2.9 tree-scalar-evolution.c
--- tree-scalar-evolution.c	22 Oct 2004 17:05:07 -0000	2.9
+++ tree-scalar-evolution.c	6 Nov 2004 20:11:31 -0000
@@ -2374,7 +2374,7 @@ analyze_scalar_evolution_for_all_loop_ph
       loop = loop_containing_stmt (VARRAY_TREE (exit_conditions, i));
       bb = loop->header;
       
-      for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi))
+      for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
 	if (is_gimple_reg (PHI_RESULT (phi)))
 	  {
 	    chrec = instantiate_parameters 
Index: tree-ssa-loop-im.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa-loop-im.c,v
retrieving revision 2.20
diff -u -d -p -r2.20 tree-ssa-loop-im.c
--- tree-ssa-loop-im.c	29 Oct 2004 08:41:04 -0000	2.20
+++ tree-ssa-loop-im.c	6 Nov 2004 20:11:32 -0000
@@ -1239,7 +1239,7 @@ determine_lsm_loop (struct loop *loop)
       return;
     }
 
-  for (phi = phi_nodes (loop->header); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (loop->header); phi; phi = PHI_CHAIN (phi))
     determine_lsm_reg (loop, exits, n_exits, PHI_RESULT (phi));
 
   free (exits);
Index: tree-ssa-loop-ivopts.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa-loop-ivopts.c,v
retrieving revision 2.24
diff -u -d -p -r2.24 tree-ssa-loop-ivopts.c
--- tree-ssa-loop-ivopts.c	4 Nov 2004 08:57:55 -0000	2.24
+++ tree-ssa-loop-ivopts.c	6 Nov 2004 20:11:37 -0000
@@ -805,7 +805,7 @@ find_bivs (struct ivopts_data *data)
   bool found = false;
   struct loop *loop = data->current_loop;
 
-  for (phi = phi_nodes (loop->header); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (loop->header); phi; phi = PHI_CHAIN (phi))
     {
       if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (PHI_RESULT (phi)))
 	continue;
@@ -848,7 +848,7 @@ mark_bivs (struct ivopts_data *data)
   struct loop *loop = data->current_loop;
   basic_block incr_bb;
 
-  for (phi = phi_nodes (loop->header); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (loop->header); phi; phi = PHI_CHAIN (phi))
     {
       iv = get_iv (data, PHI_RESULT (phi));
       if (!iv)
@@ -1510,7 +1510,7 @@ find_interesting_uses_outside (struct iv
 {
   tree phi, def;
 
-  for (phi = phi_nodes (exit->dest); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (exit->dest); phi; phi = PHI_CHAIN (phi))
     {
       def = PHI_ARG_DEF_FROM_EDGE (phi, exit);
       find_interesting_uses_outer (data, def);
@@ -1543,7 +1543,7 @@ find_interesting_uses (struct ivopts_dat
 	    && !flow_bb_inside_loop_p (data->current_loop, e->dest))
 	  find_interesting_uses_outside (data, e);
 
-      for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi))
+      for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
 	find_interesting_uses_stmt (data, phi);
       for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
 	find_interesting_uses_stmt (data, bsi_stmt (bsi));
@@ -3415,7 +3415,7 @@ determine_set_costs (struct ivopts_data 
     }
 
   n = 0;
-  for (phi = phi_nodes (loop->header); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (loop->header); phi; phi = PHI_CHAIN (phi))
     {
       op = PHI_RESULT (phi);
 
@@ -4169,7 +4169,7 @@ protect_loop_closed_ssa_form_use (edge e
     return;
 
   /* Try finding a phi node that copies the value out of the loop.  */
-  for (phi = phi_nodes (exit->dest); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (exit->dest); phi; phi = PHI_CHAIN (phi))
     if (PHI_ARG_DEF_FROM_EDGE (phi, exit) == use)
       break;
 
@@ -4303,7 +4303,7 @@ rewrite_use_outer (struct ivopts_data *d
       if (stmts && name_info (data, tgt)->preserve_biv)
 	return;
 
-      for (phi = phi_nodes (exit->dest); phi; phi = TREE_CHAIN (phi))
+      for (phi = phi_nodes (exit->dest); phi; phi = PHI_CHAIN (phi))
 	{
 	  use_operand_p use_p = PHI_ARG_DEF_PTR_FROM_EDGE (phi, exit);
 
Index: tree-ssa-loop-manip.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa-loop-manip.c,v
retrieving revision 2.14
diff -u -d -p -r2.14 tree-ssa-loop-manip.c
--- tree-ssa-loop-manip.c	4 Nov 2004 08:41:16 -0000	2.14
+++ tree-ssa-loop-manip.c	6 Nov 2004 20:11:38 -0000
@@ -272,7 +272,7 @@ find_uses_to_rename (bitmap *use_blocks)
 
   FOR_EACH_BB (bb)
     {
-      for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi))
+      for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
 	for (i = 0; i < (unsigned) PHI_NUM_ARGS (phi); i++)
 	  find_uses_to_rename_use (PHI_ARG_EDGE (phi, i)->src,
 				   PHI_ARG_DEF (phi, i), use_blocks);
@@ -383,7 +383,7 @@ verify_loop_closed_ssa (void)
 
   FOR_EACH_BB (bb)
     {
-      for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi))
+      for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
 	for (i = 0; i < (unsigned) PHI_NUM_ARGS (phi); i++)
 	  check_loop_closed_ssa_use (PHI_ARG_EDGE (phi, i)->src,
 				     PHI_ARG_DEF (phi, i));
@@ -404,7 +404,7 @@ split_loop_exit_edge (edge exit)
   tree phi, new_phi, new_name, name;
   use_operand_p op_p;
 
-  for (phi = phi_nodes (dest); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (dest); phi; phi = PHI_CHAIN (phi))
     {
       op_p = PHI_ARG_DEF_PTR_FROM_EDGE (phi, EDGE_SUCC (bb, 0));
 
@@ -567,7 +567,7 @@ set_phi_def_stmts (basic_block bb)
 {
   tree phi;
 
-  for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
     SSA_NAME_DEF_STMT (PHI_RESULT (phi)) = phi;
 }
 
Index: tree-ssa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa.c,v
retrieving revision 2.55
diff -u -d -p -r2.55 tree-ssa.c
--- tree-ssa.c	4 Nov 2004 20:10:59 -0000	2.55
+++ tree-ssa.c	6 Nov 2004 20:11:39 -0000
@@ -113,7 +113,7 @@ flush_pending_stmts (edge e)
 
   for (phi = phi_nodes (e->dest), arg = PENDING_STMT (e);
        phi;
-       phi = TREE_CHAIN (phi), arg = TREE_CHAIN (arg))
+       phi = PHI_CHAIN (phi), arg = TREE_CHAIN (arg))
     {
       tree def = TREE_VALUE (arg);
       add_phi_arg (&phi, def, e);
@@ -1281,7 +1281,7 @@ kill_redundant_phi_nodes (void)
 
   FOR_EACH_BB (bb)
     {
-      for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi))
+      for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
 	{
 	  var = PHI_RESULT (phi);
 	  check_phi_redundancy (phi, eq_to);
Index: tree-vectorizer.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-vectorizer.c,v
retrieving revision 2.24
diff -u -d -p -r2.24 tree-vectorizer.c
--- tree-vectorizer.c	4 Nov 2004 13:48:59 -0000	2.24
+++ tree-vectorizer.c	6 Nov 2004 20:11:46 -0000
@@ -353,7 +353,7 @@ rename_variables_in_bb (basic_block bb)
   edge e;
   edge_iterator ei;
 
-  for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
     rename_def_op (PHI_RESULT_PTR (phi), phi);
 
   for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
@@ -390,7 +390,7 @@ rename_variables_in_bb (basic_block bb)
     }
 
   FOR_EACH_EDGE (e, ei, bb->succs)
-    for (phi = phi_nodes (e->dest); phi; phi = TREE_CHAIN (phi))
+    for (phi = phi_nodes (e->dest); phi; phi = PHI_CHAIN (phi))
       rename_use_op (PHI_ARG_DEF_PTR_FROM_EDGE (phi, e));
 }
 
@@ -449,8 +449,8 @@ copy_phi_nodes (struct loop *loop, struc
   for (phi = phi_nodes (loop->header),
 	 new_phi = phi_nodes (new_loop->header);
        phi;
-       phi = TREE_CHAIN (phi),
-	 new_phi = TREE_CHAIN (new_phi))
+       phi = PHI_CHAIN (phi),
+	 new_phi = PHI_CHAIN (new_phi))
     {
       new_e = loop_preheader_edge (new_loop);
       def = PHI_ARG_DEF_FROM_EDGE (phi, e);
@@ -557,7 +557,7 @@ update_phi_nodes_for_guard (edge guard_t
 {
   tree phi, phi1;
 
-  for (phi = phi_nodes (loop->header); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (loop->header); phi; phi = PHI_CHAIN (phi))
       {
 	tree new_phi;
 	tree phi_arg;
@@ -695,7 +695,7 @@ tree_duplicate_loop_to_edge_cfg (struct 
 
   /* Duplicating phi args at exit bbs as coming 
      also from exit of duplicated loop.  */
-  for (phi = phi_nodes (exit_dest); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (exit_dest); phi; phi = PHI_CHAIN (phi))
     {
       phi_arg = PHI_ARG_DEF_FROM_EDGE (phi, loop->exit_edges[0]);
       if (phi_arg)
@@ -736,7 +736,7 @@ tree_duplicate_loop_to_edge_cfg (struct 
 
       /* We have to add phi args to the loop->header here as coming 
 	 from new_exit_e edge.  */
-      for (phi = phi_nodes (loop->header); phi; phi = TREE_CHAIN (phi))
+      for (phi = phi_nodes (loop->header); phi; phi = PHI_CHAIN (phi))
 	{
 	  phi_arg = PHI_ARG_DEF_FROM_EDGE (phi, entry_e);
 	  if (phi_arg)
@@ -2913,7 +2913,7 @@ vect_update_ivs_after_vectorizer (struct
   
   loop->exit_edges[0] = EDGE_PRED (new_bb, 0);
   
-  for (phi = phi_nodes (loop->header); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (loop->header); phi; phi = PHI_CHAIN (phi))
     {
       tree access_fn = NULL;
       tree evolution_part;
@@ -3731,7 +3731,7 @@ vect_analyze_scalar_cycles (loop_vec_inf
   if (vect_debug_details (NULL))
     fprintf (dump_file, "\n<<vect_analyze_scalar_cycles>>\n");
 
-  for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
     {
       tree access_fn = NULL;
 
@@ -5351,7 +5351,7 @@ vect_analyze_loop_with_symbolic_num_of_i
    
   /* Analyze phi functions of the loop header.  */
 
-  for (phi = phi_nodes (bb); phi; phi = TREE_CHAIN (phi))
+  for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
     {
       tree access_fn = NULL;
       tree evolution_part;



More information about the Gcc-patches mailing list