https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83712
--- Comment #10 from Vladimir Makarov <vmakarov at gcc dot gnu.org> --- Author: vmakarov Date: Sat Mar 10 16:32:21 2018 New Revision: 258415 URL: https://gcc.gnu.org/viewcvs?rev=258415&root=gcc&view=rev Log: 2018-03-10 Vladimir Makarov <vmaka...@redhat.com> Reverting patch: 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. Modified: trunk/gcc/ChangeLog trunk/gcc/lra-assigns.c trunk/gcc/lra-constraints.c trunk/gcc/lra-int.h trunk/gcc/lra.c