EC433 Code Analysis and Optimization
Catalog Data & Credits (Recitation-Lab-Total)
EC433 Code Analysis and Optimization (2-2-3): This course provides students with an introduction to compilers and compiler-based tools. Course topics will include building usable data structures from the parsed code, analyzing code for errors, optimizing code for performance, and generating machine specific code. Labs will focus on learning and using industrial strength tools such as LLVM to analyze and instrument programs.
Pre-requisites
SI221 Data Structures
Course Objectives
- Understand code representations as high-level (AST), middle-level (IR), and low-level (Assembly)
- Recognize how practical concerns connect to theory
- Understand the tradeoffs between static and dynamic analysis
- Understand the process and limits of code optimization
- Learn to use state-of-the-art compiler tools (LLVM and Pin)
- Experience working in a team within a large code base