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
--
next 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).