• Aucun résultat trouvé

Presentation du formalisme

Contraintes non-anes

Numerotons chaque contrainte non-ane du programme. Etant donne une contrainte non-ane

c

h, on note Th l'instruction dans laquelle elle appara^t. Cette instruction est soit une conditionnelle (branche((vrai))ou branche((faux))), soit une boucle si ces bornes sont non-anes, soit une a ectation a un tableau avec des indices non-anes. La valeur de

c

h depend des compte-tours englo-bantTh, eventuellement du vecteur d'iteration de la lecture dont on cherche la source si

c

h est l'equation d'indices, et siTh est unwhile,

c

h depend alors aussi du compte-tours du while. Par consequent, si

x

2 Qk(

y

) ou Qk(

y

) est l'en-semble des vecteurs d'iteration des candidats sources de l'instruction Sk, alors

c

h(

x

[1

::e

h]

;y

) = vrai, avec

e

h =

d

T

h ou

d

T

h + 1 si Th est un while. Suivant la precision que l'on cherche a atteindre, la contrainte non-ane

c

h peut s'ecrire soit comme un predicat, soit comme une inegalite:

c

h(

x;y

) =

a

h(

x;y

) +X

k

n

k(

x;y

)0

!

;

avec

a

h une forme ane et

n

k des fonctions non-anes. Il faut noter que les

n

k peuvent ^etre des variables qui ne sont pas des compte-tours.

De nition 2 (Domaine de parametres)

Soient Ck l'ensemble des indices des contraintes non-anes apparaissant dans la de nition de Qk(

y

) et

m

k = maxh2C k

e

h. L'ensemble: Dk(

y

) = 8 < :

x

x

2Zmk

;

^ h2C k

c

h(

x

[1

::e

h]

;y

) 9 = ;

;

est l'ensemble de vecteurs d'iteration de dimension

m

k pour lesquels toutes les contraintes indexees par Ck sont vraies. Cet ensemble est appele domaine de parametres associe a la dependance entre une instance de Sk ethR

;y

i.

Parametrage de la source

On rappelle la de nition de la source:



(

y

) = max1 in0 max pdS k R Sk

;

maxQ p k(

y

)

:

L'idee du parametrage de la source est simple : intuitivement, plus on retardera le moment de l'approximation dans le calcul, plus on a de chances qu'elle soit meilleure. On va donc introduire des parametres representant les contraintes non-anes dans l'expression de la source, a n de pouvoir calculer l'expression de la source en fonction de ces parametres puis faire l'approximation. On verra par la suite que l'introduction de parametres a egalement d'autres avantages.

IV. ANALYSE APPROCH 

EE DEFLOT 31

L'ensemble Q p

k(

y

) peut clairement s'ecrire comme l'intersection de l'en-semble des vecteurs d'iteration veri ant les contraintes anes de Q

p k(

y

),L

p k(

y

), et de l'ensemble des vecteurs d'iteration veri ant les contraintes non-anes de

Q p k(

y

): Q p k(

y

) =L p k(

y

)\f

z

j

z

[1

::m

k]2Dk(

y

)g

:

Posons maintenant ^Q p k(

x;y

) =L p k(

y

)\f

z

j

z

[1

::m

k] =

x

g. On a partitionneQ p k(

y

) en autant de sous-ensembles que d'elements deDk(

y

):Q

p k(

y

) = [ x2D k(y)Q^ p k(

x;y

)

:

Par consequent, maxQ p k(

y

) = maxx 2D k(y)max ^Q p k(

x;y

)

:

(1)

La valeur du maximum est atteinte pour un

x

de Dk(

y

).

De nition 3 (Parametre du maximum)

Le vecteur pour lequel le maxi-mum de (1) est atteint est appele parametre du maximum de Dk(

y

) pour Sk

a la profondeur

p

et est note

pk(

y

). Si le maximum n'existe pas, on donne a

pk(

y

) la valeur ?. De plus, par de nition de ^Q p k(

x;y

),

p k(

y

) = maxL p k(

y

)jmk \Dk(

y

)

:

L'ensembleL p k(

y

)jmkest la projection deL p

k(

y

) surZmk. L'expression parametree de la source est alors:



(

y

) = max1 kn0 max pdS k R D Sk

;

max ^Q p k(

pk(

y

)

;y

)E

:

(2) Remarquons que cette expression est calculable en fonction de

p

k(

y

) avec les m^emes techniques que celles utilisees dans le cas exact. De plus, lorsqu'il n'y a pas de contrainte non-ane dans la de nition de la source, alors

pk(

y

) = maxL

p

k(

y

)jmk et la source est exacte. Ainsi, l'analyse exacte de la section III est bien un cas particulier de la FADA.

Flou du resultat

Aucune approximation n'a ete faite lors du parametrage de la source. Les parametres du maximum ne peuvent pas ^etre calcules mais l'expression de la source (2) peut ^etre utilisee telle quelle a l'execution pour determiner dynami-quement la source exacte d'une variable, si les parametres du maximum sont calcules et mis a jour dynamiquement egalement. On n'envisagera pas cette utilisation possible de la source par la suite.

Une approximation tres simple consiste a donner aux parametres toutes les valeurs possibles et de considerer l'ensemble des sources decrit de cette facon comme l'ensemble des sources possibles. Une telle approximation est clairement conservative, mais le resultat de l'analyse est alors tres ou.

Pour ameliorer cette approximation, on peut chercher des proprietesP sur les contraintes non-anes. De ces proprietes, on va deduire des proprietes ^Psur les parametres du maximum, puis on va calculer l'ensemble des sources possibles en donnant aux parametres toutes les valeurs permises par les proprietes ^P. On va donc proceder en trois etapes:

1. Des proprietesPsont trouvees par une analyse des contraintes non-anes du programme. Plus la description de ces contraintes est precise, plus l'ensemble decrit par P est petit. La gure 1 represente le cas ou une

contraintes de nies par P

c c

Fig. 1 - Approximation d'une contrainte.

seule contrainte

c

intervient dans l'expression de la source.

c

veri e les proprietesP, ce qui garantit que l'analyse est conservative.

2. Les proprietes ^P sont derivees deP. Les proprietes sur les parametres du maximum sont des consequences des proprietes P, a n de garantir que l'analyse est toujours conservative. Cette traduction dePen ^Ppermet de ne retenir de P que les informations qui sont utiles pour le calcul de la source. Le but est de montrer que, comme sur la gure 2, chaque vecteur veri ant ^P est le parametre du maximum d'une contrainte veri ant P, c'est-a-dire que l'on n'a pas perdu de precision durant la traduction. 3. En n, on construit la source parametrique et l'on considere toutes les

valeurs possibles de cette source pour tous les parametres veri ant ^P:

S(

y

) =1max km0 max pdS k R D Sk

;

Q^ p k(

x

pk

;y

)E

x

pk 2Zmk

;

P^ ?

::: ;x

pk

;:::



:

Cet ensemble est calculable si les proprietes ^P sont anes. Comme le montre la gure 3, a chaque parametre veri ant ^P correspond une source possible, parmi lesquelles se trouve la source exacte.

IV. ANALYSE APPROCH 

EE DEFLOT 33

contraintes de nies parP ensemble de ni par ^P

c

pk(

y

)

Fig. 2 - Traduction de P en ^P.

ensemble de ni par ^P ensemble de sources

pk(

y

)



(

y

)

Fig.3 - Calcul de l'ensemble de sources.

Documents relatifs