public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Diego Novillo <dnovillo@redhat.com>
To: Pop Sébastian <pop@gauvain.u-strasbg.fr>
Cc: Chris Lattner <sabre@nondot.org>, gcc@gcc.gnu.org
Subject: Re: [tree-ssa] AST optimizer in C++?
Date: Sun, 25 Aug 2002 15:35:00 -0000	[thread overview]
Message-ID: <20020825223508.GA5066@tornado.toronto.redhat.com> (raw)
In-Reply-To: <20020825164825.GA2934@gauvain.u-strasbg.fr>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1540 bytes --]

On Sun, 25 Aug 2002, Pop Sébastian wrote:

> A good idea I saw in the LLVM is that the SSA infromation is
> stored directly in the operations stream: ie. (from
> LLVMCompilationStrategy.pdf) <result> = phi <type> [<val0>,
> <label0>], ..., [<valN>, <labelN>]
> 
> Diego, maybe it is worth to include PHI nodes directly as a
> SIMPLE extension?
>
I am not too keen on SSA re-writing schemes.  When you encode SSA
into your IR, you have the added aggravation of having to
re-write the code twice.  Once to convert it into SSA form and
the second time to convert it out of SSA form.

The approach we use now does not interfere with the underlying
IR.  What it does is overlay a web of def-use/use-def pointers on
top of the CFG.  Each of these def/use/phi references are
associated with a specific operand, expression, statement and
basic block.  This means that building the SSA form is not too
expensive (no IR re-writing) and once you're done, you just toss
the data away.

In any case, I'm always ready to be convinced about the benefits
of other approaches.  We're in the early stages, and are just now
starting to use the infrastructure to write optimizers.  As we
gain experience with it we'll be able to compare different
approaches.


> This could solve the problem with the tree_common.aux field...
>
Hmm, what problem?  The SSA form does not use that field
(directly).  The field is used to annotate trees with various
tidbits of information like what block they belong to, what
variable references are made by it, etc.


Diego.

  parent reply	other threads:[~2002-08-25 15:35 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-08-22 13:50 A FrontEnd " Chris Lattner
2002-08-23  0:51 ` AST optimizer " Pop Sébastian
2002-08-23 10:25   ` Chris Lattner
2002-08-25  9:48     ` [tree-ssa] " Pop Sébastian
2002-08-25 14:33       ` Chris Lattner
2002-08-25 16:03         ` Diego Novillo
2002-08-27  9:32           ` Chris Lattner
2002-08-26  8:52         ` Pop Sébastian
2002-08-26  9:17           ` Chris Lattner
2002-08-26 21:18           ` Daniel Berlin
2002-08-27  1:17             ` Pop Sébastian
2002-08-27  6:28               ` Diego Novillo
2002-08-27  7:08                 ` Steven Bosscher
2002-08-27  8:37               ` Daniel Berlin
2002-08-27 12:21               ` Per Bothner
2002-08-27 12:32                 ` Gabriel Dos Reis
2002-08-27 12:51                   ` Per Bothner
2002-08-27 13:02                     ` Gabriel Dos Reis
2002-08-27  6:44             ` Discussion about a new development plan? (was: Re: [tree-ssa] ASToptimizer in C++?) Steven Bosscher
2002-08-27  7:09               ` Discussion about a new development plan? (was: Re: [tree-ssa] AST optimizer " Jan Hubicka
2002-08-27  8:29             ` [tree-ssa] AST optimizer in C++? Chris Lattner
2002-08-25 15:35       ` Diego Novillo [this message]
2002-08-25 15:45         ` Chris Lattner
2002-08-25 16:08           ` Diego Novillo
2002-08-25 16:19             ` Diego Novillo
2002-08-26  8:39               ` Chris Lattner
2002-08-26 17:43                 ` Daniel Berlin
2002-08-26 18:12                   ` Chris Lattner
2002-08-26  8:35             ` Chris Lattner
2002-08-25 16:12           ` Daniel Berlin
2002-08-26  7:02             ` Pop Sébastian
2002-08-26  8:28               ` Steven Bosscher
2002-08-26  8:52             ` Chris Lattner
2002-08-26 17:40               ` Daniel Berlin
2002-08-26 17:44                 ` Daniel Berlin
2002-08-26 18:11                 ` Chris Lattner
2002-08-26 18:46                   ` Daniel Berlin
2002-08-27  9:26                     ` Chris Lattner
2002-08-27  9:57                       ` Chris Lattner

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=20020825223508.GA5066@tornado.toronto.redhat.com \
    --to=dnovillo@redhat.com \
    --cc=gcc@gcc.gnu.org \
    --cc=pop@gauvain.u-strasbg.fr \
    --cc=sabre@nondot.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).