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.)