TDDC86 Compiler Optimizations and Code Generation
Lectures
Preliminary contents of lectures.
The slide material is subject to update without notice.
| Time: | Lecture topics: | By: | Reading directions: | |
|---|---|---|---|---|
| 1 | 28/8 15-17 |
General information.
(PDF) Multi-level intermediate Representations. Common subexpression elimination. (PDF) | C. Kessler |
ALSU2e Ch. 8.4-5; Muchnick Ch. 1.2-1.3, Ch. 4 |
| 2 | 31/8 13-15 |
Multi-level IRs (cont.) Static analysis classification (PDF); Control flow analysis (1) (PDF) | C. Kessler |
Recapitulate Depth-First Search! ASU1e Ch. 10.4, ALSU2e Ch. 9.6, Muchnick Ch. 7 |
| 3 | 2/9 10-12 |
Control flow analysis (cont.) | C. Kessler | see above |
| 4 | 8/9 08-10 | Data flow analysis (1) (PDF) | C. Kessler | ASU1e Ch. 10.5-6, ALSU2e Ch. 9.2-4, Muchnick Ch. 8 |
| 5 | 9/9 10-12 | Data flow analysis (2) | C. Kessler | |
| L1 | 11/9 15-17 | Lesson 1 | M. Eriksson | - |
| 6 | 14/9 13-15 | Data dependence analysis and (high-level) loop transformations (PDF) | C. Kessler | ALSU2e Ch. 11 |
| 7 | 16/9 10-12 | Loop transformations (cont.), loop parallelization and vectorization. | C. Kessler | (see above) |
| 8 | 18/9 15-17 |
Instruction selection
(PDF).
Instruction-level parallel architecture concepts, resource modeling with reservation tables. Instruction scheduling. (PDF). | C. Kessler |
ALSU2e Ch. 8.9;
Muchnick Ch. 6, esp. 6.4 Handout-paper Sect. 4 Handout-paper Sect. 1-2 |
| L2 | 21/9 13-15 | Lesson 2 | M. Eriksson | - |
| 9 | 23/9 10-12 |
Local and global instruction scheduling (cont.); Software pipelining for loops (PDF). Example modulo scheduling heuristic: HRMS (PDF). | M. Eriksson |
ALSU Ch. 10,
Muchnick Ch. 17 Handout-paper Sect. 7 |
| 10 | 25/9 15-17 | Instruction scheduling (cont.) | C. Kessler | (see above) |
| 11 | 28/9 13-15 |
Register allocation.
(PDF).
Scheduling for Minimum Register Need. (PDF). | C. Kessler |
Handout-paper Sect. 6 |
| 12 | 30/9 10-12 |
Phase ordering problems and
Integrated Code Generation.
(PDF).
Selected DSP / embedded code generation issues: - Address code optimization (Offset assignment). - Optimizing for parallel memory banks. - Exploiting SIMD instructions. - Energy optimizations. (PDF). | C. Kessler |
Handout-paper Sect. 2+8
www.address-code-optimization.org |
| 13 | 2/10 15-17 |
Autotuning / Iterative compilation
(PDF).
Run-time parallelization, Speculative parallelization (PDF). Short introduction to SSA (PDF). | C. Kessler |
(References see slide sets.)
Muchnick Ch. 8.11 |
| L3 | 5/10 13-15 | Lesson 3 | M. Eriksson | - |
| SE1 SE2 | 7/10 10-12
9/10 15-17 |
Project presentations 1 + 2
| C. Kessler | |
| SE3 | 12/10 13-15 | Project presentations 3 (Reserve time slot) | C. Kessler | |
| SE4 | 13/10 08-10 | Project presentations 4 (Reserve time slot) | C. Kessler |
Reading directions marked by
- ASU1e: refer to the book
by Aho, Sethi, Ullman: Compilers Techniques, Principles, and Tools,
first edition 1986;
- ALSU2e: refer to the book
by Aho, Lam, Sethi, Ullman: Compilers Techniques, Principles, and Tools,
second edition 2007;
- Muchnick: refer to the book
by Muchnick: Advanced Compiler Design and Implementation, 1997;
- Handout-paper: refer to the book chapter by
C. Kessler: Compiling for VLIW DSPs, draft chapter, 37 pages, 2009, handed out in paper form.
Page responsible: Christoph W Kessler
Last updated: 2009-10-01
