From ac6a6c760194578f30436aa4963bd68d2ba83aab Mon Sep 17 00:00:00 2001 From: bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Wed, 6 Dec 2006 00:25:29 +0000 Subject: [PATCH] * reload1.c (delete_output_reload): Count occurrences in CALL_INSN_FUNCTION_USAGE. * rtlanal.c (count_occurrences): Handle EXPR_LIST nodes without crashing at the end of the list. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119571 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 7 +++++++ gcc/reload1.c | 3 +++ gcc/rtlanal.c | 6 ++++++ 3 files changed, 16 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cba81372cc76..3804f2db97f8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2006-12-06 Bernd Schmidt <bernd.schmidt@analog.com> + + * reload1.c (delete_output_reload): Count occurrences in + CALL_INSN_FUNCTION_USAGE. + * rtlanal.c (count_occurrences): Handle EXPR_LIST nodes without + crashing at the end of the list. + 2006-12-05 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-structalias.c (set_used_smts): Re-fix pr29156. diff --git a/gcc/reload1.c b/gcc/reload1.c index 88b89feb8ff1..fdab86cff87d 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -7972,6 +7972,9 @@ delete_output_reload (rtx insn, int j, int last_reload_reg) } } n_occurrences = count_occurrences (PATTERN (insn), reg, 0); + if (CALL_P (insn) && CALL_INSN_FUNCTION_USAGE (insn)) + n_occurrences += count_occurrences (CALL_INSN_FUNCTION_USAGE (insn), + reg, 0); if (substed) n_occurrences += count_occurrences (PATTERN (insn), eliminate_regs (substed, 0, diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 6b964430ef02..4b965f8ca1c2 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -509,6 +509,12 @@ count_occurrences (rtx x, rtx find, int count_dest) case CC0: return 0; + case EXPR_LIST: + count = count_occurrences (XEXP (x, 0), find, count_dest); + if (XEXP (x, 1)) + count += count_occurrences (XEXP (x, 1), find, count_dest); + return count; + case MEM: if (MEM_P (find) && rtx_equal_p (x, find)) return 1; -- GitLab