diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1993-10-11 14:10:43 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1993-10-11 14:10:43 +0000 |
commit | 2510576614eec647fec61584b475238733424414 (patch) | |
tree | 19a1aca12a2cd39be39094f661f267c2513df2e2 /gcc/regclass.c | |
parent | d78882c8e8d185501c05ec7567607419ed6216ea (diff) | |
download | ppe42-gcc-2510576614eec647fec61584b475238733424414.tar.gz ppe42-gcc-2510576614eec647fec61584b475238733424414.zip |
(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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@5733 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/regclass.c')
-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 927c99a99d4..6702144828c 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); |