glug: [g++??]Ottimizzazioni

s.sartini s.sartini@linux.it
Mer 5 Maggio 2004 14:41:03 CEST


Luca Zini wrote:
> Ciao a tutti!
> dato che dovrò installare la slack con gli stessi pacchetti su più pc volevo creare dei pacchetti tgz per evitarmi la compilazione da sorgenti su tutte.
> Dato che tutti i pc hanno più o meno la stessa configurazione volevo cogliere l'occasione per ottimizzare i pacchetti per la loro architettura.
> Sono abbastanza nuovo di queste cose quindi prima ho fatto alcune proe con programmi veloci da compilare.
> ho impostato le ottimizzazioni scelte con
> export CFLAGS="-O3 -march=athlon-xp -pipe -fomit-frame-pointer"
> (non so se sono troppo spinte, prima di installarle farò qualche prova sul mio pc).
> A questo punto ho lanciato la compilazione di sylpheed-claws (è il pacchetto più leggero che conosco) e con sommo piacere ho visto che funzionava tutto.
> Dato che non si sa mai mi sono messo anche a provare con rezound.
> Durante la sua compilazione questo fà finta di nulla e continua la sua compilazione senza alcuna ottimizzazione. La differenza più notevole che ho notato è che uno è scritto in c e compilato con gcc mentre l'altro è scritto in c++  compilato con g++.
> Ho quindi preso il primo programma c++ che avevo sotto mano (la scelta è capitata su celestia) e ho riprovato. Anche in questo caso non è successo nulla e la compialzione è andata avanti senza utilizzare le ottimizzazioni (ha un -O2 di default, ma non usa le mie :( ).
> eppure man c++ include le ottimizzaizoni, quindi il programma le supporta.
> 
> sapete da cosa può dipendere? ho pensato ai makefile, ma non saprei dove mettere le mani dato che non sono mai andato oltre a crearne di moooolto semplici.

Se compili col g++ devi esportare CXXFLAGS="blablablabla", CFLAGS viene 
letto dal gcc quando compila il c

Se vuoi spingere un po oltre le ottimizzazioni, aggiungi 
-mcpu=-fexpensive-optimizations -funroll-loops -mmmx , se proprio te la 
vuoi rischiare anche -ffast-math.

Su P4 io uso anche -mfpmath=sse e -msse2, ma penso che sul tuo athlon 
sia + conveniente usare -m3dnow

Ciao,
Ste


Maggiori informazioni sulla lista glug