public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jason Merrill <jason@cygnus.com>
To: jfc@mit.edu (John Carr), egcs@cygnus.com
Subject: Re: increase in object code size
Date: Tue, 23 Sep 1997 18:32:00 -0000	[thread overview]
Message-ID: <u9zpp38pkw.fsf@yorick.cygnus.com> (raw)
In-Reply-To: <199709231845.OAA14441.cygnus.egcs@biohazard-cafe.MIT.EDU>

>>>>> John Carr <jfc@mit.edu> writes:

> The first optimization which comes to mind: an exception table entry
> which does not apply to an instruction which can throw an exception
> should be eliminated.  In GNU C and C++ (and, I think, GNU Ada) only
> function calls throw exceptions.  That means there needs to be at most
> one table entry per function call.

True.  In general, the current output is precise at the cost of size.  It
could be shrunk at the cost of precision.  This is one case.  Another would
be pretending that all the prologue stuff happened at the PC after the
prologue, so you only need one advance PC instruction.

> The second (x86 only): if a function does not have any exception
> handlers and it has a frame pointer the unwinder does not need an
> exception table.  The return PC is at a known offset from the frame
> pointer.

But how do you restore the saved registers?  That's what the unwind info is
for.

Jason

  parent reply	other threads:[~1997-09-23 18:32 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-09-23  7:21 Thomas Koenig
1997-09-23  9:32 ` Joe Buck
1997-09-23 10:03   ` John Carr
1997-09-23 10:16     ` Joe Buck
     [not found]     ` <199709231716.KAA13154.cygnus.egcs@atrus.synopsys.com>
1997-09-23 10:34       ` Jason Merrill
1997-09-23 10:38     ` Joe Buck
1997-09-23 10:56       ` Thomas Koenig
1997-09-24  1:58         ` Jakub Jelinek
     [not found]       ` <199709231755.TAA00725.cygnus.egcs@mvmap66.ciw.uni-karlsruhe.de>
1997-09-23 11:23         ` Jason Merrill
1997-09-24  2:33           ` Torbjorn Lindgren
1997-09-23 11:45       ` John Carr
1997-09-23 17:03         ` Richard Henderson
1997-09-23 17:16           ` Joe Buck
1997-09-28 14:43           ` Joern Rennecke
     [not found]         ` <199709240001.RAA05779.cygnus.egcs@dot.cygnus.com>
1997-09-23 18:25           ` Jason Merrill
1997-09-23 22:08             ` Richard Henderson
1997-09-23 22:46               ` Jason Merrill
1997-09-23 22:56                 ` David S. Miller
1997-09-24  0:11                 ` Richard Henderson
     [not found]       ` <199709231845.OAA14441.cygnus.egcs@biohazard-cafe.MIT.EDU>
1997-09-23 18:32         ` Jason Merrill [this message]
1997-09-24  3:12 ` code size/ linux -fno-strength-reduce Mark Phillips
1997-09-29  7:08   ` Horst von Brand
     [not found] <199709231643.KAA27118@harmony.village.org>
1997-09-23 10:05 ` increase in object code size Thomas Koenig
     [not found] <199709232337.TAA00381@pincoya.inf.utfsm.cl>
1997-09-23 18:21 ` Jason Merrill
1997-09-24  7:13   ` Horst von Brand
1997-09-23 19:09 Mike Stump
1997-09-23 21:29 ` Joe Buck
1997-09-24  9:46 Mike Stump

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=u9zpp38pkw.fsf@yorick.cygnus.com \
    --to=jason@cygnus.com \
    --cc=egcs@cygnus.com \
    --cc=jfc@mit.edu \
    /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).