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

--- Comment #19 from Bernd Schmidt <bernds at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #16)
> insn 146 is the pre-reload first xor, insn 701 is storing of the result into
> the [sp, #16] memory slot, but the insn 659 inserted during LRA is just
> weird.
> There is no corresponding clobber in *.ira at this point

This is left over from an intermediate state in LRA, where we create a new
TImode pseudo in split_if_necessary. Essentially (you probably have different
register numbers):

(set (subreg:SI (reg:TI 207) 0) something)

;; inserted by LRA, expanded into a four-move sequence starting with a clobber
(set (newreg:TI) (reg:TI 207))

(call ...)

;; inserted by LRA, similar four-move plus one clobber
(set (reg:TI 207) (newreg:TI))

(set (subreg:SI (reg:TI 207) 4) something else

Later we remove these moves again, leaving only the clobbers around. I'm not
sure yet whether the clobbers have any bad effect or whether something else is
going on.

Reply via email to