OSDN Git Service

(reg_scan): Don't call reg_scan_mark_refs on notes if there aren't any.
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 11 Oct 1993 14:10:43 +0000 (14:10 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 11 Oct 1993 14:10:43 +0000 (14:10 +0000)
(reg_scan_mark_refs, case INSN_LIST, EXPR_LIST): New cases.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@5733 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/regclass.c

index 927c99a..6702144 100644 (file)
@@ -1539,7 +1539,9 @@ reg_scan (f, nregs, repeat)
            && XVECLEN (PATTERN (insn), 0) > max_parallel)
          max_parallel = XVECLEN (PATTERN (insn), 0);
        reg_scan_mark_refs (PATTERN (insn), insn, 0);
-       reg_scan_mark_refs (REG_NOTES (insn), insn, 1);
+
+       if (REG_NOTES (insn))
+         reg_scan_mark_refs (REG_NOTES (insn), insn, 1);
       }
 }
 
@@ -1581,6 +1583,17 @@ reg_scan_mark_refs (x, insn, note_flag)
       }
       break;
 
+    case EXPR_LIST:
+      reg_scan_mark_refs (XEXP (x, 0), insn, note_flag);
+      if (XEXP (x, 1))
+       reg_scan_mark_refs (XEXP (x, 1), insn, note_flag);
+      break;
+
+    case INSN_LIST:
+      if (XEXP (x, 1))
+       reg_scan_mark_refs (XEXP (x, 1), insn, note_flag);
+      break;
+
     case SET:
       /* Count a set of the destination if it is a register.  */
       for (dest = SET_DEST (x);