[Bug rtl-optimization/59477] [4.8/4.9 Regression] ICE: in assign_by_spills, at lra-assigns.c:1281 with -O
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jan 2 16:02:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59477
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Eric Botcazou from comment #4)
> > Usually combiner will reject such combination on i?86/x86_64 in the fn
> > argument hard reg setup insns because of cant_combine_insn_p, but here r8
> > isn't likely spilled. Also, typically cx is initialized after r8, because
> > hard register arguments are initialized from last argument to first. But in
> > this case there is one argument passed in rcx/r8 pair and within a single
> > argument we typically initialize the first half before the second one.
>
> Is rcx likely spilled? If so, the situation looks similar to the one dealt
> with by likely_spilled_retval_p so maybe the machinery could be extended to
> argument registers.
Yes, rcx is likely spilled, just r8 isn't and there is rcx = 0; r8 = pseudo1;
in that order before combine and combine is changing it to rcx = 0; r8 =
pseudo2 << pseudo3;
More information about the Gcc-bugs
mailing list