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

Modèle CDFG une proposition pour débattre...

Présentations similaires


Présentation au sujet: "Modèle CDFG une proposition pour débattre..."— Transcription de la présentation:

1 Modèle CDFG une proposition pour débattre...
Philippe Coussy, Dominique Heller

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

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 Suite linéaire d’instructions
Bloc de base BB Suite linéaire d’instructions un BB ne contient pas de boucle un BB ne contient pas de branchement conditionnel hormis la première instruction, il n’y a pas d’instruction dans un BB qui est la cible d’un 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 Branchement conditionnel
Utilisation d’un 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 d’arcs il est annoté avec le type de branchement conditionnel qu’il 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 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 l’ensemble des blocs hiérarchiques sont annotés avec les prédicats évalués dans le nœud fork

7 Branchement conditionnel : représentation
Tag if(2) Tag switch(N) x = c*2; ‘ y= (x==0); ‘ z= (x== 1); ... ‘ x = c*2; ‘ y = a<b; ‘ z = !y; P(y) P(z) P(y) P(z) P(...) ... ... ... ... ... ... join join If-then-else Switch-case

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

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

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

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

12 Boucle avec continue Init 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 test de condition d ’arrêt BB1 IF(2) FORK vide Cont If (cond) continue; BB2; Join BB2 Next test de condition d ’arrêt Bloc suivant

13 Boucle avec continue Init 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 test de condition d ’arrêt BB1 IF(2) FORK BB2 Cont If (cond) continue; else BB2; BB3; Join BB3 Next test de condition d ’arrêt Bloc suivant

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

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

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 "Modèle CDFG une proposition pour débattre..."

Présentations similaires


Annonces Google