Salto : un environnement de transformations pour les
langages d'assemblages (cf. 2.2)
Participants : FranÇois Bodin,
Laurent Bertaux, Laurent Morin, André Seznec.
Mots clés : optimisation .
Contact: FranÇois Bodin
Statut : Déposé à l'APP sous le
numéro
IDDN.FR.001.070004.00.R.C.1998.000.10600,
disponible sur demande.
Salto propose un environnement de manipulation de
programmes en langage assembleur. Une abstraction des
ressources matérielles exploitables permet de les dissocier
de l'algorithme d'optimisation, ce qui a deux
avantages :
- le même algorithme peut être appliqué à des programmes
écrits pour différentes architectures avec très peu de
modifications ;
- la manipulation du code assembleur est grandement
simplifiée.
Salto est composé de quatre parties :
- le noyau effectue toutes les tâches nécessaires,
rébarbatives et souvent sources d'erreurs dont le
programmeur a envie de se passer, notamment l'analyse
lexicale et syntaxique du code, le calcul de la structure
en blocs de base et du flot de contrÔle, le calcul des
dépendances entre instructions ;
- la description de la machine est un fichier qui
détaille le jeu d'instructions et l'ensemble des ressources
matérielles de l'architecture cible qui sont susceptibles
d'intervenir dans le processus d'optimisation. Elle peut
être plus ou moins précise : une description simple
peut s'intéresser simplement aux unités fonctionnelles
tandis qu'une description plus fine peut faire intervenir
les bus d'accès à la mémoire, les ports sur le fichier de
registres, etc. ;
- l'interface utilisateur orientée objet donne un moyen
d'accès aux structures de données internes de Salto. Un
certain nombre de classes correspondent aux types de
données connus ;
- un algorithme d'instrumentation ou d'optimisation
fourni par l'utilisateur utilise l'interface pour accéder
au code et éventuellement le modifier. Salto en lui-même
n'a aucun effet sur le programme assembleur, il se contente
de fournir des abstractions du code et des méthodes à même
de faciliter l'implantation d'algorithmes. C'est à
l'utilisateur de spécialiser Salto pour obtenir un outil
correspondant à ses besoins.
Pour en savoir plus, se référer à http://www.irisa.fr/caps/projects/Salto ou
contacter FranÇois Bodin.