This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Implementing Swing Modulo Scheduling in GCC
- From: Mostafa Hagog <MUSTAFA at il dot ibm dot com>
- To: Sebastian Pop <sebastian dot pop at cri dot ensmp dot fr>
- Cc: Ayal Zaks <zaks at il dot ibm dot com>, gcc-patches at gcc dot gnu dot org
- Date: Thu, 22 Apr 2004 23:38:05 +0300
- Subject: Re: [PATCH] Implementing Swing Modulo Scheduling in GCC
Sebastian Pop <sebastian.pop@cri.ensmp.fr> wrote on 22/04/2004 16:26:10:
> On Thu, Apr 22, 2004 at 03:07:02PM +0200, Sebastian Pop wrote:
> > Testing in progress on IA64.
> >
> > On ia32 I get the following error:
> >
> > stage1/xgcc -Bstage1/ -B/usr/local/i686-pc-linux-gnu/bin/ -c -O2 -g -
> fmodulo-sched -fschedule-ins
> > ns -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-
> prototypes -pedantic -Wno-long
> > -long -Wno-variadic-macros -Wold-style-definition -Werror -fno-common
-
> DHAVE_CONFIG_H -I. -I.
> > -I../../gcc/gcc -I../../gcc/gcc/. -I../../gcc/gcc/../include ../..
> /gcc/gcc/fold-const.c -o fold-co
> > nst.o
> > ../../gcc/gcc/fold-const.c: In function `div_and_round_double':
> > ../../gcc/gcc/fold-const.c:806: error: unable to find a register to
spill in
> class `AREG'
> > ../../gcc/gcc/fold-const.c:806: error: this is the insn:
> > (insn:HI 192 188 1406 15 ../../gcc/gcc/fold-const.c:602 (parallel [
> > (set (reg:SI 2 cx [129])
> > (const_int 0 [0x0]))
> > (set (reg/f:SI 5 di [369])
> > (plus:SI (ashift:SI (reg:SI 2 cx [118])
> > (const_int 2 [0x2]))
> > (reg/f:SI 3 bx [126])))
> > (set (mem/s:BLK (reg/f:SI 3 bx [126]) [56 den+0 S16 A128])
> > (const_int 0 [0x0]))
> > (use (reg:SI 1 dx [117]))
> > (use (reg:SI 2 cx [118]))
> > (use (reg:SI 19 dirflag))
> > ]) 462 {*rep_stossi} (insn_list 187 (insn_list 174 (insn_list
173
> (insn_list 188 (nil)))))
> > (expr_list:REG_DEAD (reg:SI 19 dirflag)
> > (expr_list:REG_DEAD (reg:SI 1 dx [117])
> > (expr_list:REG_DEAD (reg:SI 2 cx [118])
> > (expr_list:REG_UNUSED (reg/f:SI 5 di [369])
> > (expr_list:REG_UNUSED (reg:SI 2 cx [129])
> > (nil)))))))
> > ../../gcc/gcc/fold-const.c:806: internal compiler error: in
spill_failure,
> at reload1.c:1887
> > Please submit a full bug report,
> > with preprocessed source if appropriate.
> > See <URL:http://gcc.gnu.org/bugs.html> for instructions.
> >
>
> I've tried to reproduce the bug using gdb but I can't. The
> preprocessed source does not compile using stage1/xgcc, but everything
> seem to be okay if it runs from gdb... quite strange.
>
It seems that the problem is not related to this patch.
It is an existing problem in the mainline; it doesn't pass bootstrap
when -fschedule-insns is specified - I have tried a clean mainline
with BOOT_CFLAG='-O2 -g -fschedule-insns' and it failed with the same error
as with -fmodulo-sched. I will modify the patch to enable SMS without the
need
for schedule-insns to be enabled.