References to sections of Dragon book (A.V. Aho, R. Sethi, and J.D. Ullman, Compilers: Principles, Technique and Tools, Addison-Wesley, 1986) are marked ASU.
Lecture 1 (1/18/2006): Machine Independent Optimizations
notes 2-up for printing
Classical optimizations for procedural languages, expression DAGs,
loops and dominators, classical dataflow problems
Slides covered: MachIndOpts #1-45
Slides changed: MachIndOpts #32,34,39,43
References ASU Chapter 10.1-10.3
Lecture 2 (1/23/2006): Machine Independent Optimizations-2
notes 2-up for printing
Building and optimizing basic blocks, recovering code from expression
DAGs, reducibility properties,
Slides covered: MachIndOpts-2 #1-31
References: ASU Chapters 9.4, 9.8, 10.2, 10.4, 10.6
Lecture 3 (1/25/2006): Machine Independent Optimizations-2(cont)
Worklist iteration for dataflow analysis,
Worked example of worklist algorithm for REACH, interval analysis
Dataflow Analysis
notes 2-up for printing
Lattice theoretic foundations
Slides covered:MachIndOpts-2 #32-41; DataFlow #1-8
Slides changed:MachIndOpts-2 #36-40
Lecture 4 (1/30/2006): Dataflow Analysis (cont)
Round robin fixed-point algorithm, function properties
References: ASU 10.11
Marlowe and Ryder, "Properties of Dataflow Frameworks: a Unified
Model",
Acta Informatica, 1990, pp 121-163.
Slides covered: DataFlow #9-20
Lecture 5 (2/1/3006):Dataflow Analysis (cont)
Justification for using fixed-point iteration for
dataflow analysis
Meet over all paths solution (MOP) and MFP
Reference Analysis
notes 2-up for printing
Review of type-based reference analysis
Slides covered: DataFlow #16-24; RefAnal #1-12
Slides changed: DataFlow #23;
Lecture 6 (2/6/2006): Reference Analysis (cont)
VTA, Field-sensitive points-to analysis for Java
References:
V. Sundaresan, et.al, "Practical Virtual Method Call Resolution for
Java",
OOPSLA'00, pp 264-279.
Rountev et.al, "Points-to Analysis for Java Using Annotated
Constraints", OOPSLA'01.
O. Lhotak and L. Hendren, "Scaling Java Points-to Analysis Using
Spark",
CC'03, (Read this one first)
Slides covered: RefAnal #13-35
Slides changed: RefAnal #34,36
Lecture 7 (2/8/2006): Reference Analysis (cont)
field-sensitive points-to analysis for Java
formulated with annotation constraints,
SPARK experiments 2003
Intro to SOOT and SPARK (Weilei)
Slides covered: RefAnal #31-44; SootSpark #1-17
Slides changed: RefAnal #34, 41-44
Lecture 8 (2/13/2006):Reference Analysis-2
notes 2-up for printing
More flow-insensitive, context-insensitive analyses,
How to deal with dynamic class loading? Context-sensitive
analyses:
1-CFA, Object-sensitive;
Slides covered: RefAnal2 #1-19
Slides changed: RefAnal2 #6
Lecture 9 (2/15/2006): Reference Analysis-2
More on Object-sensitive analysis and 1-CFA,
Dimensions of precision in analysis
Reference Analysis-3 notes 2-up
for printing
Parameterized context-sensitive analysis, Empirical comparisons
of types of context-sensitivity
Note on the Liang et.al PASTE'05 paper
precision measure.
References: (comparisons of context-sensitive points-to
algs)
A. Milanova, A. Rountev, B. G. Ryder,
"Parameterized Object
Sensitivity for Points-to Analysis for Java", ACM TOSEM, January
2005 (for reference).
O. Lhotak and L. Hendren,
"Context-sensitive Points-to Analysis: is it worth it?", CC'06,
(for reading)
D. Liang, M. Pennigns, M.J. Harrold, "Evaluating the Impact of
Context-sensitivity
on Andersen's Algorithm for Java Programs", PASTE'05,
(especially good examples
of types of context-sensitive points-to
analyses)
Slides covered: RefAnal2 #20-36; RefAnal3 #1-18
Slides changed: RefAnal2 #31-32
Lecture 10 (2/20/2006): Dataflow Analysis-2
notes 2-up for printing
Monotone dataflow frameworks (defn, convergence, safety),
MOP versus MFP, constant propagation, categorization of dataflow problems
References:
Thomas J. Marlowe and Barbara G. Ryder, "Properties of Data Flow
Frameworks: A Unified Model",
Acta Informatica, Vol. 28, pp 121-163,
1990 (also available as LCSR-TR-103).
Slides covered: #1-22
Lecture 11 (2/22/2006): Examples of monotone dataflow
frameworks,
Reaching definitions, reflexive, transitive
closure,
examples of different convergence behavior,
boundedness,
Reflexive transitive closure, (no slides)
Lecture 12 (2/27/2006): Static Single-Assignment (SSA) form
notes 2-up for printing
definition of control dependence; postdominators
References:
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, and Mark Wegman,
"Efficiently Computing Static Single Assignment Form",
ACM
TOPLAS, Vol 12, No. 4, October 1991, (classically cited paper).
V. Shreedhar and G. Gao, "Computing Phi Nodes in Linear Time Using DJ
graphs",
Journal of Programming Languages, 1995
Slides covered: SSAForm #1-13
Lecture 13 (03/01/2006): Static Single-Assignment form,
cont
static single assignment form, dominance frontier, iterated dominence
frontier,
phi node placement
Slides covered: SSAForm #14-31
Lecture 14 (03/07/2006): Static-Single-Assignment form, cont.
variable numbering, efficient phi node placement using DJ graphs,
Bound Set problem as a monotone dataflow framework
Slides covered: SSAForm #32-47
Slides changed: SSAForm #22,24,27,39
Lecture 15 (03/20/2006): Optimizations for OOPLs
(see Lecture 17 for new version of slides)
optimizing dynamic dispatch, method inlining
Slides covered: OptsOOPLs #1-14
Lecture 16 (03/22/2006): Answers for HW 3
Lecture 17 (03/27/2006): Optimizations for OOPLs
NEW notes 2-up for printing
Optimizations for OOPLs, cont
method specialization, path splitting,
object layout for memory
performance, object spitting
References:
T. Chilimbi, B. Davidson, J. Larus, "Cache-conscious Structure
Definition", PLDI'99
J. Dean, G. DeFouw, D. Grove, V. Litvinov, C. Chambers,
"Vortex" An
Optimizing Compiler for OO Languages", OOPSLA'96
Slides covered: OptsOOPLs #15-29
Slides changed: OptsOOPLs #27, new#28 added
Lecture 18 (03/29/2006): Optimizations for OOPLs
object splitting, synchronization removal
Two OO Optimizing Compilers
notes 2-up for printing
Vortex, Jikes RVM
References:
OOPSLA'96 paper above; and for more details:
C. Chambers, J. Dean, D. Grove< "Whole-program Optimization of
Object-oriented Languages", DCS U Washington TR 96-06-02, June 1996.
Mike Hind's and Dave Grove's 2002 OOPSLA Tutorial about Jikes RVM
Slides covered: OptsOOPLs #28-34; OptsOOPLs2 #1-15
Slides changed: OptsOOPLs2 #14
Lecture 19 (04/03/2006): Optimizations for OOPLs-2
Jikes RVM
Online Sampling for Feedback
Directed Optimization
last changed at 2:48pm Monday, April 3rd
References:
M. Arnold, B.G. Ryder, "A Framework for Reducing the
Cost of Instrumented Code", PLDI'01
M. Arnold, M. Hind, B.G. Ryder, "Online Feedback-directed
Optimization of Java", OOPSLA'02
Slides covered: OptsOOPLs2 #16-18; OptsOOPLs3 #1-29
Lecture 20 (04/05/2006): Go over answers to SSA homework
Lecture 21: EXAM (04/10/2006)
Lecture 22 (04/12/2006):Testing OO Programs
notes 2-up for printing
standard dataflow test coverage metrics, class testing,
References:
S.Rapps, E. Weyuker, "Selecting Software Test Data Using Dataflow
Information",
IEEE TSE, April 1985
M.J. Harrold and Gregg Rothermel,
"Performing Data Flow
Testing on Classes, FSE'94
Slides covered: Testing #1-21
Lecture 23 (04/17/2006:) Testing OO Programs, cont. Lecture 24 (4/26/2003):
notes 2-up for printing Lecture 25 (05/01/2006): Student Project Presentations
Last updated by Barbara Ryder at 5:30pm on April 27, 2006.
testing polymorphic calls, fragment dataflow analysis
Testing OO Programs-2
notes 2-up for printing
Regression testing of Java software
Program Slicing
notes 2-up for printing
Class DG for OO slicing
References:
A. Rountev, A. Milanova, B.G. Ryder, "Fragment Class Analysis for
Tesing
of Polymorphism in Java Software", ICSE 2003.
MJ Harrold, J. Jones, T. Li, D. Liang, "Regression Test Selection
for Java Software, OOPSLA'01
F. Tip, "A Survey of Program Slicing Techniques", Journal of
Programming
Languages, vol 3 1995, pp 121-189.
Slides covered: Testing #20-33; Testing-2 #1-14; Slicing
#1-23
Slides changed: Testing-2 #7; Slicing #8
Program Slicing-2
Dynamic slicing algorithms, precise vs. imprecise, storage
concerns,
algorithm variations, empirical experiments
critical predicates
References:
H. Agrawal, J. Horgan, "Dynamic Program Slicing", PLDI'90
X. Zhang, R. Gupta, Y. Zhang, "Precise Dynamic Slicing Algorithms",
ICSE'03
Slides covered: Slicing-2 #1-25
Slides changed: Slicing-2 #2-3, 6-8