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.sandif...@linaro.org>
>           Alan Hayward  <alan.hayw...@arm.com>
>           David Sherwood  <david.sherw...@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

Reply via email to