flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not mark_set_resources.
authorRichard Henderson <rth@cygnus.com>
Mon, 30 Aug 1999 23:08:14 +0000 (16:08 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 30 Aug 1999 23:08:14 +0000 (16:08 -0700)
        * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
        mark_set_resources.

From-SVN: r28990

gcc/ChangeLog
gcc/flow.c

index c46c9202454c5c37604253a9e62169277232565e..3b4ffe2411290d1131f6eb6042c79cfb08ad3dff 100644 (file)
@@ -1,3 +1,8 @@
+Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
+       mark_set_resources.
+
 Mon Aug 30 16:36:33 1999  Jeffrey A Law  (law@cygnus.com)
 
        * invoke.texi: Fix typo.
index d39c17aa7f953b4176f3d929c78dde789e05fcb4..2c05fe7d5906bbf23f4fce9c75cac9b29691f1d1 100644 (file)
@@ -132,7 +132,6 @@ Boston, MA 02111-1307, USA.  */
 #include "toplev.h"
 #include "recog.h"
 #include "insn-flags.h"
-#include "resource.h"
 
 #include "obstack.h"
 #define obstack_chunk_alloc xmalloc
@@ -5371,6 +5370,7 @@ new_insn_dead_notes (pat, insn, first, last, orig_first_insn, orig_last_insn)
          if (tem == orig_last_insn)
            break;
        }
+
       /* So it's a new register, presumably only used within this
         group of insns. Find the last insn in the set of new insns
         that DEST is referenced in, and add a dead note to it. */
@@ -5393,17 +5393,13 @@ new_insn_dead_notes (pat, insn, first, last, orig_first_insn, orig_last_insn)
            }
          else
            {
-             struct resources res;
              rtx curr;
+             int got_set = 0;
 
-             CLEAR_RESOURCE (&res);
-             for (curr = orig_first_insn;
-                  curr != NULL_RTX;
-                  curr = NEXT_INSN (curr))
+             for (curr = orig_first_insn; curr; curr = NEXT_INSN (curr))
                {
-                 if (GET_RTX_CLASS (GET_CODE (curr)) == 'i')
-                   mark_set_resources (PATTERN (curr), &res, 0, 0);
-                 if (TEST_HARD_REG_BIT (res.regs, REGNO (dest)))
+                 got_set = sets_reg_or_subreg (curr, dest);
+                 if (got_set)
                    break;
                  if (curr == orig_last_insn)
                    break;
@@ -5411,7 +5407,7 @@ new_insn_dead_notes (pat, insn, first, last, orig_first_insn, orig_last_insn)
 
              /* In case reg was not used later, it is dead store.
                 add REG_UNUSED note.  */
-             if (! TEST_HARD_REG_BIT (res.regs, REGNO (dest)))
+             if (! got_set)
                {
                  rtx note = rtx_alloc (EXPR_LIST);
                  PUT_REG_NOTE_KIND (note, REG_UNUSED);
@@ -5422,9 +5418,11 @@ new_insn_dead_notes (pat, insn, first, last, orig_first_insn, orig_last_insn)
                }
            }
        }
+
       if (insn != first)
        {
          rtx set = single_set (insn);
+
          /* If this is a set, scan backwards for a previous
             reference, and attach a REG_DEAD note to it. But we don't
             want to do it if the insn is both using and setting the