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



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


Research papers referred to will be available online or distributed.


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 
Instruction scheduling for VLIWs 
Optimizations for instruction memory 
Compilers for vector machines 
Compiling multi-media applications 
Software-exposed architectures : Memory disambiguation 
Dynamic code generation and JIT compilers 
Compiling applications into silicon
Software speculative pre-computation
Program analysis tools 
Object-oriented compiler optimizations 
Embedded software:
     Ensuring code safety
     Memory allocation
     Code-size minimization
     Instruction scheduling
     Power measurement and optimizations
     Compiling for network processors
     Synthesis-assistance software
     Synchronous dataflow

Course Structure: 

In the first approximately ten lectures, the instructor will present background material in compiler technology.  A quiz in early march will test this background material.  The remaining lectures will center around one student presentation in each lecture.  Each presentation will be on one main research paper and a few secondary (or supporting) papers among a list of papers given by the instructor.   Each student will present two papers on two different lectures in the course.  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.  Half-page written reports that summarize the main paper will be required for the first eight student presentations only. An end-of-semester course project will involve using the SUIF compiler infrastructure.

Attendance requirement:

Since there are no exams beyond the quiz in early March, I have seen in the past that attendance tends to drop off after that for some students.  To ensure that everyone learns from the class, there will be an attendance requirement for classes in which student presentations are made.  To qualify for attendance a student must arrive within the first ten minutes of class.  No more than one missed lecture will be allowed for full attendance credit, except in special pre-requested and pre-approved circumstances such as religious holidays, and for medical reasons.

Grading Method:

Classroom presentation   1                                          20%
Classroom presentation   2                                          20%
SUIF project                                                                15%
Attendance                                                                   15%
Half-page written reports (described above)              10%
Quiz                                                                             20%

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