flow.c (insn_dead_p): Allow for AUTO_INC notes all the time.

* flow.c (insn_dead_p): Allow for AUTO_INC notes all the time.

In testsuite/:

	* gcc.c-torture/execute/20011109-2.c: New test.

From-SVN: r46901
This commit is contained in:
Geoffrey Keating 2001-11-09 23:06:04 +00:00 committed by Geoffrey Keating
parent 322fe6e185
commit ff6051b76e
4 changed files with 24 additions and 13 deletions

View File

@ -1,5 +1,7 @@
2001-11-09 Geoffrey Keating <geoffk@redhat.com>
* flow.c (insn_dead_p): Allow for AUTO_INC notes all the time.
* config/stormy16/stormy16.h (ASM_SPEC): Revert last change,
don't pass --gdwarf2 to the assembler if the compiler will also
provide debug info.

View File

@ -1892,21 +1892,18 @@ insn_dead_p (pbi, x, call_ok, notes)
enum rtx_code code = GET_CODE (x);
#ifdef AUTO_INC_DEC
/* If flow is invoked after reload, we must take existing AUTO_INC
expresions into account. */
if (reload_completed)
/* As flow is invoked after combine, we must take existing AUTO_INC
expressions into account. */
for (; notes; notes = XEXP (notes, 1))
{
for (; notes; notes = XEXP (notes, 1))
if (REG_NOTE_KIND (notes) == REG_INC)
{
if (REG_NOTE_KIND (notes) == REG_INC)
{
int regno = REGNO (XEXP (notes, 0));
/* Don't delete insns to set global regs. */
if ((regno < FIRST_PSEUDO_REGISTER && global_regs[regno])
|| REGNO_REG_SET_P (pbi->reg_live, regno))
return 0;
}
int regno = REGNO (XEXP (notes, 0));
/* Don't delete insns to set global regs. */
if ((regno < FIRST_PSEUDO_REGISTER && global_regs[regno])
|| REGNO_REG_SET_P (pbi->reg_live, regno))
return 0;
}
}
#endif

View File

@ -1,5 +1,7 @@
2001-11-09 Geoffrey Keating <geoffk@redhat.com>
* gcc.c-torture/execute/20011109-2.c: New test.
* gcc.c-torture/execute/20011109-1.c: New test.
2001-11-09 Jakub Jelinek <jakub@redhat.com>

View File

@ -0,0 +1,10 @@
int main(void)
{
char *c1 = "foo";
char *c2 = "foo";
int i;
for (i = 0; i < 3; i++)
if (c1[i] != c2[i])
abort ();
exit (0);
}