|
CISC 872: Optimizing and Parallelizing Compilers
Catalog Description:
Static program analysis and transformations for improving run-time performance
on scalar, vector, and parallel computing systems. Topics: Intraprocedural
and interprocedural data flow analysis, alias analysis, dependence analysis,
classical optimizations, parallelism enhancing transformations, register
allocation, automatic optimizing compiler generators.
Current
Texts:
Advance Compilation for Vector and Parallel Computation
Randy Allen and Ken Kennedy
Morgan Kaufman Publishers, Inc., 1992
Compilers,
Principles, Techniques, and Tools
Aho, Sethi, and Ullman
Addison Wesley, 1986
Selected
papers from journals and conference proceedings
Goals:
This course is intended to give the student a thorough understanding of
the issues involved in building a highly optimizing compiler for various
architectures. The course concentrates on sophisticated machine-indepen
dent static program analyses, optimizing program transformations, and
advanced compiler techniques for improving the effective utilization of
vector and parallel machines.
Content:
- Control
and data flow analysis
- Classical
optimizing program transformations
- Alias
analysis
- Analysis
of program dependence
- Parallelism
enhancing code transformations
- Register
allocation
- Code
generation for various architectures
- Interprocedural
data flow analysis and optimization
- Transformations
for improvement of memory hierarchy use.
Required
Background: CISC 672 (Compiler Construction).
|