public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: kenner@vlsi1.ultra.nyu.edu (Richard Kenner)
To: aph@redhat.com
Cc: gcc@gcc.gnu.org
Subject: Re: [RFC] Contributing tree-ssa to mainline
Date: Mon, 19 Jan 2004 14:02:00 -0000	[thread overview]
Message-ID: <10401191404.AA28208@vlsi1.ultra.nyu.edu> (raw)

    On the other hand, if Ada can really do the job of its check
    elimination so much better than a generic optimizer, fair enough.  But
    range check elimination using VRP is a sufficiently generic problem
    that many languages will benefit.

I agree.  I wasn't arguing against VRP or saying that it would not be useful
in eliminating range checks, just that there are language-specific tests that
can more easily be done in the front end that eliminate the need for
sophisticated optimizations like that.

The GCC approach has always been to do as many optimizations as possible at
all levels: we do constant folding at both the tree and RTL level.  This is
done not just to avoid the risk of missing an opportunity, but because the
earlier we do an optimization, the less work the lower level optimizers have
to do and that improves compilation speed.

I see it as the same with checks and VRP: certainly VRP ought to be
implemented and certainly it will eliminate some checks, but that does *not*
mean we shouldn't implement a check-elimination pass in the Ada front end
that uses static semantic information that language-independent code doesn't
have access to.  The reasons are the same as above: not only does it avoid
the risk of missing an opportunity, but it creates less work for subsequent
passes to do.

    And of course there are other things: escape analysis, for example.
    Sure, I could do that in the Java front end, but I'd rather not.

I don't know enough about escape analysis in Java to offer any opinion as to
whether it's appropriate to have such in the front end, but I believe that if
it's easier to do at that level, it should be done there even if other
optimizers could also catch some cases.

A lot of the strategy for Ada was not be concerned about generating a lot of
code and to assume that GCC would optimize all the junk away. This strategy
has worked remarkably well, but does cause worse code in many more cases than
we'd like to see due to some notable failures in language-independent
optimization not being able to optimize some cases.  There's reason to
believe tree-ssa will do a better job, but the best job would be produced by
not generating the junk in the first place.

I believe the reason for GCC's great success in the past has been its
strategy of doing optimizations at all possible levels and I also believe
this will be reason for its success in the future.  So I see tree-ssa as an
another set of optimizers, but not one that will remove the need for having
any optimizations in the front end nor certainly remove the need for RTL
optimizers.  I don't think this is or should be a goal of the tree-ssa project.

             reply	other threads:[~2004-01-19 14:02 UTC|newest]

Thread overview: 192+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-01-19 14:02 Richard Kenner [this message]
  -- strict thread matches above, loose matches on Subject: below --
2004-01-20 12:36 Richard Kenner
2004-01-20 15:06 ` Daniel Jacobowitz
2004-01-20 15:14 ` Steven Bosscher
2004-01-20 16:14 ` Diego Novillo
2004-01-20 11:46 Richard Kenner
2004-01-20 11:57 ` Steven Bosscher
2004-01-20  4:35 Robert Dewar
2004-01-20  4:23 Richard Kenner
2004-01-20  4:28 ` Andrew Pinski
2004-01-20 11:15 ` Diego Novillo
2004-01-19 23:40 Richard Kenner
2004-01-19 23:15 Richard Kenner
2004-01-19 23:31 ` tm_gccmail
2004-01-19 19:13 Richard Kenner
2004-01-19 18:06 Richard Kenner
2004-01-19 16:12 Richard Kenner
2004-01-19 15:05 Richard Kenner
2004-01-19 15:56 ` law
2004-01-19 22:41 ` Andrew Pinski
2004-01-19 14:17 Richard Kenner
2004-01-19 14:46 ` Diego Novillo
2004-01-19 17:58 ` Dan Nicolaescu
2004-01-19 12:29 Richard Kenner
2004-01-19 12:24 Richard Kenner
2004-01-19 12:31 ` Andrew Haley
2004-01-19 12:36 ` Paul Brook
2004-01-19 12:39   ` Paul Brook
2004-01-19 12:38 ` Andrew Haley
2004-01-19 12:49 ` Diego Novillo
2004-01-19 17:42   ` Geert Bosch
2004-01-19 17:51     ` Diego Novillo
2004-01-19 17:56       ` John R. Shannon
2004-01-19 18:02         ` Diego Novillo
2004-01-19 18:09       ` Geert Bosch
2004-01-19 18:27       ` Robert Dewar
2004-01-19 12:51 ` Jan Hubicka
2004-01-19 15:51   ` law
2004-01-19 17:30     ` Robert Dewar
2004-01-19 17:48       ` law
2004-01-19 17:57         ` Diego Novillo
2004-01-19 13:26 ` Theodore Papadopoulo
2004-01-19 14:23 ` Robert Dewar
2004-01-19 18:00 ` Tom Tromey
2004-01-19 18:11   ` Andrew Haley
2004-01-19 18:39   ` Jeff Sturm
2004-01-19 11:44 Richard Kenner
2004-01-19 12:00 ` Jan Hubicka
2004-01-19 12:13   ` Andrew Pinski
2004-01-19 12:12 ` Richard Henderson
2004-01-18 13:09 Richard Kenner
2004-01-17 17:17 Dara Hazeghi
2004-01-19 17:23 ` law
2004-01-17 13:35 Richard Kenner
2004-01-17 14:05 ` Steven Bosscher
2004-01-17 15:26   ` Andreas Jaeger
2004-01-17 13:33 Richard Kenner
2004-01-17 13:29 Richard Kenner
2004-01-17 17:58 ` Diego Novillo
2004-01-17 13:20 Richard Kenner
2004-01-17  3:26 Richard Kenner
2004-01-17 14:49 ` Scott Robert Ladd
2004-01-17  3:21 Richard Kenner
2004-01-17  3:26 ` Diego Novillo
2004-01-17  5:52   ` Per Bothner
2004-01-17  6:09     ` Andrew Pinski
2004-01-18  2:46       ` Scott A Crosby
2004-01-17  8:00     ` Diego Novillo
2004-01-17 13:47   ` Florian Weimer
2004-01-17 14:48     ` Daniel Berlin
2004-01-17 14:53       ` Florian Weimer
2004-01-17 15:14         ` Daniel Berlin
2004-01-17 17:07       ` Joseph S. Myers
2004-01-17 17:14         ` Diego Novillo
2004-01-17 17:40           ` Daniel Berlin
2004-01-17 18:34         ` Mark Mitchell
2004-01-17 14:57     ` Diego Novillo
2004-01-19 23:30 ` Joe Buck
2004-01-19 23:43   ` Daniel Berlin
2004-01-20  0:20     ` Dale Johannesen
2004-01-20  3:12     ` Geert Bosch
2004-01-20  3:27       ` Diego Novillo
2004-01-17  3:15 Robert Dewar
2004-01-17  2:56 Richard Kenner
2004-01-17  3:14 ` Steven Bosscher
2004-01-17  3:20   ` Diego Novillo
2004-01-17  2:52 Richard Kenner
2004-01-17  3:12 ` Steven Bosscher
2004-01-17  2:39 Richard Kenner
2004-01-17  3:04 ` Robert Dewar
2004-01-17 16:55   ` Gerald Pfeifer
2004-01-19 14:48 ` Lars Segerlund
2004-01-19 23:37   ` Joe Buck
2004-01-17  2:28 Richard Kenner
2004-01-17  3:09 ` Steven Bosscher
2004-01-17  5:04   ` Roger Sayle
2004-01-17  5:31     ` Diego Novillo
2004-01-17  6:04       ` Roger Sayle
2004-01-17  6:19       ` David Edelsohn
2004-01-17 14:54       ` Scott Robert Ladd
2004-01-17 14:01     ` Jan Hubicka
2004-01-17 14:20       ` Roger Sayle
2004-01-17 14:29         ` Roger Sayle
2004-01-17 14:44           ` Jan Hubicka
2004-01-17 15:07             ` Jan Hubicka
2004-01-17 14:37         ` Jan Hubicka
2004-01-17 21:32   ` Richard Henderson
2004-01-17 21:45     ` Diego Novillo
2004-01-17  5:06 ` Diego Novillo
2004-01-17  6:13 ` law
2004-01-17 12:07   ` Robert Dewar
2004-01-17 12:15     ` John R. Shannon
2004-01-19 23:46   ` Joe Buck
2004-01-17  0:19 Diego Novillo
2004-01-17  0:31 ` Daniel Berlin
2004-01-17  0:35 ` Andrew Pinski
2004-01-17  0:44 ` Gerald Pfeifer
2004-01-17  0:53   ` law
2004-01-17  0:54   ` law
2004-01-17  1:37     ` Gerald Pfeifer
2004-01-17  1:46       ` Diego Novillo
2004-01-17  0:55   ` Eric Christopher
2004-01-17  2:48     ` Robert Dewar
2004-01-17 22:08       ` Eric Christopher
2004-01-17  1:02   ` Joseph S. Myers
2004-01-17  1:51     ` Kaveh R. Ghazi
2004-01-17  2:01       ` Gabriel Dos Reis
2004-01-17  2:17         ` Kaveh R. Ghazi
2004-01-17  3:01           ` Daniel Berlin
2004-01-17  2:19         ` Steven Bosscher
2004-01-17  3:02           ` Robert Dewar
2004-01-17  3:55             ` Andrew Pinski
2004-01-17  3:36       ` Diego Novillo
2004-01-17 13:06         ` Giovanni Bajo
2004-01-17 13:53         ` Jan Hubicka
2004-01-18  7:01           ` law
2004-01-17 17:04         ` Kaveh R. Ghazi
2004-01-17 17:16           ` Scott Robert Ladd
2004-01-17 17:30             ` Kaveh R. Ghazi
2004-01-17 17:50               ` Scott Robert Ladd
2004-01-17 17:37             ` Robert Dewar
2004-01-17 17:46               ` Joseph S. Myers
2004-01-17 17:51                 ` Robert Dewar
2004-01-17 18:11                   ` Joseph S. Myers
2004-01-17 19:12                     ` Arnaud Charlet
2004-01-29  0:36                       ` Robert Dewar
2004-01-29  0:00                     ` Robert Dewar
2004-01-17 17:58               ` Scott Robert Ladd
2004-01-17 18:09                 ` Joseph S. Myers
2004-01-17 18:06           ` Mark Mitchell
2004-01-18  7:15           ` law
2004-01-18 15:50             ` Daniel Berlin
2004-01-17 17:12         ` Kaveh R. Ghazi
2004-01-17 17:26           ` Diego Novillo
2004-01-17  5:31     ` Diego Novillo
2004-01-17  6:15       ` law
2004-01-17  6:22         ` Andrew Pinski
2004-01-17  6:38         ` Diego Novillo
2004-01-17 14:45         ` Daniel Berlin
2004-01-17 21:23           ` law
2004-01-17 21:33             ` Steven Bosscher
2004-01-18  2:34               ` Zack Weinberg
2004-01-17 11:16       ` Joseph S. Myers
2004-01-17 17:50         ` Diego Novillo
2004-01-17 18:06           ` Joseph S. Myers
2004-01-17 20:14           ` Steven Bosscher
2004-01-17 23:38         ` Toon Moene
2004-01-18  1:06           ` Phil Edwards
2004-01-17  2:15   ` Steven Bosscher
2004-01-17  3:01     ` Robert Dewar
2004-01-17 11:08 ` Andrew Walrond
2004-01-17 23:33   ` Toon Moene
2004-01-17 14:30 ` Scott Robert Ladd
2004-01-17 14:57   ` Paul Brook
2004-01-17 15:28     ` Scott Robert Ladd
2004-01-17 21:24     ` law
2004-01-17 21:47       ` Diego Novillo
2004-01-17 19:01 ` Mark Mitchell
2004-01-17 19:23   ` Andrew Pinski
2004-01-18  0:14     ` Toon Moene
2004-01-20  1:39   ` Kaveh R. Ghazi
2004-01-20  2:00     ` Gabriel Dos Reis
2004-01-20  2:08       ` Mark Mitchell
2004-01-20  2:31         ` Gabriel Dos Reis
2004-01-20 15:19       ` Scott Robert Ladd
2004-01-20 15:27         ` Andrew Haley
2004-01-20  2:09     ` Diego Novillo
2004-01-22  8:49     ` Gerald Pfeifer
2004-01-17 19:22 ` Daniel Jacobowitz
2004-01-17 19:34   ` Richard Guenther
2004-01-17 20:21     ` Steven Bosscher
2004-01-18  1:24     ` David Edelsohn

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=10401191404.AA28208@vlsi1.ultra.nyu.edu \
    --to=kenner@vlsi1.ultra.nyu.edu \
    --cc=aph@redhat.com \
    --cc=gcc@gcc.gnu.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).