[Bug rtl-optimization/92796] [10 Regression] ICE in lra_assign, at lra-assigns.c:1646 on powerpc64le-linux-gnu

vmakarov at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Dec 9 21:08:00 GMT 2019


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

--- Comment #7 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
(In reply to Peter Bergner from comment #6)
> 
> Vlad (or Jeff), can you point me to where this is supposed to be handled?
> I don't think I see where LRA verifies the reg_renumber[regno] values are
> still
> valid with respect to the new pattern constraints for the insns that are
> modified by spilling.
> 
> lra_reg_info[133].conflict_hard_regs does contain 66, so LRA knows it
> conflicts
> with reg 66, but it never seems to use that information as a sign that pseudo
> 133 needs reassigning.

A very interesting case, Peter.  I reproduced the case too.  I can take it from
here if you don't mind.  The solution I see for this problem is to check that
if we change  operand constraint from IN to INOUT when we change insn
alternative then we reconsider all conflicts for pseudos already assigned to
hard registers.


More information about the Gcc-bugs mailing list