PR rtl-optimization/pr55672

2013-01-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/pr55672
	* lra-eliminations.c (mark_not_elimnable): Permit addition with
	const to be elimnable.

2013-01-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/pr55672
	* gcc.target/i386/pr55672.c: New.

From-SVN: r195095
This commit is contained in:
Vladimir Makarov 2013-01-10 20:07:55 +00:00 committed by Vladimir Makarov
parent ddf9322dcd
commit f85021b021
4 changed files with 26 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2013-01-10 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/pr55672
* lra-eliminations.c (mark_not_elimnable): Permit addition with
const to be elimnable.
2013-01-10 David Edelsohn <dje.gcc@gmail.com>
* configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.

View File

@ -657,7 +657,7 @@ mark_not_eliminable (rtx x)
case PRE_MODIFY:
if (REG_P (XEXP (x, 0)) && REGNO (XEXP (x, 0)) < FIRST_PSEUDO_REGISTER)
/* If we modify the source of an elimination rule, disable
it. Do the same if it is the source and not the hard frame
it. Do the same if it is the source and not the hard frame
register. */
for (ep = reg_eliminate;
ep < &reg_eliminate[NUM_ELIMINABLE_REGS];
@ -716,7 +716,10 @@ mark_not_eliminable (rtx x)
ep < &reg_eliminate[NUM_ELIMINABLE_REGS];
ep++)
if (ep->to_rtx == SET_DEST (x)
&& SET_DEST (x) != hard_frame_pointer_rtx)
&& SET_DEST (x) != hard_frame_pointer_rtx
&& (GET_CODE (SET_SRC (x)) != PLUS
|| XEXP (SET_SRC (x), 0) != SET_DEST (x)
|| ! CONST_INT_P (XEXP (SET_SRC (x), 1))))
setup_can_eliminate (ep, false);
}

View File

@ -1,3 +1,8 @@
2013-01-10 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/pr55672
* gcc.target/i386/pr55672.c: New.
2013-01-10 Jeff Law <law@redhat.com>
* gcc/dg/tree-ssa/vrp06.c: Tighten expected output. Make each

View File

@ -0,0 +1,10 @@
/* { dg-do compile } */
/* { dg-options "-O -fstack-check=generic" } */
int main ()
{
int x[8];
if (x[0] != 4)
__builtin_abort ();
return 0;
}