From 25963977c642eeb1d748dfe3a69b83317eb7493a Mon Sep 17 00:00:00 2001 From: "J\"orn Rennecke" Date: Tue, 17 Nov 1998 14:26:40 +0000 Subject: reload1.c (reload_reg_free_for_value_p): When considered reload has an output... * reload1.c (reload_reg_free_for_value_p): When considered reload has an output, matching inputs are not sufficient to avoid conflict. From-SVN: r23687 --- gcc/reload1.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'gcc/reload1.c') diff --git a/gcc/reload1.c b/gcc/reload1.c index f21b622..1dff782 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -5152,7 +5152,7 @@ reload_reg_free_for_value_p (regno, opnum, type, value, out, reloadnum, && i != reloadnum) { if (! reload_in[i] || ! rtx_equal_p (reload_in[i], value) - || reload_out[i]) + || reload_out[i] || out) { int time2; switch (reload_when_needed[i]) @@ -5246,8 +5246,10 @@ reload_reg_free_for_value_p (regno, opnum, type, value, out, reloadnum, default: return 0; } - if (time1 >= time2 - || (out && time2 >= MAX_RECOG_OPERANDS * 4 + 4)) + if ((time1 >= time2 + && (! reload_in[i] || reload_out[i] + || ! rtx_equal_p (reload_in[i], value))) + || (out && time2 >= MAX_RECOG_OPERANDS * 4 + 3)) return 0; } } -- cgit v1.1