The invention is directed to the transformation of software loops having
early exit conditions, thereby allowing the loops to be more effectively
converted to a single basic block for software pipelining. The invention
assigns a predicate register for each early exit condition of the software
loop. The predicate registers are set when the corresponding early exit
condition is satisfied. In this manner, when the loop terminates the
predicate registers can be examined to indicate which early exit
conditions were satisfied. The invention produces loops having a lower
recurrence II and resource II than conventional techniques.
L'invention est dirigée vers la transformation des boucles de logiciel ayant des états tôt de sortie, permettant de ce fait aux boucles d'être converties plus efficacement en bloc de base simple pour la canalisation de logiciel. L'invention assigne un registre d'attribut pour chaque état tôt de sortie de la boucle de logiciel. Les registres d'attribut sont placés quand la condition tôt correspondante de sortie est satisfaite. De cette manière, quand la boucle se termine les registres d'attribut peuvent être examinés pour indiquer quels états tôt de sortie ont été satisfaits. L'invention produit des boucles ayant une répétition inférieure II et la ressource II que des techniques conventionnelles.