Options d'optimisation [GCC] - Programmation
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 ...
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 ?
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?
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.
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!
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]
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?
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]
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 ?