# EXTREME OPTIMIZATION

## Phemt

Volevo sapere che ottimizzazioni usate nella vostra gentoo.

Fin dove si può arrivare mantenendo un sistema di fatto non instabile?

Quali ottimizzazioni danno risultati migliori soprattutto come velocità di X & kde/gnome?

Queste sono le mie 

CFLAGS="-O3 -mcpu=athlon-xp -march=athlon-xp -fforce-addr -fomit-frame-pointer -funroll-loops -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4"

prese pari pari dalla faq di gentoo.org  :Smile: 

(ho solo cambiato -mcpu=i686 e -march=i686)

----------

## shev

Io attualmente uso delle opzioni classiche e non troppo spinte, delle quali non mi lamento:

-march=athlon-xp -O3 -pipe -fomit-frame-pointer

Un sito che riportava qualche info in più, alcune impostazioni alternative più o meno spinte, è il più volte citato:

http://www.freehackers.org/gentoo/gccflags/flag_gcc3opt.html

(guardare anche le altre pagine oltre a questa)

In dettaglio, riguardo ai settaggi "estremi" relativi all'athlon-xp di questo link, qualcuno in questo forum (non ricordo chi e in che thread  :Razz:  ) ha avuto problemi se non ho capito male, però non si era sicuri se fossero legati a queste cflags o che altro. L'interessato potrà darci maggiori lumi.

----------

## sciack

ciao, perché non parliamo invece di ridondanze nei flag? spesso penso che ci impegniamo così tanto ad aggiungere nuove presunte ottimizzazioni quando invece sono già di default o magari all'interno di altre categorie tipo -O3. Io comunque uso queste:

```
CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ffast-math -mmmx -m3dno

w -msse"
```

ciao

----------

## maur8

 *sciack wrote:*   

> ciao, perché non parliamo invece di ridondanze nei flag? spesso penso che ci impegniamo così tanto ad aggiungere nuove presunte ottimizzazioni quando invece sono già di default o magari all'interno di altre categorie tipo -O3. Io comunque uso queste:
> 
> ```
> CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer -ffast-math -mmmx -m3dnow -msse"
> ```
> ...

 

Esattamente le stesse ottimizzazioni con un portatile Duron Morgan a 1Ghz e  funziona tutto benissimo

----------

## AnonimoVeneziano

Puoi tranquilamente togliere -mmmx -m3dnow -msse perchè è già in -march=athlon-xp  , e attento a -ffast-math  perchè a volte da problemi sui calcoli in virgola mobile

CIao

----------

## Peach

quindi in fondo in fondo... sarebbe ottimale una cosa tipo:

```
CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer
```

 :Smile: 

senza troppe pretese

----------

## bsolar

 *Phemt wrote:*   

> CFLAGS="-O3 -mcpu=athlon-xp -march=athlon-xp -fforce-addr -fomit-frame-pointer -funroll-loops -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4"

 

Uhm, -frerun-cse-after-loop e -frerun-loop-opt dovrebbero essere già attivate da -O2...

CMQ io uso CFLAGS="-march=pentium4 -mfpmath=sse -Os -pipe"

----------

## shev

Non per essere ripetitivo, ma sul solito sito, in questa pagine di FAQ ( http://www.freehackers.org/gentoo/gccflags/faq.html ), vengono indicate abbastanza chiaramente le opzioni attivate dai vari -Ox, nonchè dai vari tipi di -march (o cmq dove recuperarle).

Nel caso specifico, bsolar dice bene, infatti le due opzioni indicate sono già comprese in -O2 ( e quindi -O3, che non fa che aggiungere due flag: inline_functions e rename_registers ). Come altrettanto bene dice Anonimo Veneziano, dicendo che le tre opzioni mmx, 3dnow e sse sono già incluse in march=athlon-xp.

Tutto questo se non ho clamorosamente frainteso il senso delle info lette sul sito  :Very Happy: 

----------

## Gavrila

 *AnonimoVeneziano wrote:*   

> Puoi tranquilamente togliere -mmmx -m3dnow -msse perchè è già in -march=athlon-xp  , e attento a -ffast-math  perchè a volte da problemi sui calcoli in virgola mobile
> 
> CIao

 

Ciao ^-^

ma questa info dove l'hai trovata? anche io l'ho "sentito dire" ma dove un riscontro oggetivo? nel man gcc questo NON e' specificato affatto, anzi da come e' scritto il man sembrerebbe proprio  essere il contrario ...

?_?Last edited by Gavrila on Tue Jun 24, 2003 2:30 pm; edited 1 time in total

----------

## shev

 *Gavrila wrote:*   

> 
> 
> ma questa info dove l'hai trovata? anche io l'ho "sentito dire" ma dove un riscontro oggetivo? nel man gcc questo NON e' specificato affatto, anzi da come e' scritto il man sembrerebbe proprio che essere il contrario

 

Se non ti fidi del link che ho postato prima e il manuale effettivamente non dice nulla, non ti resta che andare direttamente a guardarti i sorgenti. 

Qui trovi la versione cvs online. Il file in questione dovrebbe essere questo.

Buona lettura, di cosette interessanti ne puoi scoprire da qui  :Wink: 

----------

## Gavrila

 *Shev wrote:*   

>  *Gavrila wrote:*   
> 
> ma questa info dove l'hai trovata? anche io l'ho "sentito dire" ma dove un riscontro oggetivo? nel man gcc questo NON e' specificato affatto, anzi da come e' scritto il man sembrerebbe proprio essere il contrario 
> 
> Se non ti fidi del link che ho postato prima e il manuale effettivamente non dice nulla, non ti resta che andare direttamente a guardarti i sorgenti. 
> ...

 

Ottimo tnx!!!!  :Smile: 

----------

## AnonimoVeneziano

 *Gavrila wrote:*   

>  *AnonimoVeneziano wrote:*   Puoi tranquilamente togliere -mmmx -m3dnow -msse perchè è già in -march=athlon-xp  , e attento a -ffast-math  perchè a volte da problemi sui calcoli in virgola mobile
> 
> CIao 
> 
> Ciao ^-^
> ...

 

Ciao, l'ho letto sul sito del GCC http://gcc.gnu.org , nella sezione dedicata alle ottimizzazioni 

Ciao

----------

