Commit 057da7af by Vladimir Makarov Committed by Vladimir Makarov

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
parent e3d10432
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>
* 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
/* If reload requires moving value through secondary
memory, it will need one more insn at least. */
......
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>
PR target/79889
......
/* { 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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment