Upload
portia-benson
View
34
Download
3
Embed Size (px)
DESCRIPTION
Optimizing Compilers CISC 673 Spring 2009 Dynamic Compilation I. John Cavazos University of Delaware. Quiz Time. What’s a managed language ?. Quiz Time. What’s a managed language ? Java or C# Runs under management of a VM Object Oriented, Garbage collected Dynamic compilation. - PowerPoint PPT Presentation
Citation preview
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Optimizing CompilersCISC 673
Spring 2009Dynamic Compilation I
John CavazosUniversity of Delaware
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Quiz Time
What’s a managed language?
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Quiz Time
What’s a managed language? Java or C# Runs under management of a VM Object Oriented, Garbage
collected Dynamic compilation
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Quiz Time
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?
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
What is a VM?
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
What is a VM?
A software execution engine that provides a machine-independent language implementation
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
What’s in a VM for a Managed Language?
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
What’s in a VM for a Managed Language?
Program loader Program “checkers”, e.g., bytecode
verifiers, security services Dynamic compilation system Memory management Thread scheduler Profiling & monitoring Libraries
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Basic VM Structure
Executing Program
Program/Bytecode
Dynamic Compilation Subsystem
Class Loader, Verifier, etc. Heap
Thread Scheduler
Garbage Collector
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Adaptive Optimization Hall of Fame
1958-1962: LISP
1974: Adaptive Fortran
1980-1984: ParcPlace Smalltalk
1986-1994: Self
1995-present: Java
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Quick History of VMs
Adaptive Fortran [Hansen’74] First in-depth exploration of adaptive
optimization Selective optimization, models, multiple
optimization levels, online profiling and control systems
LISP Interpreters [McCarthy’78] First widely used VM Pioneered VM services
memory management, Eval -> dynamic loading
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Quick History of VMs ParcPlace
Smalltalk[Deutsch&Schiffman’84] First modern VM Introduced full-fledge JIT compiler Demonstrated software-only VMs were viable
Self [Chambers&Ungar’91, Hölzle&Ungar’94] Developed many advanced VM techniques Introduced polymorphic inline caches, on-
stack replacement, dynamic de-optimization, advanced selective optimization, type prediction and splitting, profile-directed inlining integrated with adaptive recompilation
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT
Quick History of VMs
Java/JVM [Gosling, Joy, Steele ‘96] First VM with mainstream market
penetration Java vendors embraced and improved
Smalltalk and Self technology Encouraged VM adoption by others →
CLR
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT14
Promise of Dynamic Optimization
Compilation tailored to current execution context performs better than ahead-of-time compiler
UUNIVERSITYNIVERSITY OFOF D DELAWARE ELAWARE • • C COMPUTER & OMPUTER & IINFORMATION NFORMATION SSCIENCES CIENCES DDEPARTMENTEPARTMENT15
Promise of Dynamic Optimization
Common wisdom: C will always be better
Proof? Not much One interesting comparison: VM
performace HotSpot, J9, Apache DRLVM written in C Jikes RVM, Java-in-Java 1999: they performed with in 10% 2007: Jikes RVM ~20% slower than HotSpot &
J9, Jikes RVM ~60-0% faster Apache DRLVM Aside: GCC code 20-10% slower than product
compilers