An optimization process is disclosed. The process first finds a parallel
compare sequence in a program flow, for example using a flow graph. The
guarding predicate (gp) is obtained for the compares. If a new dominating
predicate (dp) can be found, the process proceeds to determining if
compares for the dp generate the correct or needed initial value for the
gp. If there are free result slots available, the proper compares are
generated and folded into the initialization. If no free slots are
available, it is determined if there is a use of a gp between the dp and
gp. If not, the dp is renamed to gp, and the proper compares are generated
and folded into the initialization. If there is such a use, the guarding
predicate of the compares is found and the process reiterates until it
ends with the failure to find a new dominating predicate dp.
Un processus d'optimisation est révélé. Le processus trouve d'abord un parallèle pour comparer l'ordre dans un écoulement de programme, par exemple en utilisant un graphique d'écoulement. L'attribut de garder (généraliste) est obtenu pour compare. Si un nouvel attribut de domination (DP) peut être trouvé, le processus procède à déterminer si compare pour le DP produisent de la valeur initiale correcte ou nécessaire pour le généraliste. S'il y a les fentes libres de résultat disponibles, l'approprié compare est produit et plié dans l'initialisation. Si aucune fente libre n'est disponible, on le détermine s'il y a une utilisation d'un généraliste entre le DP et le généraliste. Si pas, le DP est retitré au généraliste, et l'approprié compare est produit et plié dans l'initialisation. S'il y a une telle utilisation, l'attribut de garder du compare est trouvé et le processus réitère jusqu'à ce qu'il finisse avec le manque de trouver un nouveau DP de domination d'attribut.