3 votes

Définition des superblocs et des hyperblocs du point de vue du compilateur

Il s'agit d'une question très simple pour les compilateurs, mais je suis toujours confus avec les superblocs et les hyperblocs. J'ai vu des définitions pour les superblocs et les hyperblocs, mais j'aimerais connaître leur définition du point de vue d'un compilateur.

Je suis familier avec des concepts tels que le bloc de base, l'exécution de prédicats et le déroulement de boucles, vous pouvez donc ignorer les notions de base.

Merci de votre attention !

5voto

aminfar Points 589

Le présent papier décrit l'idée de superbloc et ce qu'est un superbloc. En bref, l'idée est d'augmenter l'ILP entre les blocs de base, car l'ILP dans un bloc de base peut ne pas être suffisamment élevé. Un superbloc est une trace qui n'a pas d'entrées latérales. Le contrôle ne peut entrer que par le haut, mais peut sortir par un ou plusieurs points de sortie. Il n'y a donc qu'une seule entrée au sommet, mais plusieurs sorties. Nous utilisons les informations de profil pour construire un superbloc à partir d'un chemin commun qui comprend plusieurs blocs de base. Nous appliquons ensuite l'optimisation du superbloc. Jetez un coup d'œil à l'article pour plus d'informations.

Si nous n'avons pas de chemin commun unique et si nous disposons d'un support de prédiction, nous pouvons combiner plusieurs chemins communs pour créer un hyperbloc et faire de l'optimisation sur l'hyperbloc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X