]> git.ipfire.org Git - thirdparty/gcc.git/commit
poly_int: ira subreg liveness tracking
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Dec 2017 12:54:17 +0000 (12:54 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 20 Dec 2017 12:54:17 +0000 (12:54 +0000)
commitece84bf0610f5e511fef1b5d3fc5064910a338a2
treefbb848314cbe3951097d2ceaad0c9faa22cb53f6
parent2d8ada9af84773390d2e7425cbf848de9d664684
poly_int: ira subreg liveness tracking

Normmaly the IRA-reload interface tries to track the liveness of
individual bytes of an allocno if the allocno is sometimes written
to as a SUBREG.  This isn't possible for variable-sized allocnos,
but it doesn't matter because targets with variable-sized registers
should use LRA instead.

This patch adds a get_subreg_tracking_sizes function for deciding
whether it is possible to model a partial read or write.  Later
patches make it return false if anything is variable.

2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

gcc/
* ira.c (get_subreg_tracking_sizes): New function.
(init_live_subregs): Take an integer size rather than a register.
(build_insn_chain): Use get_subreg_tracking_sizes.  Update calls
to init_live_subregs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@255881 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/ira.c