diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1993-10-11 10:10:43 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1993-10-11 10:10:43 -0400 |
commit | 01565a557f2ff7e16829091530cac5e0bd26b2b5 (patch) | |
tree | 19a1aca12a2cd39be39094f661f267c2513df2e2 | |
parent | d969caf8295b75420b532a7c9ebe89eb38194f1b (diff) | |
download | gcc-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.c | 15 |
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); |