Commit 8e8bf292 by Richard Biener Committed by Richard Biener

re PR tree-optimization/87117 (ICE in…

re PR tree-optimization/87117 (ICE in eliminate_dom_walker::eliminate_cleanup(bool) at gcc/gcc/tree-ssa-sccvn.c:5431 since r263875)

2018-08-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87117
	* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_cleanup):
	Handle removed stmt without LHS (GIMPLE_NOP).

From-SVN: r263912
parent f2b0062c
2018-08-28 Richard Biener <rguenther@suse.de> 2018-08-28 Richard Biener <rguenther@suse.de>
PR tree-optimization/87117 PR tree-optimization/87117
* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_cleanup):
Handle removed stmt without LHS (GIMPLE_NOP).
2018-08-28 Richard Biener <rguenther@suse.de>
PR tree-optimization/87117
* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Exclude * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Exclude
void which is is_gimple_reg_type by checking for COMPLETE_TYPE_P. void which is is_gimple_reg_type by checking for COMPLETE_TYPE_P.
......
...@@ -5425,31 +5425,28 @@ eliminate_dom_walker::eliminate_cleanup (bool region_p) ...@@ -5425,31 +5425,28 @@ eliminate_dom_walker::eliminate_cleanup (bool region_p)
do_release_defs = false; do_release_defs = false;
} }
} }
else else if (tree lhs = gimple_get_lhs (stmt))
{ if (TREE_CODE (lhs) == SSA_NAME
tree lhs = gimple_get_lhs (stmt); && !has_zero_uses (lhs))
if (TREE_CODE (lhs) == SSA_NAME {
&& !has_zero_uses (lhs)) if (dump_file && (dump_flags & TDF_DETAILS))
{ fprintf (dump_file, "Keeping eliminated stmt live "
if (dump_file && (dump_flags & TDF_DETAILS)) "as copy because of out-of-region uses\n");
fprintf (dump_file, "Keeping eliminated stmt live " tree sprime = eliminate_avail (gimple_bb (stmt), lhs);
"as copy because of out-of-region uses\n"); gimple_stmt_iterator gsi = gsi_for_stmt (stmt);
tree sprime = eliminate_avail (gimple_bb (stmt), lhs); if (is_gimple_assign (stmt))
gimple_stmt_iterator gsi = gsi_for_stmt (stmt); {
if (is_gimple_assign (stmt)) gimple_assign_set_rhs_from_tree (&gsi, sprime);
{ update_stmt (gsi_stmt (gsi));
gimple_assign_set_rhs_from_tree (&gsi, sprime); continue;
update_stmt (gsi_stmt (gsi)); }
continue; else
} {
else gimple *copy = gimple_build_assign (lhs, sprime);
{ gsi_insert_before (&gsi, copy, GSI_SAME_STMT);
gimple *copy = gimple_build_assign (lhs, sprime); do_release_defs = false;
gsi_insert_before (&gsi, copy, GSI_SAME_STMT); }
do_release_defs = false; }
}
}
}
} }
if (dump_file && (dump_flags & TDF_DETAILS)) if (dump_file && (dump_flags & TDF_DETAILS))
......
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