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