1 |
On Sun, 2004-02-29 at 01:30, Sancho2k.net Lists wrote: |
2 |
> We have a range of hardware from Pentium3 to Pentium4, some 2x CPU, most |
3 |
> one CPU though. All common packages such as apache2, mysql, php/mod_php, |
4 |
> and the like would be built there first and then distributed to the |
5 |
> servers as needed (they would emerge the tbz2s from thier nfs-mount |
6 |
> /usr/portage/packages/All directory). Since we are using -mcpu pentium3 |
7 |
> in the make.conf, our binaries should be portable across p3 and p4 |
8 |
> platforms, correct? |
9 |
|
10 |
Correct, but you would be better off using -march=pentium3, which |
11 |
implies -mcpu=pentium3. If you tend to have mostly Pentium 4s, then you |
12 |
can use -march=pentium3 -mcpu=pentium4, which causes it to only generate |
13 |
instructions for pentium3, but optimize for pentium4. The Pentium IIIs |
14 |
might take a slight performance hit in this case. |
15 |
|
16 |
The other flags you can add which will align the code according to |
17 |
instruction cache and decoding boundaries are: -falign-jumps=8 |
18 |
-falign=loops=8 -falign-functions=64. This will tend to make the output |
19 |
a bit larger. An alternative to this that will do basically the same |
20 |
thing but sometimes align at half-boundaries is: -falign-jumps=5 |
21 |
-falign-loops=5 -falign-functions=33. The alignments are actually done |
22 |
to the next higher power of 2 (i.e. the same numbers previously), but |
23 |
only when the number of bytes skipped is less than specified number; see |
24 |
info gcc for more details. |
25 |
-- |
26 |
Andy Dustman <adustman@×××××××××.edu> |
27 |
Office of Information Technology, Terry College of Business, UGA |