|
Knowledge
TOPIC A
Familiarity
Interprocedural analysis
Compilation for object-oriented languages
Exposure
Interval data-flow analysis
Dependence analysis
Memory-reuse analysis
Global instruction scheduling
Mastery
Iterative data-flow analysis
Global optimizations
Loop optimizations
Intermediate forms
Global register assignment/allocation
Interaction between RA/IS
Software pipelining
|
|
Skills
TOPIC A
Mastery
Given a technical paper on compiler optimization, the student will be able
to read the paper and give a critical analysis of the content, including
correctness, complexity, feasibility and breadth of application.
Given a description of an intermediate language, the student will be able
to write an optimizer for that language that includes the construction
of a control-flow graph, the implementation of traditional local and global
optimizations and the implementation of iterative data-flow analysis to
support the optimizations
Given a set of compiler optimizations, the student will be able to describe
in both written and oral form the interaction of these optimizations including
the goal of each optimization, the positive effects they have on the other
optimizations, the negative effects they have on other optimizations and
the effects they have on compile time, execution time and code size.
|