| |||||||||
About this courseTime: Mondays, Wednesdays and Fridays, 9:35-10:25Place: McConnell 103 Who should take this course? Course Outline (html) (postscript) (pdf) |
PeopleLecturer - Professor Laurie HendrenTeaching assistants
|
||||||||
Java ResourcesJava DocumentationJDK/SDK at SOCS and at home Assembling/Disassembling Class Files AspectJ Resourcesabc AspectJ compilerEclipse AspectJ project AspectJ Documentation |
Sable ResourcesSable Home PageSoot Javadoc Pages Soot Tutorials (includes information on options) Soot-Eclipse Plugin Getting the most recent Soot (nightly builds) SABS - Sable Adaptive Benchmarking System |
||||||||
Assignments and Projects
|
Special Topic Slides
|
||||||||
Week 1: Introduction to Optimizations and AspectJJanuary 2009 S M Tu W Th F S * * * 4 5 6 7 8 9 10Course Outline ((html), (ps) (pdf) ) Optimizing Compilers - How good are they? (pdf, 1-to-1) (pdf, 6-to-1) AspectJ lecture notes as slides. Introduction to AOP, Ch1 - Mastering AspectJ AspectJ Quick Reference AspectJ Grammar Slides from class on AspectJ/abc AspectJ: syntax basics , Ch 3 - AspectJ in Action. Aho - Chapters 1 and 2 (for those with no previous compiler course) |
Week 2: Intermediate Representations, Control Flow Analysis
January 2008
S M Tu W Th F S
11 12 13 14 15 16 17
* * *
Intermediate Representations Basic Blocks Control Flow Graphs (CFGs) Control Flow Analysis Loops and Dominators Reading: ![]() Muchnick - Chapter 4 - Intermediate Representations Notes on SABS (.pdf) |
||||||||
Week 3: Intro to Dataflow Analysis and Soot Tutorial I
January 2009
S M Tu W Th F S
18 19 20 21 22 23 24
* * *
Dataflow Analysis Reading: ![]() Appel - Chapter 17 - Dataflow Analysis Soot tutorials |
Week 4: More Dataflow Analysis
January 2009
S M Tu W Th F S
25 26 27 28 29 30 31
* * *
|
||||||||
Week 5: Fancy Abstractions and Intro to optimizations
Feb 2009
S M Tu W Th F S
1 2 3 4 5 6 7
* * *
More on dataflow analyses Intro. to optimizations Early optimizations Reading: ![]() Muchnick - Chapter 11 - Introduction to Optimizations Muchnick - Chapter 12 - Early Optimizations |
Week 6: Interprocedural Analysis
February 2009
S M Tu W Th F S
8 9 10 11 12 13 14
* * **
(ST)
Introduction to interprocedural analysis and optimizations Reading: ![]() Class notes Muchnick - Chapter 15 - Procedure Optimizations |
||||||||
Week 7: Points-to Analysis
February 2009
S M Tu W Th F S
15 16 17 18 19 20 21
* * *
Alias pairs vs points-to relationships Aliases due to call-by-reference Aliases due to the & operator Multi-level pointers Handling Dynamically-allocated memory Using the results of points-to analysis Reading: ![]() Context-Sensitive and Flow-SensitiveCont. Sens. Points-to Analysis (.ps)Flow-InsensitiveFast Points-to - POPL 96 (.ps)Fast Points-to - McCAT (.ps) Points-to and SPARK |
Week 8: SSA and Global Value Numbering
March 2009
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
* * ST
SSA form SSA numbers Global Value Numbering Reading: ![]() Extended SSA Numbering GVN handouts for slides GVN notes for slides Appel - Chapter 19 - SSA Form |
||||||||
Week 9: Invariant Computations and Induction Variables
March 2009
Su Mo Tu We Th Fr Sa
8 9 10 11 12 13 14
* * *
Loop Invariant Computations Induction Variables Reading: ![]() Muchnick - Chapter 14 - Loop Optimizations |
Week 10: Special Topics Week
March 2009
Su Mo Tu We Th Fr Sa
15 16 17 18 19 20 21
** ** **
(ST) (ST) (ST)
|
||||||||
Week 11: Register Allocation and Instruction Scheduling
March 2009
S M Tu W Th F S
22 23 24 25 26 27 28
* * **
(ST)
Interference GraphsGraph Colouring Register Allocation Simple Instruction Scheduling Reading: ![]() Appel - Chapter 11 - Register Allocation |
Weeks 12 and 13: Project Presentations
March/April 2009
Su Mo Tu We Th Fr Sa
29 30 31 1 2 3 4
* * *
PP PP PP
April 2009
Su Mo Tu We Th Fr Sa
5 6 7 8 9 10 11
* *
PP PP
April 2009
Su Mo Tu We Th Fr Sa
12 13 14
*
PP
Note: Tuesday April 14th is a class on the Friday schedule.
Final Reports Due Monday, April 20th.
|
||||||||
|
Maintained by Laurie J. Hendren
Last modified Thu Jan 3 12:12:16 EST 2008.
[HOME]
Compiler research projects: Soot, a Java analysis, optimization and transformation toolkit ---- abc, an AspectJ compiler. (AspectJ) |