Commit 9f41de41 by Vladimir Makarov Committed by Vladimir Makarov

re PR rtl-optimization/91223 (ICE: in curr_insn_transform, at lra-constraints.c:4459)

2019-07-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/91223
	* lra-constraints.c (process_alt_operands): Fail for unsuccessful
	matching with INOUT operand.

2019-07-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/91223
	* gcc.target/i386/pr91223.c: New test.

From-SVN: r273810
parent 7649f2e4
2019-07-25 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/91223
* lra-constraints.c (process_alt_operands): Fail for unsuccessful
matching with INOUT operand.
2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
* stmt.c (expand_case): Try to narrow the index type if it's larger
......
......@@ -2171,6 +2171,14 @@ process_alt_operands (int only_alternative)
}
else
{
/* If the operands do not match and one
operand is INOUT, we can not match them.
Try other possibilities, e.g. other
alternatives or commutative operand
exchange. */
if (curr_static_id->operand[nop].type == OP_INOUT
|| curr_static_id->operand[m].type == OP_INOUT)
break;
/* Operands don't match. If the operands are
different user defined explicit hard
registers, then we cannot make them match
......
2019-07-25 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/91223
* gcc.target/i386/pr91223.c: New test.
2019-07-25 Iain Sandoe <iain@sandoe.co.uk>
PR gcov-profile/91087
......
/* { dg-do compile } */
/* { dg-options "-Og -fno-tree-fre" } */
int a;
void fn2(short, short);
void fn1(void) {
short b[8];
b[0] |= a & 3;
b[1] = a;
fn2(b[0], b[1]);
}
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