From ff6051b76e5f031a6bfc0c1f25a51034df1e4902 Mon Sep 17 00:00:00 2001 From: Geoffrey Keating Date: Fri, 9 Nov 2001 23:06:04 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 2 ++ gcc/flow.c | 23 ++++++++----------- gcc/testsuite/ChangeLog | 2 ++ .../gcc.c-torture/execute/20011109-2.c | 10 ++++++++ 4 files changed, 24 insertions(+), 13 deletions(-) create mode 100644 gcc/testsuite/gcc.c-torture/execute/20011109-2.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0632c7bc0cf..8e7d9e7d164 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,7 @@ 2001-11-09 Geoffrey Keating + * 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. diff --git a/gcc/flow.c b/gcc/flow.c index 50e7494e39f..fbe570bbf4c 100644 --- a/gcc/flow.c +++ b/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 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1b598d70592..7fa8c9ef43e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,7 @@ 2001-11-09 Geoffrey Keating + * gcc.c-torture/execute/20011109-2.c: New test. + * gcc.c-torture/execute/20011109-1.c: New test. 2001-11-09 Jakub Jelinek diff --git a/gcc/testsuite/gcc.c-torture/execute/20011109-2.c b/gcc/testsuite/gcc.c-torture/execute/20011109-2.c new file mode 100644 index 00000000000..1abbbf2f6da --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20011109-2.c @@ -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); +}