public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
To: Max Filippov <jcmvbkbc@gmail.com>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>
Subject: Re: [PATCH] xtensa: Prevent emitting integer additions of constant zero
Date: Wed, 17 Aug 2022 18:51:58 +0900	[thread overview]
Message-ID: <dd3f314d-6a90-cfb4-3329-686d5e6ff009@yahoo.co.jp> (raw)
In-Reply-To: <CAMo8BfJVfU-GPcgBuz3nFLjT82iL+QAZtSsVgCD9wfdwE8KODw@mail.gmail.com>

On 2022/08/17 4:58, Max Filippov wrote:
> Hi Suwa-san,
Hi!

> 
> On Tue, Aug 16, 2022 at 5:42 AM Takayuki 'January June' Suwa
> <jjsuwa_sys3175@yahoo.co.jp> wrote:
>>
>> In a few cases, obviously omitable add instructions can be emitted via
>> invoking gen_addsi3.
>>
>> gcc/ChangeLog:
>>
>>         * config/xtensa/xtensa.md (addsi3_internal): Rename from "addsi3".
>>         (addsi3): New define_expand in order to reject integer additions of
>>         constant zero.
>> ---
>>  gcc/config/xtensa/xtensa.md | 14 +++++++++++++-
>>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> with this change a bunch of tests fail to build with the following error:

Ah, sorry, I want to withdraw this patch.

>> In a few cases

As a matter of fact, "in a few cases" is just only one:

[xtensa_expand_epilogue() in /gcc/config/xtensa/xtensa.cc]
>      if (cfun->machine->current_frame_size > 0)
>	{
>	  if (frame_pointer_needed || /* always reachable with addi */
>	      cfun->machine->current_frame_size > 1024 ||
>	      cfun->machine->current_frame_size <= 127)
>	    {
>	      if (cfun->machine->current_frame_size <= 127)
>		offset = cfun->machine->current_frame_size;
>	      else
>		offset = cfun->machine->callee_save_size;
>
>	      emit_insn (gen_addsi3 (stack_pointer_rtx,
>				     stack_pointer_rtx,
>				     GEN_INT (offset)));	// offset can be zero!
>	    }

And adding "define_expand" only to deal with one rare case had too much impact, as you saw...

>   undefined reference to `__addsi3'
> 
> E.g. gcc.c-torture/execute/20000519-1.c
> or gcc.c-torture/execute/20070919-1.c
> 

  reply	other threads:[~2022-08-17  9:52 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-16 12:40 Takayuki 'January June' Suwa
2022-08-16 19:58 ` Max Filippov
2022-08-17  9:51   ` Takayuki 'January June' Suwa [this message]
2022-08-17 18:43     ` Max Filippov

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=dd3f314d-6a90-cfb4-3329-686d5e6ff009@yahoo.co.jp \
    --to=jjsuwa_sys3175@yahoo.co.jp \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jcmvbkbc@gmail.com \
    /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).