[Bug target/69038] compilation error: unable to find a register to spill in class 'FP_REGS'

2018-07-04 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69038

Eric Botcazou  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |7.0

--- Comment #10 from Eric Botcazou  ---
Fixed in GCC 7 and later.

[Bug target/69038] compilation error: unable to find a register to spill in class 'FP_REGS'

2018-07-03 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69038

Eric Gallager  changed:

   What|Removed |Added

 CC||egallager at gcc dot gnu.org

--- Comment #9 from Eric Gallager  ---
(In reply to Eric Botcazou from comment #8)
> > It's probably too late to implement this in reload though.
> 
> So an incentive for the switch to LRA if one was needed.

Doesn't sparc default to LRA now?

[Bug target/69038] compilation error: unable to find a register to spill in class 'FP_REGS'

2016-02-01 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69038

Eric Botcazou  changed:

   What|Removed |Added

 Status|ASSIGNED|NEW
   Assignee|ebotcazou at gcc dot gnu.org   |unassigned at gcc dot 
gnu.org

[Bug target/69038] compilation error: unable to find a register to spill in class 'FP_REGS'

2016-01-05 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69038

Eric Botcazou  changed:

   What|Removed |Added

 CC||davem at gcc dot gnu.org

--- Comment #8 from Eric Botcazou  ---
> It's probably too late to implement this in reload though.

So an incentive for the switch to LRA if one was needed.

[Bug target/69038] compilation error: unable to find a register to spill in class 'FP_REGS'

2016-01-04 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69038

--- Comment #7 from Eric Botcazou  ---
(insn 1237 1236 1238 9 (set (reg:DF 32 %f0)
(float:DF (reg:SI 2027 [ MEM[base: in_140, index: _139, offset: 0B]+-3
]))) pr69038.C:647 155 {floatsidf2}
 (expr_list:REG_DEAD (reg:SI 2027 [ MEM[base: in_140, index: _139, offset:
0B]+-3 ])
(nil)))

Spilling for insn 1237.
reload failure for reload 0

Reloads for insn # 1237
Reload 0: reload_in (SI) = (reg:SI 2027 [ MEM[base: in_140, index: _139,
offset: 0B]+-3 ])
FP_REGS, RELOAD_FOR_INPUT (opnum = 1)
reload_in_reg: (reg:SI 2027 [ MEM[base: in_140, index: _139, offset:
0B]+-3 ])

But AFAICS %f0 could be used as reload register here thanks to the REG_DEAD
note...  It's probably too late to implement this in reload though.

[Bug target/69038] compilation error: unable to find a register to spill in class 'FP_REGS'

2015-12-27 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69038

--- Comment #6 from Eric Botcazou  ---
Ugh.  The nohalo_subdivision function has 37 parameters, among which 21 are
double's so this really stretches the register allocator...

[Bug target/69038] compilation error: unable to find a register to spill in class 'FP_REGS'

2015-12-27 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69038

--- Comment #5 from Eric Botcazou  ---
Created attachment 37142
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37142=edit
Reduced testcase

To be compiled with -m64 -mcpu=ultrasparc -O.

[Bug target/69038] compilation error: unable to find a register to spill in class 'FP_REGS'

2015-12-27 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69038

Eric Botcazou  changed:

   What|Removed |Added

 Status|WAITING |NEW

--- Comment #3 from Eric Botcazou  ---
Thanks, I can reproduce now, -mcpu=ultrasparc is necessary here.

[Bug target/69038] compilation error: unable to find a register to spill in class 'FP_REGS'

2015-12-27 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69038

Eric Botcazou  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |ebotcazou at gcc dot 
gnu.org

--- Comment #4 from Eric Botcazou  ---
Investigating.

[Bug target/69038] compilation error: unable to find a register to spill in class 'FP_REGS'

2015-12-25 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69038

Eric Botcazou  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2015-12-25
 CC||ebotcazou at gcc dot gnu.org
Summary|sparc64 compilation fails   |compilation error: unable
   |with error: unable to find  |to find a register to spill
   |a register to spill in  |in class 'FP_REGS'
   |class 'FP_REGS' |
 Ever confirmed|0   |1

--- Comment #1 from Eric Botcazou  ---
Can you post the output of 'gcc -v' ?

[Bug target/69038] compilation error: unable to find a register to spill in class 'FP_REGS'

2015-12-25 Thread thomas.petazz...@free-electrons.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69038

--- Comment #2 from Thomas Petazzoni  ---
Sure, here it is:

Using built-in specs.
COLLECT_GCC=/home/test/buildroot/output/host/usr/bin/sparc64-buildroot-linux-gnu-g++.br_real
Target: sparc64-buildroot-linux-gnu
Configured with: ./configure --prefix=/home/test/buildroot/output/host/usr
--sysconfdir=/home/test/buildroot/output/host/etc --enable-static
--target=sparc64-b
uildroot-linux-gnu
--with-sysroot=/home/test/buildroot/output/host/usr/sparc64-buildroot-linux-gnu/sysroot
--disable-__cxa_atexit --with-gnu-ld --disable-libssp --disable-multilib
--with-gmp=/home/test/buildroot/output/host/usr
--with-mpfr=/home/test/buildroot/output/host/usr --with-pkgversion='Buildroot
2016.02-git-00574-g4ef0ef3-dirty' --with-bugurl=http://bugs.buildroot.net/
--disable-libquadmath --disable-libsanitizer --enable-tls --disable-libmudflap
--enable-threads --with-mpc=/home/test/buildroot/output/host/usr --without-isl
--without-cloog --disable-decimal-float --with-cpu=ultrasparc
--enable-languages=c,c++
--with-build-time-tools=/home/test/buildroot/output/host/usr/sparc64-buildroot-linux-gnu/bin
--enable-shared --disable-libgomp
Thread model: posix
gcc version 5.3.0 (Buildroot 2016.02-git-00574-g4ef0ef3-dirty) 
COLLECT_GCC_OPTIONS='-v' '-c' '-Os' '-shared-libgcc' '-mcpu=ultrasparc'

/home/test/buildroot/output/host/usr/libexec/gcc/sparc64-buildroot-linux-gnu/5.3.0/cc1plus
-quiet -v -isysroot
/home/test/buildroot/output/host/usr/sparc64-buildroot-linux-gnu/sysroot
-D_GNU_SOURCE -D__sparc_v9__ -D__arch64__ .libs/nohalo.c -mvis -quiet -dumpbase
nohalo.c -mcpu=ultrasparc -auxbase nohalo -Os -version -o /tmp/ccHnYVn9.s
GNU C++ (Buildroot 2016.02-git-00574-g4ef0ef3-dirty) version 5.3.0
(sparc64-buildroot-linux-gnu)
compiled by GNU C version 4.4.5, GMP version 6.1.0, MPFR version 3.1.3,
MPC version 1.0.3
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory
"/home/test/buildroot/output/host/usr/sparc64-buildroot-linux-gnu/sysroot/usr/local/include"
#include "..." search starts here:
#include <...> search starts here:

/home/test/buildroot/output/host/usr/lib/gcc/sparc64-buildroot-linux-gnu/5.3.0/../../../../sparc64-buildroot-linux-gnu/include/c++/5.3.0

/home/test/buildroot/output/host/usr/lib/gcc/sparc64-buildroot-linux-gnu/5.3.0/../../../../sparc64-buildroot-linux-gnu/include/c++/5.3.0/sparc64-buildroot-linux-gnu

/home/test/buildroot/output/host/usr/lib/gcc/sparc64-buildroot-linux-gnu/5.3.0/../../../../sparc64-buildroot-linux-gnu/include/c++/5.3.0/backward

/home/test/buildroot/output/host/usr/lib/gcc/sparc64-buildroot-linux-gnu/5.3.0/include

/home/test/buildroot/output/host/usr/lib/gcc/sparc64-buildroot-linux-gnu/5.3.0/include-fixed

/home/test/buildroot/output/host/usr/lib/gcc/sparc64-buildroot-linux-gnu/5.3.0/../../../../sparc64-buildroot-linux-gnu/include

/home/test/buildroot/output/host/usr/sparc64-buildroot-linux-gnu/sysroot/usr/include
End of search list.
GNU C++ (Buildroot 2016.02-git-00574-g4ef0ef3-dirty) version 5.3.0
(sparc64-buildroot-linux-gnu)
compiled by GNU C version 4.4.5, GMP version 6.1.0, MPFR version 3.1.3,
MPC version 1.0.3
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: f99a20b2afe7fa95fb8df4625860a9b3
nohalo.cpp: In function 'void
vips_interpolate_nohalo_interpolate(VipsInterpolate*, void*, VipsRegion*,
double, double)':
nohalo.cpp:1571:1: error: unable to find a register to spill in class 'FP_REGS'
 }
 ^
nohalo.cpp:1571:1: error: this is the insn:
(insn 555 554 3791 8 (set (reg:DF 32 %f0)
(float:DF (reg:SI 1852 [ MEM[base: p_139, index: _138, offset: 0B]+-3
]))) nohalo.cpp:1463 155 {floatsidf2}
 (expr_list:REG_DEAD (reg:SI 1852 [ MEM[base: p_139, index: _138, offset:
0B]+-3 ])
(nil)))
nohalo.cpp:1571: confused by earlier errors, bailing out