From: Daniel Berlin <dberlin@dberlin.org>
To: Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
Cc: gcc-patches@gcc.gnu.org, David Edelsohn <dje@watson.ibm.com>
Subject: Re: Patch ping ^ 2
Date: Mon, 18 Oct 2004 15:00:00 -0000 [thread overview]
Message-ID: <D599D01D-2115-11D9-B44B-000D93B1B044@dberlin.org> (raw)
In-Reply-To: <20041018142533.GA29231@atrey.karlin.mff.cuni.cz>
On Oct 18, 2004, at 10:25 AM, Zdenek Dvorak wrote:
> Hello,
>
>>> 1) Unless your patch to make voperands represent output dependences
>>> again
>>> (http://gcc.gnu.org/ml/gcc-patches/2004-10/msg01437.html) gets
>>> into
>>> mainline, the rewrite of store motion
>>> (http://gcc.gnu.org/ml/gcc-patches/2004-09/msg01120.html) is the
>>> best
>>> choice.
>>
>> Regardless whether Dan's patch gets approved for mainline, the
>> original, unmodified patch is taking GCC in the wrong direction and
>> should
>> not be accepted.
>
> you cannot be serious. Unless the msg01437.html patch is accepted, the
> rewrite is the only sane possibility how to solve PR 17133 (serious
> misscompilations...)
This is almost true.
The other option is to disable LIM for 4.0 until it's fixed, if the
must-def patch doesn't go in.
However, you are correct that without that killing information, there
would be no good way to fix 17133 in 4.0 besides disabling or your
patch.
>
> And why do you assume that the direction in that the patch takes it is
> wrong? It is the way at least one other compiler (LLVM) uses.
Not quite. At least, I don't believe it's quite the same.
LLVM will hoist loads/sink stores if the addressing arithmetic for a
given load/store doesn't change.
It doesn't look like you do that anymore, but i can't quite tell.
IE they use the equivalent of single_reachable_address, called
PointerInvalidatedByLoop for loads, and an is_loop_invariant check for
stores, both of which it looks like you've removed (by removing
single_reachable_address).
Also, LLVM does it this way because they *don't* have a virtual form
for memory operands.
Open64 basically does what we were doing, except even more complex
because it's part of SSAPRE on the reverse flowgraph (they nicknamed it
SSUPRE, for single static use. They build an entirely new ssa form for
stores), and SSAPRE is insanely complex.
IBM's compiler does it more or less like we do now (since they have
virtual ssa form), only in ~500 lines of code. :)
> It is
> clean and very easy to understand and extend. Also once the
> msg01437.html is accepted (which it should, at least for 4.1, although
> I
> think it is a bit too intrusive for 4.0), it is trivial to make it take
> advantage of SSA form for virtual operands.
>
I don't see how it would look much different from what we have now if
you did.
I'd appreciate it if you could show me what you have in mind.
> Zdenek
next prev parent reply other threads:[~2004-10-18 14:56 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-17 20:43 Zdenek Dvorak
2004-10-17 20:50 ` Daniel Berlin
2004-10-17 21:28 ` Zdenek Dvorak
2004-10-17 21:49 ` Zdenek Dvorak
2004-10-17 23:34 ` Daniel Berlin
2004-10-17 23:56 ` Zdenek Dvorak
2004-10-18 1:18 ` Daniel Berlin
2004-10-18 6:50 ` Zdenek Dvorak
2004-10-18 8:37 ` Zdenek Dvorak
2004-10-18 14:12 ` David Edelsohn
2004-10-18 14:28 ` Zdenek Dvorak
2004-10-18 15:00 ` Daniel Berlin [this message]
2004-10-18 15:40 ` Zdenek Dvorak
-- strict thread matches above, loose matches on Subject: below --
2024-02-26 9:33 Patch ping^2 Jakub Jelinek
2024-02-26 9:38 ` Uros Bizjak
2024-02-26 16:26 ` Jan Hubicka
2021-03-19 9:57 Patch ping Jakub Jelinek
2021-03-29 15:19 ` Patch ping^2 Jakub Jelinek
2021-02-16 8:13 [PATCH] cfgrtl: Fix up fixup_partitions caused ICE [PR99085] Jakub Jelinek
2021-02-23 8:49 ` Patch ping Jakub Jelinek
2021-03-01 13:01 ` Patch ping^2 Jakub Jelinek
2020-03-10 12:28 Patch ping Jakub Jelinek
2020-03-17 12:10 ` Patch ping^2 Jakub Jelinek
2020-03-17 12:23 ` Richard Biener
2018-05-07 8:10 Jakub Jelinek
2018-04-05 8:35 Jakub Jelinek
2017-12-15 9:09 Jakub Jelinek
2017-11-06 16:22 Patch ping Jakub Jelinek
2017-11-14 17:07 ` Patch ping^2 Jakub Jelinek
2017-11-16 3:07 ` Jim Wilson
2017-04-18 14:21 Jakub Jelinek
2017-04-18 17:07 ` Jeff Law
2017-02-13 15:53 Jakub Jelinek
2017-02-13 16:45 ` Nathan Sidwell
2017-02-13 16:50 ` Jakub Jelinek
2017-02-13 17:37 ` Jakub Jelinek
2017-02-13 19:36 ` Nathan Sidwell
2017-02-14 15:07 ` Nathan Sidwell
2017-02-15 16:29 ` Jakub Jelinek
2012-09-05 16:34 Jakub Jelinek
2011-05-31 12:25 Patch ping #2 Jakub Jelinek
2011-05-31 18:19 ` Richard Henderson
2011-05-23 9:45 Eric Botcazou
2011-05-23 10:16 ` Richard Guenther
2011-05-23 12:01 ` Eric Botcazou
2011-05-23 13:34 ` Richard Guenther
2011-05-24 23:46 ` Eric Botcazou
2011-05-25 10:24 ` Richard Guenther
2010-02-23 20:38 patch ping^2 Jerry Quinn
2006-02-14 17:19 Patch ping Jakub Jelinek
2006-02-20 19:41 ` Patch ping^2 Jakub Jelinek
2005-12-09 0:05 Patch ping**2 Ben Elliston
2005-08-20 18:32 Patch ping^2 Uros Bizjak
2005-03-28 1:59 Patch ping**2 Feng Wang
2005-03-27 18:21 Tobias Schlüter
2005-03-28 4:05 ` Steve Kargl
2004-08-02 18:04 Patch ping ^2 Pat Haugen
2004-06-28 5:52 patch ping^2 Jerry Quinn
2004-06-10 21:36 Patch ping^2 Richard Guenther
2004-03-16 23:21 Zdenek Dvorak
2004-03-17 2:40 ` Roger Sayle
2004-03-17 4:58 ` Zdenek Dvorak
2004-03-19 8:14 ` Zdenek Dvorak
2004-03-19 8:14 ` Roger Sayle
2004-03-19 8:14 ` Zdenek Dvorak
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=D599D01D-2115-11D9-B44B-000D93B1B044@dberlin.org \
--to=dberlin@dberlin.org \
--cc=dje@watson.ibm.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=rakdver@atrey.karlin.mff.cuni.cz \
/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).