From 199b61d8f811486ec839a45acd9e0889ab804580 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Fri, 11 Nov 1994 17:37:45 -0500 Subject: [PATCH] (preserve_rtl_expr_result): find_temp_slot_from_address now used. Don't bring the temp slot to an inner level than it was. From-SVN: r8427 --- gcc/function.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/gcc/function.c b/gcc/function.c index 821d61ac710..688fd3a3104 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -1098,14 +1098,14 @@ preserve_rtl_expr_result (x) if (x == 0 || GET_CODE (x) != MEM || CONSTANT_P (XEXP (x, 0))) return; - /* If we can find a match, move it to our level. */ - for (p = temp_slots; p; p = p->next) - if (p->in_use && rtx_equal_p (x, p->slot)) - { - p->level = temp_slot_level; - p->rtl_expr = 0; - return; - } + /* If we can find a match, move it to our level unless it is already at + an upper level. */ + p = find_temp_slot_from_address (XEXP (x, 0)); + if (p != 0) + { + p->level = MIN (p->level, temp_slot_level); + p->rtl_expr = 0; + } return; } -- 2.30.2