aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-tailcall.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-tailcall.c')
-rw-r--r--gcc/tree-tailcall.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c
index 1e26640..3a40a61 100644
--- a/gcc/tree-tailcall.c
+++ b/gcc/tree-tailcall.c
@@ -756,7 +756,7 @@ eliminate_tail_call (struct tailcall *t)
if (!phi)
{
- tree name = var_ann (param)->default_def;
+ tree name = default_def (param);
tree new_name;
if (!name)
@@ -769,7 +769,7 @@ eliminate_tail_call (struct tailcall *t)
}
new_name = make_ssa_name (param, SSA_NAME_DEF_STMT (name));
- var_ann (param)->default_def = new_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));
@@ -868,6 +868,7 @@ tree_optimize_tail_calls_1 (bool opt_tailcalls)
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));
@@ -880,14 +881,13 @@ tree_optimize_tail_calls_1 (bool opt_tailcalls)
&& 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))
+ && ((name = default_def (param))
+ && TREE_CODE (name) == 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;
+ 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));