public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jeffrey A Law <law@redhat.com>
To: dewar@gnat.com (Robert Dewar)
Cc: freitag@alancoxonachip.com, gcc@gcc.gnu.org
Subject: Re: forcing tail/sibling call optimization
Date: Mon, 27 Nov 2000 09:44:00 -0000	[thread overview]
Message-ID: <490.975347114@upchuck> (raw)
In-Reply-To: <20001127164400.0929334D80@nile.gnat.com>

  In message < 20001127164400.0929334D80@nile.gnat.com >you write:
  > <<Therein lies the first problem -- programmer dependence on specific
  > optimizations in the compiler.  That's a fundamental mistake.
  > >>
  > 
  > I think this misses the point, this is not just an optimization, it is
  > a fundamental functional capability, in other words, we would want the
  > compiler to do this EVEN IF it slowed down execution.
I don't care if slows down or speeds up execution -- dependence on this kind
of transformation in languages such as C is terribly bad.  C code which
relies on this transformation is broken.

About the only thing worse would be to sit down, examine the compiler's output
to see when it makes the transformation, then twiddle the code to make it
compiler friendly, then complain when the next rev of the compiler doesn't
behave in the same manner :-)

In contrast, dependence on this kind of transformation in other languages
might be quite reasonable (and I believe there are languages which explicitly
require these transformations).  Typically those languages have conventions
which significantly ease these kinds of transformations.

We're apparently not communicating well.  


  > difference between an optimization that simply saves some time, and
  > a fundamental transformation that changes the computational nature
  > of the program. Changing the amount of storage used from O(who knows
  > what) to O(1) is not simply an "optimization".
Optimizations can occur across several axis -- execution speed, code density,
stack space, etc etc etc.  This transformation is an optimization in stack
space and sometimes code speed.

jeff

  reply	other threads:[~2000-11-27  9:44 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-11-27  8:44 Robert Dewar
2000-11-27  9:44 ` Jeffrey A Law [this message]
2000-11-27 10:22   ` Mark Probst
2000-11-27 14:42     ` Harvey J. Stein
2000-11-27 16:07       ` Mark Probst
2000-11-27 14:30   ` Harvey J. Stein
  -- strict thread matches above, loose matches on Subject: below --
2000-11-29  4:58 Robert Dewar
2000-11-27 15:33 Mike Stump
2000-11-27 10:04 Robert Dewar
2000-11-27  9:39 Geert Bosch
2000-11-27 12:06 ` Jeffrey A Law
2000-11-27  9:08 Robert Dewar
2000-11-27  9:14 ` Bernd Schmidt
2000-11-27 10:09   ` Michael Matz
2000-11-26 18:09 Robert Dewar
2000-11-26 15:46 Robert Dewar
2000-11-26 16:21 ` Joseph S. Myers
2000-11-26 18:08 ` Fergus Henderson
2000-11-26 21:50 ` Jeffrey A Law
2000-11-26 15:27 Robert Dewar
2000-11-26 17:56 ` Fergus Henderson
2000-11-26 10:59 Timothy J. Wood
2000-11-26  9:12 Geert Bosch
2000-11-26  8:21 Robert Dewar
2000-11-26 13:51 ` Fergus Henderson
2000-11-26  8:14 Robert Dewar
2000-11-26 13:43 ` Fergus Henderson
2000-11-27  7:58 ` Jeffrey A Law
2000-11-27  8:05   ` David Edelsohn
2000-11-27  8:07   ` Andi Kleen
2000-11-27  8:25     ` Jeffrey A Law
2000-11-27  8:39       ` Andi Kleen
2000-11-27  9:48         ` Jeffrey A Law
2000-11-27 11:21           ` Lars Brinkhoff
2000-11-27 10:54         ` Mark Mitchell
2000-11-27  8:38     ` Bernd Schmidt
2000-11-27 11:26       ` Eric W. Biederman
2000-11-27 10:48     ` Mark Mitchell
2000-11-27 12:46       ` Harvey J. Stein
2000-11-27 13:02         ` Travis Moulton
2000-11-27 10:47   ` Mark Mitchell
2000-11-28 19:21     ` Fergus Henderson
2000-11-29  2:09       ` Mark Mitchell
2000-11-30 23:59         ` Fergus Henderson
2000-12-01 15:51           ` Joe Buck
2001-01-03 12:24             ` Fergus Henderson
2001-01-03 13:09               ` Richard Henderson
2001-01-03 14:59                 ` Fergus Henderson
2001-01-03 15:32                   ` Richard Henderson
2001-01-03 15:53                     ` Fergus Henderson
2001-01-03 16:11                       ` Richard Henderson
2001-01-03 16:36                         ` Fergus Henderson
2002-09-14 23:35                   ` Fergus Henderson
2002-09-16  9:26                     ` Richard Henderson
2000-11-27 23:39   ` Fergus Henderson
2000-11-26  5:00 Robert Dewar
2000-11-26  7:44 ` Fergus Henderson
2000-11-26  8:18   ` Bernd Schmidt
2000-11-26  9:55   ` Andi Kleen
2000-11-26 11:34   ` Per Bothner
2000-11-26 11:55     ` Mark Probst
2000-11-26 17:40     ` Fergus Henderson
2000-11-26  3:56 Fergus Henderson
2000-11-26  5:22 ` Mark Probst

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=490.975347114@upchuck \
    --to=law@redhat.com \
    --cc=dewar@gnat.com \
    --cc=freitag@alancoxonachip.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).