re PR target/39361 (Many new neon test failures)

PR target/39361
	* tree-inline.c (setup_one_parameter): Do replacement of const argument
	by constant in SSA form.

From-SVN: r144713
This commit is contained in:
Jan Hubicka 2009-03-08 23:37:26 +01:00 committed by Jan Hubicka
parent ae9b2a481c
commit 8454d27e6e
2 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2009-03-07 Jan Hubicka <jh@suse.cz>
PR target/39361
* tree-inline.c (setup_one_parameter): Do replacement of const argument
by constant in SSA form.
2009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
PR middle-end/38028

View File

@ -2110,6 +2110,10 @@ setup_one_parameter (copy_body_data *id, tree p, tree value, tree fn,
We need to construct map for the variable anyway as it might be used
in different SSA names when parameter is set in function.
Do replacement at -O0 for const arguments replaced by constant.
This is important for builtin_constant_p and other construct requiring
constant argument to be visible in inlined function body.
FIXME: This usually kills the last connection in between inlined
function parameter and the actual value in debug info. Can we do
better here? If we just inserted the statement, copy propagation
@ -2118,7 +2122,9 @@ setup_one_parameter (copy_body_data *id, tree p, tree value, tree fn,
We might want to introduce a notion that single SSA_NAME might
represent multiple variables for purposes of debugging. */
if (gimple_in_ssa_p (cfun) && rhs && def && is_gimple_reg (p)
&& optimize
&& (optimize
|| (TREE_READONLY (p)
&& is_gimple_min_invariant (rhs)))
&& (TREE_CODE (rhs) == SSA_NAME
|| is_gimple_min_invariant (rhs))
&& !SSA_NAME_OCCURS_IN_ABNORMAL_PHI (def))