[C / Linux] Optimisation de taille sur gcc et -Os ?

Optimisation de taille sur gcc et -Os ? [C / Linux] - C - Programmation

Marsh Posté le 24-07-2008 à 02:28:39    

Bonjour.
Je suis ces temps ci en train de développer une petite intro 64k pour le fun, en C et un peu d'assembleur par moments.
 
La chose à garder en tête pour toute intro est de réduire au plus possible la taille du code source, et c'est justement là que je bloque.
J'ai beau avoir suivit plusieurs tutoriels sur le sujet, et avoir surtout donné l'option -Os à gcc, il continu à dérouler mes boucles ce qui d'après objdump me donne sur certaines fonctions un code quasi 4 fois plus gros que fait main à l'assembleur.
Bien sûr je pourrais taper toute partie sensible en assembleur, mais bordel que c'est énervant de casser le code pour un rien.
 
Quelqu'un serait-il assez aimable pour m'aider à comprendre cette histoire ?

Reply

Marsh Posté le 24-07-2008 à 02:28:39   

Reply

Marsh Posté le 24-07-2008 à 04:32:39    

D'après la doc :


       -O0 Do not optimize.  This is the default.
 
       -Os Optimize for size.  -Os enables all -O2 optimizations that do not
           **typically** increase code size.


 
T'auras ptêtre plus de succès en fait avec O0, c'est fait en gros l'optimisation Os pour la taille, pas au poil près.
 
Sinon après tu peut la jouer fine avec toute la clique d'options -f (celles qui sont gérées par -O en fait), et trouver quels trucs dans -O2 rallongent ton code et virer juste ceux là.


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Sujets relatifs:

Leave a Replay

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