https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103541
--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Vladimir Makarov <vmaka...@gcc.gnu.org>: https://gcc.gnu.org/g:f661c0bb6371f355966a67b5ce71398e80792948 commit r13-5730-gf661c0bb6371f355966a67b5ce71398e80792948 Author: Vladimir N. Makarov <vmaka...@redhat.com> Date: Tue Feb 7 08:27:36 2023 -0500 RA: Implement reuse of equivalent memory for caller saves optimization The test case shows opportunity to reuse memory with constant address for caller saves optimization for constant or pure function call. The patch implements the memory reuse. PR rtl-optimization/103541 gcc/ChangeLog: * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p. * ira.cc (validate_equiv_mem): Check memref address variance. (update_equiv_regs): Define caller save equivalence for valid_combine. (setup_reg_equiv): Clear defined_p flag for caller save equivalence. * lra-constraints.cc (lra_copy_reg_equiv): Add new arg call_save_p. Use caller save equivalence depending on the arg. (split_reg): Adjust the call. gcc/testsuite/ChangeLog: * gcc.target/i386/pr103541.c: New.