From: JoJo R Date: Tue, 14 Dec 2021 21:55:57 +0000 (-0500) Subject: regrename: Skip renaming if instruction is noop move. X-Git-Tag: basepoints/gcc-13~2335 X-Git-Url: https://gcc.gnu.org/git/?a=commitdiff_plain;h=a888259a71fbbb7f14923751251e056829d76342;p=gcc.git regrename: Skip renaming if instruction is noop move. gcc/ * regrename.c (find_rename_reg): Return satisfied regno if instruction is noop move. --- diff --git a/gcc/regrename.c b/gcc/regrename.c index b8a9ca36f225..fe72fcc36241 100644 --- a/gcc/regrename.c +++ b/gcc/regrename.c @@ -394,6 +394,11 @@ find_rename_reg (du_head_p this_head, enum reg_class super_class, this_head, *unavailable)) return this_head->tied_chain->regno; + /* If this insn is a noop move, then do not rename in this chain as doing so + would inhibit removal of the noop move. */ + if (noop_move_p (this_head->first->insn)) + return best_new_reg; + /* If PREFERRED_CLASS is not NO_REGS, we iterate in the first pass over registers that belong to PREFERRED_CLASS and try to find the best register within the class. If that failed, we iterate in