Réponse:
Le gain immédiat est l'économie des appels de fonction, donc du passage des
arguments et la récupération du résultat aux emplacements conventionnels, la
sauvegarde de l'adresse de retour, et deux sauts (aller et retour).
Le gain indirect est la connaissance exacte du code du corps de la fonction
carré ce qui permet de savoir qu'elle n'utilise pas les registres ra,
t0, t1, etc. et d'éviter ainsi des sauvegardes intermédiaires en
pile. (Un meilleur placement des temporaires dans les registres peut
également résulter du regoupement des ces deux fonctions et de leur
compilation simultanée.)