[LRA] Do not use eliminable registers for spilling
authorKwok Cheung Yeung <kcy@codesourcery.com>
Sun, 10 Nov 2019 18:22:38 +0000 (18:22 +0000)
committerKwok Cheung Yeung <kcy@gcc.gnu.org>
Sun, 10 Nov 2019 18:22:38 +0000 (18:22 +0000)
commit4b77a3806c4f2e27d149da326a689286043e433c
treef0271bda2d2013bec6262840401f4aae8802ecab
parentb53513884626d162d4fad4bf144207f5fb762910
[LRA] Do not use eliminable registers for spilling

The liveness of eliminable hard registers is not tracked by LRA between
basic blocks, so they should not be used as spill registers as LRA may
decide to allocate them to pseudos while the spilled value is still live.

2019-11-10  Kwok Cheung Yeung  <kcy@codesourcery.com>

gcc/
* lra-spills.c (assign_spill_hard_regs): Do not spill into
registers in eliminable_regset.

From-SVN: r278024
gcc/ChangeLog
gcc/lra-spills.c