IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Code::Blocks Discussion :

Flag inconnu sur Code::Blocks : CPU architecture tuning


Sujet :

Code::Blocks

  1. #1
    Invit�
    Invit�(e)
    Par d�faut Flag inconnu sur Code::Blocks : CPU architecture tuning
    Bonjour !

    Je viens d'installer la toute nouvelle version de Code::Blocks (sortie il n'y a m�me pas un mois) et en r�glant mes flags je suis tomb� sur la cat�gorie "CPU architecture tuning" que je ne me souvenais pas avoir vue dans la version pr�c�dente...
    Quelqu'un peut-il me dire de quoi il s'agit exactement ? Qu'est-ce qui changera selon ce que je coche ?
    Merci d'avance.
    Derni�re modification par Invit� ; 26/01/2014 � 14h44.

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    �a veut dire que le programme sera plus rapide sur un type de microprocesseur en particulier, m�me au d�triment des performances sur les autres microprocesseurs compatibles.

    Il me semble que gcc accepte deux options diff�rentes, l'une qui pr�serve la compatibilit�, l'autre qui ne laisse un programme tourner que sur l'architecture en question. "tuning" implique la premi�re � mes yeux.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Invit�
    Invit�(e)
    Par d�faut
    Je vois merci !
    Je pense que je vais tout laisser d�coch� vu que je vise � programmer pour distribuer mes cr�ations publiquement...
    Merci encore !

  4. #4
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,

    Le but de cette option (qui existe depuis toujours � mon sens sous Code::Blocks, bien qu'elle n'ait pas forc�ment �t� dans une liste distincte ) est surtout de faire en sorte que le compilateur utilise un jeu d'instructions plus ou moins restreint afin d'assurer une compatibilit� minimale envers les processeurs les plus anciens.

    Tu n'ignores pas que le nombre d'instructions comprises par les processeurs n'a fait qu'augmenter au fur et � mesure des �volutions qu'ils ont subis.

    Il y a, par exemple, un monde de diff�rence entre les instructions comprises par le 386 "de base" et le Pentium I. L'arriv�e des diff�rentes versions de MMX (pour ne citer qu'elles) a aussi �t� � chaque fois des �volutions majeures, qui n'�taient, bien �videmment, jamais comprises par la "version pr�c�dente" .

    L'id�e de base de ce flag est que, plus tu r�duis le nombre d'instructions comprises par le processeur, plus tu augmente le nombre de processeurs capables d'utiliser ton application, et plus tu permets donc � de "vieilles" machine de l'utiliser.

    Pendant tout un temps, linux (et tout ce qu'il pr�sentait) �tait compil� "de base" avec le flag --march=i386, parce qu'il y avait encore, � l'�poque de PII et PIII, beaucoup de machines utilisant ces "antiquit�s". Maintenant, le flag souvent utilis� pour une compatibilit� aussi large que possible est --march=i686 lorsqu'on compile en mode 32bits. Mais on gagne en compatibilit� ce que l'on perd en optimisations potentielles . Il en va d'ailleurs de m�me pour le flag sp�cifique au mode 64 bits couramment utilis� "--march=k8".

    Pour certaines applications, cela ne posera pas de probl�mes majeurs, mais pour d'autres, il peut �tre particuli�rement dommage de ne pas disposer de "toutes les optimisations possibles"
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  5. #5
    Invit�
    Invit�(e)
    Par d�faut
    Donc si j'ai bien compris, si je veux que mon programme soit un maximum compatible, je dois tout cocher ?

  6. #6
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Citation Envoy� par Neoflash Okashi Voir le message
    Donc si j'ai bien compris, si je veux que mon programme soit un maximum compatible, je dois tout cocher ?
    Non, je t'expliquais comment fonctionnent ces flags, et tu ne peux de toutes mani�res mettre qu'un seul flag march comme option transmise � Gcc.

    Si tu veux que ton programme soit un minimum compatible, compile le en 32 bits avec le flag --march=i686.
    Mais il faut te dire que le flag --march=i686 correspond � des processeurs qui tournaient sous windows 98 � peu pr�s. Les processeurs qui tournaint sous xp correspondent � peu pr�s aux g�n�rations PIII et PIV

    L'un dans l'autre, il faudrait d�j� un tr�s vieux pc pour que le processeur ne comprenne que les instructions du 686

    Sinon, le mieux est encore de ne simplement pas pr�ciser ce flag. Les r�glages par d�faut de Gcc devraient faire l'affaire.
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  7. #7
    Invit�
    Invit�(e)
    Par d�faut
    D'accord je laisse tout d�coch� donc ! Merci beaucoup !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Quel est votre avis sur Code::Blocks ?
    Par doudoustephane dans le forum Code::Blocks
    R�ponses: 54
    Dernier message: 12/06/2009, 11h58
  2. question sur Code::blocks
    Par deubelte dans le forum Code::Blocks
    R�ponses: 3
    Dernier message: 04/01/2007, 15h44
  3. � lire avant de poster vos questions sur Code::Blocks
    Par khayyam90 dans le forum Code::Blocks
    R�ponses: 0
    Dernier message: 12/07/2006, 08h23
  4. besoin d'aide sur code Block
    Par Antalus dans le forum Autres �diteurs
    R�ponses: 3
    Dernier message: 31/01/2006, 18h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo