Computer Science

Faculty of Engineering, LTH

Denna sida på svenska This page in English

Optimizing Compilers

EDA230 Optimizing Compilers


Note: due to a bug somewhere, the links to the left don't work particularly well. A person responsible for typo3 at LTH will be contacted (or the pages will be moved to a different platform which they will anyway).

In the mean time, please use the following pure html file

 7.5 points, LP1 2

  • Course ombudsman:
  • Litteratur: J. Skeppstedt, An Introduction to the Theory of Optimizing Compilers, ISBN 1537091123, available at KFS and Amazon sites. Eventually it will also be available at Swedish online book sites (the fastest way to get the book is at KFS, and secondly from Amazon).
  • Schedule


 F1 Introduction to optimizing compilers
  F2 Control flow graphs and dominance analysis. 
  F3 Translation to and from SSA Form
  F4 Register allocation
  F5 Constant Propagation
  F6 Value numbering
  F7 Partial redundancy elimination
 F8Operatior strength reduction
  F9 Dead code elimination
  F10 Data dependence analysis
  F11 SIMD vectorization
  F12 Modulo scheduling and just-in-time compilers



The exercises are Mondays 10-12 E:1144. 




In 2012, only two groups submitted their projects in time,and in 2013 only one project, but, what a project then! Very impressive! From 2014 and on I will have a strict deadline for handing in all projects...





It is the same benchmark as was used in 2011.



YearPositionGroupFaculty/ProgrammeClock cycles 
20141Karl HylénEngineering/F40292
2Andrée Ekroth / Felix MulderEngineering/D858862
3Joel Lindholm / Johan Thorsberg Engineering/D1961582
20131Erik Hogeman / Mads NielsenEngineering/D           49155
20121Martin NitscheFakultät für Mathematik und Informatik/Mathematik. Georg-August-Universität Göttingen    33526

Johan Ullen /Mattias Ahlström

20111Linus ÅkessonCS Dept/PhD Student 112805 
2Rasmus BarringerCS Dept/PhD Student 449009 
3Tobias Alex-PetersenEngineering/E 831832 
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. 


Page Manager: