SubjectsSubjects(version: 845)
Course, academic year 2018/2019
   Login via CAS
Code Optimization in Production Compilers - NSWI134
Title in English: Optimalizace kódu produkčních překladačů
Guaranteed by: Department of Applied Mathematics (32-KAM)
Faculty: Faculty of Mathematics and Physics
Actual: from 2017
Semester: summer
E-Credits: 3
Hours per week, examination: summer s.:2/0 Ex [hours/week]
Capacity: unlimited
Min. number of students: unlimited
State of the course: taught
Language: Czech, English
Teaching methods: full-time
Guarantor: Mgr. Jan Hubička, Ph.D.
Class: Informatika Mgr. - volitelný
Classification: Informatics > Software Engineering
Annotation -
Last update: G_I (06.06.2008)
Open source compilers, middle-end, intermediate representations, dataflow, SSA form, alias analysis, global optimization, interprocedural optimization.
Aim of the course - Czech
Last update: G_I (06.06.2008)

Narozdíl od přednášky NSWI109 "Konstrukce překladačů" si přednáška neklade za cíl podat přehled o celém back-endu, ale soustředí se na zajímavé výsledky v oblasti optimalizace, které našly své uplatněni v praktických middle-endech.

Course completion requirements - Czech
Last update: Mgr. Jan Kynčl, Ph.D. (31.05.2019)

Ústní zkouška.

Literature -
Last update: G_I (06.06.2008)

Advanced Compiler Design and Implementation

Steven Muchnick

Morgan Kaufmann, 1997, ISBN 978-1558603202

Building an Optimizing Compiler

Robert Morgan

Digital Press, 1998, ISBN 978-1555581794

Requirements to the exam - Czech
Last update: Mgr. Jan Hubička, Ph.D. (28.02.2018)

Zkouška proběhne ústní formou, v rozsahu 2-3 otázek pokrytých látkou probranou na přednáškách.

Syllabus -
Last update: G_I (06.06.2008)
  • Introduction to existing open source compilers (GCC, LLVM, Open64, etc.)
  • Representing program in the intermediate language
  • Control Flow Graph
  • SSA form
  • Basic optimizations using SSA form (constant propagation, global value numbering, etc.)
  • Alias Analysis and optimizing memory accesses
  • Loop detection and optimization
  • Optimizing for memory hiearchy
  • Interprocedural optimization (linktime optimization, inlining, constant propagation, etc.)
  • Profile directed optimization, dynamic optimization

 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html