72Fermer74
spectrasLe 24/02/2004 à 22:02
Ca ne change rien au fait que :
1) les processeurs x86 n'ont pas de pipeline pour le traitement des instructions, mais les exécutent les unes après les autres
2) optimiser un jeu réduit d'instructions n'en fait pas des instructions RISC pour autant. Par exemple, même l'instruction x86 la plus simple, comme inc a la capacité de lire depuis la mémoire, effectuer le calcul et réécrire dans la mémoire. Ce qui est contraire à la philosophie du RISC.
En RISC, il te faudrait 3 instructions. La première lit la mémoire et écrit dans un registre. La seconde fait le calcule. Et la troisième écrit le registre dans la mémoire.
3) certaines instruction super-spécialisés sont absolument inégalables en RISC. Genre repnz scasb

En plus, si tu veux réellement optimiser tes programmes x86, tu gagneras bien plus en leur faisant utiliser MMX/MMXEXT/SSE/SSE2/3DNow qu'en bricolant ou en changeant de compilateur (soit dit en passant et au risque de me répéter pout la 3ème fois, si tu en connais qui optimise mieux que GCC...) happy

Enfin, il y a de nombreuses optimisations que tu peux faire déjà en C. Par exemple, le blocage de cache se fait très bien en C, ainsi que le déroulage de boucle interne et externe