lra: consider clobbers when selecting hard_regno to spill
authorIlya Leoshkevich <iii@linux.ibm.com>
Mon, 30 Jul 2018 08:30:06 +0000 (08:30 +0000)
committerAndreas Krebbel <krebbel@gcc.gnu.org>
Mon, 30 Jul 2018 08:30:06 +0000 (08:30 +0000)
commitdc843a8597ef7ac7f2663120ae96c689c2dbbadb
tree0646832414012bff09de8e4d469a4df0fe91611e
parent4cdfee3f206d784f8a502af4f34180a0762df4fe
lra: consider clobbers when selecting hard_regno to spill

The idea behind the rclass loop in spill_hard_reg_in_range() seems to
be: find a hard_regno, which in general conflicts with reload regno,
but does not do so between `from` and `to`, and then do the live range
splitting based on this information. To check the absence of conflicts,
we make use of insn_bitmap, which does not contain insns which clobber
the hard_regno.

gcc/ChangeLog:

2018-07-30  Ilya Leoshkevich  <iii@linux.ibm.com>

        PR target/86547
* lra-constraints.c (spill_hard_reg_in_range): When selecting the
hard_regno, make sure no insn between `from` and `to` clobbers it.

From-SVN: r263063
gcc/ChangeLog
gcc/lra-constraints.c