diff options
Diffstat (limited to 'CMP')
| -rw-r--r-- | CMP/Backend.md | 13 | ||||
| -rw-r--r-- | CMP/Basic Blocks.md | 25 | ||||
| -rw-r--r-- | CMP/Register allocation.md | 10 |
3 files changed, 48 insertions, 0 deletions
diff --git a/CMP/Backend.md b/CMP/Backend.md new file mode 100644 index 0000000..e073d97 --- /dev/null +++ b/CMP/Backend.md @@ -0,0 +1,13 @@ +Selection d'instructions = frontiere entre middle et backend +# Liveness analysis +$\neq$ scopes +scopes : peut utiliser +liveness = peut libérer la mémoire + +# Single static assignment +$\rightarrow$ renamer +$\varphi$-nodes = $x_{2} := \varphi(x_{0},x_{1})$ +Ajout d'un `MOVE` pour chaque arête incidente à la sortie de if +## Pour les boucles +aaaaaaa +# Allocation des registres
\ No newline at end of file diff --git a/CMP/Basic Blocks.md b/CMP/Basic Blocks.md new file mode 100644 index 0000000..f145d8b --- /dev/null +++ b/CMP/Basic Blocks.md @@ -0,0 +1,25 @@ +**Block**: Début = label, fin = `jump` ou `cjump`, ni label ni jmp au milieu +# Microprocessors +**ISA** (Instruction Set Architecture) : format, encoding, operations... +## Complex Instruction Set Chip +-> Operations compliquées encapsulées -> plus simple pour l'humain +-> bcp d'instructions +operations n'ont pas toujours la même taille donc plus chiant à exécuter +plusieurs cycles cpu par instruction +## Reduced Instruction Set Chip +One instruction per cycle +### Pipeline d'instruction +Possible parce que les instructions ont tout le temps la même taille +Permet de charger quasi-parallelement les instructions +- Instruction Fetch (IF) +- Instruction Decode (ID) +- Execute (EX) +- Memory Access (MA) +- Write Back (WB) +# MIPS +A simple RISC microprocessor +- N64 +- PlayStation +- Cisco router +# Instruction Selection +AST -> Assembly
\ No newline at end of file diff --git a/CMP/Register allocation.md b/CMP/Register allocation.md new file mode 100644 index 0000000..f09a940 --- /dev/null +++ b/CMP/Register allocation.md @@ -0,0 +1,10 @@ +Control flow graph -> vivacité -> graph d'interférence -> coloriage $\downarrow$ + +Mettre les temporaires sur la pile et les plus utilisées en registres +# Coalescence +Optimisation des propagations de copies +Si : +- a&b a moins de k voisins de degré significatif (+= que de couleurs) +- chaque voisin de a: + - est soit de degré insignifiant + - est déjà voisin avec b
\ No newline at end of file |
