diff options
Diffstat (limited to 'gcc/tree-tailcall.c')
-rw-r--r-- | gcc/tree-tailcall.c | 12 |
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)); |