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

--- Comment #5 from ktkachov at gcc dot gnu.org ---
(In reply to Jakub Jelinek from comment #3)
> Bisection shows that on the trunk before r264897 we emit:
>  casal        x30, x1, [x0]
> starting with r264897 we ICE and finally starting with r265398 we emit:
>  casal        x30, x0, [x1]
> The problem obviously is that combine propagates the hard register into the
> memory, so we have
>                         (reg/v:DI 0 x0 [orig:94 x0 ] [94])
>                         (mem:DI (reg:DI 0 x0 [ v ]) [6 v_2(D)->counter+0 S8
> A64])
> as the outputs and IRA/LRA doesn't know what should be honored in that case
> because it can't honor both.
> Note, "Q" constraint is requesting a MEM that has a register operand.
> r265398 is certainly not backportable to 8.x or earlier, it had some many
> follow-ups that it is out of question.

That looks like it's orthogonal to inlining decisions so the kernel discussion
shouldn't be blocked on this.

Reply via email to