Compiler Design (Prof. Y.N. Srikanth)


Lecture 1 - An Overview of a Compiler - Part 1


Lecture 2 - An Overview of a Compiler - Part 2 and Run-Time Environments - Part 1


Lecture 3 - An Overview of a Compiler - Part 2 and Run-Time Environments - Part 1


Lecture 4 - Run-Time Environments - Part 2


Lecture 5 - Run-Time Environments - Part 3 and Local Optimizations - Part 1


Lecture 6 - Run-Time Environments - Part 3 and Local Optimizations - Part 1


Lecture 7 - Local Optimizations - Part 2 and Code Generation - Part 1


Lecture 8 - Local Optimizations - Part 2 and Code Generation - Part 1


Lecture 9 - Code Generation - Part 1


Lecture 10 - Code Generation - Part 2


Lecture 11 - Code Generation - Part 3 and Global Register Allocation - Part 1


Lecture 12 - Code Generation - Part 3 and Global Register Allocation - Part 1


Lecture 13 - Global Register Allocation - Part 2


Lecture 14 - Global Register Allocation - Part 3 and Implementing Object-Oriented Languages - Part 1


Lecture 15 - Global Register Allocation - Part 3 and Implementing Object-Oriented Languages - Part 1


Lecture 16 - Implementing Object-Oriented Languages - Part 2 and Introduction to Machine-Independent Optimizations - Part 1


Lecture 17 - Implementing Object-Oriented Languages - Part 2 and Introduction to Machine-Independent Optimizations - Part 1


Lecture 18 - Introduction to Machine-Independent Optimizations - Part 2 and Data-Flow Analysis - Part 1


Lecture 19 - Introduction to Machine-Independent Optimizations - Part 2 and Data-Flow Analysis - Part 1


Lecture 20 - Data-Flow Analysis - Part 2


Lecture 21 - Data-Flow Analysis - Part 3 and Control-Flow Analysis - Part 1


Lecture 22 - Data-Flow Analysis - Part 3 and Control-Flow Analysis - Part 1


Lecture 23 - Control-Flow Analysis - Part 2


Lecture 24 - Machine-Independent Optimizations - Part 1


Lecture 25 - Machine-Independent Optimizations - Part 2


Lecture 26 - Machine-Independent Optimizations - Part 3 and Data-Flow Analysis: Theoretical Foundation - Part 1


Lecture 27 - Machine-Independent Optimizations - Part 3 and Data-Flow Analysis: Theoretical Foundation - Part 1


Lecture 28 - Data-Flow Analysis: Theoretical Foundation - Part 2 and Partial Redundancy Elimination - Part 1


Lecture 29 - Data-Flow Analysis: Theoretical Foundation - Part 2 and Partial Redundancy Elimination - Part 1


Lecture 30 - Partial Redundancy Elimination - Part 2


Lecture 31 - The Static Single Assignment Form: Construction and Application to Program Optimizations - Part 1


Lecture 32 - The Static Single Assignment Form: Construction and Application to Program Optimizations - Part 2


Lecture 33 - The Static Single Assignment Form: Construction and Application to Program Optimizations - Part 3


Lecture 34 - Automatic Parallelization - Part 1


Lecture 35 - Automatic Parallelization - Part 2


Lecture 36 - Automatic Parallelization - Part 3


Lecture 37 - Automatic Parallelization - Part 4


Lecture 38 - Instruction Scheduling - Part 1


Lecture 39 - Instruction Scheduling - Part 2


Lecture 40 - Instruction Scheduling - Part 3


Lecture 41 - Software Pipelining


Lecture 42 - Energy-Aware Software Systems - Part 1


Lecture 43 - Energy-Aware Software Systems - Part 2


Lecture 44 - Energy-Aware Software Systems - Part 3


Lecture 45 - Energy-Aware Software Systems - Part 4


Lecture 46 - Just-In-Time Compilation and Optimizations for .NET CLR


Lecture 47 - Garbage Collection


Lecture 48 - Interprocedural Data-Flow Analysis


Lecture 49 - Worst Case Execution Time - Part 1


Lecture 50 - Worst Case Execution Time - Part 2