mirror of git://gcc.gnu.org/git/gcc.git
Make gsi_next_nonvirtual_phi do what one expects
gcc/ * gimple-iterator.h (gsi_next_nonvirtual_phi): Change the semantics to match that of other gsi_next_* functions. Adjust the comment. (gsi_start_nonvirtual_phis): New function. * ipa-icf.c (sem_function::compare_phi_node): Update uses of gsi_next_nonvirtual_phi accordingly. (No functional change.) From-SVN: r276658
This commit is contained in:
parent
ca95ce80e0
commit
880dcdaeda
|
@ -1,3 +1,11 @@
|
|||
2019-10-07 Vladislav Ivanishin <vlad@ispras.ru>
|
||||
|
||||
* gimple-iterator.h (gsi_next_nonvirtual_phi): Change the semantics to
|
||||
match that of other gsi_next_* functions. Adjust the comment.
|
||||
(gsi_start_nonvirtual_phis): New function.
|
||||
* ipa-icf.c (sem_function::compare_phi_node): Update uses of
|
||||
gsi_next_nonvirtual_phi accordingly. (No functional change.)
|
||||
|
||||
2019-10-07 Vladislav Ivanishin <vlad@ispras.ru>
|
||||
|
||||
* doc/invoke.texi (-Wuninitialized): Don't mention the clobbered by
|
||||
|
|
|
@ -325,28 +325,31 @@ gsi_one_nondebug_before_end_p (gimple_stmt_iterator i)
|
|||
return gsi_end_p (i);
|
||||
}
|
||||
|
||||
/* Iterates I statement iterator to the next non-virtual statement. */
|
||||
/* Advance I statement iterator to the next non-virtual GIMPLE_PHI
|
||||
statement. */
|
||||
|
||||
static inline void
|
||||
gsi_next_nonvirtual_phi (gphi_iterator *i)
|
||||
{
|
||||
gphi *phi;
|
||||
|
||||
if (gsi_end_p (*i))
|
||||
return;
|
||||
|
||||
phi = i->phi ();
|
||||
gcc_assert (phi != NULL);
|
||||
|
||||
while (virtual_operand_p (gimple_phi_result (phi)))
|
||||
do
|
||||
{
|
||||
gsi_next (i);
|
||||
|
||||
if (gsi_end_p (*i))
|
||||
return;
|
||||
|
||||
phi = i->phi ();
|
||||
}
|
||||
while (!gsi_end_p (*i) && virtual_operand_p (gimple_phi_result (i->phi ())));
|
||||
}
|
||||
|
||||
/* Return a new iterator pointing to the first non-virtual phi statement in
|
||||
basic block BB. */
|
||||
|
||||
static inline gphi_iterator
|
||||
gsi_start_nonvirtual_phis (basic_block bb)
|
||||
{
|
||||
gphi_iterator i = gsi_start_phis (bb);
|
||||
|
||||
if (!gsi_end_p (i) && virtual_operand_p (gimple_phi_result (i.phi ())))
|
||||
gsi_next_nonvirtual_phi (&i);
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
/* Return the basic block associated with this iterator. */
|
||||
|
|
|
@ -1688,13 +1688,10 @@ sem_function::compare_phi_node (basic_block bb1, basic_block bb2)
|
|||
gcc_assert (bb1 != NULL);
|
||||
gcc_assert (bb2 != NULL);
|
||||
|
||||
si2 = gsi_start_phis (bb2);
|
||||
for (si1 = gsi_start_phis (bb1); !gsi_end_p (si1);
|
||||
gsi_next (&si1))
|
||||
si2 = gsi_start_nonvirtual_phis (bb2);
|
||||
for (si1 = gsi_start_nonvirtual_phis (bb1); !gsi_end_p (si1);
|
||||
gsi_next_nonvirtual_phi (&si1))
|
||||
{
|
||||
gsi_next_nonvirtual_phi (&si1);
|
||||
gsi_next_nonvirtual_phi (&si2);
|
||||
|
||||
if (gsi_end_p (si1) && gsi_end_p (si2))
|
||||
break;
|
||||
|
||||
|
@ -1731,7 +1728,7 @@ sem_function::compare_phi_node (basic_block bb1, basic_block bb2)
|
|||
return return_false ();
|
||||
}
|
||||
|
||||
gsi_next (&si2);
|
||||
gsi_next_nonvirtual_phi (&si2);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
Loading…
Reference in New Issue