studiehandboken@lith   Link to LiU Homepage
 

Linköping Institute of Technology

Link to LiU Homepage
 
Preliminary course plan. Valid for year : 2007. Course code still missing.
(Förslag (upd. 23/10/2006 for 4p) - ny kurs för C, D, IT, Y - Ägare: UND)

Ges första gången ht/2007, troligtvis ht1.
Valfri kurs i profilerna Ddas and Yprt.

 

TDDC86 Compiler optimizations and code generation, 6 ECTS credits.
/Kompilatoroptimeringar och kodgenerering/

For:   C   D   IT   Y  

 

Prel. scheduled hours: 40
Rec. self-study hours: 80

  Area of Education: Technology
Subject: Computer Science/Computer Engineering

  Advancement level: D

Aim:
This is a follow-up course to the compiler courses Compilers and Interpreters (TDDB29) and Compiler Construction (TDDB44).
In this course, we consider more advanced issues in compiler technology, with a focus on program analysis, optimization, and back-end issues.
After the course, the student will
  • understand the theory of dependence analysis, control and data flow analysis;
  • know concepts and significance of advanced intermediate representations in modern compilers, including SSA form;
  • know the conditions for applicability and the performance improvement potential of important optimizing transformations in compilers;
  • know the main problems and compiler techniques for generating code for modern computer architectures, including embedded processors, DSP processors and high-performance computing architectures.
Prerequisites:
Data structures and algorithms (e.g., TDDB56 or TDDB28); Compilers and interpreters (TDDB29) or Compiler construction (TDDB44); Computer architecture (e.g., TDTS55).

Organisation:
The lectures introduce the theory and are complemented by lessons with exercises.
The project is done in small groups. The project task consists either of an experimental self-study of a modern compiler framework or of a critical review of a recent conference paper or journal article in compiler technology. The project results are to be presented both by oral presentations and by a written summary paper. The course therefore concludes with a simulated compiler workshop where the project results are presented for all participants.


Course contents:
Design of intermediate representations. Control flow analysis. Data flow analysis. Common subexpression elimination. Interprocedural analysis. Dependence analysis. Loop transformations. Loop parallelization. Static single assignment form. Instruction selection. Local and global instruction scheduling. Register allocation. Phase ordering problems and integrated code generation. Software pipelining. Code generation for embedded systems. Code generation for parallel systems. Just-in-time (JIT) compilation. Compiling object-oriented programming languages. Exception handling. Garbage collection.

Course literature:
  • Aho, Lam, Sethi, Ullman: Compilers Principles, Techniques, and Tools, Second Edition. Addison-Wesley, to appear 2006/2007.
Or one of the following books:
  • Aho, Sethi, Ullman: Compilers Principles, Techniques, and Tools, Addison-Wesley, 1986. Chapter 10.
  • Muchnick: Advanced Compiler Design and Implementation. Morgan Kaufmann, 1997.
  • Cooper, Torczon: Engineering a compiler. Morgan Kaufmann, 2004.
Further literature references will be given on the course home page.


Examination:
TEN1
Written examination
2 p.
Remark: The questions in the written exam check how well the student has fulfilled the learning goals of the theory part of the course. For passing the exam, deficits in fulfilling certain partial goals can be balanced by a better fulfilling of other partial goals.
UPG1
Project (in small groups) with oral presentation and written summary paper
2 p.
 



Course language is English.
Director of Studies: Erik Larsson (sas-sr@ida.liu.se)
Examiner: Christoph Kessler
Home page: http://www.ida.liu.se/~chrke/courses/TDDC-KK2/
Owner: UND



Linköping Institute of Technology

Link to top of pagep


Contact: TFK , val@tfk.liu.se
Last updated: 19/10/2006

End of page