[Bug target/67657] [SH][5]: internal compiler error: in cselib_record_set, at cselib.c:2396 when compiling libjpeg-turbo

olegendo at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Sep 21 03:07:00 GMT 2015


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

--- Comment #6 from Oleg Endo <olegendo at gcc dot gnu.org> ---
The peephole outputs this:

(insn 2292 0 0 (set (reg/v/f:SI 2 r2 [orig:320 outptr ] [320])
        (mem/f:SI (post_inc:SI (reg:SI 2 r2)) [2 MEM[base: _145, offset: 0B]+0
S4 A32])) -1
     (expr_list:REG_INC (reg:SI 2 r2)
        (nil)))


i.e.
      mov.l   @r2+,r2

and then things seem to go wrong.  Disabling the peephole shows the following
code in the output:

.L119:
        add     #64,r0
        mov.l   @(0,r0),r2
        add     #4,r2
        mov.l   r2,@(0,r0)
        add     #-4,r2         <<<
        mov.l   @r2+,r0        <<<
        mov     r0,r2          <<<
        mov.w   .L81,r0
        add     r15,r0
        mov.l   @(16,r0),r0
        add     r0,r2

The peephole should convert it to
        add     #-4,r2
        mov.l   @r2,r2

I'll come up with something.



More information about the Gcc-bugs mailing list