https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82045
Bug ID: 82045 Summary: [8 regression] SPARC bootstrap broken: ICE in emit_library_call_value_1, at calls.c:4565 Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap Assignee: unassigned at gcc dot gnu.org Reporter: ro at gcc dot gnu.org CC: ebotcazou at gcc dot gnu.org, rsandifo at gcc dot gnu.org Target Milestone: --- Target: sparc-sun-solaris2.11 Within the last day, SPARC bootstrap got broken building the stage1 libgcc: during RTL pass: expand /vol/gcc/src/hg/trunk/local/libgcc/libgcc2.c: In function '__multc3': /vol/gcc/src/hg/trunk/local/libgcc/libgcc2.c:1990:17: internal compiler error: in emit_library_call_value_1, at calls.c:4565 if (isnan (x) && isnan (y)) ^ 0x9759f3 emit_library_call_value_1 /vol/gcc/src/hg/trunk/local/gcc/calls.c:4564 0x977e33 emit_library_call(rtx_def*, libcall_type, machine_mode, int, ...) /vol/gcc/src/hg/trunk/local/gcc/calls.c:5148 0x17330e7 sparc_emit_float_lib_cmp(rtx_def*, rtx_def*, rtx_code) /vol/gcc/src/hg/trunk/local/gcc/config/sparc/sparc.c:8140 0x171f887 emit_scc_insn(rtx_def**) /vol/gcc/src/hg/trunk/local/gcc/config/sparc/sparc.c:3174 0x19a0b8f gen_cstoretf4(rtx_def*, rtx_def*, rtx_def*, rtx_def*) /vol/gcc/src/hg/trunk/local/gcc/config/sparc/sparc.md:779 0xfaa32f insn_gen_fn::operator()(rtx_def*, rtx_def*, rtx_def*, rtx_def*) const /vol/gcc/src/hg/trunk/local/gcc/recog.h:303 0xfa9c43 maybe_gen_insn(insn_code, unsigned int, expand_operand*) /vol/gcc/src/hg/trunk/local/gcc/optabs.c:7082 0xfaa00f maybe_expand_insn(insn_code, unsigned int, expand_operand*) /vol/gcc/src/hg/trunk/local/gcc/optabs.c:7112 0xb6eb1f emit_cstore(rtx_def*, insn_code, rtx_code, machine_mode, machine_mode, int, rtx_def*, rtx_def*, int, machine_mode) /vol/gcc/src/hg/trunk/local/gcc/expmed.c:5357 0xb6f84b emit_store_flag_1 /vol/gcc/src/hg/trunk/local/gcc/expmed.c:5600 0xb706ef emit_store_flag(rtx_def*, rtx_code, rtx_def*, rtx_def*, machine_mode, int, int) /vol/gcc/src/hg/trunk/local/gcc/expmed.c:5860 0xb70e37 emit_store_flag_force(rtx_def*, rtx_code, rtx_def*, rtx_def*, machine_mode, int, int) /vol/gcc/src/hg/trunk/local/gcc/expmed.c:5994 0xbac1c3 do_store_flag /vol/gcc/src/hg/trunk/local/gcc/expr.c:11546 0xb9f393 expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) /vol/gcc/src/hg/trunk/local/gcc/expr.c:9288 0xba2093 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /vol/gcc/src/hg/trunk/local/gcc/expr.c:9815 0xb987cb expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /vol/gcc/src/hg/trunk/local/gcc/expr.c:8105 0xb73733 expand_expr /vol/gcc/src/hg/trunk/local/gcc/expr.h:276 0xb96b67 expand_operands(tree_node*, tree_node*, rtx_def*, rtx_def**, rtx_def**, expand_modifier) /vol/gcc/src/hg/trunk/local/gcc/expr.c:7704 0xba0d0b expand_expr_real_2(separate_ops*, rtx_def*, machine_mode, expand_modifier) /vol/gcc/src/hg/trunk/local/gcc/expr.c:9606 0x999073 expand_gimple_stmt_1 /vol/gcc/src/hg/trunk/local/gcc/cfgexpand.c:3691 A reghunt identified this patch [7/77] Add scalar_float_mode This patch adds a scalar_float_mode class, which wraps a mode enum that is known to satisfy SCALAR_FLOAT_MODE_P. Things like "SFmode" now give a scalar_float_mode object instead of a machine_mode. This in turn needs a change to the real.h format_helper, so that it can accept both machine_modes and scalar_float_modes. 2017-08-30 Richard Sandiford <richard.sandif...@linaro.org> Alan Hayward <alan.hayw...@arm.com> David Sherwood <david.sherw...@arm.com> gcc/ * coretypes.h (scalar_float_mode): New type. * machmode.h (mode_traits::from_int): Use machine_mode if USE_ENUM_MODES is defined. as the culprit. Rainer