|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] Re: [PATCH] compile with -funit-at-a-time option of gcc
Keir Fraser <Keir.Fraser@xxxxxxxxxxxx> 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
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|