re PR rtl-optimization/70478 ([LRA] S/390: Performance regression - superfluous stack frame)

2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/70478
	* lra-constraints.c (process_alt_operands): Check memory for
	disfavoring memory insn operand.

From-SVN: r246854
This commit is contained in:
Vladimir Makarov 2017-04-11 19:39:59 +00:00 committed by Vladimir Makarov
parent df1c878ec2
commit 4796d8f620
2 changed files with 14 additions and 6 deletions

View File

@ -1,3 +1,9 @@
2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/70478
* lra-constraints.c (process_alt_operands): Check memory for
disfavoring memory insn operand.
2017-04-11 Jakub Jelinek <jakub@redhat.com> 2017-04-11 Jakub Jelinek <jakub@redhat.com>
PR middle-end/80100 PR middle-end/80100

View File

@ -2722,12 +2722,14 @@ process_alt_operands (int only_alternative)
} }
} }
/* When we use memory operand, the insn should read the /* When we use an operand requiring memory in given
value from memory and even if we just wrote a value alternative, the insn should write *and* read the
into the memory it is costly in comparison with an value to/from memory it is costly in comparison with
insn alternative which does not use memory an insn alternative which does not use memory
(e.g. register or immediate operand). */ (e.g. register or immediate operand). We exclude
if (no_regs_p && offmemok) memory operand for such case as we can satisfy the
memory constraints by reloading address. */
if (no_regs_p && offmemok && !MEM_P (op))
{ {
if (lra_dump_file != NULL) if (lra_dump_file != NULL)
fprintf fprintf