Commit 867399e9 by Richard Biener Committed by Richard Biener

tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only allow expected…

tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only allow expected function-pointer cast re-instantiation.

2018-12-03  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only
	allow expected function-pointer cast re-instantiation.

From-SVN: r266742
parent 8c66130b
2018-12-03 Richard Biener <rguenther@suse.de>
* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only
allow expected function-pointer cast re-instantiation.
2018-12-03 Ilya Leoshkevich <iii@linux.ibm.com>
* common/config/s390/s390-common.c (s390_option_init_struct):
......@@ -4984,10 +4984,6 @@ eliminate_dom_walker::eliminate_stmt (basic_block b, gimple_stmt_iterator *gsi)
return;
/* Else replace its RHS. */
bool can_make_abnormal_goto
= is_gimple_call (stmt)
&& stmt_can_make_abnormal_goto (stmt);
if (dump_file && (dump_flags & TDF_DETAILS))
{
fprintf (dump_file, "Replaced ");
......@@ -4997,12 +4993,23 @@ eliminate_dom_walker::eliminate_stmt (basic_block b, gimple_stmt_iterator *gsi)
fprintf (dump_file, " in ");
print_gimple_stmt (dump_file, stmt, 0);
}
eliminations++;
bool can_make_abnormal_goto = (is_gimple_call (stmt)
&& stmt_can_make_abnormal_goto (stmt));
gimple *orig_stmt = stmt;
if (!useless_type_conversion_p (TREE_TYPE (lhs),
TREE_TYPE (sprime)))
sprime = fold_convert (TREE_TYPE (lhs), sprime);
{
/* We preserve conversions to but not from function or method
types. This asymmetry makes it necessary to re-instantiate
conversions here. */
if (POINTER_TYPE_P (TREE_TYPE (lhs))
&& FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (lhs))))
sprime = fold_convert (TREE_TYPE (lhs), sprime);
else
gcc_unreachable ();
}
tree vdef = gimple_vdef (stmt);
tree vuse = gimple_vuse (stmt);
propagate_tree_value_into_stmt (gsi, sprime);
......
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