From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 5F9543851173; Wed, 26 Oct 2022 02:16:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5F9543851173 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1666750604; bh=YOo5cR4E2n7dGQR3lwgz+QLhmzh7LJbNwTMBxChXy8A=; h=From:To:Subject:Date:In-Reply-To:References:From; b=cZXzL+ECUaCu9gHJP2+zPexgszaeegFP4RsE+cq9LYFYP3M2fyK7g2nAQcZsjznNe VlmFu7tgLMx/qhlSrNi8nN9dPzOQhdY4+d22pI+Sn1Kwc4L6t6RGvlLMbaBWDPKrMr RpNMvkPEqLxtYk75PPC7qE+9ujSjFhyxEB/zL1zg= From: "crazylht at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug rtl-optimization/107057] [10/11/12/13 Regression] ICE in extract_constrain_insn, at recog.cc:2692 Date: Wed, 26 Oct 2022 02:16:43 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: rtl-optimization X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: ice-on-valid-code, ra X-Bugzilla-Severity: normal X-Bugzilla-Who: crazylht at gmail dot com X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 10.5 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D107057 --- Comment #6 from Hongtao.liu --- (In reply to Hongtao.liu from comment #5) > I'm testing >=20 > modified gcc/lra-constraints.cc > @@ -4382,7 +4382,14 @@ curr_insn_transform (bool check_only_p) > (op, (enum reg_class) goal_alt[i]) =3D=3D NO_REGS) > || no_input_reloads_p)) > { > - rtx tem =3D force_const_mem (mode, op); > + rtx tem; > + > + /* PR 107057, for same constant pool, don't bother > + force_const_mem again, just reuse the matched op. */ > + if (goal_alt_matches[i] >=3D 0) > + tem =3D *curr_id->operand_loc[goal_alt_matches[i]]; > + else > + tem =3D force_const_mem (mode, op); >=20=20 > change_p =3D true; > if (subreg !=3D NULL_RTX) It failed bootstrap since there's are matches ops with differnce mode (define_insn "*fop_xf_4_i387" [(set (match_operand:XF 0 "register_operand" "=3Df,f") (match_operator:XF 3 "binary_fp_operator" [(float_extend:XF (match_operand:MODEF 1 "nonimmediate_operand" "fm,0")) (match_operand:XF 2 "register_operand" "0,f")]))] I don't know if there're other usages, so for safety, i'll just invalid goal_alt_matches when force_const_mem.=