Salut à tous ,
Je vais commencer sec :
Je suis actuellement sur un projet: j'essaies de refaire un compilateur du début à la fin.
Je sais que il existe beaucoup de documentation pour cela, mais je vous demande vos idées, vois pistes pour débuter.
Je veux faire un compilateur qui parallèliserais automatiquement le code (sur CUDA notamment).
Le compilateur devra alors trouver les possibilités de parallèlisme du langage C++ pour les exploiter (boucles for indépendantes,calculs parallelisables ...).
Et pour un maximum d'adaptabilité, je voudrais qu'on puisses préciser l'architecture de l'ordinateur sur lequel le futur programme est censé s'éxécuter (nombre de coeurs, instructions supportées, traduction de ces instructions, nombre/taille des registres) dans un document.
Pour optimiser le parallèlisme d'instructions. ... On se réveille !
Ce compilateur n'est pas pensé pour une architecture x86 banale.
A l'heure actuelle, je sais que un compilateur marche de la manière suivante : précompilateur, puis, génération de code intermédiaire, suivi par une optimisation sur ce premier code, et enfin, élaboration du code assembleur.
Pour commencer, Existe t'il un programme qui ne ferais que de précompiler ?
Et rendrais un texte contenant uniquement le code source ?
Je pensais a l'algorithmie suivante pour la partie optimisation:
- Identifier/Isoler les parties du codes qui peuvent s'executer Out of Order
- Regrouper les instructions qui pour raison évidente doivent être regroupées
- Effectuer des simulation (calcul de cycles nécessaires) pour le reste
Le compilo prendrais en entrée:
- Le code source a compiler
- un fichier contenant les données d'architectures du processeur
- un fichier contenant le jeu d'instructions du processeur, ses equivalents en x86 plus ou moins, et le temps éexecution
Qu'en pensez vous ?
Je sais que il existe déjà HMPP http://www.caps-entreprise.com/fr/ [...] =49&p_p=36 pour la partie de parallèliser le code, mais je ne sais pas si il existe un compilo qui optimises selon l'architecture.
Merci pour votre aide