All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andi Kleen <ak@suse.de>
To: Keir Fraser <Keir.Fraser@cl.cam.ac.uk>
Cc: Ian.Pratt@cl.cam.ac.uk, xen-devel@lists.xensource.com
Subject: Re: [PATCH] compile with -funit-at-a-time option of gcc
Date: 30 Jun 2005 11:12:11 +0200	[thread overview]
Message-ID: <p73ekak2opg.fsf@verdi.suse.de> (raw)
In-Reply-To: <172e2cac785f4e158b35a6eea5d96fc7@cl.cam.ac.uk>

Keir Fraser <Keir.Fraser@cl.cam.ac.uk> writes:

> On 30 Jun 2005, at 08:21, Ian Pratt wrote:
> 
> >> This patch makes xen compiled with gcc option
> >> -funit-at-a-time if supported. This option is available for
> >> gcc 3.4 and upward, which reduces the .text binary size considerably.
> >
> > I haven't come across this option before. What does it actually do?
> 
> Considers whole file at a time when doing optimisation. It's the

Basically it allows inlining even when a function is defined after
the caller and makes the inliner more aggressive. Everything static with
only one caller will be always inlined.

> default on gcc4 with -O2 and above. We probably don;t want to enable
> it before a general move to gcc4 as it does break stuff (albeit stuff
> that was buggy/broken already ;-) ). Adding another skanky CFLAG that
> will be defaulted anyway in future, to get the benefit of maybe subtly
> breaking Xen, doesn;t sound like a big win to me.

The main breakage that can usually happen with unit-at-a-time
(short of broken inline asms) is that your stack frames grow
too big because gcc before 4 is not very good at reusing the slots, 
but they add up with aggressive inlining.

You can check for that with a simple 
objdump -S ... | grep sub.*[re]sp | sort ...
and check for anything big enough that might overflow your kernel stack.

The main kernel has a special check script for this too.

-Andi

  reply	other threads:[~2005-06-30  9:12 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-06-30  7:21 [PATCH] compile with -funit-at-a-time option of gcc Ian Pratt
2005-06-30  8:04 ` Keir Fraser
2005-06-30  9:12   ` Andi Kleen [this message]
  -- strict thread matches above, loose matches on Subject: below --
2005-06-30  4:53 aq
2005-06-30  8:02 ` Keir Fraser

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=p73ekak2opg.fsf@verdi.suse.de \
    --to=ak@suse.de \
    --cc=Ian.Pratt@cl.cam.ac.uk \
    --cc=Keir.Fraser@cl.cam.ac.uk \
    --cc=xen-devel@lists.xensource.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.