This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/59317] New: [4.9 Regression] [LRA,MIPS] ICE: in check_rtl, at lra.c (insn does not satisfy constraints)


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

            Bug ID: 59317
           Summary: [4.9 Regression] [LRA,MIPS] ICE: in check_rtl, at
                    lra.c (insn does not satisfy constraints)
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: robert.suchanek at imgtec dot com
                CC: vmakarov at redhat dot com

Created attachment 31311
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31311&action=edit
testcase

It appears that the change in revision r205141 throws an ICE in the regression
with LRA enabled for mips16.
I have attached a narrowed testcase, to reproduce it needs to be compiled with
-O2 -mips32 -mips16.

ia64-1_testcase.c: In function âmainâ:
ia64-1_testcase.c:81:1: internal compiler error: in check_rtl, at lra.c:2036
 }
 ^
0x821cbc check_rtl
        /scratch/mips_trunk/src/gcc/gcc/lra.c:2036
0x825eb4 lra(_IO_FILE*)
        /scratch/mips_trunk/src/gcc/gcc/lra.c:2414
0x7e302e do_reload
        /scratch/mips_trunk/src/gcc/gcc/ira.c:5452
0x7e302e rest_of_handle_reload
        /scratch/mips_trunk/src/gcc/gcc/ira.c:5581
0x7e302e execute
        /scratch/mips_trunk/src/gcc/gcc/ira.c:5610


The LRA generates the following piece of RTL that fails at check_rtl():

(insn 265 54 267 2 (set (reg:SI 8 $8 [339])
ÂÂÂÂÂÂÂ (const:SI (unspec:SI [
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ (const_int 0 [0])
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ ] UNSPEC_GP))) ia64-1_testcase.c:49 295 {*movsi_mips16}
ÂÂÂÂ (nil))

This does not satisfy the operandâs constrains in mov<mode>_mips16 pattern. 

The ICE appears to be triggered because of ALL_REGS assigned to new pseudos
generated and the pseudo data gets expanded but I do not know how to fix it
without breaking PR59133 again.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]