Home  |  
Style  |  
Sitemap  |  
Svenska  |  
Lund University
 

Optimising Compilers

EDA230 Optimizing Compilers

 7.5 points, LP1 2011

  •  Course responsible: Jonas Skeppstedt
  • Course ombudsman: Fredrik Strandin 
  • Litteratur: J. Skeppstedt, An Introduction to Theory of Optimising Compilers 

Schedule of the 12 lectures

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 compilersE:1406
  F2 2/9 Control flow graphs and dominance analysisE:1406
  F3 7/9 Translation to and from SSA FormV:B
  F4 9/9 Register allocationA:B
  F5 14/9 Constant PropagationE:1406
  F6 16/9 Value numberingE:1406
  F7 21/9 Partial redundancy eliminationE:1406
  F8 23/9 Operator strength reductionE:1406
  F9 28/9Dead code eliminationE:1406
  F10 30/9 Data dependence analysisE:1406
  F11 5/10 SIMD vectorizationE:1406
  F12 7/10 Modulo schedulingE:1406
  F13 12/10Repetition and reserved time for presentation of articleE:1406
R14/10Reserve time for presentation of articleE: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
 

                  
YearPositionGroupFaculty/ProgrammeClock cycles 
20111Linus ÅkessonCS Dept/PhD Student 112805 
2Rasmus BarringerCS Dept/PhD Student449009 
3Tobias Alex-PetersenEngineering/E831832 
20101Joakim Andersson/Jon StenEngineering/D 126616 
2Carl Cristian Arlock/Erik Pettersson/Mikael RudnerEngineering/D, LTH, LiTH, LiTH149909 
3Dan KvelstadEngineering/D150443 
20091Manfred Dellkrantz/Jesper ÖqvistEngineering/D950 
2Fredrik Persson/Andreas LarssonEngineering/D17320 
3Niklas Fors/Erik LingeEngineering/D20680 
20081Jonas PaulssonEngineering/D18977 
2Hans WennborgEngineering/D22437 
3Johan GunnarssonEngineering/D32698 
20071Bjorn Carlin (Pi)/Hans Gylling (D)Engineering/Pi, D1047 
2Magnus HojerEngineering/D7865 
3Monthadar Al-Jaberi/Mario BoikovEngineering/D150367 
3Torbjorn AnderssonEngineering/E150367 
3Philip Carnstam/Jan-Ola SvenssonEngineering/D150367 
20061Fredrik NilssonEngineering/D3388 
2David HenningssonScience/CS10229 
3Erik Andre/Mitch Selander/Anders SunnermarkEngineering/D43756 
20051Mats MattssonEngineering/Pi5738 
2Magnus Malmborn/Johan HeanderEngineering/F16844 
3Mikael CollinKTH/Doktorand63477 
20041Jonas ÅströmEngineering/Pi21538 
2Anders HugossonScience/CS30660 
3Fredrik RedgårdEngineering/D41863 
20031Alexander MalmbergEngineering/D3744 
2Rickard MöllerScience/CS6551 
3Tobias JohanssonEngineering/D65088 
20021Richard JohanssonEngineering/D7930 
2Fredrik Brozén and Anders GustafssonEngineering/D13517 
3Jon HasselgrenEngineering/D21842 
20011Bo Do and Per FranssonScience/CS65776 
2Karl TorpelEngineering/D65998 
3Bartek KaniaScience/CS71874 
20001Per CederbergRobotics/Doktorand10768 
2Ola Nilsson and Hans WachtmeisterEngineering/D61071 

3Klas LindbergScience/CS64935 

 

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: 

  •  have a thorough understanding of the possibilities and limitations of optimizing compilers, and 
  •  have a thorough knowledge about which algorithms and data structures are used in modern optimizing compilers. 

 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

Facts about the course