[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: RFC: Optimizing for 386 (Part 2)



On Thu, 2005-03-24 at 23:56 -0600, Joseph Wagner wrote:
> Hello Linux Naysayers!
> 
> You may remember about two months ago I started a flame war asking why RPM 
> packages were still optimized for 386.  The best answer I heard said that 
> the powers-that-be do not believe there would be a noticeable improvement, 
> and if I wanted to affect real change I would need to prove them wrong.

I heard something somewhat different ;-)

The compiler folks at Red Hat benchmark this *all the time*. Basically
for every new spin of the compiler. The *compiler* has one difference in
the code it generates with the current fedora settings and an "i686"
setting as you would call it, and that is the use of the cmov
instruction. 

Our benchmarks (which are unfortunately not publishable due to
restrictions imposed by the benchmark) show that cmov is a small gain
for some processors, but is actually a small loss for the current
generation pIV processors. For most processors (including all AMD ones)
it just doesn't make any measurable difference at all.

(with "small" you should think of in the order of 5% in a cpu bound
setup; if you're not cpu bound all this doesn't matter anyway)


Now, if you want to actually build a distro with different compiler
flags that actually are really different in a more significant way, I
would suggest that you experiment with the -Os flag, eg optimize for
code size. The effects of optimizing for size are less well known,
because in a compiler output microbenchmark (as mentioned above) you
will see some stuff getting somewhat worse, but there is a macro effect
that can compensate because code takes less space, eg you can save cache
and even disk IOs potentially. (note for cmov there is no such macro
effect)


I don't want to tell you that you shouldn't do what you're going to do,
I just want to suggest to read the posts again about why the fedora
flags are what they are (and those decisions are made based on
measurements and based on information provided by the people who wrote
the compiler, eg who know what those flags actually do), and that if you
still want to do an experiment, that you do one which actually has a
chance of making a real difference...

Attachment: signature.asc
Description: This is a digitally signed message part


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]