re PR ipa/65540 (internal error on s-fatllf.ads at -O2)
PR ipa/65540 * calls.c (initialize_argument_information): When producing tail call also turn SSA_NAMES passed by references to original PARM_DECLs * gcc.c-torture/compile/pr65540.c: New. From-SVN: r221910
This commit is contained in:
parent
4209b6d00f
commit
006e317a14
|
@ -1,3 +1,9 @@
|
|||
2015-04-07 Jan Hubicka <hubicka@ucw.cz>
|
||||
|
||||
PR ipa/65540
|
||||
* calls.c (initialize_argument_information): When producing tail
|
||||
call also turn SSA_NAMES passed by references to original PARM_DECLs
|
||||
|
||||
2015-04-07 Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
PR target/65648
|
||||
|
|
|
@ -1321,6 +1321,15 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
|
|||
&& TREE_CODE (base) != SSA_NAME
|
||||
&& (!DECL_P (base) || MEM_P (DECL_RTL (base)))))
|
||||
{
|
||||
/* We may have turned the parameter value into an SSA name.
|
||||
Go back to the original parameter so we can take the
|
||||
address. */
|
||||
if (TREE_CODE (args[i].tree_value) == SSA_NAME)
|
||||
{
|
||||
gcc_assert (SSA_NAME_IS_DEFAULT_DEF (args[i].tree_value));
|
||||
args[i].tree_value = SSA_NAME_VAR (args[i].tree_value);
|
||||
gcc_assert (TREE_CODE (args[i].tree_value) == PARM_DECL);
|
||||
}
|
||||
/* Argument setup code may have copied the value to register. We
|
||||
revert that optimization now because the tail call code must
|
||||
use the original location. */
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2015-04-07 Jan Hubicka <hubicka@ucw.cz>
|
||||
|
||||
PR ipa/65540
|
||||
* gcc.c-torture/compile/pr65540.c: New.
|
||||
|
||||
2015-04-07 Alan Lawrence <alan.lawrence@arm.com>
|
||||
|
||||
* gcc.target/aarch64/c-output-template-3.c: Add -O, remove
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
long double func1 (long double x)
|
||||
{
|
||||
if (x > 0.0)
|
||||
return x;
|
||||
else if (x < 0.0)
|
||||
return -x;
|
||||
else
|
||||
return x;
|
||||
}
|
||||
|
||||
long double func2 (long double x)
|
||||
{
|
||||
if (x > 0.0)
|
||||
return x;
|
||||
else if (x < 0.0)
|
||||
return -x;
|
||||
else
|
||||
return x;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue