https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110587
--- Comment #18 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>: https://gcc.gnu.org/g:07b7cd70399d22c113ad8bb1eff5cc2d12973d33 commit r14-2920-g07b7cd70399d22c113ad8bb1eff5cc2d12973d33 Author: Richard Biener <rguent...@suse.de> Date: Tue Jul 25 15:32:11 2023 +0200 rtl-optimization/110587 - remove quadratic regno_in_use_p The following removes the code checking whether a noop copy is between something involved in the return sequence composed of a SET and USE. Instead of checking for this special-case the following makes us only ever remove noop copies between pseudos - which is the case that is necessary for IRA/LRA interfacing to function according to the comment. That makes looking for the return reg special case unnecessary, reducing the compile-time in LRA non-specific to zero for the testcase. PR rtl-optimization/110587 * lra-spills.cc (return_regno_p): Remove. (regno_in_use_p): Likewise. (lra_final_code_change): Do not remove noop moves between hard registers.