CNRS, UMR 3192, Lab-STICC Centre de Recherche - BP 92116 F-56321 Lorient Cedex - FRANCE Modèle CDFG...

16
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 Heller

Transcript of CNRS, UMR 3192, Lab-STICC Centre de Recherche - BP 92116 F-56321 Lorient Cedex - FRANCE Modèle CDFG...

Page 1: 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.

CNRS, UMR 3192, Lab-STICCCentre de Recherche - BP 92116F-56321 Lorient Cedex - FRANCE

Modèle CDFG

une proposition pour débattre...

Philippe Coussy, Dominique Heller

Page 2: 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.

2

Plan• Bloc de base

• Branchement conditionnel

• Boucle

• Fonction

• Dépendances de données inter BB

Page 3: 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.

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.

Page 4: 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.

4

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

Page 5: 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.

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

Page 6: 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.

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

Page 7: 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.

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<b;‘ z = !y;

P(z) P(y) P(z)

Tag if(2) Tag switch(N)

P(...)

Page 8: 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.

8

Branchement conditionnel : représentation

If « à 3 branches »

P(x)

...

join

‘ x = (a<b);‘ y = (a>b);

‘ z = (a==b);

P(z)

... ...

P(y)

Tag if(3)

Page 9: 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.

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)

Page 10: 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.

10

Boucle

• Représentation unique

Init

Corps de boucle

test de condition d ’arrêt

Next

test de condition d ’arrêt Bloc suivant

Page 11: 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.

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;

elseBB2;

Page 12: 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.

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 graphepour utiliser le modèledu slide précédent

If (cond)continue;

BB2;BB2

Page 13: 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.

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;

elseBB2;

BB3;

BB3

NOK si le code à un else implicite.Il faudra une transformation lors de la création du graphepour utiliser le modèledu slide précédent

Page 14: 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.

14

Init

BB1

test de condition d ’arrêt

Next

test de condition d ’arrêt

Bloc suivant

FORK

BB2 Break

Boucle avec Break

Page 15: 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.

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 c’est une opération atomique et le BB n ’est pas scindé

Page 16: 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.

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