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:
parent
322fe6e185
commit
ff6051b76e
4 changed files with 24 additions and 13 deletions
|
@ -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.
|
||||
|
|
23
gcc/flow.c
23
gcc/flow.c
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
10
gcc/testsuite/gcc.c-torture/execute/20011109-2.c
Normal file
10
gcc/testsuite/gcc.c-torture/execute/20011109-2.c
Normal 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);
|
||||
}
|
Loading…
Add table
Reference in a new issue