diff options
author | Bernd Schmidt <bernd.schmidt@analog.com> | 2006-12-06 00:25:29 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2006-12-06 00:25:29 +0000 |
commit | 2372a0625790417f2ca021d3e5016554930900a4 (patch) | |
tree | 8f23a2d5a22c2df0faa8b10efd1d8f88584bf73b | |
parent | e80dc930bed449d1e2dcb0873013fb402c96da6b (diff) | |
download | gcc-2372a0625790417f2ca021d3e5016554930900a4.zip gcc-2372a0625790417f2ca021d3e5016554930900a4.tar.gz gcc-2372a0625790417f2ca021d3e5016554930900a4.tar.bz2 |
reload1.c (delete_output_reload): Count occurrences in CALL_INSN_FUNCTION_USAGE.
* 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.
From-SVN: r119571
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/reload1.c | 3 | ||||
-rw-r--r-- | gcc/rtlanal.c | 6 |
3 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cba8137..3804f2d 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 88b89fe..fdab86c 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 6b96443..4b965f8 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; |