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

--- Comment #16 from GCC 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:a729b6e002fe76208f33fdcdee49d6a310a1940e

commit r14-7141-ga729b6e002fe76208f33fdcdee49d6a310a1940e
Author: Vladimir N. Makarov <vmaka...@redhat.com>
Date:   Thu Jan 11 08:46:26 2024 -0500

    [PR112918][LRA]: Fixing IRA ICE on m68k

    Some GCC tests on m68K port of LRA is failed on `maximum number of
    generated reload insns per insn achieved`.  The problem is in that for
    subreg reload LRA can not narrow reg class more from ALL_REGS to
    GENERAL_REGS and then to data regs or address regs.  The patch permits
    narrowing reg class from reload insns if this results in successful
    matching of reg operand.  This is the second version of the patch to
    fix the PR.  This version adds matching with and without narrowing reg
    class and preferring match without narrowing classes.

    gcc/ChangeLog:

            PR rtl-optimization/112918
            * lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before
in_class_p.
            (in_class_p): Restrict condition for narrowing class in case of
            allow_all_reload_class_changes_p.
            (process_alt_operands): Try to match operand without and with
            narrowing reg class.  Discourage narrowing the class.  Finish insn
            matching only if there is no class narrowing.
            (curr_insn_transform): Pass true to in_class_p for reg operand win.

Reply via email to