public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: "Roger Sayle" <roger@nextmovesoftware.com>
To: "'Jeff Law'" <jeffreyalaw@gmail.com>
Cc: "'GCC Patches'" <gcc-patches@gcc.gnu.org>,
	"'Segher Boessenkool'" <segher@kernel.crashing.org>
Subject: Re: [committed] Convert xstormy16 to LRA
Date: Tue, 2 May 2023 00:37:14 +0100	[thread overview]
Message-ID: <009601d97c85$de708170$9b518450$@nextmovesoftware.com> (raw)


Jeff Law wrote:
> This patch converts the xstormy16 patch to LRA.  It introduces a code 
> quality regression in the shiftsi testcase, but it also fixes numerous 
> aborts/errors.  IMHO it's a good tradeoff.

I've investigated the shiftsi regression on xstormy16 and the underlying
cause
appears to be an interaction between lower-subreg's "subreg3" pass and the
new LRA.  Previously, reload was not phased by the "clobbers" that are 
introduced by the decompose_multiword_subregs function, but they appear
to interfere with LRA's register assignments.

combine's make_extra_copies introduces a new pseudo-to-pseudo move,
but when subreg3 inserts a naked clobber between the original and the
new move, LRA is recombine theses pseudos back to the same allocno.

The shiftsi.cc regression on xstormy16 is fixed by adding
-fno-split-wide-types.
In fact, if all the regression tests pass, I'd suggest that
flag_split_wide-types = false
should be the default on xstormy16 now that we've moved to LRA.  And if this
works for xstormy16, it might be useful to other targets for the LRA
transition;
it's a difference in behaviour between reload and LRA that could potentially
affect multiple targets.

For reference, xstormy16 has a post-reload define_insn_and_split for movsi
(i.e. a multi-word move).  If this insn was split during split1 (i.e. before
subreg3)
there wouldn't be a problem (no clobber), but alas the target's
xstormy16_split_move
function has several asserts insisting this only get called when
reload_completed.

I hope this is useful.
Cheers,
Roger
--



             reply	other threads:[~2023-05-01 23:37 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-01 23:37 Roger Sayle [this message]
2023-05-02 12:40 ` Paul Koning
2023-05-02 13:18   ` Roger Sayle
2023-05-02 13:49     ` Segher Boessenkool
2023-05-02 16:20       ` Roger Sayle
2023-05-02 21:55         ` Segher Boessenkool
2023-05-02 14:11     ` Paul Koning
2023-05-02 15:47       ` Segher Boessenkool
2023-05-02 15:57 ` Jeff Law
2023-05-11 15:05 ` Hans-Peter Nilsson
2023-05-11 16:55   ` Paul Koning
2023-05-11 18:15     ` Jeff Law
2023-05-11 18:32       ` Hans-Peter Nilsson
2023-05-12 13:53   ` Hans-Peter Nilsson
2023-05-12 14:01     ` Hans-Peter Nilsson
2023-05-12 14:04     ` Roger Sayle
2023-05-13  0:56       ` Hans-Peter Nilsson
2023-05-13  1:11         ` Hans-Peter Nilsson
  -- strict thread matches above, loose matches on Subject: below --
2023-05-01 13:42 Jeff Law

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='009601d97c85$de708170$9b518450$@nextmovesoftware.com' \
    --to=roger@nextmovesoftware.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jeffreyalaw@gmail.com \
    --cc=segher@kernel.crashing.org \
    /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).