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

            Bug ID: 59896
           Summary: Thumb-1 LRA unable to generate reloads for jump_insn
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: terry.guo at arm dot com

Created attachment 31903
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31903&action=edit
A preprocessed test case

Use trunk gcc to compile attached case with command "arm-none-eabi-gcc -mthumb
-O2 -S dtoa.i", we will get below error:

/home/build/work/GCC-4-9-build/src/newlib/newlib/libc/stdlib/dtoa.c: In
function '_dtoa_r':
/home/build/work/GCC-4-9-build/src/newlib/newlib/libc/stdlib/dtoa.c:862:1:
error: unable to generate reloads for:
(jump_insn 424 2763 425 32 (parallel [
            (set (pc)
                (if_then_else (ge (plus:SI (reg:SI 491 [ D.6302 ])
                            (const_int -1 [0xffffffffffffffff]))
                        (const_int 0 [0]))
                    (label_ref:SI 427)
                    (pc)))
            (set (reg/v:SI 178 [ s2 ])
                (plus:SI (reg:SI 491 [ D.6302 ])
                    (const_int -1 [0xffffffffffffffff])))
            (clobber (reg:SI 833))
        ])
/home/build/work/GCC-4-9-build/src/newlib/newlib/libc/stdlib/dtoa.c:369 225
{*addsi3_cbranch}
     (expr_list:REG_UNUSED (reg:SI 833)
        (expr_list:REG_DEAD (reg:SI 491 [ D.6302 ])
            (int_list:REG_BR_PROB 7300 (nil))))
 -> 427)
/home/build/work/GCC-4-9-build/src/newlib/newlib/libc/stdlib/dtoa.c:862:1:
internal compiler error: in curr_insn_transform, at lra-constraints.c:3220
0xaa7a9b _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
    /myssd/terguo01/toolchain-build/thumb1-uxtb/src/gcc/gcc/rtl-error.c:109
0x9a9f71 curr_insn_transform
   
/myssd/terguo01/toolchain-build/thumb1-uxtb/src/gcc/gcc/lra-constraints.c:3220
0x9acb2a lra_constraints(bool)
   
/myssd/terguo01/toolchain-build/thumb1-uxtb/src/gcc/gcc/lra-constraints.c:4115
0x999647 lra(_IO_FILE*)
    /myssd/terguo01/toolchain-build/thumb1-uxtb/src/gcc/gcc/lra.c:2339
0x947791 do_reload
    /myssd/terguo01/toolchain-build/thumb1-uxtb/src/gcc/gcc/ira.c:5457
0x947ada rest_of_handle_reload
    /myssd/terguo01/toolchain-build/thumb1-uxtb/src/gcc/gcc/ira.c:5598
0x947b24 execute
    /myssd/terguo01/toolchain-build/thumb1-uxtb/src/gcc/gcc/ira.c:5627
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

The gcc version is:
gcc version 4.9.0 20140120 (experimental) 

If we disable LRA, there is no such issue.

Reply via email to