[hack] pellipoverell..

John Doe johndoe@pctuner.net
Ven 23 Apr 2004 12:32:08 CEST


On Fri, 2004-04-23 at 09:46, LoSpippolo wrote:
> > On Thu, 2004-04-22 at 17:58, Alex.u wrote:
> > > giovedì 22 aprile 2004, alle 18:00, John Doe scrivacchia:
> > > 
> > > > Basta? Domande? Precisazioni? una pagina arancione? :p
> > >   No!    Tante!   Per ora no;)  Ovvio!                >8-[
> > 
> > Fai fai domande, io non so più che scrivere :D
> 
> io io io io io
> 
> un po' di switch per make.conf per i vari processori ?
> 
> anche una pagina web va' bene...

guarda, sui cflags ci sono battaglie in tutto il web. Io ti posso dare
dei consigli. Allora, innanzitutto _tendenzialmente_ i programmi
compilati in C++ son molto più sensibili ai flags. Ah, se i flags son
troppo aggressivi, lo vedi che ti da errori vari in compilazione..

Cmq, parto mettendo le mie flags: per capirle ci vuole un minimo di
conoscenza di architettura dei calcolatori... proprio poca, ma almeno un
briciolo si :p Cmq, il manuale di gcc viene incontro.. anzi, l'info di
gcc :P


CFLAGS="-march=athlon-xp -mcpu=athlon-xp -O3 -pipe
-mpreferred-stack-boundary=8 -m128bit-long-double
-maccumulate-outgoing-args -fforce-addr -fprefetch-loop-arrays
-ffast-math -mmmx -m3dnow -msse -mfpmath=sse -fPIC -funroll-loops"

allora, questi sono MOLTO aggressivi. Sopratutto -ffast-math e
-funroll-loops. Vedete anche che sono ridondanti, ovvero march=athlon-xp
dovrebbe sottointendere "-mcpu=athlon-xp -mmmx -m3dnow -msse", altri
invece tra quelli che ho specificato io sono compresi in 03... però,
dato che alcuni ebuild filtrano 03 e -march=XXXX io li frego mettendoli
doppi. Poi ovviamente se li filtrano un motivo c'è, ma io sono testone e
provo ugualmente. 
Sorvolo (si potrebbe entrare nella never-ending story) su quanto sia il
performance increase rispetto a flags più tranquilli.
Cmq, fatto sta che sti flags ogni tanto danno problemi, quindi vado di
fallback su questi, che mi sento di consigliare a tutti i possessori di
athlon-xp

CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -mmmx -m3dnow
-msse -mfpmath=sse"

Una possibile variante è di usare 02, infatti si ha due vantaggi
innegabili (1: ci mette 2/3 del tempo a compilare rispetto a 03; 2: il
binario più piccolo in kB) e _non si sa_ quanto sia meno veloce di 03,
alcuni addiritura sostengono che 02 alla fine sia più veloce di 03.
Direi che se nn siete maniaci usare 02 è meglio, da meno problemi...

Per i CXXFLAGS (quelli C++) io uso questi (in ordine se ho problemi):

CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -mmmx -m3dnow
-msse -mfpmath=sse -funroll-loops -fPIC"
CXXFLAGS="-O2 -pipe -march=athlon-xp -mcpu=athlon-xp"
CXXFLAGS="-O2 -pipe -march=i686"

Se vi state chiedendo come faccio a usare o uno o l'altro: semplice, li
tengo tutti nel make.conf, e commento tutti quelli che non uso,
lasciando non commentati una sola riga per i CFLAGS e una sola per i CXX

Se volete approfondire, andate sul forum di gentoo... e da li cercate e
viene fuori una montagna di post riguardo all'argomento, anche nella
sezione italiana.

John
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: This is a digitally signed message part
URL:         <http://lists.linux.it/pipermail/golem-hack/attachments/20040423/18438bf5/attachment.pgp>


Maggiori informazioni sulla lista golem-hack