La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

CNRS, UMR 3192, Lab-STICC Centre de Recherche - BP 92116 F-56321 Lorient Cedex - FRANCE Modèle CDFG une proposition pour débattre... Philippe Coussy, Dominique.

Présentations similaires


Présentation au sujet: "CNRS, UMR 3192, Lab-STICC Centre de Recherche - BP 92116 F-56321 Lorient Cedex - FRANCE Modèle CDFG une proposition pour débattre... Philippe Coussy, Dominique."— Transcription de la présentation:

1 CNRS, UMR 3192, Lab-STICC Centre de Recherche - BP F Lorient Cedex - FRANCE Modèle CDFG une proposition pour débattre... Philippe Coussy, Dominique Heller

2 2 Plan Bloc de base Branchement conditionnel Boucle Fonction Dépendances de données inter BB

3 3 CDFG Un CDFG est un graphe orienté hiérarchique G(V,E) avec V l ensemble des nœuds et E l ensemble des arcs. Les arcs représentent le flow de contrôle entre les nœuds. Les nœuds aussi nommés blocs sont de deux types: basiques notés BB ou hiérarchiques notés BH.

4 4 Bloc de base BB Suite linéaire dinstructions un BB ne contient pas de boucle un BB ne contient pas de branchement conditionnel hormis la première instruction, il ny a pas dinstruction dans un BB qui est la cible dun branchement pas de point d entrée intermédiaire dans un BB pas de point de sortie intermédiaire dans un BB un GOTO hors d un if serait donc la dernière instruction d un BB ??? Instruction possible appel de fonction affectation Un BB peut être représenté par un DFG

5 5 Branchement conditionnel Utilisation dun modèle unique pour représenter les branchements conditionnels un branchement conditionnel est un bloc hiérarchique contenant Un nœud fork, un nœud join, un ensemble de blocs hiérarchiques, un ensemble darcs il est annoté avec le type de branchement conditionnel quil représente if(2) pour un if-then-else if(3) pour un if à trois branche switch(4) pour un switch-case à 4 cas

6 6 Branchement conditionnel Noeuds Fork (BB) contient le calcul des prédicats Join (BB) non fusionné avec le BB suivant contiendra les « PHY nodes » si la forme SSA est utilisée Ensemble de blocs hiérarchiques successeurs du nœud fork et prédécesseur du nœud join Arcs Les arcs de contrôle entre le nœud fork et lensemble des blocs hiérarchiques sont annotés avec les prédicats évalués dans le nœud fork

7 7 Branchement conditionnel : représentation P(y)... join If-then-else x = c*2; y= (x==0); z= (x== 1);... join... Switch-case x = c*2; y = a

8 8 Branchement conditionnel : représentation If « à 3 branches » P(x)... join x = (ab); z = (a==b); P(z)... P(y) Tag if(3)

9 9 Branchement conditionnel: switch avec un break manquant x = c*2; y= (x==0); z= (x== 1);... join... P(z) Tag switch(N) P(...)... P(y)

10 10 Boucle Représentation unique Init Corps de boucle test de condition d arrêt Next test de condition d arrêt Bloc suivant

11 11 Init BB1 test de condition d arrêt Join test de condition d arrêt Bloc suivant FORK BB2 Cont Boucle avec continue Next IF(2) OK ssi le code est de la forme suivante If (cond) continue; else BB2;

12 12 Init BB1 test de condition d arrêt Join test de condition d arrêt Bloc suivant FORK vide Cont Boucle avec continue Next IF(2) NOK si le code à un else implicite. Il faudra une transformation lors de la création du graphe pour utiliser le modèle du slide précédent If (cond) continue; BB2; BB2

13 13 Init BB1 test de condition d arrêt Join test de condition d arrêt Bloc suivant FORK BB2 Cont Boucle avec continue Next IF(2) If (cond) continue; else BB2; BB3; BB3 NOK si le code à un else implicite. Il faudra une transformation lors de la création du graphe pour utiliser le modèle du slide précédent

14 14 Init BB1 test de condition d arrêt Next test de condition d arrêt Bloc suivant FORK BB2 Break Boucle avec Break

15 15 Fonction Mise en ligne duplication de chaque appel un CDFG par appel de fonction (i.e. des nœuds hiérarchiques) Non mise en ligne cest une opération atomique et le BB n est pas scindé

16 16 Dépendances de données Expression des dépendances de données entre BB pour les live in et live out par exemple A REGARDER POUR LA PROCHAINE REUNION dépendances producteur consommateur nécessaires Par défaut utilisation de la forme SSA ou non SSA ? Si un BB utilise une fonction dont on ne connais pas le code => ignorer ce BB ou ajouter dans live in et live out les variables globales


Télécharger ppt "CNRS, UMR 3192, Lab-STICC Centre de Recherche - BP 92116 F-56321 Lorient Cedex - FRANCE Modèle CDFG une proposition pour débattre... Philippe Coussy, Dominique."

Présentations similaires


Annonces Google