From: Richard Kenner Date: Fri, 11 Nov 1994 22:37:45 +0000 (-0500) Subject: (preserve_rtl_expr_result): find_temp_slot_from_address now used. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=199b61d8f811486ec839a45acd9e0889ab804580;p=gcc.git (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 --- 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; }