CSCD70H3 Compiler Optimization

The goal of this course is to examine the design and implementation of a compiler optimized for modern parallel architectures. Students will learn about common optimizations, intermediate representations (IRs), control-flow and dataflow analysis, dependence graphs, instruction scheduling, and register allocation. Advanced topics include static single assignment, memory hierarchy optimizations and parallelization, compiling for multicore machines, memory dependence analysis, automatic vectorization/thread extraction, and predicated/speculative execution.

Prerequisite: 

CSCB63H3 and CSCC69H3 and [CGPA 3.0 or enrolment in a CSC Subject POSt]

Breadth Requirements: 
Quantitative Reasoning