https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91522

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Uh, all other DF_REG_REG_CHAIN uses need to be updated as well I guess, how
we convert defs and uses seems to be a slight mess :/  I'm going to try
to rewrite this part to

 for insn in insns
   for def in insn
     if def in defs_conv
       replace def in insn with subreg of new pseudo from new defs-map
       emit copy from new def to original scalar def
     else
       replace def with subreg
   for use in insn
     if use in defs_conv & ~defs
       replace use in insn with subreg of new pseudo from new defs-map
       emit copy from old scalar def to new def
     else
       replace use with subreg [of new pseudo from new defs-map]

that should also support chains where not all defs of a pseudo are part
of the chain.  Since we have ud and du chains we can use those more.

Reply via email to