public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/38991]  New: ICE in extract_insn at recog.c:1990
@ 2009-01-27 20:25 rmansfield at qnx dot com
  2009-01-27 21:36 ` [Bug target/38991] " rmansfield at qnx dot com
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: rmansfield at qnx dot com @ 2009-01-27 20:25 UTC (permalink / raw)
  To: gcc-bugs

$ cat /home/ryan/reduced.i
     typedef unsigned int  _Uint16t __attribute__((__aligned__(2)))
__attribute__((__mode__(__HI__)));
     struct timeval { unsigned tv_sec; };
     extern volatile struct timeval mono_time;
     struct a { unsigned int time1;   };
     void sppp_input() {
        struct a *ch;
        unsigned t;
        t = mono_time.tv_sec * 1000;
        ch->time1 = (__builtin_constant_p((((unsigned short) t))) ?
(((((((unsigned short) t))) >> 8) & 0xFF) | ((((((unsigned short) t))) & 0xFF)
<< 8)) : ({  _Uint16t __reg;  __asm__( "swap.b %0, %0;" : "=r" (__reg) : "0"
((((unsigned short) t))) );  __reg;  }          ));
     }
$ ./sh4-unknown-linux-gnu-gcc-4.3.2 -O1 ~/reduced.i -c -v
Using built-in specs.
Target: sh4-unknown-linux-gnu
Configured with: /home/ryan/crosstool-ng-1.3.1/targets/src/gcc-4.3.2/configure
--build=i486-build_pc-linux-gnu --host=i486-build_pc-linux-gnu
--target=sh4-unknown-linux-gnu
--prefix=/home/ryan/crosstool-ng-1.3.1/targets/sh4-unknown-linux-gnu/build/gcc-core-static
--with-local-prefix=/home/ryan/x-tools/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sys-root
--disable-multilib
--with-sysroot=/home/ryan/x-tools/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sys-root
--with-newlib --enable-threads=no --disable-shared --enable-__cxa_atexit
--disable-nls --enable-symvers=gnu --enable-languages=c
--enable-target-optspace
Thread model: single
gcc version 4.3.2 (GCC)
COLLECT_GCC_OPTIONS='-O1' '-c' '-v'

/home/ryan/crosstool-ng-1.3.1/targets/sh4-unknown-linux-gnu/build/gcc-core-static/libexec/gcc/sh4-unknown-linux-gnu/4.3.2/cc1
-fpreprocessed /home/ryan/reduced.i -quiet -dumpbase reduced.i -auxbase reduced
-O1 -version -o /tmp/cc8aeDRs.s
GNU C (GCC) version 4.3.2 (sh4-unknown-linux-gnu)
        compiled by GNU C version 4.3.1, GMP version 4.2.1, MPFR version 2.2.1.
GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=129356
Compiler executable checksum: ee076cb4ac207bb74a2571e911139f3f
/home/ryan/reduced.i: In function 'sppp_input':
/home/ryan/reduced.i:10: error: unrecognizable insn:
(insn 23 8 10 3 /home/ryan/reduced.i:9 (set (reg:HI 163)
        (subreg:HI (reg:SI 149 macl) 0)) -1 (expr_list:REG_DEAD (reg:SI 149
macl)
        (nil)))
/home/ryan/reduced.i:10: internal compiler error: in extract_insn, at
recog.c:1990
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

Reproducible with gcc 4.3.3 as well.


-- 
           Summary: ICE in extract_insn at recog.c:1990
           Product: gcc
           Version: 4.3.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rmansfield at qnx dot com
 GCC build triplet: i486-build_pc-linux-gnu
  GCC host triplet: i486-build_pc-linux-gnu
GCC target triplet: sh4-unknown-linux-gnu


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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug target/38991] ICE in extract_insn at recog.c:1990
  2009-01-27 20:25 [Bug target/38991] New: ICE in extract_insn at recog.c:1990 rmansfield at qnx dot com
@ 2009-01-27 21:36 ` rmansfield at qnx dot com
  2009-02-03 13:31 ` [Bug target/38991] [4.3/4.4 Regression] SH: " kkojima at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: rmansfield at qnx dot com @ 2009-01-27 21:36 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from rmansfield at qnx dot com  2009-01-27 21:36 -------
Also reproducible with gcc version 4.4.0 20090127 (experimental) [trunk
revision 143711] (GCC)


-- 


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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug target/38991] [4.3/4.4 Regression] SH: ICE in extract_insn at recog.c:1990
  2009-01-27 20:25 [Bug target/38991] New: ICE in extract_insn at recog.c:1990 rmansfield at qnx dot com
  2009-01-27 21:36 ` [Bug target/38991] " rmansfield at qnx dot com
@ 2009-02-03 13:31 ` kkojima at gcc dot gnu dot org
  2009-02-06  0:29 ` kkojima at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: kkojima at gcc dot gnu dot org @ 2009-02-03 13:31 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from kkojima at gcc dot gnu dot org  2009-02-03 13:31 -------
It seems that the move insn in problem is generated when reloading
but has no insn definition matched.

The patch

--- ORIG/trunk/gcc/config/sh/predicates.md      2008-04-05 09:19:14.000000000
+0900
+++ INTEST/trunk/gcc/config/sh/predicates.md    2009-02-03 14:40:07.000000000
+0900
@@ -392,12 +392,6 @@
        return 0;
     }

-  if ((mode == QImode || mode == HImode)
-      && (GET_CODE (op) == SUBREG
-         && GET_CODE (XEXP (op, 0)) == REG
-         && system_reg_operand (XEXP (op, 0), mode)))
-    return 0;
-
   if (TARGET_SHMEDIA
       && (GET_CODE (op) == PARALLEL || GET_CODE (op) == CONST_VECTOR)
       && sh_rep_vec (op, mode))

will workaround this issue, though it may be slightly invasive
and a thorough test will be needed.

BTW, the asm statement in the test case looks a bit worse than

__asm__( "swap.b %1, %0;" : "=r" (__reg) : "r" ((unsigned short) t));

which give a chance for compiler to allocate better registers
in general.  The above asm can avoid this PR too.


-- 

kkojima at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kkojima at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |ice-on-valid-code
      Known to fail|                            |4.3.3 4.4.0
      Known to work|                            |4.2.4
           Priority|P3                          |P4
   Last reconfirmed|0000-00-00 00:00:00         |2009-02-03 13:31:38
               date|                            |
            Summary|ICE in extract_insn at      |[4.3/4.4 Regression] SH: ICE
                   |recog.c:1990                |in extract_insn at
                   |                            |recog.c:1990


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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug target/38991] [4.3/4.4 Regression] SH: ICE in extract_insn at recog.c:1990
  2009-01-27 20:25 [Bug target/38991] New: ICE in extract_insn at recog.c:1990 rmansfield at qnx dot com
  2009-01-27 21:36 ` [Bug target/38991] " rmansfield at qnx dot com
  2009-02-03 13:31 ` [Bug target/38991] [4.3/4.4 Regression] SH: " kkojima at gcc dot gnu dot org
@ 2009-02-06  0:29 ` kkojima at gcc dot gnu dot org
  2009-02-08  0:53 ` kkojima at gcc dot gnu dot org
  2009-02-08  0:55 ` kkojima at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: kkojima at gcc dot gnu dot org @ 2009-02-06  0:29 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from kkojima at gcc dot gnu dot org  2009-02-06 00:29 -------
Subject: Bug 38991

Author: kkojima
Date: Fri Feb  6 00:29:03 2009
New Revision: 143978

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=143978
Log:
        PR target/38991
        * config/sh/predicates.md (general_movsrc_operand): Don't check
        the subreg of system registers here.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/sh/predicates.md


-- 


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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug target/38991] [4.3/4.4 Regression] SH: ICE in extract_insn at recog.c:1990
  2009-01-27 20:25 [Bug target/38991] New: ICE in extract_insn at recog.c:1990 rmansfield at qnx dot com
                   ` (2 preceding siblings ...)
  2009-02-06  0:29 ` kkojima at gcc dot gnu dot org
@ 2009-02-08  0:53 ` kkojima at gcc dot gnu dot org
  2009-02-08  0:55 ` kkojima at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: kkojima at gcc dot gnu dot org @ 2009-02-08  0:53 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from kkojima at gcc dot gnu dot org  2009-02-08 00:53 -------
Subject: Bug 38991

Author: kkojima
Date: Sun Feb  8 00:53:30 2009
New Revision: 144013

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=144013
Log:
        Backport from mainline:
        2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>

        PR target/38991
        * config/sh/predicates.md (general_movsrc_operand): Don't check
        the subreg of system registers here.


Modified:
    branches/gcc-4_3-branch/gcc/ChangeLog
    branches/gcc-4_3-branch/gcc/config/sh/predicates.md


-- 


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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug target/38991] [4.3/4.4 Regression] SH: ICE in extract_insn at recog.c:1990
  2009-01-27 20:25 [Bug target/38991] New: ICE in extract_insn at recog.c:1990 rmansfield at qnx dot com
                   ` (3 preceding siblings ...)
  2009-02-08  0:53 ` kkojima at gcc dot gnu dot org
@ 2009-02-08  0:55 ` kkojima at gcc dot gnu dot org
  4 siblings, 0 replies; 6+ messages in thread
From: kkojima at gcc dot gnu dot org @ 2009-02-08  0:55 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from kkojima at gcc dot gnu dot org  2009-02-08 00:55 -------
Fixed.


-- 

kkojima at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


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


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-02-08  0:55 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-01-27 20:25 [Bug target/38991] New: ICE in extract_insn at recog.c:1990 rmansfield at qnx dot com
2009-01-27 21:36 ` [Bug target/38991] " rmansfield at qnx dot com
2009-02-03 13:31 ` [Bug target/38991] [4.3/4.4 Regression] SH: " kkojima at gcc dot gnu dot org
2009-02-06  0:29 ` kkojima at gcc dot gnu dot org
2009-02-08  0:53 ` kkojima at gcc dot gnu dot org
2009-02-08  0:55 ` kkojima at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).