re PR middle-end/88560 (armv8_2-fp16-move-1.c and related regressions after r266385)

2019-02-08  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/88560
	* lra-constraints.c (process_alt_operands): Don't increase reject
	for memory when offset memory is required.

From-SVN: r268705
This commit is contained in:
Vladimir Makarov 2019-02-08 19:01:10 +00:00 committed by Vladimir Makarov
parent b74ab8eb42
commit 82396b8cfb
2 changed files with 29 additions and 20 deletions

View File

@ -1,3 +1,9 @@
2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/88560
* lra-constraints.c (process_alt_operands): Don't increase reject
for memory when offset memory is required.
2019-02-08 Robin Dapp <rdapp@linux.ibm.com> 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
* config/s390/vector.md: Implement vector copysign. * config/s390/vector.md: Implement vector copysign.

View File

@ -2796,29 +2796,32 @@ process_alt_operands (int only_alternative)
(GET_MODE (op), this_alternative, cl))))) (GET_MODE (op), this_alternative, cl)))))
losers++; losers++;
/* Input reloads can be inherited more often than output
reloads can be removed, so penalize output
reloads. */
if (!REG_P (op) || curr_static_id->operand[nop].type != OP_IN)
{
if (lra_dump_file != NULL)
fprintf
(lra_dump_file,
" %d Non input pseudo reload: reject++\n",
nop);
reject++;
}
if (MEM_P (op) && offmemok) if (MEM_P (op) && offmemok)
addr_losers++; addr_losers++;
else if (curr_static_id->operand[nop].type == OP_INOUT) else
{ {
if (lra_dump_file != NULL) /* Input reloads can be inherited more often than
fprintf output reloads can be removed, so penalize output
(lra_dump_file, reloads. */
" %d Input/Output reload: reject+=%d\n", if (!REG_P (op) || curr_static_id->operand[nop].type != OP_IN)
nop, LRA_LOSER_COST_FACTOR); {
reject += LRA_LOSER_COST_FACTOR; if (lra_dump_file != NULL)
fprintf
(lra_dump_file,
" %d Non input pseudo reload: reject++\n",
nop);
reject++;
}
if (curr_static_id->operand[nop].type == OP_INOUT)
{
if (lra_dump_file != NULL)
fprintf
(lra_dump_file,
" %d Input/Output reload: reject+=%d\n",
nop, LRA_LOSER_COST_FACTOR);
reject += LRA_LOSER_COST_FACTOR;
}
} }
} }