This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
default_def cleanup
- From: Jan Hubicka <jh at suse dot cz>
- To: gcc-patches at gcc dot gnu dot org, dnovillo at redhat dot com
- Date: Wed, 13 Jul 2005 14:09:01 +0200
- Subject: 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