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

            Bug ID: 83712
           Summary: "Unable to find a register to spill" when compiling
                    for thumb1
           Product: gcc
           Version: 7.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mikulas at artax dot karlin.mff.cuni.cz
  Target Milestone: ---

Created attachment 43050
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43050&action=edit
a reduced testcase for gcc bug

I get the following error when attempting co compile the attached file with:
$ arm-linux-gnueabi-gcc-7 -mfloat-abi=softfp -mthumb -march=armv5t -O2
kbd-min.c

kbd-min.c: In function ‘handle_trm’:
kbd-min.c:23:1: error: unable to find a register to spill
 }
 ^
kbd-min.c:23:1: error: this is the insn:
(insn 17 43 44 2 (parallel [
            (set (mem:SI (reg/f:SI 129 [121]) [0  S4 A32])
                (mem:SI (reg/f:SI 135 [120]) [0  S4 A32]))
            (set (mem:SI (plus:SI (reg/f:SI 129 [121])
                        (const_int 4 [0x4])) [0  S4 A32])
                (mem:SI (plus:SI (reg/f:SI 135 [120])
                        (const_int 4 [0x4])) [0  S4 A32]))
            (set (mem:SI (plus:SI (reg/f:SI 129 [121])
                        (const_int 8 [0x8])) [0  S4 A32])
                (mem:SI (plus:SI (reg/f:SI 135 [120])
                        (const_int 8 [0x8])) [0  S4 A32]))
            (set (reg/f:SI 129 [121])
                (plus:SI (reg/f:SI 129 [121])
                    (const_int 12 [0xc])))
            (set (reg/f:SI 135 [120])
                (plus:SI (reg/f:SI 135 [120])
                    (const_int 12 [0xc])))
            (clobber (reg:SI 126))
            (clobber (reg:SI 127))
            (clobber (reg:SI 128))
        ]) "kbd-min.c":16 836 {movmem12b}
     (expr_list:REG_UNUSED (reg:SI 128)
        (expr_list:REG_UNUSED (reg:SI 127)
            (expr_list:REG_UNUSED (reg:SI 126)
                (nil)))))
kbd-min.c:23: confused by earlier errors, bailing out

I reproduced the bug on gcc-4.8.4, gcc-6.3.0, gcc-7.2.0.

Reply via email to