tree-outof-ssa.c (queue_phi_copy_p): Combine phi_ssa_name_p from gimple.h and the rest of the condition in...

2013-11-05  Andrew MacLeod  <amacleod@redhat.com>

	* tree-outof-ssa.c (queue_phi_copy_p): Combine phi_ssa_name_p from 
	gimple.h and the rest of the condition in eliminate_build.
	(eliminate_build): Call new routine.
	* gimple.h (phi_ssa_name_p): Delete.

From-SVN: r204393
This commit is contained in:
Andrew MacLeod 2013-11-05 14:13:56 +00:00 committed by Andrew Macleod
parent ecbffdd88f
commit c8d97db2cc
3 changed files with 25 additions and 16 deletions

View File

@ -1,3 +1,10 @@
2013-11-05 Andrew MacLeod <amacleod@redhat.com>
* tree-outof-ssa.c (queue_phi_copy_p): Combine phi_ssa_name_p from
gimple.h and the rest of the condition in eliminate_build.
(eliminate_build): Call new routine.
* gimple.h (phi_ssa_name_p): Delete.
2013-11-05 Trevor Saunders <tsaunders@mozilla.com>
* vec.c (vec_prefix::calculate_allocation): Don't try to handle the

View File

@ -3633,19 +3633,6 @@ gimple_phi_set_arg (gimple gs, unsigned index, struct phi_arg_d * phiarg)
gs->gimple_phi.args[index] = *phiarg;
}
/* PHI nodes should contain only ssa_names and invariants. A test
for ssa_name is definitely simpler; don't let invalid contents
slip in in the meantime. */
static inline bool
phi_ssa_name_p (const_tree t)
{
if (TREE_CODE (t) == SSA_NAME)
return true;
gcc_checking_assert (is_gimple_min_invariant (t));
return false;
}
/* Return the PHI nodes for basic block BB, or NULL if there are no
PHI nodes. */

View File

@ -548,6 +548,23 @@ eliminate_name (elim_graph g, int T)
elim_graph_add_node (g, T);
}
/* Return true if this phi argument T should have a copy queued when using
var_map MAP. PHI nodes should contain only ssa_names and invariants. A
test for ssa_name is definitely simpler, but don't let invalid contents
slip through in the meantime. */
static inline bool
queue_phi_copy_p (var_map map, tree t)
{
if (TREE_CODE (t) == SSA_NAME)
{
if (var_to_partition (map, t) == NO_PARTITION)
return true;
return false;
}
gcc_checking_assert (is_gimple_min_invariant (t));
return true;
}
/* Build elimination graph G for basic block BB on incoming PHI edge
G->e. */
@ -577,9 +594,7 @@ eliminate_build (elim_graph g)
/* If this argument is a constant, or a SSA_NAME which is being
left in SSA form, just queue a copy to be emitted on this
edge. */
if (!phi_ssa_name_p (Ti)
|| (TREE_CODE (Ti) == SSA_NAME
&& var_to_partition (g->map, Ti) == NO_PARTITION))
if (queue_phi_copy_p (g->map, Ti))
{
/* Save constant copies until all other copies have been emitted
on this edge. */