summaryrefslogtreecommitdiffstats
path: root/gcc/regclass.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1993-10-11 14:10:43 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1993-10-11 14:10:43 +0000
commit2510576614eec647fec61584b475238733424414 (patch)
tree19a1aca12a2cd39be39094f661f267c2513df2e2 /gcc/regclass.c
parentd78882c8e8d185501c05ec7567607419ed6216ea (diff)
downloadppe42-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.c15
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);
OpenPOWER on IntegriCloud