summaryrefslogtreecommitdiff
path: root/CMP
diff options
context:
space:
mode:
Diffstat (limited to 'CMP')
-rw-r--r--CMP/Backend.md13
-rw-r--r--CMP/Basic Blocks.md25
-rw-r--r--CMP/Register allocation.md10
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