re PR target/92905 (Spills float-int union to memory)
2019-12-19 Vladimir Makarov <vmakarov@redhat.com> PR target/92905 * lra-constraints.c (process_alt_operands): Check offmemok when processing preferred_reload_class. 2019-12-19 Vladimir Makarov <vmakarov@redhat.com> PR target/92905 * gcc.target/i386/pr92905.c: New test. From-SVN: r279596
This commit is contained in:
parent
38830e506c
commit
a8a728aac2
4 changed files with 38 additions and 5 deletions
|
@ -1,3 +1,9 @@
|
|||
2019-12-19 Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
PR target/92905
|
||||
* lra-constraints.c (process_alt_operands): Check offmemok when
|
||||
processing preferred_reload_class.
|
||||
|
||||
2019-12-19 Andrew Stubbs <ams@codesourcery.com>
|
||||
|
||||
* config/gcn/gcn-valu.md
|
||||
|
|
|
@ -2722,11 +2722,24 @@ process_alt_operands (int only_alternative)
|
|||
&& (targetm.preferred_output_reload_class
|
||||
(op, this_alternative) == NO_REGS))))
|
||||
{
|
||||
if (lra_dump_file != NULL)
|
||||
fprintf (lra_dump_file,
|
||||
" %d Non-prefered reload: reject+=%d\n",
|
||||
nop, LRA_MAX_REJECT);
|
||||
reject += LRA_MAX_REJECT;
|
||||
if (offmemok && REG_P (op))
|
||||
{
|
||||
if (lra_dump_file != NULL)
|
||||
fprintf
|
||||
(lra_dump_file,
|
||||
" %d Spill pseudo into memory: reject+=3\n",
|
||||
nop);
|
||||
reject += 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (lra_dump_file != NULL)
|
||||
fprintf
|
||||
(lra_dump_file,
|
||||
" %d Non-prefered reload: reject+=%d\n",
|
||||
nop, LRA_MAX_REJECT);
|
||||
reject += LRA_MAX_REJECT;
|
||||
}
|
||||
}
|
||||
|
||||
if (! (MEM_P (op) && offmemok)
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2019-12-19 Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
PR target/92905
|
||||
* gcc.target/i386/pr92905.c: New test.
|
||||
|
||||
2019-12-19 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
* g++.dg/ext/sve-sizeless-2.C: Don't expect an error for
|
||||
|
|
9
gcc/testsuite/gcc.target/i386/pr92905.c
Normal file
9
gcc/testsuite/gcc.target/i386/pr92905.c
Normal file
|
@ -0,0 +1,9 @@
|
|||
/* { dg-do compile { target { lp64 } } } */
|
||||
/* { dg-options "-O2 -mtune=intel" } */
|
||||
float f(float x)
|
||||
{
|
||||
union {float f; unsigned i;} u = {x};
|
||||
u.i |= 0x80000000;
|
||||
return u.f;
|
||||
}
|
||||
/* { dg-final { scan-assembler-not "rsp"} } */
|
Loading…
Add table
Reference in a new issue