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:
Vladimir Makarov 2019-12-19 21:59:47 +00:00 committed by Vladimir Makarov
parent 38830e506c
commit a8a728aac2
4 changed files with 38 additions and 5 deletions

View file

@ -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

View file

@ -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)

View file

@ -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

View 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"} } */