L'assembleur écrit avec amour à la main reste aujourd'hui incontournable si on veut l'efficacité maximale sur du code _très_ ciblé, tu as raison pour la cryptographie mais pour ma part je dirais qu'il y a des cas où du code vectoriel peut, encore aujourd'hui, être écrit plus efficacement à la main que par auto vectorisation ou intrinsics, même en l'absence de détails à la con mais qui font chier genre retenue.
Sans compter que tous les backends ne se permettent pas forcement de s'émanciper de l'ABI lorsqu'elle n'est pas absolument nécessaire.
Enfin je suis parfois obligé de me retenir (sans trop de mal, j'ai bien conscience que l'optimisation prématurée est la source de tous^W beaucoup de maux ;) pour éviter de pondre 5 lignes d'ASM qui résolveraient le problème d'une manière franche et efficace sur la cible, et où finalement je fais un truc moins bien en "C" (pour être plus précis j'appelle, avec une syntaxe C, une abstraction préexistante qui est typiquement codée en ASM et dont la sémantique est connue) histoire de faciliter la maintenance. Ex : bitops atomiques en kernel space où on peut sur certaines archi travailler sur plusieurs bits simultanément, chose qui n'est pas prévue dans l'abstraction haut niveau de linux.
[^] # Re: Bof
Posté par Guillaume Knispel . En réponse au journal Microsoft réécrit Hurd ?. Évalué à 3.
Sans compter que tous les backends ne se permettent pas forcement de s'émanciper de l'ABI lorsqu'elle n'est pas absolument nécessaire.
Enfin je suis parfois obligé de me retenir (sans trop de mal, j'ai bien conscience que l'optimisation prématurée est la source de tous^W beaucoup de maux ;) pour éviter de pondre 5 lignes d'ASM qui résolveraient le problème d'une manière franche et efficace sur la cible, et où finalement je fais un truc moins bien en "C" (pour être plus précis j'appelle, avec une syntaxe C, une abstraction préexistante qui est typiquement codée en ASM et dont la sémantique est connue) histoire de faciliter la maintenance. Ex : bitops atomiques en kernel space où on peut sur certaines archi travailler sur plusieurs bits simultanément, chose qui n'est pas prévue dans l'abstraction haut niveau de linux.