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 (8.00-8.50pm), Tue (12-12.50), Thu (11-11.50), Fri (10-10.50) A slot. Class room # NPTEL Studio 2, ICSR
- Teacher : V. Krishna Nandivada
- Office hours / Doubt sessions : Anytime.
- TA : Aman Nougrahiya (amannoug@cse), Manas Thakur (manas@cse), Indu K (induk@cse)
- 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.
- Book 2: Compilers: Principles, Techniques, and Tools: A V Aho, Monical Lam, R Sethi, J D Ullman.
- Book 3: Principles of Program Analysis: Flemming Nielson, Hanne Riis Nielson, Chris Hankin, Springer, 2005.
- 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: Bitwidth aware register allocation: Tallam and Gupta POPL 2003.
- 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.
- Four LH. Control Flow Analysis and optimizations.
- Eight LH. Dependence Analysis, Dependence Testing, overview of optimizations, loop optimizations, introduction to polyhedral transformations.
- 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.
- Four LH. SSA and optimizations, sparse conditional constants paper.
- Five LH. Register Allocation. Paper on iterated register coalescing register allocation. Paper on linear scan register allocation. Improved bitwidth-aware variable packing.
||10 Jan 2017
||19 Jan 2017, 11:59PM
||20 Jan 2017
||25 Jan 2017
||07 Feb 2017, 11:59PM
|| Conditional Constant Propagation
||08 Feb 2017
||11 Feb 2017
||02 Mar 2017, 11:59PM
||03 Mar 2017
||13 Mar 2017,
||23 Mar 2017, 11:59PM
||24 Mar 2017
||27 Mar 2017,
||31 Mar 2017, 11:59PM
||01 Apr 2017
||07 Apr 2017
||20 Apr 2017, 11:59PM
- Quiz 1 exam (12.5%) on Feb 13th 2017 (Mon), 8.00am. Closed book, closed notes, closed neighbor. sample solution.
- Quiz 2 exam (12.5%) on Mar 20th 2017 (Mon), 8.00am. Closed book, closed notes, closed neighbor. sample solution.
- Final exam (30%) on Apr 24th 2017 (Mon), 9am. Closed book, closed notes, closed neighbor. sample solution.
Sat Jan 7 10:10:49 IST 2017