2010-05-01 3 views
3

J'essaie actuellement d'optimiser le code émis par un compilateur maison, pour un langage fait maison.Optimisation d'assembleur Intel

J'ai essayé Intel VTune pour voir où les goulots d'étranglement sont les suivants: http://www.imada.sdu.dk/~sorenh07/misc/vtune-assembly-optimization.png

Je trouve très impressionnant qu'un « SUBL » -instruction est responsable de plus de 38% des clockticks dans un programme en cours d'exécution pour 30 -90 secondes! Quelqu'un peut-il donner une explication pourquoi?

La fonctionnalité "rapport d'optimisation" dans VTune n'existe apparemment pas pour les programmes non compilés avec icc. Existe-t-il un programme qui suggère une optimisation pour le code assembleur? (c'est-à-dire, pas de code venant d'un langage de haut niveau).

Répondre

2

Je suppose que c'est l'instruction idivl qui prend en fait le 38% ... la division prend plus de sens que la soustraction non?

+0

Bien sûr, le sous-programme doit attendre l'exécution d'idivl ... –