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

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Segher Boessenkool from comment #5)
> (In reply to Jakub Jelinek from comment #3)
> > In normal insns such clobbers would be rejected by recog, but for
> > DEBUG_INSNs we don't have strict validity tests, but guess we need to throw
> > away at least the worst garbage.
> 
> combine puts clobbers of const0_rtx in instructions precisely because
> those *should* be rejected; it does it to abort a combination attempt.
> So it isn't clear to me why we end up with this here?  Papering over it
> (as the proposed patch does) is not a good idea imho.

In the end on the actual instruction the clobber is optimized away and we end
up with something that is accepted.  And the problem is just that the clobber
is propagated into debug insns, which don't have any kind of recog, their
content is intentionally much less strict that on normal insns, like it can
allow e.g. SUBREGs that normally wouldn't be allowed etc.  If something is too
weird, dwarf2out will punt on it.
But clearly the clobber is something LRA isn't able to deal with.

Reply via email to