[Bug target/60071] New: [4.9 Regression] [SH] internal compiler error: in final_scan_insn, at final.c:2963
kkojima at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Feb 5 05:09:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60071
Bug ID: 60071
Summary: [4.9 Regression] [SH] internal compiler error: in
final_scan_insn, at final.c:2963
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: kkojima at gcc dot gnu.org
CC: olegendo at gcc dot gnu.org
Target: sh*-*-*
SH fails to build on trunk with
../../../ORIG/trunk/libgcc/fp-bit.c:1437:1: error: could not split insn
}
^
(insn 119 38 83 (parallel [
(set (reg:SI 0 r0 [orig:160 D.2909 ] [160])
(minus:SI (const_int -2147483648 [0xffffffff80000000])
(reg:SI 147 t)))
(clobber (reg:SI 147 t))
]) ../../../ORIG/trunk/libgcc/fp-bit.c:1429 404 {*mov_t_msb_neg}
(expr_list:REG_DEAD (reg:SI 147 t)
(expr_list:REG_UNUSED (reg:SI 147 t)
(nil))))
../../../ORIG/trunk/libgcc/fp-bit.c:1437:1: internal compiler error: in
final_scan_insn, at final.c:2963
0x859edbf _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
../../ORIG/trunk/gcc/rtl-error.c:109
during building libgcc after the revision
r207460 | jakub | 2014-02-04 21:14:52 +0900 (Tue, 04 Feb 2014) | 6 lines
PR rtl-optimization/57915
* recog.c (simplify_while_replacing): If all unary/binary/relational
operation arguments are constant, attempt to simplify those.
Here is a reduced test case for -O1:
int
foo (int class, int sign)
{
if (__builtin_expect (class == 4, 0))
return (sign
? (-((int) ((~(unsigned)0) >> 1)))-1
: ((int) ((~(unsigned)0) >> 1)));
}
It looks that now *mov_t_msb_neg define_insn_and_split is produced
in ira pass and has no chance to split.
More information about the Gcc-bugs
mailing list