J'apprends actuellement l'ASM en désassemblant certains des codes C. Une chose me intéresse est que le compilateur gcc génère du code comme celui-ciQuel est le but de mov% rax,% rax?
movq %rax,%rax
qui est évidemment dénué de sens. Alors, quel est le but de faire cela? Je me demande s'il est utilisé pour gaspiller quelques cycles de CPU afin d'améliorer le pipeline?
Merci pour votre indice!
Il n'est pas utilisé pour améliorer le pipeline. Tous les processeurs x86 (pour des raisons historiques?) Ont un matériel qui résout ces risques en bloquant au besoin. Seuls les RISC, qui sont plus simples, ont besoin du support du compilateur. – ruslik
@ruslik: un décrochage est lui-même un danger. –