From: Aldy Hernandez Date: Mon, 12 Mar 2001 04:30:56 +0000 (+0000) Subject: Call reload_cse_simplify_set before reload_cse_noop_set_p X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d5ae21aace3605eacb04951287177aa13bc12daf;p=gcc.git Call reload_cse_simplify_set before reload_cse_noop_set_p From-SVN: r40394 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a0b21d9a4b5..7b1751dc892 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-03-12 Aldy Hernandez + + * reload1.c (reload_cse_simplify): Call reload_cse_simplify_set + before reload_cse_noop_set_p. + 2001-03-11 Zack Weinberg * config.gcc: Where xm-host.h used to include another diff --git a/gcc/reload1.c b/gcc/reload1.c index 077c410d825..2f64c2d7d4a 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -8041,7 +8041,15 @@ reload_cse_simplify (insn) if (GET_CODE (body) == SET) { int count = 0; - if (reload_cse_noop_set_p (body)) + + /* Simplify even if we may think it is a no-op. + We may think a memory load of a value smaller than WORD_SIZE + is redundant because we haven't taken into account possible + implicit extension. reload_cse_simplify_set() will bring + this out, so it's safer to simplify before we delete. */ + count += reload_cse_simplify_set (body, insn); + + if (!count && reload_cse_noop_set_p (body)) { rtx value = SET_DEST (body); if (! REG_FUNCTION_VALUE_P (SET_DEST (body))) @@ -8050,9 +8058,6 @@ reload_cse_simplify (insn) return; } - /* It's not a no-op, but we can try to simplify it. */ - count += reload_cse_simplify_set (body, insn); - if (count > 0) apply_change_group (); else