2
Compiler Design. Instructor: Prof. Y. N. Srikant, Department of Computer Science and Automation, IISc Bangalore.
1111 years
40
This course aims to teach students the principles involved in compiler design. It will cover all the basic components of a compiler but not the advanced material on optimizations and machine code generation. Topics covered in this course include Run-Time Environments, Local Optimizations, Mode Code Generation, Global Register Allocation, Implementing Object-Oriented Languages, Data Flow Analysis, Partial Redundancy Elimination, The Static Single Assignment Form, Automatic Parallelization, Instruction Scheduling, Software Pipelining, Energy-Aware Software Systems, Just-In-Time Compilation, Garbage Collection, Interprocedural Data Flow Analysis, and Worst Case Execution Time Estimation. (from nptel.ac.in)
Course Currilcum
- Lecture 01 – An Overview of a Compiler Unlimited
- Lecture 02 – An Overview of a Compiler (cont.), Run-Time Environments Unlimited
- Lecture 03 – Run-Time Environments: Storage Allocation, Activation Records, etc. Unlimited
- Lecture 04 – Run-Time Environments (cont.), Local Optimizations Unlimited
- Lecture 05 – Local Optimizations (cont.), Code Generation Unlimited
- Lecture 06 – Code Generation: Samples of Generated Code, Optimal Code Generation Unlimited
- Lecture 07 – More on Optimal Code Generation Algorithms Unlimited
- Lecture 08 – Peephole Optimizations, Global Register Allocation Unlimited
- Lecture 09 – Linear Scan Register Allocation, Chaitin’s Graph Coloring based Algorithm Unlimited
- Lecture 10 – Global Register Allocation (cont.), Implementing Object-Oriented Languages Unlimited
- Lecture 11 – Implementing Object-Oriented Languages, Machine Independent Optimizations Unlimited
- Lecture 12 – Machine Independent Optimizations, Data Flow Analysis Unlimited
- Lecture 13 – Data Flow Analysis (cont.) Unlimited
- Lecture 14 – Data Flow Analysis (cont.), Control Flow Analysis Unlimited
- Lecture 15 – Control Flow Analysis Unlimited
- Lecture 16 – Machine Independent Optimizations: Copy Propagation, Loop Invariant Code Motion Unlimited
- Lecture 17 – Machine Independent Optimizations: Region based Data Flow Analysis Unlimited
- Lecture 18 – Region based Data Flow Analysis, Theoretical Foundations of Data Flow Analysis Unlimited
- Lecture 19 – Theoretical Foundations of Data Flow Analysis, Partial Redundancy Elimination Unlimited
- Lecture 20 – Partial Redundancy Elimination (cont.) Unlimited
- Lecture 21 – Static Single Assignment Form: Construction and Application to Program Optimizations Unlimited
- Lecture 22 – SSA Form: Construction and Application to Program Optimizations (cont.) Unlimited
- Lecture 23 – SSA Form: Construction and Application to Program Optimizations (cont.) Unlimited
- Lecture 24 – Automatic Parallelization: Loop Normalization, Data Dependence Relations Unlimited
- Lecture 25 – Automatic Parallelization: Data Dependence Relations, Direction Vectors Unlimited
- Lecture 26 – Automatic Parallelization: Data Dependence Equation and Framework Unlimited
- Lecture 27 – Automatic Parallelization: Loop Transformations for Increasing Parallelism Unlimited
- Lecture 28 – Instruction Scheduling Unlimited
- Lecture 29 – Instruction Scheduling: Simple List Scheduling Algorithm Unlimited
- Lecture 30 – Instruction Scheduling: Trace, Superblock and Hyperblock Scheduling Unlimited
- Lecture 31 – Software Pipelining Unlimited
- Lecture 32 – Energy-Aware Software Systems Unlimited
- Lecture 33 – Energy-Aware Software Systems: Power and Energy Model Trend Unlimited
- Lecture 34 – Energy-Aware Software Systems: Microarchitectural Techniques to Save Energy Unlimited
- Lecture 35 – Compiler Techniques to Save Static Energy in CPUs Unlimited
- Lecture 36 – Just-In-Time Compilation and Optimizations for .NET CLR Unlimited
- Lecture 37 – Garbage Collection Unlimited
- Lecture 38 – Interprocedural Data Flow Analysis Unlimited
- Lecture 39 – Worst Case Execution Time Unlimited
- Lecture 40 – Worst Case Execution Time (cont.) Unlimited