Pagina 1 di 1

ottimizzare la compilazione

Inviato: mar 26 set 2006, 9:47
da fede_home
ciao a tutti,
volevo chiedervi se qualcuno conosce il modo per vedere se un file è stato compilato con un certa ottimizzazione dal compilatore. Mi speigo, ho il mio "hello world", lo compilo con

Codice: Seleziona tutto

g++ hello.cpp
faccio

Codice: Seleziona tutto

file a.out
e ottengo

Codice: Seleziona tutto

a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped
ora se faccio

Codice: Seleziona tutto

 g++ -O3 -march=athlon-xp -mcpu=athlon-xp hello.cpp

Codice: Seleziona tutto

file a.out
mi da lo stesso risultato eppure ho usato i parametri di ottimizzazione
sbaglio io ho è file che non capisce cosa volgio???


ciao e grazie

Inviato: mar 26 set 2006, 10:08
da whites11
prova con:

Codice: Seleziona tutto

export CFLAGS="-O3 -march=athlon-xp -mcpu=athlon-xp"
export CXXFLAGS="-O3 -march=athlon-xp -mcpu=athlon-xp"
g++ hello.cpp

Inviato: mar 26 set 2006, 10:17
da fede_home
stessa cosa.... ora non capisco se sbaglio nel voler usare il comando file o se proprio il compilato non è ottimizzato per athlon...

Inviato: mar 26 set 2006, 12:59
da albatros
Non conosco il codice del programma, ma mi chiedo quali ottimizzazioni si possano fare per un file chiamato hello.cpp ...
Fagli fare qualche loop e usa un'opzione tipo -O2 o -O3, fagli fare qualche trasformata di fourier, qualche calcolo matematico complesso...
Comunque sia, per quanto non sappia se sia una risposta giusta, leggendo
man file, http://www.dac.neu.edu/cgi-bin/man-cgi?elf , dando objdump -i (vedi man objdump) e dando (e provando con l'opzione -a) readelf mi pare che non ci sia un modo di vedere in maniera banale se e come un eseguibile sia stato ottimizzato.
Comunque l'architettura di base di un athlon è sempre un i386, se non usi qualcosa che richieda istruzioni mmx, sse, 3dnow eccetera l'eseguibile sarà uguale a quello di un i386, a meno di informazioni aggiuntive messe lì dal compilatore su come è stato compilato che mi pare però il formato elf non preveda di essere molto dettagliate.