Pointer Analysis in the Presence of Dynamic Class Loading
|
|
- Regina Phebe Hart
- 5 years ago
- Views:
Transcription
1 Pointer Analysis in the Presence of Dynamic Class Loading Martin Hirzel, Amer Diwan University of Colorado at Boulder Michael Hind IBM T.J. Watson Research Center 1
2 Pointer analysis motivation Code a = new C( ); // G b = new C( ); // H a = b; a.f = b; Clients Tools Optimizations What is it good for? What does it do? Code browsing Code transformations Error detection Devirtualization Load elimination Parallelization Connectivity-based garbage collection Points-to sets pointsto(a) == {G,H} pointsto(b) == {H} pointsto(g.f ) == {H} pointsto(h.f ) == {H} 2
3 Static flow- and context-insensitive pointer analysis by Andersen Analysis components Analysis data structures Call graph builder Code Method compilation Constraint finder Constraint propagator Clients Points-to sets Constraint graph 3
4 Static analysis can not deal with all of Java Class loading may be implicitly triggered by any Constructor call Static field access Static method call Classes may come from the web or be generated on the fly Pretending a static world fails for most real-world applications 4
5 Java challenges Analysis components Call graph builder Analysis data structures 1. Online call graph building Method compilation 4. Reflection and native code Constraint finder 3. Unresolved types 2. Re-propagation Constraint propagator Clients Constraint graph 5
6 1. Online call graph building caller a = x.m(b); callee A::m(c) { return d; } 6
7 1. Online call graph building caller a = x.m(b); e = y.m(f ); callee A::m(c) { return d; } 7
8 1. Online call graph building caller a = x.m(b); e = y.m(f ); callee A::m(c) { return d; } B::m(g) { return h; } 8
9 Architecture for online call graph building Analysis components Call graph builder Analysis data structures Caller/callee look-up Method compilation Constraint finder Constraint propagator Clients Constraint graph 9
10 Java challenges Analysis components Call graph builder Analysis data structures Caller/callee look-up Method compilation 4. Reflection and native code Constraint finder 3. Unresolved types 2. Re-propagation Constraint propagator Clients Constraint graph 10
11 2. Focused re-propagation Code a = new C( ); // G b = new C( ); // H a.f = b; a = b; Points-to sets pointsto(a) == {G} pointsto(b) == {H} pointsto(g.f ) == {H} pointsto(h.f ) == { } 11
12 2. Focused re-propagation Code a = new C( ); // G b = new C( ); // H a.f = b; a = b; Points-to sets pointsto(a) == {G,H} pointsto(b) == {H} pointsto(g.f ) == {H} pointsto(h.f ) == { } 12
13 2. Focused re-propagation Code a = new C( ); // G b = new C( ); // H a.f = b; a = b; Points-to sets pointsto(a) == {G,H} pointsto(b) == {H} pointsto(g.f ) == {H} pointsto(h.f ) == {H} 13
14 Architecture for focused re-propagation Analysis components Call graph builder Analysis data structures Caller/callee look-up Method compilation Constraint finder Propagator worklist Constraint propagator Clients Constraint graph 14
15 Java challenges Analysis components Call graph builder Analysis data structures Caller/callee look-up Method compilation 4. Reflection and native code Constraint finder 3. Unresolved types Constraint propagator Clients Propagator worklist Constraint graph 15
16 3. Unresolved types caller X x = ; a = x.m(b);? Can X have a subclass that inherits m from Y? callee Y::m(c) { return d; }! Cannot tell before X is resolved! 16
17 Architecture for managing unresolved types Virtual machine events Analysis components Analysis data structures Call graph builder Caller/callee look-up Method compilation Type resolution Constraint finder Resolution manager Constraint propagator Clients Deferred constraints Propagator worklist Constraint graph 17
18 Java challenges Virtual machine events Analysis components Analysis data structures Call graph builder Caller/callee look-up Method compilation 4. Reflection and native code Type resolution Constraint finder Resolution manager Constraint propagator Clients Deferred constraints Propagator worklist Constraint graph 18
19 4. Reflection and native code Reflection Field f = B.class.getField( ); B b = ; f.set(b,v); Java-side code a = b.m(c); Native code Object VM_JNIFunctions. CallObjectMethod(method, args) { return method.invoke(args); } Native-side code
20 Architecture for dealing with reflection and native code Virtual machine events Analysis components Analysis data structures Call graph builder Caller/callee look-up Method compilation Reflection execution Native code execution Type resolution Constraint finder Resolution manager Constraint propagator Clients Deferred constraints Propagator worklist Constraint graph 20
21 Other events leading to constraints Virtual machine events Analysis components Analysis data structures Building and start-up Bytecode attributes Method compilation Reflection execution Native code execution Type resolution Call graph builder Constraint finder Resolution manager Constraint propagator Clients Caller/callee look-up Deferred constraints Propagator worklist Constraint graph 21
22 Clients using our pointer analysis Virtual machine events Analysis components Analysis data structures Building and start-up Bytecode attributes Method compilation Reflection execution Native code execution Type resolution Call graph builder Constraint finder Resolution manager Constraint propagator Clients Caller/callee look-up Deferred constraints Propagator worklist Constraint graph 22
23 Dealing with invalidated results Many techniques from prior work Guard optimized code (extant analysis) Pre-existence based inlining On-stack replacement and more Connectivity-based garbage collection Trigger propagator only before collection Merge partitions if necessary 23
24 Evaluation methodology Java virtual machine Jikes RVM from IBM, is itself written in Java Benchmarks SPECjvm98 suite, xalan, hsql Results not comparable to static analysis Analyze more code: Jikes RVM adds a lot of Java code Analyze less code: Not all application classes get loaded 24
25 Propagation cost Eager At GC At End Count Avg. Total Count Avg. Total Total hsql s 1h06m 6 1m17s 7m40s 7m07s jess s 3h26m 3 1m58s 5m53s 3m02s javac 1, s 3h50m 5 1m54s 9m32s 6m27s xalan 1, s 5h22m 1 2m01s 2m01s 7m45s Eagerness trades off average cost against total cost On average, focused re-propagation is much cheaper than full propagation Total cost is a function of code size and propagator eagerness 25
26 How long does a program have to run to amortize the analysis cost? Eager At GC At End Count Avg. Total Count Avg. Total Total hsql s 1h06m 6 1m17s 7m40s 7m07s jess s 3h26m 3 1m58s 5m53s 3m02s javac 1, s 3h50m 5 1m54s 9m32s 6m27s xalan 1, s 5h22m 1 2m01s 2m01s 7m45s Analysis cost to amortize Application runtime 5m 15m 1h 5h Overall analysis overhead 10% 5% 2.5% 50m 1h40m 3h20m 2h30m 5h 10h 10h 20h 1d16h 1d16h 4d04h 8d08h Long-running applications can amortize not-too-eager analysis cost 26
27 Validation Virtual machine events Analysis components Analysis data structures Building and start-up Bytecode attributes Method compilation Reflection execution Native code execution Type resolution Call graph builder Constraint finder Resolution manager Constraint propagator Clients Validation Caller/callee look-up Deferred constraints Propagator worklist Constraint graph 27
28 Validation Piggy-back validation on garbage collection For each pointer, check consistency with analysis results Incorrect analysis would lead to tricky bugs in clients 28
29 Related work Andersen s analysis for static Java [RountevMilanovaRyder 01] [LiangPenningsHarrold 01] [WhaleyLam 02] [LhotakHendren 03] Weaker analyses with dynamic class loading DOIT [PechtchanskiSarkar 01] XTA [QianHendren 04] Ruf s escape analysis [BogdaSingh 01, King 03] Demand-driven / incremental analysis 29
30 Conclusions 1 st non-trivial pointer analysis for all of Java Identified and solved the challenges: 1. Online call graph building 2. Focused re-propagation 3. Managing unresolved types 4. Reflection and native code Evaluated efficiency Validated correctness 30
Pointer Analysis in the Presence of Dynamic Class Loading. Hind Presented by Brian Russell
Pointer Analysis in the Presence of Dynamic Class Loading Martin Hirzel, Amer Diwan and Michael Hind Presented by Brian Russell Claim: First nontrivial pointer analysis dealing with all Java language features
More informationPointer Analysis in the Presence of Dynamic Class Loading
Pointer Analysis in the Presence of Dynamic Class Loading Martin Hirzel 1, Amer Diwan 1, and Michael Hind 2 1 University of Colorado, Boulder, CO 80309, USA {hirzel,diwan}@cs.colorado.edu 2 IBM Watson
More informationPointer Analysis in the Presence of Dynamic Class Loading
Pointer Analysis in the Presence of Dynamic Class Loading Martin Hirzel University of Colorado Boulder, CO 80309 hirzel@cs.colorado.edu Amer Diwan University of Colorado Boulder, CO 80309 diwan@cs.colorado.edu
More informationIBM Research Report. Fast Online Pointer Analysis
RC23638 (W0506-058) June 10, 2005 Computer Science IBM Research Report Fast Online Pointer Analysis Martin Hirzel, Daniel von Dincklage*, Amer Diwan*, Michael Hind IBM Research Division Thomas J. Watson
More informationAdvanced Program Analyses for Object-oriented Systems
Advanced Program Analyses for Object-oriented Systems Dr. Barbara G. Ryder Rutgers University http://www.cs.rutgers.edu/~ryder http://prolangs.rutgers.edu/ July 2007 ACACES-3 July 2007 BG Ryder 1 Lecture
More informationVertical Profiling: Understanding the Behavior of Object-Oriented Applications
Vertical Profiling: Understanding the Behavior of Object-Oriented Applications Matthias Hauswirth, Amer Diwan University of Colorado at Boulder Peter F. Sweeney, Michael Hind IBM Thomas J. Watson Research
More informationWrite Barrier Removal by Static Analysis
Write Barrier Removal by Static Analysis Karen Zee Martin Rinard MIT Laboratory for Computer Science Research Goal Use static program analysis to identify and remove unnecessary write barriers in programs
More informationTowards Dynamic Interprocedural Analysis in JVMs
Towards Dynamic Interprocedural Analysis in JVMs Feng Qian Laurie Hendren School of Computer Science, McGill University 3480 University Street, Montreal, Quebec Canada H3A 2A7 {fqian,hendren}@cs.mcgill.ca
More informationDesign, Implementation, and Evaluation of a Compilation Server
Design, Implementation, and Evaluation of a Compilation Server Technical Report CU--978-04 HAN B. LEE University of Colorado AMER DIWAN University of Colorado and J. ELIOT B. MOSS University of Massachusetts
More informationField Analysis. Last time Exploit encapsulation to improve memory system performance
Field Analysis Last time Exploit encapsulation to improve memory system performance This time Exploit encapsulation to simplify analysis Two uses of field analysis Escape analysis Object inlining April
More informationExperiences with Multi-threading and Dynamic Class Loading in a Java Just-In-Time Compiler
, Compilation Technology Experiences with Multi-threading and Dynamic Class Loading in a Java Just-In-Time Compiler Daryl Maier, Pramod Ramarao, Mark Stoodley, Vijay Sundaresan TestaRossa JIT compiler
More informationFree-Me: A Static Analysis for Automatic Individual Object Reclamation
Free-Me: A Static Analysis for Automatic Individual Object Reclamation Samuel Z. Guyer, Kathryn McKinley, Daniel Frampton Presented by: Jason VanFickell Thanks to Dimitris Prountzos for slides adapted
More informationMaking Context-sensitive Points-to Analysis with Heap Cloning Practical For The Real World
Making Context-sensitive Points-to Analysis with Heap Cloning Practical For The Real World Chris Lattner Apple Andrew Lenharth UIUC Vikram Adve UIUC What is Heap Cloning? Distinguish objects by acyclic
More informationDynamic Selection of Application-Specific Garbage Collectors
Dynamic Selection of Application-Specific Garbage Collectors Sunil V. Soman Chandra Krintz University of California, Santa Barbara David F. Bacon IBM T.J. Watson Research Center Background VMs/managed
More informationSoftware Speculative Multithreading for Java
Software Speculative Multithreading for Java Christopher J.F. Pickett and Clark Verbrugge School of Computer Science, McGill University {cpicke,clump}@sable.mcgill.ca Allan Kielstra IBM Toronto Lab kielstra@ca.ibm.com
More informationA Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler
A Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu and Toshio Nakatani IBM Research Tokyo IBM Research T.J. Watson Research Center April
More informationA Study of Type Analysis for Speculative Method Inlining in a JIT Environment
A Study of Type Analysis for Speculative Method Inlining in a JIT Environment Feng Qian and Laurie Hendren {fqian, hendren}@sable.mcgill.ca School of Computer Science, McGill University Abstract. Method
More informationPhase-based Adaptive Recompilation in a JVM
Phase-based Adaptive Recompilation in a JVM Dayong Gu Clark Verbrugge Sable Research Group, School of Computer Science McGill University, Montréal, Canada {dgu1, clump}@cs.mcgill.ca April 7, 2008 Sable
More informationAlias Analysis. Advanced Topics. What is pointer analysis? Last Time
Advanced Topics Last Time Experimental Methodology Today What s a managed language? Alias Analysis - dealing with pointers Focus on statically typed managed languages Method invocation resolution Alias
More informationPhases in Branch Targets of Java Programs
Phases in Branch Targets of Java Programs Technical Report CU-CS-983-04 ABSTRACT Matthias Hauswirth Computer Science University of Colorado Boulder, CO 80309 hauswirt@cs.colorado.edu Recent work on phase
More informationSABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine p. 1
SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine David Bélanger dbelan2@cs.mcgill.ca Sable Research Group McGill University Montreal, QC January 28, 2004 SABLEJIT: A Retargetable
More informationMyths and Realities: The Performance Impact of Garbage Collection
Myths and Realities: The Performance Impact of Garbage Collection Tapasya Patki February 17, 2011 1 Motivation Automatic memory management has numerous software engineering benefits from the developer
More informationReducing the Overhead of Dynamic Compilation
Reducing the Overhead of Dynamic Compilation Chandra Krintz David Grove Derek Lieber Vivek Sarkar Brad Calder Department of Computer Science and Engineering, University of California, San Diego IBM T.
More informationComplex, concurrent software. Precision (no false positives) Find real bugs in real executions
Harry Xu May 2012 Complex, concurrent software Precision (no false positives) Find real bugs in real executions Need to modify JVM (e.g., object layout, GC, or ISA-level code) Need to demonstrate realism
More informationPoints-to Analysis for Java Using Annotated Constraints*
Points-to Analysis for Java Using Annotated Constraints* Dr. Barbara G. Ryder Rutgers University http://www.cs.rutgers.edu/~ryder http://prolangs.rutgers.edu/ *Joint research with Atanas Rountev and Ana
More informationReducing the Overhead of Dynamic Compilation
Reducing the Overhead of Dynamic Compilation Chandra Krintz y David Grove z Derek Lieber z Vivek Sarkar z Brad Calder y y Department of Computer Science and Engineering, University of California, San Diego
More informationMethod-Level Phase Behavior in Java Workloads
Method-Level Phase Behavior in Java Workloads Andy Georges, Dries Buytaert, Lieven Eeckhout and Koen De Bosschere Ghent University Presented by Bruno Dufour dufour@cs.rutgers.edu Rutgers University DCS
More informationIntroduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview
Introduction to Visual Basic and Visual C++ Introduction to Java Lesson 13 Overview I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Overview JDK Editions Before you can write and run the simple
More informationA JAVA VIRTUAL MACHINE FOR RISC-V PORTING THE JIKES RESEARCH VM
A JAVA VIRTUAL MACHINE FOR RISC-V PORTING THE JIKES RESEARCH VM Martin Maas, UC Berkeley (maas@eecs.berkeley.edu) 5th RISC-V Workshop, Nov 30, 2016 Mountain View, CA 3 WHY DO WE NEED A JVM PORT? Run Java
More informationWrite Barrier Removal by Static Analysis
Write Barrier Removal by Static Analysis Karen Zee and Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology Cambridge, MA 02139 {kkz, rinard@lcs.mit.edu ABSTRACT We present
More informationDemand-Driven Points-To Analysis For Java
Demand-Driven Points-To Analysis For Java Manu Sridharan, Ras Bodik Lexin Shan Denis Gopan UC Berkeley Microsoft UW Madison OOPSLA 2005 1 Who needs better pointer analysis? IDEs: for refactoring, program
More informationIBM Research Report. Efficient Memory Management for Long-Lived Objects
RC24794 (W0905-013) May 7, 2009 Computer Science IBM Research Report Efficient Memory Management for Long-Lived Objects Ronny Morad 1, Martin Hirzel 2, Elliot K. Kolodner 1, Mooly Sagiv 3 1 IBM Research
More informationRunning class Timing on Java HotSpot VM, 1
Compiler construction 2009 Lecture 3. A first look at optimization: Peephole optimization. A simple example A Java class public class A { public static int f (int x) { int r = 3; int s = r + 5; return
More informationCycle Tracing. Presented by: Siddharth Tiwary
Cycle Tracing Chapter 4, pages 41--56, 2010. From: "Garbage Collection and the Case for High-level Low-level Programming," Daniel Frampton, Doctoral Dissertation, Australian National University. Presented
More informationJazz: A Tool for Demand-Driven Structural Testing
Jazz: A Tool for Demand-Driven Structural Testing J. Misurda, J. A. Clause, J. L. Reed, P. Gandra, B. R. Childers, and M. L. Soffa Department of Computer Science University of Pittsburgh Pittsburgh, Pennsylvania
More informationLecture Notes on Advanced Garbage Collection
Lecture Notes on Advanced Garbage Collection 15-411: Compiler Design André Platzer Lecture 21 November 4, 2010 1 Introduction More information on garbage collection can be found in [App98, Ch 13.5-13.7]
More informationAgenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1
Agenda CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Summer 2004 Java virtual machine architecture.class files Class loading Execution engines Interpreters & JITs various strategies
More informationInterprocedural Analysis with Data-Dependent Calls. Circularity dilemma. A solution: optimistic iterative analysis. Example
Interprocedural Analysis with Data-Dependent Calls Circularity dilemma In languages with function pointers, first-class functions, or dynamically dispatched messages, callee(s) at call site depend on data
More informationCompiler construction 2009
Compiler construction 2009 Lecture 3 JVM and optimization. A first look at optimization: Peephole optimization. A simple example A Java class public class A { public static int f (int x) { int r = 3; int
More informationCompact Garbage Collection Tables
Compact Garbage Collection Tables David Tarditi Microsoft Research Redmond, WA 98052, USA dtarditi@microsoft.com ABSTRACT Garbage collection tables for finding pointers on the stack can be represented
More informationDebunking Dynamic Optimization Myths
Debunking Dynamic Optimization Myths Michael Hind (Material borrowed from 3 hr PLDI 04 Tutorial by Stephen Fink, David Grove, and Michael Hind. See those slides for more details.) September 15, 2004 Future
More informationThe VMKit project: Java (and.net) on top of LLVM
The VMKit project: Java (and.net) on top of LLVM Nicolas Geoffray Université Pierre et Marie Curie, France nicolas.geoffray@lip6.fr What is VMKit? Glue between existing VM components LLVM, GNU Classpath,
More informationUnderstanding the Connectivity of Heap Objects Technical Report: CU-CS
Understanding the Connectivity of Heap Objects Technical Report: CU-CS-923-01 Martin Hirzel, Johannes Henkel, Amer Diwan University of Colorado, Boulder Michael Hind IBM Research Abstract Modern garbage
More informationTowards Parallel, Scalable VM Services
Towards Parallel, Scalable VM Services Kathryn S McKinley The University of Texas at Austin Kathryn McKinley Towards Parallel, Scalable VM Services 1 20 th Century Simplistic Hardware View Faster Processors
More informationScaling Java Points-to Analysis Using Spark
Scaling Java Points-to Analysis Using Spark Ondřej Lhoták and Laurie Hendren Sable Research Group, McGill University, Montreal, Canada {olhotak,hendren}@sable.mcgill.ca Abstract. Most points-to analysis
More information20 Most Important Java Programming Interview Questions. Powered by
20 Most Important Java Programming Interview Questions Powered by 1. What's the difference between an interface and an abstract class? An abstract class is a class that is only partially implemented by
More informationScaling Java Points-To Analysis using Spark
McGill University School of Computer Science Sable Research Group Scaling Java Points-To Analysis using Spark Sable Technical Report No. 2002-9 Ondřej Lhoták and Laurie Hendren October 24, 2002 w w w.
More informationShenandoah: An ultra-low pause time garbage collector for OpenJDK. Christine Flood Principal Software Engineer Red Hat
Shenandoah: An ultra-low pause time garbage collector for OpenJDK Christine Flood Principal Software Engineer Red Hat 1 Why do we need another Garbage Collector? OpenJDK currently has: SerialGC ParallelGC
More informationThin Locks: Featherweight Synchronization for Java
Thin Locks: Featherweight Synchronization for Java David F. Bacon Ravi Konuru Chet Murthy Mauricio Serrano IBM T.J. Watson Research Center Introduction It s the same old sad story: Java has threads and
More informationProbabilistic Calling Context
Probabilistic Calling Context Michael D. Bond Kathryn S. McKinley University of Texas at Austin Why Context Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdbcinterface.execquery():213
More informationCalvin Lin The University of Texas at Austin
Interprocedural Analysis Last time Introduction to alias analysis Today Interprocedural analysis March 4, 2015 Interprocedural Analysis 1 Motivation Procedural abstraction Cornerstone of programming Introduces
More informationSSA Based Mobile Code: Construction and Empirical Evaluation
SSA Based Mobile Code: Construction and Empirical Evaluation Wolfram Amme Friedrich Schiller University Jena, Germany Michael Franz Universit of California, Irvine, USA Jeffery von Ronne Universtity of
More informationA Framework for Optimistic Program Optimization
A Framework for Optimistic Program Optimization by Igor Pechtchanski A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy Department of Computer Science
More informationDelft-Java Link Translation Buffer
Delft-Java Link Translation Buffer John Glossner 1,2 and Stamatis Vassiliadis 2 1 Lucent / Bell Labs Advanced DSP Architecture and Compiler Research Allentown, Pa glossner@lucent.com 2 Delft University
More informationReference Analyses. VTA - Variable Type Analysis
Reference Analyses Variable Type Analysis for Java Related points-to analyses for C Steengaard Andersen Field-sensitive points-to for Java Object-sensitive points-to for Java Other analysis approaches
More informationInterprocedural Analysis. Motivation. Interprocedural Analysis. Function Calls and Pointers
Interprocedural Analysis Motivation Last time Introduction to alias analysis Today Interprocedural analysis Procedural abstraction Cornerstone of programming Introduces barriers to analysis Example x =
More informationImplementing Higher-Level Languages. Quick tour of programming language implementation techniques. From the Java level to the C level.
Implementing Higher-Level Languages Quick tour of programming language implementation techniques. From the Java level to the C level. Ahead-of-time compiler compile time C source code C compiler x86 assembly
More informationJava On Steroids: Sun s High-Performance Java Implementation. History
Java On Steroids: Sun s High-Performance Java Implementation Urs Hölzle Lars Bak Steffen Grarup Robert Griesemer Srdjan Mitrovic Sun Microsystems History First Java implementations: interpreters compact
More information6.828: OS/Language Co-design. Adam Belay
6.828: OS/Language Co-design Adam Belay Singularity An experimental research OS at Microsoft in the early 2000s Many people and papers, high profile project Influenced by experiences at
More informationSafety Checks and Semantic Understanding via Program Analysis Techniques
Safety Checks and Semantic Understanding via Program Analysis Techniques Nurit Dor Joint Work: EranYahav, Inbal Ronen, Sara Porat Goal Find properties of a program Anti-patterns that indicate potential
More informationContext-sensitive points-to analysis: is it worth it?
Context-sensitive points-to analysis: is it worth it? Ondřej Lhoták 1,2 and Laurie Hendren 2 olhotak@uwaterloo.ca hendren@sable.mcgill.ca 1 School of Computer Science, University of Waterloo, Waterloo,
More informationCSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1
CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Winter 2008 3/11/2008 2002-08 Hal Perkins & UW CSE V-1 Agenda Java virtual machine architecture.class files Class loading Execution engines
More informationCO444H. Ben Livshits. Datalog Pointer analysis
CO444H Ben Livshits Datalog Pointer analysis 1 Call Graphs Class analysis: Given a reference variable x, what are the classes of the objects that x refers to at runtime? We saw CHA and RTA Deal with polymorphic/virtual
More informationYETI. GraduallY Extensible Trace Interpreter VEE Mathew Zaleski, Angela Demke Brown (University of Toronto) Kevin Stoodley (IBM Toronto)
YETI GraduallY Extensible Trace Interpreter Mathew Zaleski, Angela Demke Brown (University of Toronto) Kevin Stoodley (IBM Toronto) VEE 2007 1 Goal Create a VM that is more easily extended with a just
More informationRun-Time Environments/Garbage Collection
Run-Time Environments/Garbage Collection Department of Computer Science, Faculty of ICT January 5, 2014 Introduction Compilers need to be aware of the run-time environment in which their compiled programs
More informationSista: Improving Cog s JIT performance. Clément Béra
Sista: Improving Cog s JIT performance Clément Béra Main people involved in Sista Eliot Miranda Over 30 years experience in Smalltalk VM Clément Béra 2 years engineer in the Pharo team Phd student starting
More informationConnectivity-Based Garbage Collection
Connectivity-Based Garbage Collection Martin Hirzel Vordiplom, Darmstadt University of Technology, 1998 M.S., University of Colorado at Boulder, 2000 A thesis submitted to the Faculty of the Graduate School
More informationAccurate Garbage Collection in Uncooperative Environments with Lazy Pointer Stacks
Accurate Garbage Collection in Uncooperative Environments with Lazy Pointer Stacks Jason Baker, Antonio Cunei, Filip Pizlo, and Jan Vitek Computer Science Department Purdue University West Lafayette, IN
More informationWednesday, October 15, 14. Functions
Functions Terms void foo() { int a, b;... bar(a, b); void bar(int x, int y) {... foo is the caller bar is the callee a, b are the actual parameters to bar x, y are the formal parameters of bar Shorthand:
More informationExpressing high level optimizations within LLVM. Artur Pilipenko
Expressing high level optimizations within LLVM Artur Pilipenko artur.pilipenko@azul.com This presentation describes advanced development work at Azul Systems and is for informational purposes only. Any
More informationFeatherweight Monitors with Bacon Bits
Featherweight Monitors with Bacon Bits David F. Bacon IBM T.J. Watson Research Center Contributors Chet Murthy Tamiya Onodera Mauricio Serrano Mark Wegman Rob Strom Kevin Stoodley Introduction It s the
More informationInstrumentation in Software Dynamic Translators for Self-Managed Systems
Instrumentation in Software Dynamic Translators for Self-Managed Systems Naveen Kumar, Jonathan Misurda, Bruce R. Childers Department of Computer Science University of Pittsburgh Pittsburgh, PA 15260 {naveen,jmisurda,childers}@cs.pitt.edu
More informationConnectivity-Based Garbage Collection
Connectivity-Based Garbage Collection Martin Hirzel Vordiplom, Darmstadt University of Technology, 1998 This thesis entitled: Connectivity-Based Garbage Collection written by Martin Hirzel has been approved
More informationStatic Java Program Features for Intelligent Squash Prediction
Static Java Program Features for Intelligent Squash Prediction Jeremy Singer,, Adam Pocock, Mikel Lujan, Gavin Brown, Nikolas Ioannou, Marcelo Cintra Thread-level Speculation... Aim to use parallel multi-core
More informationJOVE. An Optimizing Compiler for Java. Allen Wirfs-Brock Instantiations Inc.
An Optimizing Compiler for Java Allen Wirfs-Brock Instantiations Inc. Object-Orient Languages Provide a Breakthrough in Programmer Productivity Reusable software components Higher level abstractions Yield
More informationEfficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees and Customized Memory Management
to Reuse * * Evaluated * OOPSLA * Artifact * AEC Efficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees and Customized Memory Management Jipeng Huang Michael D. Bond Ohio State
More informationManaged runtimes & garbage collection
Managed runtimes Advantages? Managed runtimes & garbage collection CSE 631 Some slides by Kathryn McKinley Disadvantages? 1 2 Managed runtimes Portability (& performance) Advantages? Reliability Security
More informationManaged runtimes & garbage collection. CSE 6341 Some slides by Kathryn McKinley
Managed runtimes & garbage collection CSE 6341 Some slides by Kathryn McKinley 1 Managed runtimes Advantages? Disadvantages? 2 Managed runtimes Advantages? Reliability Security Portability Performance?
More informationDimensions of Precision in Reference Analysis of Object-oriented Programming Languages. Outline
Dimensions of Precision in Reference Analysis of Object-oriented Programming Languages Dr. Barbara G. Ryder Rutgers University http://www.cs.rutgers.edu/~ryder http://prolangs.rutgers.edu/ Research supported,
More informationRUNTIME TECHNIQUES AND INTERPROCEDURAL ANALYSIS IN JAVA VIRTUAL MACHINES
RUNTIME TECHNIQUES AND INTERPROCEDURAL ANALYSIS IN JAVA VIRTUAL MACHINES by Feng Qian School of Computer Science McGill University, Montreal March 2005 A thesis submitted to McGill University in partial
More informationStatic Program Analysis Part 9 pointer analysis. Anders Møller & Michael I. Schwartzbach Computer Science, Aarhus University
Static Program Analysis Part 9 pointer analysis Anders Møller & Michael I. Schwartzbach Computer Science, Aarhus University Agenda Introduction to points-to analysis Andersen s analysis Steensgaards s
More informationUntyped Memory in the Java Virtual Machine
Untyped Memory in the Java Virtual Machine Andreas Gal and Michael Franz University of California, Irvine {gal,franz}@uci.edu Christian W. Probst Technical University of Denmark probst@imm.dtu.dk July
More informationEscape Analysis in the Context of Dynamic Compilation and Deoptimization
Escape Analysis in the Context of Dynamic Compilation and Deoptimization ABSTRACT Thomas Kotzmann Institute for System Software Johannes Kepler University Linz Linz, Austria kotzmann@ssw.jku.at In object-oriented
More informationFlow-sensitive rewritings and Inliner improvements for the Graal JIT compiler
1 / 25 Flow-sensitive rewritings and for the Graal JIT compiler Miguel Garcia http://lampwww.epfl.ch/~magarcia/ 2014-07-07 2 / 25 Outline Flow-sensitive rewritings during HighTier Example Rewritings in
More informationAccelerating Ruby with LLVM
Accelerating Ruby with LLVM Evan Phoenix Oct 2, 2009 RUBY RUBY Strongly, dynamically typed RUBY Unified Model RUBY Everything is an object RUBY 3.class # => Fixnum RUBY Every code context is equal RUBY
More informationCS711 Advanced Programming Languages Pointer Analysis Overview and Flow-Sensitive Analysis
CS711 Advanced Programming Languages Pointer Analysis Overview and Flow-Sensitive Analysis Radu Rugina 8 Sep 2005 Pointer Analysis Informally: determine where pointers (or references) in the program may
More informationONLINE PROFILING AND FEEDBACK-DIRECTED OPTIMIZATION OF JAVA
ONLINE PROFILING AND FEEDBACK-DIRECTED OPTIMIZATION OF JAVA BY MATTHEW ARNOLD A dissertation submitted to the Graduate School New Brunswick Rutgers, The State University of New Jersey in partial fulfillment
More informationReference Object Processing in On-The-Fly Garbage Collection
Reference Object Processing in On-The-Fly Garbage Collection Tomoharu Ugawa, Kochi University of Technology Richard Jones, Carl Ritson, University of Kent Weak Pointers Weak pointers are a mechanism to
More informationAnalysis of Object-oriented Programming Languages
Analysis of Object-oriented Programming Languages Dr. Barbara G. Ryder Rutgers University http://www.cs.rutgers.edu/~ryder http://prolangs.rutgers.edu/ OOAnalysis, Dagstuhl 2/03, BG Ryder 1 Outline Why
More informationCS260 Intro to Java & Android 02.Java Technology
CS260 Intro to Java & Android 02.Java Technology CS260 - Intro to Java & Android 1 Getting Started: http://docs.oracle.com/javase/tutorial/getstarted/index.html Java Technology is: (a) a programming language
More informationKasper Lund, Software engineer at Google. Crankshaft. Turbocharging the next generation of web applications
Kasper Lund, Software engineer at Google Crankshaft Turbocharging the next generation of web applications Overview Why did we introduce Crankshaft? Deciding when and what to optimize Type feedback and
More informationLimits of Parallel Marking Garbage Collection....how parallel can a GC become?
Limits of Parallel Marking Garbage Collection...how parallel can a GC become? Dr. Fridtjof Siebert CTO, aicas ISMM 2008, Tucson, 7. June 2008 Introduction Parallel Hardware is becoming the norm even for
More informationJust-In-Time Compilation
Just-In-Time Compilation Thiemo Bucciarelli Institute for Software Engineering and Programming Languages 18. Januar 2016 T. Bucciarelli 18. Januar 2016 1/25 Agenda Definitions Just-In-Time Compilation
More informationParley: Federated Virtual Machines
1 IBM Research Parley: Federated Virtual Machines Perry Cheng, Dave Grove, Martin Hirzel, Rob O Callahan and Nikhil Swamy VEE Workshop September 2004 2002 IBM Corporation What is Parley? Motivation Virtual
More informationCSE 501: Compiler Construction. Course outline. Goals for language implementation. Why study compilers? Models of compilation
CSE 501: Compiler Construction Course outline Main focus: program analysis and transformation how to represent programs? how to analyze programs? what to analyze? how to transform programs? what transformations
More informationEliminating Exception Constraints of Java Programs for IA-64
Eliminating Exception Constraints of Java Programs for IA-64 Kazuaki Ishizaki, Tatsushi Inagaki, Hideaki Komatsu,Toshio Nakatani IBM Research, Tokyo Research
More informationContext Threading: A flexible and efficient dispatch technique for virtual machine interpreters
: A flexible and efficient dispatch technique for virtual machine interpreters Marc Berndl Benjamin Vitale Mathew Zaleski Angela Demke Brown Research supported by IBM CAS, NSERC, CITO 1 Interpreter performance
More informationRunning R Faster. Tomas Kalibera
Running R Faster Tomas Kalibera My background: computer scientist, R user. My FastR experience: Implementing a new R VM in Java. New algorithms, optimizations help Frame representation, variable lookup
More informationUncovering Performance Problems in Java Applications with Reference Propagation Profiling
Uncovering Performance Problems in Java Applications with Reference Propagation Profiling Dacong Yan 1 Guoqing Xu 2 Atanas Rountev 1 1 Department of Computer Science and Engineering, Ohio State University
More informationShenandoah: An ultra-low pause time garbage collector for OpenJDK. Christine Flood Roman Kennke Principal Software Engineers Red Hat
Shenandoah: An ultra-low pause time garbage collector for OpenJDK Christine Flood Roman Kennke Principal Software Engineers Red Hat 1 Shenandoah Why do we need it? What does it do? How does it work? What's
More information