Fiche CCMP2 2
Instruction selection
What makes a good instruction set?
- implementability: support for a (highperformances) range of implementation
- programmability: easy to express program
- Backward/forward compatibility: Implementability & programmability across generation
Deux types de processeurs
- Cisc: ancien
- Risc: nouveau (ex: mips)
Voir slide 20/89 pour les registres et les conventions
From Tree to ASM
Question
Dans la slide 68/89, je ne vois pas comment vous passez de l’arbre au jeu d’instruction. Pourrais-je avoir plus d’explications svp ? Peut-être que cela sera plus simple en classe. (idem slide 73, 74)
Il existe plusieurs manière de parcourir l’arbre et donc, plusieurs ensembles d’instructions possibles. Du coup, comment choisir le bon algo ? Lequel est le plus optimal ?
Maximal Munch
Strategie Top-Down qui couvre le noeud courant avec la plus grande tile possible. Et on fait de même avec les noeuds enfants.
Question
Il m’a semblé qu’une Tile == une instruction. Pourquoi parle t-on de “largest tile” dans les slides ?
Dynamic Programming
Strategie Bottom-up. On assigne un cost à chaque noeud.
cost = cost of selected tile + cost of subtrees.
On selectionne la tile avec un coût minimale et on remonte recursvivement les appels.
Fiche CCMP2 2
Instruction selection
What makes a good instruction set?
Deux types de processeurs
Voir slide 20/89 pour les registres et les conventions
From Tree to ASM
Dans la slide 68/89, je ne vois pas comment vous passez de l’arbre au jeu d’instruction. Pourrais-je avoir plus d’explications svp ? Peut-être que cela sera plus simple en classe. (idem slide 73, 74)
Il existe plusieurs manière de parcourir l’arbre et donc, plusieurs ensembles d’instructions possibles. Du coup, comment choisir le bon algo ? Lequel est le plus optimal ?
Maximal Munch
Strategie Top-Down qui couvre le noeud courant avec la plus grande tile possible. Et on fait de même avec les noeuds enfants.
Il m’a semblé qu’une Tile == une instruction. Pourquoi parle t-on de “largest tile” dans les slides ?
Dynamic Programming
Strategie Bottom-up. On assigne un cost à chaque noeud.
cost = cost of selected tile + cost of subtrees.
On selectionne la tile avec un coût minimale et on remonte recursvivement les appels.