https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124439
--- Comment #6 from Stefan Schulze Frielinghaus <stefansf at gcc dot gnu.org> --- (In reply to Robin Dapp from comment #4) > As we deleted r244's definition (insn 11) the following reload > > Creating newreg=251 from oldreg=244, assigning class GR_REGS to r251 > Inserting insn reload before: > 165: r251:DI=r244:DI > > doesn't make sense because the spill slot is uninitialized. > > So when deleting insn 11 we assume that all uses will be replaced. The way > it's written, I suppose that's a basic assumption of lra. My current understanding is that insns which initialize pseudos which have an equivalence are basically always removed. In order to compensate for the case that an equivalence substitution fails, reloads are introduced. So in that light insn 165 fits my mental model. However, my model is smashed to peaces right afterwards since I had expected that during Local #2 equivalences are again applied and I would have expected that r244 in insn 165 is substituted with frame. Maybe there is some glue missing after skipping an equiv substitution as done in r16-7891 and rescheduling equiv subst (just a wild guess)?
