Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced Compilers CMPSCI 710 Spring 2003 Lecture 1

Similar presentations


Presentation on theme: "Advanced Compilers CMPSCI 710 Spring 2003 Lecture 1"— Presentation transcript:

1 Advanced Compilers CMPSCI 710 Spring 2003 Lecture 1
Emery Berger University of Massachusetts, Amherst

2 Administrivia Class format: Course website: Grades: Materials:
I present material & work examples You take notes, read book & papers Course website: Grades: 40% - 4 homework assignments (due dates to be announced) 60% - project Materials: Required text: Muchnick, Advanced Compiler Design Implementation (ACDI) Supplementary material: selected papers

3 Project Stuff 1 to 2 person teams Implement optimization/analysis in:
Jikes RVM (IBM’s research Java compiler) Broadway (UTexas “metacompiler”) other (subject to approval) Due dates: 02/11/03: One-page project description. 02/25/03: 2-4 page project design. 03/25/03: Project implementation review. 04/29/03: Implementation due. 05/06-13/03: In-class presentations. 05/13/03: Project report.

4 Why Compilers Matter

5 What are Compilers, Anyway?
Compiler: translates program in one language to executable program in other language Typically lowers abstraction level E.g., Java/C++ to assembler Optimizing compiler: Misnomer! Optimal compilation intractable Improves program performance

6 Performance Anxiety But does performance really matter?
Computers are really fast Moore’s law (roughly): hardware performance doubles every 18 months Real bottlenecks lie elsewhere: Disk Network Human! (think interactive apps) At most 120 cps typing Waste time “thinking”

7 Compilers Don’t Help Much
Do compilers improve performance anyway? Proebsting’s law (Todd Proebsting, Microsoft Research): Difference between optimizing and non-optimizing compiler ~ 4x Assume compiler technology represents 36 years of progress (actually more) Compilers double program performance every 18 years! Not quite Moore’s Law…

8 Argumentum Ad Absurdum
Compilers don’t help much (Proebsting’s Law) Don’t use optimizer Computers are getting faster (Moore’s Law) Buy a new one – helps the economy too! Or: wait until one’s fast enough, then run program Hmmm…

9 A Big BUT Why use high-level languages anyway?
Easier to write & maintain Safer (think Java) More convenient (think libraries, GC…) But: people will not accept massive performance hit for these gains Compile with optimization! Still use C and C++!! Hand-optimize their code!!! Even write assembler code (gasp)!!!! Apparently performance does matter…

10 Why Compilers Matter Key part of compiler’s job: make the costs of abstraction reasonable Remove performance penalty for: Using objects Safety checks (e.g., array-bounds) Writing clean code (e.g., recursion) Use program analysis to transform code: primary topic of this course

11 Analysis & The Holy Grail
Other great uses for program analysis: Static error-checking Detect information leaks Avoid security holes Informing runtime system (e.g., GC) Even better optimizations! E.g., locality-improving transformations (“memory wall”) Holy Grail for compiler research: Programmer: writes simple but O(2^n) algorithm Compiler: changes it to O(n log n) (or O(1)!)

12 Levels of Analysis (in order of increasing detail & complexity)
Local (single-block) [1960’s] Straight-line code Simple to analyze; limited impact Intraprocedural [1970’s – today] Whole procedure Dataflow & dependence analysis Interprocedural [late 1970’s – today] Whole-program analysis Tricky: Very time and space intensive Hard for some PL’s (e.g., Java)

13 Optimization = Analysis + Transformation
Key analyses: Control-flow if-statements, branches, loops, procedure calls Data-flow definitions and uses of variables Representations: Control-flow graph Control-dependence graph Def/use, use/def chains SSA (Static Single Assignment)

14 Next Time Read ACDI Chapters 1, 2, 7
Next meeting might be in CS building


Download ppt "Advanced Compilers CMPSCI 710 Spring 2003 Lecture 1"

Similar presentations


Ads by Google