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

--- Comment #7 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
Author: vmakarov
Date: Fri Mar  9 16:00:36 2018
New Revision: 258390

URL: https://gcc.gnu.org/viewcvs?rev=258390&root=gcc&view=rev
Log:
2018-03-09  Vladimir Makarov  <vmaka...@redhat.com>

        PR target/83712
        * lra-assigns.c (assign_by_spills): Return a flag of reload
        assignment failure.  Do not process the reload assignment
        failures.  Do not spill other reload pseudos if they has the same
        reg class.
        (lra_assign): Add a return arg.  Set up from the result of
        assign_by_spills call.
        (find_reload_regno_insns, lra_split_hard_reg_for): New functions.
        * lra-constraints.c (split_reg): Add a new arg.  Use it instead of
        usage_insns if it is not NULL.
        (spill_hard_reg_in_range): New function.
        (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg.
        * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New
        function prototypes.
        (lra_assign): Change prototype.
        * lra.c (lra): Add code to deal with fails by splitting hard reg
        live ranges.

2018-03-09  Vladimir Makarov  <vmaka...@redhat.com>

        PR target/83712
        * gcc.target/arm/pr83712.c: New.


Added:
    trunk/gcc/testsuite/gcc.target/arm/pr83712.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/lra-assigns.c
    trunk/gcc/lra-constraints.c
    trunk/gcc/lra-int.h
    trunk/gcc/lra.c
    trunk/gcc/testsuite/ChangeLog

Reply via email to