public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: [tree-ssa] Lazy updating of stmt operands
@ 2003-12-15 20:47 Chris Lattner
  0 siblings, 0 replies; 43+ messages in thread
From: Chris Lattner @ 2003-12-15 20:47 UTC (permalink / raw)
  To: Zdenek Dvorak; +Cc: Andrew MacLeod, Jeff Law, Diego Novillo, gcc mailing list


Zdenek Dvorak wrote:
> suppose a statement is changed.  To update the immediate uses of this
> statement, you would need to go to the defining statement for each
> variable, find yourself in a (possibly very long) list of uses and
> make the update.  This would be a disaster for the performance.

This is exactly what I was talking about here:
http://gcc.gnu.org/ml/gcc/2003-12/msg00691.html

Imagine if the value you are using is the constant "0".  If you represent
use chains of the 0, there may be "several" instructions on the list.  The
lists can get large.  In LLVM, this is a constant time operation.

-Chris

-- 
http://llvm.cs.uiuc.edu/
http://www.nondot.org/~sabre/Projects/


^ permalink raw reply	[flat|nested] 43+ messages in thread
* Re: [tree-ssa] Lazy updating of stmt operands
@ 2003-12-11 22:31 Chris Lattner
  2003-12-12  3:14 ` law
  0 siblings, 1 reply; 43+ messages in thread
From: Chris Lattner @ 2003-12-11 22:31 UTC (permalink / raw)
  To: law; +Cc: Zdenek Dvorak, gcc


Jeff Law wrote:

> While it's nice to think about a world where you always have immediate
> uses, you end up with FUD chains if you do that -- with ultimately a
> tangled nest of pointers that is bloody impossible to work with in the
> real world.

Uh, no.  Here's a counter-example:
http://llvm.cs.uiuc.edu/

Having efficient, transparently & efficiently updated immediate use
information is extremely valuable for a wide variety of optimizations.

-Chris

-- 
http://llvm.cs.uiuc.edu/
http://www.nondot.org/~sabre/Projects/

^ permalink raw reply	[flat|nested] 43+ messages in thread
* [tree-ssa] Lazy updating of stmt operands
@ 2003-12-07 16:22 Zdenek Dvorak
  2003-12-07 17:14 ` Diego Novillo
  0 siblings, 1 reply; 43+ messages in thread
From: Zdenek Dvorak @ 2003-12-07 16:22 UTC (permalink / raw)
  To: gcc

Hello,

what is the purpose of having lists of stmt operands updated on demand?
I thought that it is for performance reasons, but this seems not to be
the case as all the statements are anyway scanned in the final dce pass,
so they end up in updated forms and we cannot gain anything elsewhere.

Why I am interested in this is that it prevents us from having also
def-use edges (immediate uses) provided explicitly, which would be
convenient in two cases I have encountered recently.

Zdenek

^ permalink raw reply	[flat|nested] 43+ messages in thread

end of thread, other threads:[~2003-12-17  3:30 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-12-15 20:47 [tree-ssa] Lazy updating of stmt operands Chris Lattner
  -- strict thread matches above, loose matches on Subject: below --
2003-12-11 22:31 Chris Lattner
2003-12-12  3:14 ` law
2003-12-12  3:58   ` Chris Lattner
2003-12-12 19:25     ` Andrew MacLeod
2003-12-12 19:42       ` Zdenek Dvorak
2003-12-12 19:45         ` Andrew MacLeod
2003-12-12 19:54           ` Chris Lattner
2003-12-12 19:55             ` Andrew MacLeod
2003-12-12 21:26               ` Diego Novillo
2003-12-12 19:57       ` Chris Lattner
2003-12-13 16:02         ` Andrew MacLeod
2003-12-14  3:39           ` Chris Lattner
2003-12-15 23:41           ` law
2003-12-16  6:02             ` Andrew MacLeod
2003-12-07 16:22 Zdenek Dvorak
2003-12-07 17:14 ` Diego Novillo
2003-12-07 17:28   ` Zdenek Dvorak
2003-12-07 17:36     ` Diego Novillo
2003-12-07 18:09       ` Zdenek Dvorak
2003-12-11 19:39         ` law
2003-12-07 22:20       ` Steven Bosscher
2003-12-09 14:30         ` Andrew MacLeod
2003-12-09 20:40           ` Zdenek Dvorak
2003-12-11 19:41           ` law
2003-12-11 19:38       ` law
2003-12-11 19:52         ` Zdenek Dvorak
2003-12-11 22:36         ` Zdenek Dvorak
2003-12-11 23:34           ` Andrew MacLeod
2003-12-15 19:10           ` Andrew MacLeod
2003-12-15 19:19             ` Zdenek Dvorak
2003-12-15 20:55               ` Andrew MacLeod
2003-12-15 21:06                 ` Zdenek Dvorak
2003-12-15 21:39                   ` Andrew MacLeod
2003-12-15 21:49                     ` Zdenek Dvorak
2003-12-15 22:04                       ` Andrew MacLeod
2003-12-15 22:39                         ` law
2003-12-17  4:56                       ` law
2003-12-16 23:32               ` Andrew MacLeod
2003-12-17  0:09                 ` Zdenek Dvorak
2003-12-17  0:21                   ` Andrew MacLeod
2003-12-17  3:28                 ` law
2003-12-15 19:28             ` Diego Novillo

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