diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2018-03-13 20:42:49 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2018-03-13 20:42:49 +0000 |
commit | 6027ea4cd7b1e955cf7cd61e9178a89d89e3dbe2 (patch) | |
tree | 238e7d9dada206bba93256cb01455ec15fea1ea6 /gcc/fortran/iresolve.c | |
parent | 949aab190a4ff95d4ba71f55e8b77a2aae61457f (diff) | |
download | gcc-6027ea4cd7b1e955cf7cd61e9178a89d89e3dbe2.zip gcc-6027ea4cd7b1e955cf7cd61e9178a89d89e3dbe2.tar.gz gcc-6027ea4cd7b1e955cf7cd61e9178a89d89e3dbe2.tar.bz2 |
re PR target/83712 ("Unable to find a register to spill" when compiling for thumb1)
2018-03-13 Vladimir Makarov <vmakarov@redhat.com>
PR target/83712
* lra-assigns.c (find_all_spills_for): Ignore uninteresting
pseudos.
(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. Update n if
necessary.
(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.
From-SVN: r258504
Diffstat (limited to 'gcc/fortran/iresolve.c')
0 files changed, 0 insertions, 0 deletions