Commit e7cb8957 by Sebastian Pop Committed by Sebastian Pop

Don't generate COND_EXPRs for degenerate_phi_result.

2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
	generate COND_EXPRs for degenerate_phi_result.

From-SVN: r159991
parent d10e857e
2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
* tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
generate COND_EXPRs for degenerate_phi_result.
2010-05-28 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/44293
* tree-if-conv.c (if_convertible_loop_p): Check the
if-convertibility of phi nodes in non predicated BBs.
......
......@@ -864,13 +864,19 @@ replace_phi_with_cond_gimple_assign_stmt (gimple phi, tree cond,
gimple new_stmt;
basic_block bb;
tree rhs;
tree arg_0, arg_1;
tree arg;
gcc_assert (gimple_code (phi) == GIMPLE_PHI
&& gimple_phi_num_args (phi) == 2);
bb = gimple_bb (phi);
arg = degenerate_phi_result (phi);
if (arg)
rhs = arg;
else
{
tree arg_0, arg_1;
/* Use condition that is not TRUTH_NOT_EXPR in conditional modify expr. */
if (EDGE_PRED (bb, 1)->src == true_bb)
{
......@@ -885,10 +891,10 @@ replace_phi_with_cond_gimple_assign_stmt (gimple phi, tree cond,
/* Build new RHS using selected condition and arguments. */
rhs = build3 (COND_EXPR, TREE_TYPE (PHI_RESULT (phi)),
unshare_expr (cond), unshare_expr (arg_0),
unshare_expr (arg_1));
unshare_expr (cond), arg_0, arg_1);
}
new_stmt = gimple_build_assign (unshare_expr (PHI_RESULT (phi)), rhs);
new_stmt = gimple_build_assign (PHI_RESULT (phi), rhs);
SSA_NAME_DEF_STMT (gimple_phi_result (phi)) = new_stmt;
gsi_insert_before (gsi, new_stmt, GSI_SAME_STMT);
update_stmt (new_stmt);
......
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