[024/nnn] poly_int: ira subreg liveness tracking
Jeff Law
law@redhat.com
Tue Nov 28 21:10:00 GMT 2017
On 10/23/2017 11:09 AM, Richard Sandiford wrote:
> 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-10-23 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.
OK.
Note this is starting to get close to the discussion around CLOBBER_HIGH
vs using a self set with a low subreg that we're having with Alan on
another thread in that liveness tracking of subregs of SVE regs could
potentially use some improvements.
When I quickly looked at the subreg handling in the df infrstructure my
first thought was that it might need some updating for SVE. I can't
immediately call bits for poly_int/SVE in the patches to-date. Have you
dug in there at all for the poly_int/SVE work?
Jeff
More information about the Gcc-patches
mailing list