Commit 6b77934e by Richard Biener Committed by Richard Biener

re PR ipa/60973 (Invalid propagation of a tail call in devirt pass)

2014-05-13  Richard Biener  <rguenther@suse.de>

	PR ipa/60973
	* tree-inline.c (remap_gimple_stmt): Clear tail call flag,
	it needs revisiting whether the call still may be tail-called.

From-SVN: r210364
parent da3cd113
2014-05-13 Richard Biener <rguenther@suse.de>
PR ipa/60973
* tree-inline.c (remap_gimple_stmt): Clear tail call flag,
it needs revisiting whether the call still may be tail-called.
2014-05-13 Richard Sandiford <rdsandiford@googlemail.com> 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
* rtl.def (SYMBOL_REF): Remove middle "0" field. * rtl.def (SYMBOL_REF): Remove middle "0" field.
......
...@@ -1483,6 +1483,11 @@ remap_gimple_stmt (gimple stmt, copy_body_data *id) ...@@ -1483,6 +1483,11 @@ remap_gimple_stmt (gimple stmt, copy_body_data *id)
/* Create a new deep copy of the statement. */ /* Create a new deep copy of the statement. */
copy = gimple_copy (stmt); copy = gimple_copy (stmt);
/* Clear flags that need revisiting. */
if (is_gimple_call (copy)
&& gimple_call_tail_p (copy))
gimple_call_set_tail (copy, false);
/* Remap the region numbers for __builtin_eh_{pointer,filter}, /* Remap the region numbers for __builtin_eh_{pointer,filter},
RESX and EH_DISPATCH. */ RESX and EH_DISPATCH. */
if (id->eh_map) if (id->eh_map)
......
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