
7.5 points, LP1 2011
The lectures are Wednesdays at 13-15 in E:1406 and Fridays 10-12 in different locations. See below.
| F1 | 31/8 | Introduction to optimising compilers | E:1406 |
| F2 | 2/9 | Control flow graphs and dominance analysis | E:1406 |
| F3 | 7/9 | Translation to and from SSA Form | V:B |
| F4 | 9/9 | Register allocation | A:B |
| F5 | 14/9 | Constant Propagation | E:1406 |
| F6 | 16/9 | Value numbering | E:1406 |
| F7 | 21/9 | Partial redundancy elimination | E:1406 |
| F8 | 23/9 | Operator strength reduction | E:1406 |
| F9 | 28/9 | Dead code elimination | E:1406 |
| F10 | 30/9 | Data dependence analysis | E:1406 |
| F11 | 5/10 | SIMD vectorization | E:1406 |
| F12 | 7/10 | Modulo scheduling | E:1406 |
| F13 | 12/10 | Repetition and reserved time for presentation of article | E:1406 |
| R | 14/10 | Reserve time for presentation of article | E:1406 |
Exercises
There are two occasions to select from: Mondays 10-12 and Thursdays 13-15 both in E:2116.
The exercises are in weeks 2-7 and are compulsory, and you are allowed to skip one exercise.
The reason they are compulsory is for the presentation of scientific articles. If nobody will present any article, you can leave. You need to present one article during the course.
Competition
| Year | Position | Group | Faculty/Programme | Clock cycles |
| 2011 | 1 | Linus Åkesson | CS Dept/PhD Student | 112805 |
| 2 | Rasmus Barringer | CS Dept/PhD Student | 449009 | |
| 3 | Tobias Alex-Petersen | Engineering/E | 831832 | |
| 2010 | 1 | Joakim Andersson/Jon Sten | Engineering/D | 126616 |
| 2 | Carl Cristian Arlock/Erik Pettersson/Mikael Rudner | Engineering/D, LTH, LiTH, LiTH | 149909 | |
| 3 | Dan Kvelstad | Engineering/D | 150443 | |
| 2009 | 1 | Manfred Dellkrantz/Jesper Öqvist | Engineering/D | 950 |
| 2 | Fredrik Persson/Andreas Larsson | Engineering/D | 17320 | |
| 3 | Niklas Fors/Erik Linge | Engineering/D | 20680 | |
| 2008 | 1 | Jonas Paulsson | Engineering/D | 18977 |
| 2 | Hans Wennborg | Engineering/D | 22437 | |
| 3 | Johan Gunnarsson | Engineering/D | 32698 | |
| 2007 | 1 | Bjorn Carlin (Pi)/Hans Gylling (D) | Engineering/Pi, D | 1047 |
| 2 | Magnus Hojer | Engineering/D | 7865 | |
| 3 | Monthadar Al-Jaberi/Mario Boikov | Engineering/D | 150367 | |
| 3 | Torbjorn Andersson | Engineering/E | 150367 | |
| 3 | Philip Carnstam/Jan-Ola Svensson | Engineering/D | 150367 | |
| 2006 | 1 | Fredrik Nilsson | Engineering/D | 3388 |
| 2 | David Henningsson | Science/CS | 10229 | |
| 3 | Erik Andre/Mitch Selander/Anders Sunnermark | Engineering/D | 43756 | |
| 2005 | 1 | Mats Mattsson | Engineering/Pi | 5738 |
| 2 | Magnus Malmborn/Johan Heander | Engineering/F | 16844 | |
| 3 | Mikael Collin | KTH/Doktorand | 63477 | |
| 2004 | 1 | Jonas Åström | Engineering/Pi | 21538 |
| 2 | Anders Hugosson | Science/CS | 30660 | |
| 3 | Fredrik Redgård | Engineering/D | 41863 | |
| 2003 | 1 | Alexander Malmberg | Engineering/D | 3744 |
| 2 | Rickard Möller | Science/CS | 6551 | |
| 3 | Tobias Johansson | Engineering/D | 65088 | |
| 2002 | 1 | Richard Johansson | Engineering/D | 7930 |
| 2 | Fredrik Brozén and Anders Gustafsson | Engineering/D | 13517 | |
| 3 | Jon Hasselgren | Engineering/D | 21842 | |
| 2001 | 1 | Bo Do and Per Fransson | Science/CS | 65776 |
| 2 | Karl Torpel | Engineering/D | 65998 | |
| 3 | Bartek Kania | Science/CS | 71874 | |
| 2000 | 1 | Per Cederberg | Robotics/Doktorand | 10768 |
| 2 | Ola Nilsson and Hans Wachtmeister | Engineering/D | 61071 | |
| 3 | Klas Lindberg | Science/CS | 64935 |
Goals with the course
The compiler is the programmer's most important tool. To be able to implement programs which are correct, efficient, and easy to maintain, it is important that the programmer knows what must be optimized by hand, and which work the compiler performs faster and better. Programmers become more productive with this knowledge.
The goals with the course is that the student after the course will:
Contents
Control-flow analysis, data-flow analysis, dependence analysis, alias analysis, redundancy elimination, loop optimisations, procedure optimisations, register allocation, code scheduling, optimisation for object oriented languages, optimisation of the memory hierarchy, and vectorization for processors with SIMD instructions, such as PowerPC/AltiVec. An introduction to parallelisation for shared memory multiprocessors is also given.
Page Manager: Peter Möller
Webmaster: webmaster@lth.se
Last updated: 2011-12-02