OBJECT-ORIENTED PROGRAMMING, SYSTEMS, LANGUAGES and APPLICATIONS
 
 
Program
 


Program (2mb PDF)

Explore
  Invited Speakers
  Onward!
  Panels
  Workshops
Discover
  Research Papers
  Student Research Comp.
  Posters
  Doctoral Symposium
  Educators' Symposium
  Wiki Symposium
  Dynamic Lang. Symp.
Understand
  Tutorials
  Essays
  Practitioner Reports
  Demonstrations
Create
  DesignFest
  Lightning Talks
  FlashBoF
  Instant Arts School Exp.
 
Other Events
 
Resort Map (364kb PDF)
 
Resort Map (JPG)

 

 
Basket
 

view, help

"Runtime Specialization With Optimistic Heap Analysis"

 

 
Page
 

Printer-friendly

 
 
  > Research Papers > Machine Machinery

 : Wednesday

Runtime Specialization With Optimistic Heap Analysis

San Diego Room
Wednesday, 17:00, 30 minutes

 


 
7·8·9·10·11·12·13·14·15·16·17·18·19·20·21

Ajeet Shankar, UC Berkeley
Rastislav Bodik, UC Berkeley
Subramanya Sastry, UW Madison
James Smith, UW Madison

Runtime specialization is an optimization process that can provide significant speedups by exploiting a program's runtime state. Existing specializers employ a staged model that statically identifies specialization code regions and constant heap locations, and then optimizes them at runtime once the constants are known. This paper describes a dynamic program specializer that is transparent, and thus does not require any static components such as programmer annotations or pre-runtime analysis. The specializer uses (1) a novel store profile to identify constant heap locations that a staged system cannot, such as constants present in an interpreted program. This information is used in tandem with (2) a new algorithm for finding specialization starting points based on a notion of influence to create specializations. (3) An automatic invalidation transformation efficiently monitors assumptions about heap constants, and is able to deactivate specialized traces even if they are on the stack. An implementation of the specializer in Jikes RVM has low overhead in practice, selects specialization points that would be chosen manually, and produces speedups of 1.2x to 6.3x on a variety of benchmarks.

 
.