CS 6013 - Modern Compilers - Theory and Practice
Goal of the course:
At the end of the course, students will have a fair understanding of some standard passes in a general purpose compiler. Students will have hands on experience on implementing a few program analyses and optimization techniques.
Slides for the Lectures:
- Time and Place: Mon (16:00-17:15), Wed (16:00-17:15), Slot - UoP. Class room: online.
- Teacher : V. Krishna Nandivada
- Office hours / Doubt sessions : Anytime.
- TA : Prasoon Mishra (cs20s028@smail)
- Office hours / Doubt sessions : Fix a time by sending an email.
- Course outline.
- Software, documentation and tools link is here.
- Submission guidelines.
- Discussion website is here (access restricted).
- Book 1: Advanced Compiler Design and Implementation: Steven Muchnick, 1998.
- Book 2: Compilers: Principles, Techniques, and Tools: A V Aho, Monical Lam, R Sethi, J D Ullman, 2005.
- Book 3: Principles of Program Analysis: Flemming Nielson, Hanne Riis Nielson, Chris Hankin, Springer, 2006.
- Book 4: Modern compiler implementation in Java, Second Edition, Andrew W. Appel, Jens Palsberg, Cambridge University Press, 2002.
- Book 5: The Java programming language, Arnold, Gosling and Holmes, Addison-Wesley, 2005. Also see the online manuals in the documentation section.
- Paper 0: The Fortran Automatic Coding system, Backus et al, 1957.
- Paper 1: A unified approach to program optimization: Gary A Kildall, 1973.
- Paper 2: Constant Propagation with conditional branches: Wegman and Zadeck.
- Paper 3: Interprocedural constant propagation: Callahan, Cooper, Kennedy and Torczon.
- Paper 4: Linear Scan Register Allocation: Poletto and Sarkar.
- Paper 5: Improved Bitwidth-aware Variable Packing: Nandivada and Barik, TACO 2013.
- Paper 6: Improved MHP Analysis: A Shankar, S S Chakraborty, and V K Nandivada, CC 2016.
- Paper 7: A loop transformation theory and an algorithm to maximize parallelism, Wolf and Lam, IEEE TPDS 1991.
- Paper 8: Uniprocessor Garbage Collection Techniques, Paul R Wilson, 1992.
- Two LH. Introduction, overview of lexical and syntax analysis.
- Two LH. JavaCC, Visitor Pattern and JTB.
- Six LH. Symbol Table Creation and IR Generation, IR generation for OO languages.
- Six LH. Data Flow Analysis, constant propagation,
conditional constant propagation.
- Six LH. Control Flow Analysis and optimizations (forward dataflow analysis).
- Four LH. Call graph construction, interprocedural constant propagation, function inlining (using CHA).
- Eight LH. Alias and Points-to analysis for C and Java. Flow sensitive and insensitive analysis. Introduction to Escape Analysis. On the board teaching.
- Eight LH. Dependence Analysis, Dependence Testing, overview of optimizations, loop optimizations.
||24 Aug 2022
||06 Sep 2022, 11:59PM
||21 Sep 2022
||27 Sep 2022
||12 Oct 2022, 11:59PM
|| Constant Propagation
||19 Oct 2022
||25 Oct 2022
||09 Nov 2022, 11:59PM
||10 Nov 2022
||17 Nov 2022,
||29 Nov 2022, 11:59PM
|P5 |Register Allocation
Paper reading / presentation / critic: 10 marks.
Papers' details: here.
- Quiz 1 exam (10%) on Sep 26 2022 (Mon), 16.00. Closed book, closed notes, closed neighbor.
- Quiz 2 exam (10%) on Oct 31 2022 (Mon), 16.00. Closed book, closed notes, closed neighbor.
- Final exam (30%+10%) on Dec 05 2022 (Wed), 16.00-19.00. Open book, Open notes, closed neighbor.
Sat Aug 20 19:03:33 IST 2022