[Bug rtl-optimization/90706] [10/11/12/13 Regression] Useless code generated for stack / register operations on AVR

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Mar 31 12:42:56 GMT 2023


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90706

--- Comment #20 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-12 branch has been updated by Vladimir Makarov
<vmakarov@gcc.gnu.org>:

https://gcc.gnu.org/g:88792f04e5c63025506244b9ac7186a3cc10c25a

commit r12-9372-g88792f04e5c63025506244b9ac7186a3cc10c25a
Author: Vladimir N. Makarov <vmakarov@redhat.com>
Date:   Thu Mar 2 16:29:05 2023 -0500

    IRA: Use minimal cost for hard register movement

    This is the 2nd attempt to fix PR90706.  IRA calculates wrong AVR
    costs for moving general hard regs of SFmode.  This was the reason for
    spilling a pseudo in the PR.  In this patch we use smaller move cost
    of hard reg in its natural and operand modes.

            PR rtl-optimization/90706

    gcc/ChangeLog:

            * ira-costs.cc: Include print-rtl.h.
            (record_reg_classes, scan_one_insn): Add code to print debug info.
            (record_operand_costs): Find and use smaller cost for hard reg
            move.

    gcc/testsuite/ChangeLog:

            * gcc.target/avr/pr90706.c: New.


More information about the Gcc-bugs mailing list