Commit afd83fe4 by Andrew MacLeod Committed by Andrew Macleod

re PR tree-optimization/27381 (ice on valid code with -O)



2006-05-02  Andrew MacLeod  <amacleod@redhat.com>

        PR tree-optimization/27381
	* tree-phinodes.c (remove_phi_arg_num): When moving a phi argument, 
	maintain the same immediate_use links.
	* tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker 
	node rather than segfaulting.

From-SVN: r113499
parent 693d710f
2006-05-02 Andrew MacLeod <amacleod@redhat.com>
PR tree-optimization/27381
* tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
maintain the same immediate_use links.
* tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
node rather than segfaulting.
2006-05-03 Jakub Jelinek <jakub@redhat.com>
PR fortran/27395
......
......@@ -406,14 +406,20 @@ remove_phi_arg_num (tree phi, int i)
gcc_assert (i < num_elem);
/* Delink the last item, which is being removed. */
delink_imm_use (&(PHI_ARG_IMM_USE_NODE (phi, num_elem - 1)));
/* If we are not at the last element, switch the last element
with the element we want to delete. */
/* Delink the item which is being removed. */
delink_imm_use (&(PHI_ARG_IMM_USE_NODE (phi, i)));
/* If it is not the last element, move the last element
to the element we want to delete, resetting all the links. */
if (i != num_elem - 1)
{
SET_PHI_ARG_DEF (phi, i, PHI_ARG_DEF (phi, num_elem - 1));
use_operand_p old_p, new_p;
old_p = &PHI_ARG_IMM_USE_NODE (phi, num_elem - 1);
new_p = &PHI_ARG_IMM_USE_NODE (phi, i);
/* Set use on new node, and link into last elements's place. */
*(new_p->use) = *(old_p->use);
relink_imm_use (new_p, old_p);
}
/* Shrink the vector and return. Note that we do not have to clear
......
......@@ -2513,10 +2513,13 @@ dump_immediate_uses_for (FILE *file, tree var)
FOR_EACH_IMM_USE_FAST (use_p, iter, var)
{
if (!is_gimple_reg (USE_FROM_PTR (use_p)))
print_generic_stmt (file, USE_STMT (use_p), TDF_VOPS);
if (use_p->stmt == NULL && use_p->use == NULL)
fprintf (file, "***end of stmt iterator marker***\n");
else
print_generic_stmt (file, USE_STMT (use_p), TDF_SLIM);
if (!is_gimple_reg (USE_FROM_PTR (use_p)))
print_generic_stmt (file, USE_STMT (use_p), TDF_VOPS);
else
print_generic_stmt (file, USE_STMT (use_p), TDF_SLIM);
}
fprintf(file, "\n");
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment