15 - 380C Lecture15 Wherearewe&wherewearegoing...

Info iconThis preview shows pages 1–12. Sign up to view the full content.

View Full Document Right Arrow Icon
380C Lecture 15 Constants, Expressions, Scheduling, Register Allocation  Modern Managed Language Environments When to Compiler? Dynamic optimizations Sample optimization – Inlining Garbage Collection Sample optimization – online object reordering Experimental science in the modern world Alias analysis, interprocedural analysis, dependence analysis, loop  transformations Taste of alternative architectures EDGE architectures change the sofware/hardware boundary 1
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
2 Aren’t compilers a solved problem? “Optimization for scalar machines is a problem that was solved  ten years ago.” David Kuck, Fall 1990 @ Rice University
Background image of page 2
3 “Optimization for scalar machines is a problem that was solved  ten years ago.” David Kuck, Fall 1990 @ Rice University Architectures keep changing Languages keep changing Applications keep changing - SPEC CPU?  When to compile has changed Aren’t compilers a solved problem?
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
4 Quiz Time What’s a managed language?  
Background image of page 4
5 Quiz Time What’s a managed language?  Java, C#, JavaScript, Ruby,  etc. Disciplined use of pointers (references) Garbage collected Generally Object Oriented, but not always Statically or dynamically typed Dynamic compilation
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
6 Quiz Time What’s a managed language?  Java, C#, JavaScript, Ruby,  etc. Disciplined use of pointers (references) Garbage collected Generally Object Oriented, but not always Statically or dynamically typed Dynamic compilation True or False? Because they execute at runtime, dynamic compilers must be blazingly fast? Dynamic class loading is a fundamental roadblock to cross-method optimization? A static compiler will always produce better code than a dynamic compiler? Sophisticated profiling is too expensive to perform online? Program optimization is a dead field?
Background image of page 6
7 What is a VM?
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
8 What is a VM? A software execution engine that provides a  machine-independent language implementation
Background image of page 8
9 What’s in a VM?
Background image of page 9

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
10 What’s in a VM? Program loader Program “checkers”, e.g., bytecode verifiers, security  services Dynamic compilation system collection Thread scheduler Libraries
Background image of page 10
Basic VM Structure Executing Program Program/Bytecode Dynamic Compilation Subsystem Class Loader Verifier, etc. Heap
Background image of page 11

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 12
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 47

15 - 380C Lecture15 Wherearewe&wherewearegoing...

This preview shows document pages 1 - 12. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online