From: Jeff Law <law@redhat.com>
To: "Maciej W. Rozycki" <macro@linux-mips.org>, gcc-patches@gcc.gnu.org
Cc: "Paul Koning" <paulkoning@comcast.net>, "Martin Liška" <mliska@suse.cz>
Subject: Re: [PATCH] genemit: Handle `const_double_zero' rtx
Date: Tue, 15 Dec 2020 16:20:34 -0700 [thread overview]
Message-ID: <16ae1e4f-df95-b403-95d4-68708508c858@redhat.com> (raw)
In-Reply-To: <alpine.LFD.2.21.2012151946460.2104409@eddie.linux-mips.org>
On 12/15/20 1:38 PM, Maciej W. Rozycki wrote:
> Complement commit 20ab43b5cad6 ("RTL: Add `const_double_zero' syntactic
> rtx") and remove a commit c60d0736dff7 ("PDP11: Use `const_double_zero'
> to express double zero constant") build regression observed with the
> `pdp11-aout' target:
>
> genemit: Internal error: abort in gen_exp, at genemit.c:202
> make[2]: *** [Makefile:2427: s-emit] Error 1
>
> where a:
>
> (const_double 0 [0] 0 [0] 0 [0] 0 [0])
>
> rtx coming from:
>
> (parallel [
> (set (reg:CC 16)
> (compare:CC (abs:DF (match_operand:DF 1 ("general_operand") ("0,0")))
> (const_double 0 [0] 0 [0] 0 [0] 0 [0])))
> (set (match_operand:DF 0 ("nonimmediate_operand") ("=fR,Q"))
> (abs:DF (match_dup 1)))
> ])
>
> and ultimately `(const_double_zero)' referred in a named RTL insn cannot
> be interpreted. Handle the rtx then by supplying the constant 0 double
> operand requested, resulting in the following update to insn-emit.c code
> produced for the `pdp11-aout' target, relative to before the triggering
> commit:
>
> @@ -1514,7 +1514,7 @@ gen_absdf2_cc (rtx operand0 ATTRIBUTE_UN
> gen_rtx_COMPARE (CCmode,
> gen_rtx_ABS (DFmode,
> operand1),
> - const0_rtx)),
> + CONST_DOUBLE_ATOF ("0", VOIDmode))),
> gen_rtx_SET (operand0,
> gen_rtx_ABS (DFmode,
> copy_rtx (operand1)))));
> @@ -1555,7 +1555,7 @@ gen_negdf2_cc (rtx operand0 ATTRIBUTE_UN
> gen_rtx_COMPARE (CCmode,
> gen_rtx_NEG (DFmode,
> operand1),
> - const0_rtx)),
> + CONST_DOUBLE_ATOF ("0", VOIDmode))),
> gen_rtx_SET (operand0,
> gen_rtx_NEG (DFmode,
> copy_rtx (operand1)))));
> @@ -1790,7 +1790,7 @@ gen_muldf3_cc (rtx operand0 ATTRIBUTE_UN
> gen_rtx_MULT (DFmode,
> operand1,
> operand2),
> - const0_rtx)),
> + CONST_DOUBLE_ATOF ("0", VOIDmode))),
> gen_rtx_SET (operand0,
> gen_rtx_MULT (DFmode,
> copy_rtx (operand1),
> @@ -1942,7 +1942,7 @@ gen_divdf3_cc (rtx operand0 ATTRIBUTE_UN
> gen_rtx_DIV (DFmode,
> operand1,
> operand2),
> - const0_rtx)),
> + CONST_DOUBLE_ATOF ("0", VOIDmode))),
> gen_rtx_SET (operand0,
> gen_rtx_DIV (DFmode,
> copy_rtx (operand1),
>
> gcc/
> * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
> rtx.
> ---
> Hi,
>
> I have verified this with a bootstrap of a `powerpc64le-linux-gnu' native
> compiler, and that it builds a `pdp11-aout' cross-compiler up to the point
> of failing to find target headers. I have no means to verify it further,
> the target configuration is too exotic to me, so I will appreciate help.
>
> NB this only triggers with insn-emit.c code produced from named RTL insns
> for the purpose of calling them directly, which does not apply for the VAX
> backend, as it does not give names to any insns using `const_double_zero'.
> Which is why I didn't spot this issue with all my VAX verification.
>
> Thanks to Martin for bringing my attention to this regression, and sorry
> to miss this in testing.
>
> OK to apply?
Presumably you can't use CONST0_RTX (mode) here? Assuming that's the
case, then this is fine.
jeff
next prev parent reply other threads:[~2020-12-15 23:20 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-15 20:38 Maciej W. Rozycki
2020-12-15 23:20 ` Jeff Law [this message]
2020-12-16 11:35 ` Maciej W. Rozycki
2020-12-16 12:28 ` Richard Sandiford
2020-12-16 13:30 ` Maciej W. Rozycki
2021-01-05 23:51 ` Maciej W. Rozycki
2021-01-06 16:34 ` Richard Sandiford
2021-01-08 2:12 ` Maciej W. Rozycki
2020-12-16 19:19 ` Paul Koning
2020-12-16 20:43 ` Maciej W. Rozycki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=16ae1e4f-df95-b403-95d4-68708508c858@redhat.com \
--to=law@redhat.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=macro@linux-mips.org \
--cc=mliska@suse.cz \
--cc=paulkoning@comcast.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).