[Bug tree-optimization/56195] [4.8 Regression] Error: incorrect register `%rdi' used with `l' suffix (at -O2)

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Feb 5 13:57:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56195

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-02-05 13:56:56 UTC ---
Seems this is heavily related to the uninitialized uses, in
(insn 90 87 91 22 (set (reg:CCGC 17 flags)
        (compare:CCGC (reg:SI 118 [ D.1797 ])
            (mem:SI (reg/v/f:DI 59 [ q ]) [2 *q_1+0 S4 A32]))) pr56195.c:17 7
{*cmpsi_1}
     (nil))
both SI 118 and DI 59 pseudos are preinitialized to const0_rtx because both the
address to read from and the other value are uninitialized.  Guess LRA figures
out that both operands are equal to const0_rtx, just doesn't handle the
different modes properly (it can be cmpl (%rdi), %edi ).



More information about the Gcc-bugs mailing list