Intro to Compilers: Optimization
This course covers advanced topics in compiler optimization: dataflow analysis and pointer analysis to perform global optimizations, and both low-level loop transformations such as loop-invariant code motion and high-level loop transformations such as loop tiling. The course also explains how compiler generate code for pointers and arrays. Students will build a compiler that performs a basic pointer analysis.
ECE59500
Credit Hours:
1Learning Objective:
After completing this course, you will be able to:- Explain how programs handle pointers, and how compilers generate code for them
- Explain how compilers generate code for arrays
- Explain dataflow analysis, including specific instances: liveness and available expressions
- Explain pointer analysis and how to implement it
- Explain loop optimizations and why they are useful
- Extend a compiler to add support for pointers and arrays and implement a pointer analysis
Description:
This course covers advanced topics in compiler optimization: dataflow analysis and pointer analysis to perform global optimizations, and both low-level loop transformations such as loop-invariant code motion and high-level loop transformations such as loop tiling. The course also explains how compiler generate code for pointers and arrays. Students will build a compiler that performs a basic pointer analysis.
Fall 2021 Syllabus
Topics Covered:
Code generationLoop optimization
Dataflow analysis
Pointer analysis