aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-10-11 10:10:43 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1993-10-11 10:10:43 -0400
commit01565a557f2ff7e16829091530cac5e0bd26b2b5 (patch)
tree19a1aca12a2cd39be39094f661f267c2513df2e2
parentd969caf8295b75420b532a7c9ebe89eb38194f1b (diff)
downloadgcc-01565a557f2ff7e16829091530cac5e0bd26b2b5.zip
gcc-01565a557f2ff7e16829091530cac5e0bd26b2b5.tar.gz
gcc-01565a557f2ff7e16829091530cac5e0bd26b2b5.tar.bz2
(reg_scan): Don't call reg_scan_mark_refs on notes if there aren't any.
(reg_scan_mark_refs, case INSN_LIST, EXPR_LIST): New cases. From-SVN: r5733
-rw-r--r--gcc/regclass.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/regclass.c b/gcc/regclass.c
index 927c99a..6702144 100644
--- a/gcc/regclass.c
+++ b/gcc/regclass.c
@@ -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);