cfgexpand.c (expand_debug_expr): For unused non-addressable parameters passed in memory prefer using...

* cfgexpand.c (expand_debug_expr): For unused non-addressable
	parameters passed in memory prefer using DECL_INCOMING_RTL over
	the pseudos it will be copied into.

From-SVN: r174079
This commit is contained in:
Jakub Jelinek 2011-05-23 19:02:07 +02:00 committed by Jakub Jelinek
parent 34a061bed5
commit 9025085e6a
2 changed files with 20 additions and 0 deletions

View file

@ -1,3 +1,9 @@
2011-05-23 Jakub Jelinek <jakub@redhat.com>
* cfgexpand.c (expand_debug_expr): For unused non-addressable
parameters passed in memory prefer using DECL_INCOMING_RTL over
the pseudos it will be copied into.
2011-05-23 H.J. Lu <hongjiu.lu@intel.com>
PR target/47315

View file

@ -3160,6 +3160,20 @@ expand_debug_expr (tree exp)
ENTRY_VALUE_EXP (op0) = incoming;
goto adjust_mode;
}
if (incoming
&& MEM_P (incoming)
&& !TREE_ADDRESSABLE (SSA_NAME_VAR (exp))
&& GET_MODE (incoming) != BLKmode
&& (XEXP (incoming, 0) == virtual_incoming_args_rtx
|| (GET_CODE (XEXP (incoming, 0)) == PLUS
&& XEXP (XEXP (incoming, 0), 0)
== virtual_incoming_args_rtx
&& CONST_INT_P (XEXP (XEXP (incoming, 0),
1)))))
{
op0 = incoming;
goto adjust_mode;
}
op0 = expand_debug_expr (SSA_NAME_VAR (exp));
if (!op0)
return NULL;