re PR rtl-optimization/70478 ([LRA] S/390: Performance regression - superfluous stack frame)
2017-04-07 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/70478 * lra-constraints.c (process_alt_operands): Disfavor alternative insn memory operands. 2017-04-07 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/70478 * gcc.target/s390/pr70478.c: New. From-SVN: r246764
This commit is contained in:
parent
e3d1043293
commit
057da7af80
|
@ -1,3 +1,9 @@
|
||||||
|
2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
|
||||||
|
|
||||||
|
PR rtl-optimization/70478
|
||||||
|
* lra-constraints.c (process_alt_operands): Disfavor alternative
|
||||||
|
insn memory operands.
|
||||||
|
|
||||||
2017-04-07 Jeff Law <law@redhat.com>
|
2017-04-07 Jeff Law <law@redhat.com>
|
||||||
|
|
||||||
* config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
|
* config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
|
||||||
|
|
|
@ -2685,6 +2685,21 @@ process_alt_operands (int only_alternative)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* When we use memory operand, the insn should read the
|
||||||
|
value from memory and even if we just wrote a value
|
||||||
|
into the memory it is costly in comparison with an
|
||||||
|
insn alternative which does not use memory
|
||||||
|
(e.g. register or immediate operand). */
|
||||||
|
if (no_regs_p && offmemok)
|
||||||
|
{
|
||||||
|
if (lra_dump_file != NULL)
|
||||||
|
fprintf
|
||||||
|
(lra_dump_file,
|
||||||
|
" Using memory insn operand %d: reject+=3\n",
|
||||||
|
nop);
|
||||||
|
reject += 3;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef SECONDARY_MEMORY_NEEDED
|
#ifdef SECONDARY_MEMORY_NEEDED
|
||||||
/* If reload requires moving value through secondary
|
/* If reload requires moving value through secondary
|
||||||
memory, it will need one more insn at least. */
|
memory, it will need one more insn at least. */
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
|
||||||
|
|
||||||
|
PR rtl-optimization/70478
|
||||||
|
* gcc.target/s390/pr70478.c: New.
|
||||||
|
|
||||||
2017-04-07 Martin Liska <mliska@suse.cz>
|
2017-04-07 Martin Liska <mliska@suse.cz>
|
||||||
|
|
||||||
PR target/79889
|
PR target/79889
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
/* { dg-do compile } */
|
||||||
|
/* { dg-options "-w -O3 -march=z9-109" } */
|
||||||
|
/* { dg-final { scan-assembler-not "stg" } } */
|
||||||
|
|
||||||
|
void foo(unsigned int *a, unsigned char *b)
|
||||||
|
{
|
||||||
|
*a &= *b;
|
||||||
|
}
|
Loading…
Reference in New Issue