UD Home
CIS Home
Search
Contact
Welcome Research Undergraduate Graduate Resources People

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).



Department of Computer & Information Sciences
103 Smith Hall | Newark, DE 19716
- email webmaster -