public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Philipp Tomsich <philipp.tomsich@vrull.eu>
To: Richard Biener <richard.guenther@gmail.com>
Cc: Thiago Jung Bauermann <thiago.bauermann@linaro.org>,
	Jeff Law <jeffreyalaw@gmail.com>,
	 Tamar Christina <Tamar.Christina@arm.com>,
	Andrew Pinski <pinskia@gmail.com>,
	 Manolis Tsamis <manolis.tsamis@vrull.eu>,
	Palmer Dabbelt <palmer@rivosinc.com>,
	 Kito Cheng <kito.cheng@gmail.com>,
	"gcc-patches@gcc.gnu.org" <gcc-patches@gcc.gnu.org>
Subject: Re: [PATCH 2/2] cprop_hardreg: Enable propagation of the stack pointer if possible.
Date: Thu, 22 Jun 2023 09:58:41 +0200	[thread overview]
Message-ID: <CAAeLtUAbK2PPuQ1kJxJK-n-1Y2nagnacHuOrXX8+npRMjUdbAg@mail.gmail.com> (raw)
In-Reply-To: <CAFiYyc2c2wdy+K2t-b-gvED2-abd5L0R0KNoVj1oH_gUA0viYQ@mail.gmail.com>

This should be covered by PR110308 (proposed fix attached there) and PR110313.
Our bootstrap runs are still in progress to confirm.


On Thu, 22 Jun 2023 at 09:40, Richard Biener <richard.guenther@gmail.com> wrote:
>
> On Thu, Jun 22, 2023 at 1:42 AM Thiago Jung Bauermann
> <thiago.bauermann@linaro.org> wrote:
> >
> >
> > Hello,
> >
> > Jeff Law <jeffreyalaw@gmail.com> writes:
> >
> > > On 6/19/23 22:52, Tamar Christina wrote:
> > >
> > >>> It's a bit hackish, but could we reject the stack pointer for operand1 in the
> > >>> stack-tie?  And if we do so, does it help?
> > >> Yeah this one I had to defer until later this week to look at closer because what I'm
> > >> wondering about is whether the optimization should apply to frame related
> > >> RTX as well.
> > >> Looking at the description of RTX_FRAME_RELATED_P that this optimization may
> > >> end up de-optimizing RISC targets by creating an offset that is larger than offset
> > >> which can be used from a SP making reload having to spill.  i.e. sometimes the
> > >> move was explicitly done. So perhaps it should not apply it to
> > >> RTX_FRAME_RELATED_P in find_oldest_value_reg and copyprop_hardreg_forward_1?
> > >> Other parts of this pass already seems to bail out in similar situations. So I needed
> > >> to
> > >> write some testcases to check what would happen in these cases hence the deferral.
> > >> to later in the week.
> > > Rejecting for RTX_FRAME_RELATED_P would seem reasonable and probably better in general to
> > > me.  The cases where we're looking to clean things up aren't really in the
> > > prologue/epilogue, but instead in the main body after register elimination has turned fp
> > > into sp + offset, thus making all kinds of things no longer valid.
> >
> > The problems I reported were fixed by commits:
> >
> > 580b74a79146 "aarch64: Robustify stack tie handling"
> > 079f31c55318 "aarch64: Fix gcc.target/aarch64/sve/pcs failures"
> >
> > Thanks!
> >
> > But unfortunately I'm still seeing bootstrap failures (ICE segmentation
> > fault) in today's trunk with build config bootstrap-lto in both
> > armv8l-linux-gnueabihf and aarch64-linux-gnu.
>
> If there's not yet a bugreport for this please make sure to open one so
> this issue doesn't get lost.
>
> > If I revert commit 6a2e8dcbbd4b "cprop_hardreg: Enable propagation of
> > the stack pointer if possible" from trunk then both bootstraps succeed.
> >
> > Here's the command I'm using to build on armv8l:
> >
> > ~/src/configure \
> >     SHELL=/bin/bash \
> >     --with-gnu-as \
> >     --with-gnu-ld \
> >     --disable-libmudflap \
> >     --enable-lto \
> >     --enable-shared \
> >     --without-included-gettext \
> >     --enable-nls \
> >     --with-system-zlib \
> >     --disable-sjlj-exceptions \
> >     --enable-gnu-unique-object \
> >     --enable-linker-build-id \
> >     --disable-libstdcxx-pch \
> >     --enable-c99 \
> >     --enable-clocale=gnu \
> >     --enable-libstdcxx-debug \
> >     --enable-long-long \
> >     --with-cloog=no \
> >     --with-ppl=no \
> >     --with-isl=no \
> >     --disable-multilib \
> >     --with-float=hard \
> >     --with-fpu=neon-fp-armv8 \
> >     --with-mode=thumb \
> >     --with-arch=armv8-a \
> >     --enable-threads=posix \
> >     --enable-multiarch \
> >     --enable-libstdcxx-time=yes \
> >     --enable-gnu-indirect-function \
> >     --disable-werror \
> >     --enable-checking=yes \
> >     --enable-bootstrap \
> >     --with-build-config=bootstrap-lto \
> >     --enable-languages=c,c++,fortran,lto \
> >     && make \
> >         profiledbootstrap \
> >         SHELL=/bin/bash \
> >         -w \
> >         -j 40 \
> >         CFLAGS_FOR_BUILD="-pipe -g -O2" \
> >         CXXFLAGS_FOR_BUILD="-pipe -g -O2" \
> >         LDFLAGS_FOR_BUILD="-static-libgcc" \
> >         MAKEINFOFLAGS=--force \
> >         BUILD_INFO="" \
> >         MAKEINFO=echo
> >
> > And here's the slightly different one for aarch64-linux:
> >
> > ~/src/configure \
> >     SHELL=/bin/bash \
> >     --with-gnu-as \
> >     --with-gnu-ld \
> >     --disable-libmudflap \
> >     --enable-lto \
> >     --enable-shared \
> >     --without-included-gettext \
> >     --enable-nls \
> >     --with-system-zlib \
> >     --disable-sjlj-exceptions \
> >     --enable-gnu-unique-object \
> >     --enable-linker-build-id \
> >     --disable-libstdcxx-pch \
> >     --enable-c99 \
> >     --enable-clocale=gnu \
> >     --enable-libstdcxx-debug \
> >     --enable-long-long \
> >     --with-cloog=no \
> >     --with-ppl=no \
> >     --with-isl=no \
> >     --disable-multilib \
> >     --enable-fix-cortex-a53-835769 \
> >     --enable-fix-cortex-a53-843419 \
> >     --with-arch=armv8-a \
> >     --enable-threads=posix \
> >     --enable-multiarch \
> >     --enable-libstdcxx-time=yes \
> >     --enable-gnu-indirect-function \
> >     --disable-werror \
> >     --enable-checking=yes \
> >     --enable-bootstrap \
> >     --with-build-config=bootstrap-lto \
> >     --enable-languages=c,c++,fortran,lto \
> >     && make \
> >         profiledbootstrap \
> >         SHELL=/bin/bash \
> >         -w \
> >         -j 40 \
> >         LDFLAGS_FOR_TARGET="-Wl,-fix-cortex-a53-843419" \
> >         CFLAGS_FOR_BUILD="-pipe -g -O2" \
> >         CXXFLAGS_FOR_BUILD="-pipe -g -O2" \
> >         LDFLAGS_FOR_BUILD="-static-libgcc" \
> >         MAKEINFOFLAGS=--force \
> >         BUILD_INFO="" \
> >         MAKEINFO=echo
> >
> > --
> > Thiago

  reply	other threads:[~2023-06-22  7:58 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-25 12:35 [PATCH 0/2] RISC-V: New pass to optimize calculation of offsets for memory operations Manolis Tsamis
2023-05-25 12:35 ` [PATCH 1/2] Implementation of new RISCV optimizations pass: fold-mem-offsets Manolis Tsamis
2023-05-25 13:01   ` Richard Biener
2023-05-25 13:25     ` Manolis Tsamis
2023-05-25 13:31     ` Jeff Law
2023-05-25 13:50       ` Richard Biener
2023-05-25 14:02         ` Manolis Tsamis
2023-05-29 23:30           ` Jeff Law
2023-05-31 12:19             ` Manolis Tsamis
2023-05-31 14:00               ` Jeff Law
2023-05-25 14:13         ` Jeff Law
2023-05-25 14:18           ` Philipp Tomsich
2023-06-08  5:37   ` Jeff Law
2023-06-12  7:36     ` Manolis Tsamis
2023-06-12 14:37       ` Jeff Law
2023-06-09  0:57   ` Jeff Law
2023-06-12  7:32     ` Manolis Tsamis
2023-06-12 21:58       ` Jeff Law
2023-06-15 17:34         ` Manolis Tsamis
2023-06-10 15:49   ` Jeff Law
2023-06-12  7:41     ` Manolis Tsamis
2023-06-12 21:36       ` Jeff Law
2023-05-25 12:35 ` [PATCH 2/2] cprop_hardreg: Enable propagation of the stack pointer if possible Manolis Tsamis
2023-05-25 13:38   ` Jeff Law
2023-05-31 12:15     ` Manolis Tsamis
2023-06-07 22:16       ` Jeff Law
2023-06-07 22:18   ` Jeff Law
2023-06-08  6:15     ` Manolis Tsamis
2023-06-15 20:13     ` Philipp Tomsich
2023-06-19 16:57       ` Thiago Jung Bauermann
2023-06-19 17:07         ` Manolis Tsamis
2023-06-19 23:40         ` Andrew Pinski
2023-06-19 23:48           ` Andrew Pinski
2023-06-20  2:16             ` Jeff Law
2023-06-20  4:52               ` Tamar Christina
2023-06-20  5:00                 ` Jeff Law
2023-06-21 23:42                   ` Thiago Jung Bauermann
2023-06-22  7:37                     ` Richard Biener
2023-06-22  7:58                       ` Philipp Tomsich [this message]
2023-05-25 13:42 ` [PATCH 0/2] RISC-V: New pass to optimize calculation of offsets for memory operations Jeff Law
2023-05-25 13:57   ` Manolis Tsamis
2023-06-15 15:04   ` Jeff Law
2023-06-15 15:30     ` Manolis Tsamis
2023-06-15 15:56       ` Jeff Law
2023-06-18 18:11       ` 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=CAAeLtUAbK2PPuQ1kJxJK-n-1Y2nagnacHuOrXX8+npRMjUdbAg@mail.gmail.com \
    --to=philipp.tomsich@vrull.eu \
    --cc=Tamar.Christina@arm.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jeffreyalaw@gmail.com \
    --cc=kito.cheng@gmail.com \
    --cc=manolis.tsamis@vrull.eu \
    --cc=palmer@rivosinc.com \
    --cc=pinskia@gmail.com \
    --cc=richard.guenther@gmail.com \
    --cc=thiago.bauermann@linaro.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).