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]

default_def cleanup


Hi,
default_def is sometimes accessed via accestor functions and sometimes
directly.  For SSA inlining I need to get this field out of variable
annotations so it is handy to use the abstraction everywhere.
Bootstrapped/regtested i686-pc-gnu-linux, OK?

2005-07-13  Jan Hubicka  <jh@suse.cz>	
	* tree-dfa.c (dump_variable): Use default_def function.
	* tree-ssa-alias.c (dump_points_to_info): Likewise.
	* tree-ssa.c (verify_use): Likewise.
	* tree-ssanames.c (release_ssa_name): Likewise.
	* tree-tailcall.c (eliminate_tail_call): Likewise.
	(tree_optimize_tail_calls_1): Likewise.
	* tree-vrp.c (get_value_range): Likewise.

Index: tree-dfa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-dfa.c,v
retrieving revision 2.59
diff -c -3 -p -r2.59 tree-dfa.c
*** tree-dfa.c	10 Jul 2005 00:27:50 -0000	2.59
--- tree-dfa.c	12 Jul 2005 21:32:31 -0000
*************** dump_variable (FILE *file, tree var)
*** 335,344 ****
    if (is_call_clobbered (var))
      fprintf (file, ", call clobbered");
  
!   if (ann->default_def)
      {
        fprintf (file, ", default def: ");
!       print_generic_expr (file, ann->default_def, dump_flags);
      }
  
    if (ann->may_aliases)
--- 332,341 ----
    if (is_call_clobbered (var))
      fprintf (file, ", call clobbered");
  
!   if (default_def (var))
      {
        fprintf (file, ", default def: ");
!       print_generic_expr (file, default_def (var), dump_flags);
      }
  
    if (ann->may_aliases)
Index: tree-ssa-alias.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa-alias.c,v
retrieving revision 2.102
diff -c -3 -p -r2.102 tree-ssa-alias.c
*** tree-ssa-alias.c	10 Jul 2005 19:34:45 -0000	2.102
--- tree-ssa-alias.c	12 Jul 2005 21:32:36 -0000
*************** dump_points_to_info (FILE *file)
*** 2035,2043 ****
      {
        if (POINTER_TYPE_P (TREE_TYPE (var)))
  	{
! 	  var_ann_t ann = var_ann (var);
! 	  if (ann->default_def)
! 	    dump_points_to_info_for (file, ann->default_def);
  	}
      }
  
--- 2011,2019 ----
      {
        if (POINTER_TYPE_P (TREE_TYPE (var)))
  	{
! 	  tree def = default_def (var);
! 	  if (def)
! 	    dump_points_to_info_for (file, def);
  	}
      }
  
Index: tree-ssa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa.c,v
retrieving revision 2.104
diff -c -3 -p -r2.104 tree-ssa.c
*** tree-ssa.c	10 Jul 2005 00:27:52 -0000	2.104
--- tree-ssa.c	12 Jul 2005 21:32:38 -0000
*************** verify_use (basic_block bb, basic_block 
*** 231,237 ****
    TREE_VISITED (ssa_name) = 1;
  
    if (IS_EMPTY_STMT (SSA_NAME_DEF_STMT (ssa_name))
!       && var_ann (SSA_NAME_VAR (ssa_name))->default_def == ssa_name)
      ; /* Default definitions have empty statements.  Nothing to do.  */
    else if (!def_bb)
      {
--- 231,237 ----
    TREE_VISITED (ssa_name) = 1;
  
    if (IS_EMPTY_STMT (SSA_NAME_DEF_STMT (ssa_name))
!       && default_def (SSA_NAME_VAR (ssa_name)) == ssa_name)
      ; /* Default definitions have empty statements.  Nothing to do.  */
    else if (!def_bb)
      {
Index: tree-ssanames.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssanames.c,v
retrieving revision 2.28
diff -c -3 -p -r2.28 tree-ssanames.c
*** tree-ssanames.c	8 Jul 2005 19:11:49 -0000	2.28
--- tree-ssanames.c	12 Jul 2005 21:32:38 -0000
*************** release_ssa_name (tree var)
*** 183,189 ****
  
    /* Never release the default definition for a symbol.  It's a
       special SSA name that should always exist once it's created.  */
!   if (var == var_ann (SSA_NAME_VAR (var))->default_def)
      return;
  
    /* If VAR has been registered for SSA updating, don't remove it.
--- 176,182 ----
  
    /* Never release the default definition for a symbol.  It's a
       special SSA name that should always exist once it's created.  */
!   if (var == default_def (SSA_NAME_VAR (var)))
      return;
  
    /* If VAR has been registered for SSA updating, don't remove it.
Index: tree-tailcall.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-tailcall.c,v
retrieving revision 2.44
diff -c -3 -p -r2.44 tree-tailcall.c
*** tree-tailcall.c	30 Jun 2005 22:18:36 -0000	2.44
--- tree-tailcall.c	12 Jul 2005 21:32:38 -0000
*************** eliminate_tail_call (struct tailcall *t)
*** 756,762 ****
  
        if (!phi)
  	{
! 	  tree name = var_ann (param)->default_def;
  	  tree new_name;
  
  	  if (!name)
--- 756,762 ----
  
        if (!phi)
  	{
! 	  tree name = default_def (param);
  	  tree new_name;
  
  	  if (!name)
*************** eliminate_tail_call (struct tailcall *t)
*** 769,775 ****
  	    }
  	  new_name = make_ssa_name (param, SSA_NAME_DEF_STMT (name));
  
! 	  var_ann (param)->default_def = new_name;
  	  phi = create_phi_node (name, first);
  	  SSA_NAME_DEF_STMT (name) = phi;
  	  add_phi_arg (phi, new_name, single_succ_edge (ENTRY_BLOCK_PTR));
--- 769,775 ----
  	    }
  	  new_name = make_ssa_name (param, SSA_NAME_DEF_STMT (name));
  
! 	  set_default_def (param, new_name);
  	  phi = create_phi_node (name, first);
  	  SSA_NAME_DEF_STMT (name) = phi;
  	  add_phi_arg (phi, new_name, single_succ_edge (ENTRY_BLOCK_PTR));
*************** tree_optimize_tail_calls_1 (bool opt_tai
*** 868,873 ****
--- 868,874 ----
  
        if (!phis_constructed)
  	{
+ 	  tree name;
  	  /* Ensure that there is only one predecessor of the block.  */
  	  if (!single_pred_p (first))
  	    first = split_edge (single_succ_edge (ENTRY_BLOCK_PTR));
*************** tree_optimize_tail_calls_1 (bool opt_tai
*** 880,893 ****
  		&& var_ann (param)
  		/* Also parameters that are only defined but never used need not
  		   be copied.  */
! 		&& (var_ann (param)->default_def
! 		    && TREE_CODE (var_ann (param)->default_def) == SSA_NAME))
  	    {
- 	      tree name = var_ann (param)->default_def;
  	      tree new_name = make_ssa_name (param, SSA_NAME_DEF_STMT (name));
  	      tree phi;
  
! 	      var_ann (param)->default_def = new_name;
  	      phi = create_phi_node (name, first);
  	      SSA_NAME_DEF_STMT (name) = phi;
  	      add_phi_arg (phi, new_name, single_pred_edge (first));
--- 881,893 ----
  		&& var_ann (param)
  		/* Also parameters that are only defined but never used need not
  		   be copied.  */
! 		&& ((name = default_def (param))
! 		    && TREE_CODE (name) == SSA_NAME))
  	    {
  	      tree new_name = make_ssa_name (param, SSA_NAME_DEF_STMT (name));
  	      tree phi;
  
! 	      set_default_def (param, new_name);
  	      phi = create_phi_node (name, first);
  	      SSA_NAME_DEF_STMT (name) = phi;
  	      add_phi_arg (phi, new_name, single_pred_edge (first));
Index: tree-vrp.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-vrp.c,v
retrieving revision 2.39
diff -c -3 -p -r2.39 tree-vrp.c
*** tree-vrp.c	8 Jul 2005 23:36:45 -0000	2.39
--- tree-vrp.c	12 Jul 2005 21:32:40 -0000
*************** get_value_range (tree var)
*** 294,300 ****
    /* If VAR is a default definition, the variable can take any value
       in VAR's type.  */
    sym = SSA_NAME_VAR (var);
!   if (var == var_ann (sym)->default_def)
      {
        /* Try to use the "nonnull" attribute to create ~[0, 0]
  	 anti-ranges for pointers.  Note that this is only valid with
--- 294,300 ----
    /* If VAR is a default definition, the variable can take any value
       in VAR's type.  */
    sym = SSA_NAME_VAR (var);
!   if (var == default_def (sym))
      {
        /* Try to use the "nonnull" attribute to create ~[0, 0]
  	 anti-ranges for pointers.  Note that this is only valid with


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