ENEE 759C: Compilers for Modern Architectures and Embedded Systems


Course Goals: 

To understand the fundamental technologies needed to target compilers to different kinds of modern general-purpose and embedded computing systems.

Course Prerequisite(s): 

ENEE 446 or ENEE 646 or equivalent.

Topics Prerequisite(s): 

None.

Textbook(s) 

Andrew Appel, Modern Compiler Implementation in Java, Cambridge University Press, 1998.

Reference(s): 

Research papers referred to will be distributed.

Topics:

Introduction to compiler technology
Survey of architectures from a compiler standpoint. 
Background material:
     Control flow graphs 
     Data flow analysis
     Program dependence graphs 
     Static single assignment form 
Limits on performance 
Instruction scheduling for VLIWs 
Optimizations for instruction memory 
EPIC architectures and their compilers 
Compilers for vector machines 
Compiling multi-media applications 
Software-exposed architectures : Memory disambiguation 
Dynamic code generation and JIT compilers 
Compiling applications into silicon 
Program analysis tools 
Object-oriented compiler optimizations 
Embedded software:
     Specification formats
     Memory optimizations
     Code-size minimization
     Instruction scheduling
     Power measurement and optimizations
     Synthesis-assistance software
 

Course Structure: 

On some lectures, the instructor will present background material in compiler technology.  A quiz will test this background material.  Most lectures, however, will center around student presentations.  Each presentation will be on one main research paper among a list of papers given by the instructor.   Each student will present one paper.  All  students will be expected to read all the research paper carefully before the lecture in which it is discussed, and present a half-page written report for about half of the papers.  The reports will be.due on the same day as the presentation of that paper.   A list of additional research papers will be provided; however, reading of additional papers is not mandatory  - they are provided for students interested in further reading.  An end-of-semester course project will involve using the SUIF compiler infrastructure.

Grading Method:

Classroom presentation                                              30%
SUIF project                                                             20%
Half-page written reports (described above)               30%
Quiz                                                                           20%
                                                                                ------
                                                                                100%



| Dept. of Electrical & Computer Engineering | A. James Clark School of Engineering | University of Maryland |