This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/47725] [x32] error: unable to find a register to spill in class DIREG
- From: "pbone at csse dot unimelb.edu.au" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 22 Jul 2011 06:02:13 +0000
- Subject: [Bug middle-end/47725] [x32] error: unable to find a register to spill in class DIREG
- Auto-submitted: auto-generated
- References: <bug-47725-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47725
--- Comment #19 from Paul Bone <pbone at csse dot unimelb.edu.au> 2011-07-22 06:01:30 UTC ---
I'm seeing the same problem in gcc 4.4 and 4.6, I did not test 4.5:
paul@semillion:~/code/mercury-compiler-rotd-2011-06-23/compiler$ gcc-4.4 -v -c
-o /tmp/out.o -O1 ml_backend.ml_closure_gen.i
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-8'
--with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.4 --enable-shared --enable-multiarch
--enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls
--enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc
--enable-targets=all --with-arch-32=i586 --with-tune=generic
--enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu
--target=i486-linux-gnu
Thread model: posix
gcc version 4.4.5 (Debian 4.4.5-8)
COLLECT_GCC_OPTIONS='-v' '-c' '-o' '/tmp/out.o' '-O1' '-mtune=generic'
'-march=i586'
/usr/lib/gcc/i486-linux-gnu/4.4.5/cc1 -fpreprocessed
ml_backend.ml_closure_gen.i -quiet -dumpbase ml_backend.ml_closure_gen.i
-mtune=generic -march=i586 -auxbase-strip /tmp/out.o -O1 -version -o
/tmp/ccbABR7o.s
GNU C (Debian 4.4.5-8) version 4.4.5 (i486-linux-gnu)
compiled by GNU C version 4.4.5, GMP version 4.3.2, MPFR version
3.0.0-p3.
GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=127992
Compiler executable checksum: 0192d925385d4e6642a93c63f245f907
ml_backend.ml_closure_gen.c:32: warning:
âmercury__ml_backend__ml_closure_gen__ml_gen_maybe_pseudo_type_info_defn_4_0â
used but never defined
ml_backend.ml_closure_gen.c: In function âml_backend__ml_closure_gen_module11â:
ml_backend.ml_closure_gen.c:230: error: unable to find a register to spill in
class âDIREGâ
ml_backend.ml_closure_gen.c:230: error: this is the insn:
(insn 123 122 124 11 ml_backend.ml_closure_gen.c:105 (parallel [
(set (mem:SI (reg/f:SI 136) [0 S4 A32])
(reg/v:SI 80 [ MR_tempr3 ]))
(set (reg/v:SI 82 [ MR_tempr1 ])
(plus:SI (reg/f:SI 136)
(const_int 4 [0x4])))
]) 852 {*strsetsi_1} (expr_list:REG_DEAD (reg/f:SI 136)
(nil)))
ml_backend.ml_closure_gen.c:230: confused by earlier errors, bailing out
Preprocessed source stored into /tmp/cccXoZX2.out file, please attach this to
your bugreport.
I will attach the generated test case.