code generation
DESCRIPTION
Code Generation. Tiger Compiler Project. By Mu Li. Phases. Book chapter. Chapter 9-12 Codes about chapter 8 are provided. MIPS. move sw, lw add, sub, mul, div and, or jal, j, beq, bne, bgt… li, la addi, subi, … (optional) more refer to “The MIPS Info Sheet”. MIPS Registers. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Code Generation](https://reader033.vdocument.in/reader033/viewer/2022061508/5681593e550346895dc67d7b/html5/thumbnails/1.jpg)
Tiger Compiler Project
By Mu LiBy Mu Li
![Page 2: Code Generation](https://reader033.vdocument.in/reader033/viewer/2022061508/5681593e550346895dc67d7b/html5/thumbnails/2.jpg)
2007-6-6Li, Mu([email protected]) 2
![Page 4: Code Generation](https://reader033.vdocument.in/reader033/viewer/2022061508/5681593e550346895dc67d7b/html5/thumbnails/4.jpg)
move sw, lw add, sub, mul, div and, or jal, j, beq, bne, bgt… li, la addi, subi, … (optional) more refer to “The MIPS Info Sheet”
2007-6-6Li, Mu([email protected]) 4
![Page 5: Code Generation](https://reader033.vdocument.in/reader033/viewer/2022061508/5681593e550346895dc67d7b/html5/thumbnails/5.jpg)
2007-6-6Li, Mu([email protected]) 5
![Page 6: Code Generation](https://reader033.vdocument.in/reader033/viewer/2022061508/5681593e550346895dc67d7b/html5/thumbnails/6.jpg)
2007-6-6Li, Mu([email protected]) 6
![Page 9: Code Generation](https://reader033.vdocument.in/reader033/viewer/2022061508/5681593e550346895dc67d7b/html5/thumbnails/9.jpg)
2007-6-6Li, Mu([email protected]) 9
Codegen generates assemble codes from IR tree, which implements Maximal Munch
![Page 10: Code Generation](https://reader033.vdocument.in/reader033/viewer/2022061508/5681593e550346895dc67d7b/html5/thumbnails/10.jpg)
2007-6-6Li, Mu([email protected]) 10
![Page 11: Code Generation](https://reader033.vdocument.in/reader033/viewer/2022061508/5681593e550346895dc67d7b/html5/thumbnails/11.jpg)
NP-hard Using a simple greed algorithm to get proper solution
Spilling is optional
2007-6-6Li, Mu([email protected]) 11
![Page 12: Code Generation](https://reader033.vdocument.in/reader033/viewer/2022061508/5681593e550346895dc67d7b/html5/thumbnails/12.jpg)
2007-6-6Li, Mu([email protected]) 12
![Page 13: Code Generation](https://reader033.vdocument.in/reader033/viewer/2022061508/5681593e550346895dc67d7b/html5/thumbnails/13.jpg)
Construct AssemFlowGraph by InstrList
Liveness analysis Generate InterferenceGraph Coloring
2007-6-6Li, Mu([email protected]) 13
![Page 15: Code Generation](https://reader033.vdocument.in/reader033/viewer/2022061508/5681593e550346895dc67d7b/html5/thumbnails/15.jpg)
1. 我发现你在 XX包内写了一个 YY变量,请问这个变量干什么用的 ?
2(a) 如果我要增加一种 ZZ语句,你打算 ?
2(b) 请你说说你是怎么翻译 initArray的 ?
3(a) 杀手题…… 3(b) 为什么你和张三的程序如此像 ?
2007-6-6Li, Mu([email protected]) 15
![Page 16: Code Generation](https://reader033.vdocument.in/reader033/viewer/2022061508/5681593e550346895dc67d7b/html5/thumbnails/16.jpg)
Deadline is 30th June NO cheating!
ftp://compiler:[email protected]/Final/
2007-6-6Li, Mu([email protected]) 16