https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67029
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
CC| |vmakarov at gcc dot gnu.org
Component|c |rtl-optimization
Summary|gcc-5.2.0 unable to find a |[5/6 regression] gcc-5.2.0
|register to spill with O3 |unable to find a register
|fsched-pressure |to spill with O3
|fschedule-insns |fsched-pressure
| |fschedule-insns
Ever confirmed|0 |1
--- Comment #8 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
markus@x4 tmp % cat curve25519-donna-c64.i
extern void fn2 (char *);
__int128 a, b;
int
fn1 (void)
{
char e[32];
fn2 (e);
b = 9 * (a >> 1);
return 0;
}
markus@x4 tmp % gcc -O2 -fstack-protector -fschedule-insns -c
curve25519-donna-c64.i
curve25519-donna-c64.i: In function ‘fn1’:
curve25519-donna-c64.i:10:1: error: unable to find a register to spill
}
^
curve25519-donna-c64.i:10:1: error: this is the insn:
(insn 15 42 43 2 (parallel [
(set (reg:TI 104 [orig:97 D.1849 ] [97])
(mult:TI (zero_extend:TI (subreg/j:DI (reg:TI 104 [orig:97
D.1849 ] [97]) 0))
(zero_extend:TI (reg:DI 98))))
(clobber (reg:CC 17 flags))
]) curve25519-donna-c64.i:8 328 {*umulditi3_1}
(expr_list:REG_DEAD (reg:DI 98)
(expr_list:REG_UNUSED (reg:CC 17 flags)
(expr_list:REG_EQUAL (mult:TI (zero_extend:TI (subreg:DI (reg:TI 92
[ D.1849 ]) 0))
(const_int 9 [0x9]))
(nil)))))
curve25519-donna-c64.i:10: confused by earlier errors, bailing out