[GCC] Options d'optimisation

Options d'optimisation [GCC] - Programmation

Marsh Posté le 30-08-2001 à 12:55:53    

salut,
 
A part -O3, j'essaie de voir les options d'optimisation les plus interessantes. Bon ok, c'est fonction de plein de param et il y en a une bonne 20aine.
 
Mais bon a part -03, quelles sont celles que vous avez tendances a utiliser pour commencer a optimiser ?

Reply

Marsh Posté le 30-08-2001 à 12:55:53   

Reply

Marsh Posté le 31-08-2001 à 00:43:19    

bon,
 
après quelques essaies j'ai decouvert une très belle optiond e compile
 
-fomit-frame-pointer
 
Actuellment j'utilise les options suivante :
 
gcc -O3 -fomit-frame-pointer -frerun-loop-opt -fgcse  
 
Mais j'ai un petit doute sur le faite que -O3 intègre ou pas les options : -frerun-loop-opt -fgcse  
 
 
si vous avez des conseil ou experiences sur les options de compile avec gcc ...

Reply

Marsh Posté le 31-08-2001 à 11:22:55    

dans la famille optimisation.
 
Qui a deja essayé la ver GCC 3.0.1 et vu des améliorations dans la vitesse d'execution du code comparé à la ver 2.9.3 ?

Reply

Marsh Posté le 31-08-2001 à 11:39:42    

Barbarella a écrit a écrit :

bon,
 
après quelques essaies j'ai decouvert une très belle optiond e compile
 
-fomit-frame-pointer
 
Actuellment j'utilise les options suivante :
 
gcc -O3 -fomit-frame-pointer -frerun-loop-opt -fgcse  
 
Mais j'ai un petit doute sur le faite que -O3 intègre ou pas les options : -frerun-loop-opt -fgcse  
 
 
si vous avez des conseil ou experiences sur les options de compile avec gcc ...  




 
 
c toujours interressant ça...
 
c quoi ces options?

Reply

Marsh Posté le 31-08-2001 à 12:32:17    

salut,
 
la def de -fomit-frame-pointer est :  
 
Don't keep the frame pointer in a register for functions that don't need one. This avoids the instructions to save, set up and restore frame pointers; it also makes an extra register available in many functions. It also makes debugging impossible on some machines
 
En gros ça accélère les appels de fonction et libère un registre. Sur mes prog le résultat a été très impressionnant (30% de gain). Mais a n'utiliser que si le deboguage est fini.

Reply

Marsh Posté le 31-08-2001 à 14:15:26    

Barbarella a écrit a écrit :

salut,
 
la def de -fomit-frame-pointer est :  
 
Don't keep the frame pointer in a register for functions that don't need one. This avoids the instructions to save, set up and restore frame pointers; it also makes an extra register available in many functions. It also makes debugging impossible on some machines
 
En gros ça accélère les appels de fonction et libère un registre. Sur mes prog le résultat a été très impressionnant (30% de gain). Mais a n'utiliser que si le deboguage est fini.  




 
C'est sur que ne pas faire la sauvegarde de contexte, ça doit aider!
Par contre, je me demande comment il elit les fonction candidates pour l'optimisation...Peut être celle qui n'accede pas aux elements globaux....
 
Merci de cette precision!

Reply

Marsh Posté le 31-08-2001 à 14:52:38    

ouais,
 
t'as raison ça doit pas être evident. Il faut donc être mefiant qu'en l'utilisation de cette option. mais si le prog fonctionne avec alors c'est très interessant.
 
j'ai compilé ce script avec. Il intégre un analyseur de syntagmes temps réel et un moteur de base de données, => une très grande quantité d'appel de fonctions avec tous les types de params  et il n'a pas l'air de s'emmeler les pinceaux.  
 
http://www.onversity.com/cgi-bin/p [...] &P=N200104

 

[edtdd]--Message édité par Barbarella--[/edtdd]

Reply

Marsh Posté le 31-08-2001 à 15:07:55    

Barbarella a écrit a écrit :

ouais,
 
t'as raison ça doit pas être evident. Il faut donc être mefiant qu'en l'utilisation de cette option. mais si le prog fonctionne avec alors c'est très interessant.
 
j'ai compilé ce script avec. Il intégre un analyseur de syntagmes temps réel et un moteur de base de données, => une très grande quantité d'appel de fonctions avec tous les types de params  et il n'a pas l'air de s'emmeler les pinceaux.  
 
http://www.onversity.com/cgi-bin/p [...] &P=N200104  
 
 




 
je connaissait pas ce site...
 
c quoi au juste?

Reply

Marsh Posté le 31-08-2001 à 15:36:56    

Le mieux c'est 'page d'accueil' puis 'présentation'.

Reply

Marsh Posté le 31-08-2001 à 16:49:44    

De toute facon faire du debug avec autre chose que du -O0 ou du -O c'est le suicide assuré:
 
- les variables inutiles disparaissent, du coup c'est très chiant parfois (surtout en embedded).
- C'est très fun de voir le PC aller d'avant en arriere (le code n'est plus vraiment lié au source), mais c'est lourd (c'est ou que ca a planté?).
 
Bon ca c'est pour ceux qui utilisent un debuggeur et pas des printf().

 

[edtdd]--Message édité par MC--[/edtdd]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed