public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/36684]  New: [4.3 regression] compile failure with message "unable to find a register to spill in class 'R0_REGS'"
@ 2008-07-01  9:29 masaki dot chikama at gmail dot com
  2008-07-01  9:35 ` [Bug c/36684] " masaki dot chikama at gmail dot com
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: masaki dot chikama at gmail dot com @ 2008-07-01  9:29 UTC (permalink / raw)
  To: gcc-bugs

gcc-4.3.0 fails to compile with this message when compiling 
expect-5.43.0. gcc-4.1.3 can compile without fail.
They are both natively running on sh4 board.


           gcc -c  -I. -I. -I/usr/include/tcl-private/generic  
-DEXP_VERSION=\"5.43.0\" -DSCRIPTDIR=\"/usr/share/tcl8.5/expect5.43\"
-DEXECSCRIPTDIR=\"/usr/lib/tcl8.5/expect5.43\" -DTCL_DEBUGGER -DUSE_NON_CONST
-DSTTY_BIN=\"/bin/stty\" -O2 -g -mieee -O2 -g -mieee -pipe  -fPIC
-DDFLT_STTY="\"sane\""  Dbg.c -o shared/Dbg.o ; \
        fi
Dbg.c: In function 'Dbg_Interactor':
Dbg.c:1071: error: unable to find a register to spill in class 'R0_REGS'
Dbg.c:1071: error: this is the insn:
(insn:HI 31 50 51 4 Dbg.c:1069 (set (mem/f/c/i:SI (plus:SI (reg/f:SI 3 r3
[186])                (reg:SI 12 r12)) [22 interdata+0 S4 A32])
        (reg/v/f:SI 6 r6 [orig:165 data ] [165])) 172 {movsi_ie}
(expr_list:REG_DEAD (reg/f:SI 3 r3 [186])
        (expr_list:REG_DEAD (reg/v/f:SI 6 r6 [orig:165 data ] [165])
            (nil))))
Dbg.c:1071: confused by earlier errors, bailing out
Preprocessed source stored into /tmp/ccjGJhgH.out file, please attach this to
your bugreport.
make: *** [Dbg.o] Error 1

# /usr/bin/gcc -v
Using built-in specs.
Target: sh4-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla
--enable-bootstrap --enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions
--enable-languages=c,c++,objc,obj-c++,java,fortran --enable-java-awt=gtk
--disable-dssi --enable-plugin
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
--enable-libgcj-multifile --enable-java-maintainer-mode
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib
--build=sh4-redhat-linux
Thread model: posix
gcc version 4.3.0 20080404 (Red Hat 4.3.0-6.fs1.1) (GCC)


-- 
           Summary: [4.3 regression] compile failure with message "unable to
                    find a register to spill in class 'R0_REGS'"
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: masaki dot chikama at gmail dot com
 GCC build triplet: sh4-redhat-linux
  GCC host triplet: sh4-redhat-linux
GCC target triplet: sh4-redhat-linux


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


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

* [Bug c/36684] [4.3 regression] compile failure with message "unable to find a register to spill in class 'R0_REGS'"
  2008-07-01  9:29 [Bug c/36684] New: [4.3 regression] compile failure with message "unable to find a register to spill in class 'R0_REGS'" masaki dot chikama at gmail dot com
@ 2008-07-01  9:35 ` masaki dot chikama at gmail dot com
  2008-07-01  9:42 ` masaki dot chikama at gmail dot com
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: masaki dot chikama at gmail dot com @ 2008-07-01  9:35 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from masaki dot chikama at gmail dot com  2008-07-01 09:34 -------
Created an attachment (id=15838)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15838&action=view)
ccOOu6ip.out


-- 


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


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

* [Bug c/36684] [4.3 regression] compile failure with message "unable to find a register to spill in class 'R0_REGS'"
  2008-07-01  9:29 [Bug c/36684] New: [4.3 regression] compile failure with message "unable to find a register to spill in class 'R0_REGS'" masaki dot chikama at gmail dot com
  2008-07-01  9:35 ` [Bug c/36684] " masaki dot chikama at gmail dot com
@ 2008-07-01  9:42 ` masaki dot chikama at gmail dot com
  2008-07-01  9:43 ` [Bug middle-end/36684] [4.3 Regression] " rguenth at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: masaki dot chikama at gmail dot com @ 2008-07-01  9:42 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from masaki dot chikama at gmail dot com  2008-07-01 09:41 -------
Sorry.
"/tmp/ccjGJhgH.out" is another try's message.
Attached file(ccOOu6ip.out) are produced with same message.


-- 


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


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

* [Bug middle-end/36684] [4.3 Regression] compile failure with message "unable to find a register to spill in class 'R0_REGS'"
  2008-07-01  9:29 [Bug c/36684] New: [4.3 regression] compile failure with message "unable to find a register to spill in class 'R0_REGS'" masaki dot chikama at gmail dot com
  2008-07-01  9:35 ` [Bug c/36684] " masaki dot chikama at gmail dot com
  2008-07-01  9:42 ` masaki dot chikama at gmail dot com
@ 2008-07-01  9:43 ` rguenth at gcc dot gnu dot org
  2008-07-01 12:16 ` jakub at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-07-01  9:43 UTC (permalink / raw)
  To: gcc-bugs



-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|c                           |middle-end
            Summary|[4.3 regression] compile    |[4.3 Regression] compile
                   |failure with message "unable|failure with message "unable
                   |to find a register to spill |to find a register to spill
                   |in class 'R0_REGS'"         |in class 'R0_REGS'"
   Target Milestone|---                         |4.3.2


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


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

* [Bug middle-end/36684] [4.3 Regression] compile failure with message "unable to find a register to spill in class 'R0_REGS'"
  2008-07-01  9:29 [Bug c/36684] New: [4.3 regression] compile failure with message "unable to find a register to spill in class 'R0_REGS'" masaki dot chikama at gmail dot com
                   ` (2 preceding siblings ...)
  2008-07-01  9:43 ` [Bug middle-end/36684] [4.3 Regression] " rguenth at gcc dot gnu dot org
@ 2008-07-01 12:16 ` jakub at gcc dot gnu dot org
  2008-07-01 23:59 ` [Bug target/36684] [4.3/4.4 Regression] spill failure for class 'R0_REGS' on sh4 with -fPIC -O2 kkojima at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: jakub at gcc dot gnu dot org @ 2008-07-01 12:16 UTC (permalink / raw)
  To: gcc-bugs



-- 

jakub at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P4


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


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

* [Bug target/36684] [4.3/4.4 Regression] spill failure for class 'R0_REGS' on sh4 with -fPIC -O2
  2008-07-01  9:29 [Bug c/36684] New: [4.3 regression] compile failure with message "unable to find a register to spill in class 'R0_REGS'" masaki dot chikama at gmail dot com
                   ` (3 preceding siblings ...)
  2008-07-01 12:16 ` jakub at gcc dot gnu dot org
@ 2008-07-01 23:59 ` kkojima at gcc dot gnu dot org
  2008-07-02  3:48 ` kkojima at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: kkojima at gcc dot gnu dot org @ 2008-07-01 23:59 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from kkojima at gcc dot gnu dot org  2008-07-01 23:59 -------
A reduced testcase:

typedef int (proc) (int *interp, void *data);
typedef struct
{
  void *func;
  void *data;
} InterStruct;

extern InterStruct simple;
extern int simple_interactor ();
static proc *interactor = simple_interactor;


InterStruct Interactor(void *interp, proc inter_proc)
{
  InterStruct tmp = simple;
  interactor = (inter_proc ? inter_proc : simple_interactor);
  return tmp;
}


-- 

kkojima at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kkojima at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
          Component|middle-end                  |target
     Ever Confirmed|0                           |1
   GCC host triplet|sh4-redhat-linux            |
 GCC target triplet|sh4-redhat-linux            |sh4-*-linux
           Keywords|                            |ice-on-valid-code
      Known to fail|                            |4.3.1 4.4.0
      Known to work|                            |4.1.3 4.2.4
   Last reconfirmed|0000-00-00 00:00:00         |2008-07-01 23:59:06
               date|                            |
            Summary|[4.3 Regression] compile    |[4.3/4.4 Regression] spill
                   |failure with message "unable|failure for class 'R0_REGS'
                   |to find a register to spill |on sh4 with -fPIC -O2
                   |in class 'R0_REGS'"         |


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


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

* [Bug target/36684] [4.3/4.4 Regression] spill failure for class 'R0_REGS' on sh4 with -fPIC -O2
  2008-07-01  9:29 [Bug c/36684] New: [4.3 regression] compile failure with message "unable to find a register to spill in class 'R0_REGS'" masaki dot chikama at gmail dot com
                   ` (4 preceding siblings ...)
  2008-07-01 23:59 ` [Bug target/36684] [4.3/4.4 Regression] spill failure for class 'R0_REGS' on sh4 with -fPIC -O2 kkojima at gcc dot gnu dot org
@ 2008-07-02  3:48 ` kkojima at gcc dot gnu dot org
  2008-07-02  3:51 ` kkojima at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: kkojima at gcc dot gnu dot org @ 2008-07-02  3:48 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from kkojima at gcc dot gnu dot org  2008-07-02 03:47 -------
*** Bug 36686 has been marked as a duplicate of this bug. ***


-- 


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


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

* [Bug target/36684] [4.3/4.4 Regression] spill failure for class 'R0_REGS' on sh4 with -fPIC -O2
  2008-07-01  9:29 [Bug c/36684] New: [4.3 regression] compile failure with message "unable to find a register to spill in class 'R0_REGS'" masaki dot chikama at gmail dot com
                   ` (5 preceding siblings ...)
  2008-07-02  3:48 ` kkojima at gcc dot gnu dot org
@ 2008-07-02  3:51 ` kkojima at gcc dot gnu dot org
  2008-07-04 20:54 ` kkojima at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: kkojima at gcc dot gnu dot org @ 2008-07-02  3:51 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from kkojima at gcc dot gnu dot org  2008-07-02 03:50 -------
SH backend enables insn scheduling before reload for SH4 when
the estimated R0 register pressure is low.  This PR reveals
that it doesn't work well for PIC which will make many implicit
R0 uses.  It seems that there is no easy way to compute accurate
R0 register pressure in that case.  I'm testing the patch below.

--- ORIG/trunk/gcc/config/sh/sh.h       2008-05-23 07:30:02.000000000 +0900
+++ INTEST/trunk/gcc/config/sh/sh.h     2008-07-02 08:41:42.000000000 +0900
@@ -712,8 +712,8 @@ do {                                                       
                \
         to the pressure on R0.  */                                     \
       /* Enable sched1 for SH4; ready queue will be reordered by       \
         the target hooks when pressure is high. We can not do this for \
-        SH3 and lower as they give spill failures for R0.  */          \
-      if (!TARGET_HARD_SH4)                                            \
+        PIC, SH3 and lower as they give spill failures for R0.  */     \
+      if (!TARGET_HARD_SH4 || flag_pic)                                       
\
         flag_schedule_insns = 0;                                       \
       /* ??? Current exception handling places basic block boundaries  \
         after call_insns.  It causes the high pressure on R0 and gives \


-- 


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


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

* [Bug target/36684] [4.3/4.4 Regression] spill failure for class 'R0_REGS' on sh4 with -fPIC -O2
  2008-07-01  9:29 [Bug c/36684] New: [4.3 regression] compile failure with message "unable to find a register to spill in class 'R0_REGS'" masaki dot chikama at gmail dot com
                   ` (6 preceding siblings ...)
  2008-07-02  3:51 ` kkojima at gcc dot gnu dot org
@ 2008-07-04 20:54 ` kkojima at gcc dot gnu dot org
  2008-07-05 21:41 ` kkojima at gcc dot gnu dot org
  2008-07-05 21:44 ` kkojima at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: kkojima at gcc dot gnu dot org @ 2008-07-04 20:54 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from kkojima at gcc dot gnu dot org  2008-07-04 20:54 -------
Subject: Bug 36684

Author: kkojima
Date: Fri Jul  4 20:53:18 2008
New Revision: 137487

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=137487
Log:
        PR target/36684
        * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns
        for PIC.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/sh/sh.h


-- 


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


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

* [Bug target/36684] [4.3/4.4 Regression] spill failure for class 'R0_REGS' on sh4 with -fPIC -O2
  2008-07-01  9:29 [Bug c/36684] New: [4.3 regression] compile failure with message "unable to find a register to spill in class 'R0_REGS'" masaki dot chikama at gmail dot com
                   ` (7 preceding siblings ...)
  2008-07-04 20:54 ` kkojima at gcc dot gnu dot org
@ 2008-07-05 21:41 ` kkojima at gcc dot gnu dot org
  2008-07-05 21:44 ` kkojima at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: kkojima at gcc dot gnu dot org @ 2008-07-05 21:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from kkojima at gcc dot gnu dot org  2008-07-05 21:40 -------
Subject: Bug 36684

Author: kkojima
Date: Sat Jul  5 21:39:36 2008
New Revision: 137511

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=137511
Log:
        Backport from mainline:
        PR target/36684
        * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns
        for PIC.


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


-- 


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


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

* [Bug target/36684] [4.3/4.4 Regression] spill failure for class 'R0_REGS' on sh4 with -fPIC -O2
  2008-07-01  9:29 [Bug c/36684] New: [4.3 regression] compile failure with message "unable to find a register to spill in class 'R0_REGS'" masaki dot chikama at gmail dot com
                   ` (8 preceding siblings ...)
  2008-07-05 21:41 ` kkojima at gcc dot gnu dot org
@ 2008-07-05 21:44 ` kkojima at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: kkojima at gcc dot gnu dot org @ 2008-07-05 21:44 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from kkojima at gcc dot gnu dot org  2008-07-05 21:43 -------
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=36684


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

end of thread, other threads:[~2008-07-05 21:44 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-07-01  9:29 [Bug c/36684] New: [4.3 regression] compile failure with message "unable to find a register to spill in class 'R0_REGS'" masaki dot chikama at gmail dot com
2008-07-01  9:35 ` [Bug c/36684] " masaki dot chikama at gmail dot com
2008-07-01  9:42 ` masaki dot chikama at gmail dot com
2008-07-01  9:43 ` [Bug middle-end/36684] [4.3 Regression] " rguenth at gcc dot gnu dot org
2008-07-01 12:16 ` jakub at gcc dot gnu dot org
2008-07-01 23:59 ` [Bug target/36684] [4.3/4.4 Regression] spill failure for class 'R0_REGS' on sh4 with -fPIC -O2 kkojima at gcc dot gnu dot org
2008-07-02  3:48 ` kkojima at gcc dot gnu dot org
2008-07-02  3:51 ` kkojima at gcc dot gnu dot org
2008-07-04 20:54 ` kkojima at gcc dot gnu dot org
2008-07-05 21:41 ` kkojima at gcc dot gnu dot org
2008-07-05 21:44 ` 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).