This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [ast-optimizer-branch] [patch]: SSA for trees
- To: Gerald Pfeifer <pfeifer at dbai dot tuwien dot ac dot at>
- Subject: Re: [ast-optimizer-branch] [patch]: SSA for trees
- From: Diego Novillo <dnovillo at redhat dot com>
- Date: Wed, 25 Jul 2001 10:02:59 -0400
- Cc: Andreas Jaeger <aj at suse dot de>, Nathan Sidwell <nathan at codesourcery dot com>, Daniel Berlin <dan at cgsoftware dot com>, gcc-patches at gcc dot gnu dot org
- Organization: Red Hat Canada
- References: <20010724125400.A8603@tornado.cygnus.com> <Pine.BSF.4.33.0107251329410.21080-100000@taygeta.dbai.tuwien.ac.at>
On Wed, 25 Jul 2001, Gerald Pfeifer wrote:
> On Tue, 24 Jul 2001, Diego Novillo wrote:
> > +<h3><a name="ssa_for_trees">SSA for trees</a></h3>
> > +<p>This SSA implementation is based on M.J. Wolfe's Factored Use-Def (FUD)
> > +chains [1]. Building an SSA web early in the compile process will allow the
> > +implementation of more aggressive target-independent transformations. This
> > +should simplify the job of lower level passes and hopefully produce better
> > +code.
>
> Here we want a </p> to end the paragraph...
>
> > +<p>The tree SSA infrastructure is maintained by <a
> > +href="mailto:dnovillo@redhat.com">Diego Novillo
> > +<dnovillo@redhat.com></a>.
>
> ...as we do here
>
> > +<p>[1] Wolfe, M. J. 1996. <em>High Performance Compilers for Parallel
> > +Computing</em>. Redwood City, CA: Reading, Mass.: Addison-Wesley.
>
> ...and here.
>
Thanks. OK with these changes?
Index: ast-optimizer.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/ast-optimizer.html,v
retrieving revision 1.2
diff -d -p -d -u -p -r1.2 ast-optimizer.html
--- ast-optimizer.html 2001/07/23 12:07:29 1.2
+++ ast-optimizer.html 2001/07/25 14:01:15
@@ -36,9 +36,7 @@ opportunity for new optimizations presen
<p>In addition to providing completely new optimization passes, there
are a number of sub goals.</p>
-<ul>
-
-<li><h3>Provide a testing framework</h3>
+<h3>Provide a testing framework</h3>
<p>Although GCC's testsuite can verify an optimization's correctness,
there is no framework to verify the efficiency. Efficiency in both
@@ -47,46 +45,43 @@ compiler resources (memory and compile t
test framework, we will have no information about the effectiveness
and stability of optimizers.</p>
-<li><h3>Optimization tuning parameters</h3>
+<h3>Optimization tuning parameters</h3>
<p>A number of optimizations can be tuned by various parameters. Giving
the user a knob to twiddle is good, provided (a) it does something (b)
there is a measureable way of determining its effectiveness.</p>
-<li><h3>Move RTL optimizations to the AST level</h3>
+<h3>Move RTL optimizations to the AST level</h3>
<p>GCC has many optimizations that work at the RTL level. At the AST
level some of these can do a better job.</p>
-<li><h3>Move AST optimizations into one place</h3>
+<h3>Move AST optimizations into one place</h3>
<p>GCC has a number of AST optimizations that attempt to optimize trees
during parsing. These have limited effectiveness, and complicate the
parser. It would be better to put these all in one place, where they can
be more effective (by being repeated, or using common data).</p>
-<li><h3>Move AST optimizers into the common middle end</h3>
+<h3>Move AST optimizers into the common middle end</h3>
<p>Although C and C++ both have function at a time mode, the AST new
inliner is only in the C++ frontend.</p>
-<li><h3>Provable optimizer performance</h3>
+<h3>Provable optimizer performance</h3>
<p>It is often easy to implement a mis-optimization. Without evidence
that an optimizer actually does optimize, it will be hard to have it
accepted into the mainline. Obviously in the
<code>ast-optimizer-branch</code> branch, things are different.</p>
-</ul>
<h2>Status</h2>
<p>The branch was created from the development mainline on 21 July 2001.
Its version string is 'ast-optimizer-branch'.</p>
-
-<ul>
-<li><h3>New inlining algorithm</h3>
+<h3>New inlining algorithm</h3>
<p>The first AST inliner was top down, and exhibits problematic
compiler time & memory usage at -O3. This is particularly nasty for
@@ -94,7 +89,19 @@ heavily templated C++ code. A new bottom
testing, which it is hoped will provide better -O3 performance.
See <a href="/ml/gcc-patches/2001-07/msg00859.html">this thread</a>.</p>
-</ul>
+<h3><a name="ssa_for_trees">SSA for trees</a></h3>
+<p>This SSA implementation is based on M.J. Wolfe's Factored Use-Def (FUD)
+chains [1]. Building an SSA web early in the compile process will allow the
+implementation of more aggressive target-independent transformations. This
+should simplify the job of lower level passes and hopefully produce better
+code.</p>
+
+<p>The tree SSA infrastructure is maintained by <a
+href="mailto:dnovillo@redhat.com">Diego Novillo
+<dnovillo@redhat.com></a>.</p>
+
+<p>[1] Wolfe, M. J. 1996. <em>High Performance Compilers for Parallel
+Computing</em>. Redwood City, CA: Reading, Mass.: Addison-Wesley.</p>
<h2>Contributing</h2>
Index: index.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/projects/index.html,v
retrieving revision 1.17
diff -d -p -d -u -p -r1.17 index.html
--- index.html 2001/07/23 12:07:29 1.17
+++ index.html 2001/07/25 14:01:16
@@ -115,9 +115,8 @@ the tag <code>new-regalloc-branch</code>
under x86-linux and ppc-linux.</p>
<h3><a name="ssa_for_trees">SSA for trees</h3>
-<p>Diego Novillo is working on implementing
-<a href="http://gcc.gnu.org/ml/gcc-patches/2001-03/msg00565.html">
- SSA analysis for trees</a>.</p>
+<p>Diego Novillo is working on implementing
+<a href="ast-optimizer.html#ssa_for_trees">SSA analysis for trees</a>.</p>
<h3><a name="ssa_conditional_constant_propagation_pass">SSA Conditional Constant Propagation Pass</h3>
<p>Daniel Berlin has posted an 80% complete