re PR tree-optimization/50769 (ICE: in phi_alternatives_equal, at tree-cfgcleanup.c:355 with -O2 -fno-delete-null-pointer-checks -fno-guess-branch-probability -fipa-pta)
2011-10-19 Tom de Vries <tom@codesourcery.com> PR tree-optimization/50769 * tree-ssa-tail-merge.c (replace_block_by): Calculate phi_vuse2 unconditionally. Handle case that phi_vuse2 is not an SSA_NAME. Add dummy argument .MEM to phi when increasing number of arguments of phi by redirecting edges to the block with phi. From-SVN: r180197
This commit is contained in:
parent
87fb500b93
commit
40f73edd0c
@ -1,3 +1,11 @@
|
||||
2011-10-19 Tom de Vries <tom@codesourcery.com>
|
||||
|
||||
PR tree-optimization/50769
|
||||
* tree-ssa-tail-merge.c (replace_block_by): Calculate phi_vuse2
|
||||
unconditionally. Handle case that phi_vuse2 is not an SSA_NAME. Add
|
||||
dummy argument .MEM to phi when increasing number of arguments of phi by
|
||||
redirecting edges to the block with phi.
|
||||
|
||||
2011-10-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
PR bootstrap/50777
|
||||
|
@ -1508,11 +1508,14 @@ replace_block_by (basic_block bb1, basic_block bb2, bool update_vops)
|
||||
edge e;
|
||||
edge_iterator ei;
|
||||
|
||||
phi_vuse2 = vop_at_entry (bb2);
|
||||
if (phi_vuse2 != NULL_TREE && TREE_CODE (phi_vuse2) != SSA_NAME)
|
||||
phi_vuse2 = NULL_TREE;
|
||||
|
||||
if (update_vops)
|
||||
{
|
||||
/* Find the vops at entry of bb1 and bb2. */
|
||||
phi_vuse1 = vop_at_entry (bb1);
|
||||
phi_vuse2 = vop_at_entry (bb2);
|
||||
|
||||
/* If one of the 2 not found, it means there's no need to update. */
|
||||
update_vops = phi_vuse1 != NULL_TREE && phi_vuse2 != NULL_TREE;
|
||||
@ -1545,6 +1548,9 @@ replace_block_by (basic_block bb1, basic_block bb2, bool update_vops)
|
||||
gcc_assert (pred_edge != NULL);
|
||||
if (update_vops)
|
||||
VEC_safe_push (edge, heap, redirected_edges, pred_edge);
|
||||
else if (phi_vuse2 && gimple_bb (SSA_NAME_DEF_STMT (phi_vuse2)) == bb2)
|
||||
add_phi_arg (SSA_NAME_DEF_STMT (phi_vuse2), SSA_NAME_VAR (phi_vuse2),
|
||||
pred_edge, UNKNOWN_LOCATION);
|
||||
}
|
||||
|
||||
/* Update the vops. */
|
||||
|
Loading…
Reference in New Issue
Block a user