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
This commit is contained in:
Bernd Schmidt 2006-12-06 00:25:29 +00:00 committed by Bernd Schmidt
parent e80dc930be
commit 2372a06257
3 changed files with 16 additions and 0 deletions

View File

@ -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.

View File

@ -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,

View File

@ -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;