public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
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

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