InfoCoBuild

Compiler Design

Compiler Design. Instructor: Prof. Y. N. Srikant, Department of Computer Science and Automation, IISc Bangalore. 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)

Lecture 24 - Automatic Parallelization: Loop Normalization, Data Dependence Relations


Go to the Course Home or watch other lectures:

Lecture 01 - An Overview of a Compiler
Lecture 02 - An Overview of a Compiler (cont.), Run-Time Environments
Lecture 03 - Run-Time Environments: Storage Allocation, Activation Records, etc.
Lecture 04 - Run-Time Environments (cont.), Local Optimizations
Lecture 05 - Local Optimizations (cont.), Code Generation
Lecture 06 - Code Generation: Samples of Generated Code, Optimal Code Generation
Lecture 07 - More on Optimal Code Generation Algorithms
Lecture 08 - Peephole Optimizations, Global Register Allocation
Lecture 09 - Linear Scan Register Allocation, Chaitin's Graph Coloring based Algorithm
Lecture 10 - Global Register Allocation (cont.), Implementing Object-Oriented Languages
Lecture 11 - Implementing Object-Oriented Languages, Machine Independent Optimizations
Lecture 12 - Machine Independent Optimizations, Data Flow Analysis
Lecture 13 - Data Flow Analysis (cont.)
Lecture 14 - Data Flow Analysis (cont.), Control Flow Analysis
Lecture 15 - Control Flow Analysis
Lecture 16 - Machine Independent Optimizations: Copy Propagation, Loop Invariant Code Motion
Lecture 17 - Machine Independent Optimizations: Region based Data Flow Analysis
Lecture 18 - Region based Data Flow Analysis, Theoretical Foundations of Data Flow Analysis
Lecture 19 - Theoretical Foundations of Data Flow Analysis, Partial Redundancy Elimination
Lecture 20 - Partial Redundancy Elimination (cont.)
Lecture 21 - Static Single Assignment Form: Construction and Application to Program Optimizations
Lecture 22 - SSA Form: Construction and Application to Program Optimizations (cont.)
Lecture 23 - SSA Form: Construction and Application to Program Optimizations (cont.)
Lecture 24 - Automatic Parallelization: Loop Normalization, Data Dependence Relations
Lecture 25 - Automatic Parallelization: Data Dependence Relations, Direction Vectors
Lecture 26 - Automatic Parallelization: Data Dependence Equation and Framework
Lecture 27 - Automatic Parallelization: Loop Transformations for Increasing Parallelism
Lecture 28 - Instruction Scheduling
Lecture 29 - Instruction Scheduling: Simple List Scheduling Algorithm
Lecture 30 - Instruction Scheduling: Trace, Superblock and Hyperblock Scheduling
Lecture 31 - Software Pipelining
Lecture 32 - Energy-Aware Software Systems
Lecture 33 - Energy-Aware Software Systems: Power and Energy Model Trend
Lecture 34 - Energy-Aware Software Systems: Microarchitectural Techniques to Save Energy
Lecture 35 - Compiler Techniques to Save Static Energy in CPUs
Lecture 36 - Just-In-Time Compilation and Optimizations for .NET CLR
Lecture 37 - Garbage Collection
Lecture 38 - Interprocedural Data Flow Analysis
Lecture 39 - Worst Case Execution Time
Lecture 40 - Worst Case Execution Time (cont.)