| Index: gcc/gcc/tree-phinodes.c
|
| diff --git a/gcc/gcc/tree-phinodes.c b/gcc/gcc/tree-phinodes.c
|
| index 2907807690a58f2689c5da496cb34b32173418ad..52aee785e806bedfc52aa02f474f1a3cf01d5b1c 100644
|
| --- a/gcc/gcc/tree-phinodes.c
|
| +++ b/gcc/gcc/tree-phinodes.c
|
| @@ -231,6 +231,8 @@ make_phi_node (tree var, int len)
|
| for (i = 0; i < capacity; i++)
|
| {
|
| use_operand_p imm;
|
| +
|
| + gimple_phi_arg_set_location (phi, i, UNKNOWN_LOCATION);
|
| imm = gimple_phi_arg_imm_use_ptr (phi, i);
|
| imm->use = gimple_phi_arg_def_ptr (phi, i);
|
| imm->prev = NULL;
|
| @@ -299,6 +301,8 @@ resize_phi_node (gimple *phi, size_t len)
|
| for (i = gimple_phi_num_args (new_phi); i < len; i++)
|
| {
|
| use_operand_p imm;
|
| +
|
| + gimple_phi_arg_set_location (new_phi, i, UNKNOWN_LOCATION);
|
| imm = gimple_phi_arg_imm_use_ptr (new_phi, i);
|
| imm->use = gimple_phi_arg_def_ptr (new_phi, i);
|
| imm->prev = NULL;
|
| @@ -349,7 +353,7 @@ reserve_phi_args_for_new_edge (basic_block bb)
|
|
|
| /* Adds PHI to BB. */
|
|
|
| -void
|
| +void
|
| add_phi_node_to_bb (gimple phi, basic_block bb)
|
| {
|
| gimple_stmt_iterator gsi;
|
| @@ -384,7 +388,7 @@ create_phi_node (tree var, basic_block bb)
|
| PHI points to the reallocated phi node when we return. */
|
|
|
| void
|
| -add_phi_arg (gimple phi, tree def, edge e)
|
| +add_phi_arg (gimple phi, tree def, edge e, source_location locus)
|
| {
|
| basic_block bb = e->dest;
|
|
|
| @@ -407,6 +411,7 @@ add_phi_arg (gimple phi, tree def, edge e)
|
| }
|
|
|
| SET_PHI_ARG_DEF (phi, e->dest_idx, def);
|
| + gimple_phi_arg_set_location (phi, e->dest_idx, locus);
|
| }
|
|
|
|
|
| @@ -435,6 +440,9 @@ remove_phi_arg_num (gimple phi, int i)
|
| /* Set use on new node, and link into last element's place. */
|
| *(new_p->use) = *(old_p->use);
|
| relink_imm_use (new_p, old_p);
|
| + /* Move the location as well. */
|
| + gimple_phi_arg_set_location (phi, i,
|
| + gimple_phi_arg_location (phi, num_elem - 1));
|
| }
|
|
|
| /* Shrink the vector and return. Note that we do not have to clear
|
| @@ -465,6 +473,10 @@ void
|
| remove_phi_node (gimple_stmt_iterator *gsi, bool release_lhs_p)
|
| {
|
| gimple phi = gsi_stmt (*gsi);
|
| +
|
| + if (release_lhs_p)
|
| + insert_debug_temps_for_defs (gsi);
|
| +
|
| gsi_remove (gsi, false);
|
|
|
| /* If we are deleting the PHI node, then we should release the
|
|
|