HOTPATH VM. An Effective JIT Compiler for Resource-constrained Devices
|
|
|
- Cecil Dixon
- 10 years ago
- Views:
Transcription
1 HOTPATH VM An Effective JIT Compiler for Resource-constrained Devices based on the paper by Andreas Gal, Christian W. Probst and Michael Franz, VEE 06
2 INTRODUCTION
3 INTRODUCTION Most important factor: speed
4 INTRODUCTION Most important factor: speed Overlooked: power consumption, memory footprint
5 INTRODUCTION Most important factor: speed Overlooked: power consumption, memory footprint Embedded JIT compilers (simpler algorithms)
6 JAMVM
7 JAMVM GNU classpath-based
8 JAMVM GNU classpath-based Own intermediate representation
9 JAMVM GNU classpath-based Own intermediate representation HotpathVM as add-on
10 JAMVM GNU classpath-based Own intermediate representation HotpathVM as add-on Integrated w/ 20 lines of code
11 HOTPATHVM
12 HOTPATHVM 150 kb memory footprint
13 HOTPATHVM 150 kb memory footprint Searching for hot code by tracing
14 HOTPATHVM 150 kb memory footprint Searching for hot code by tracing Cold code for interpreter
15 HOTPATHVM 150 kb memory footprint Searching for hot code by tracing Cold code for interpreter Optimizing and compiling traces
16 TRACE SELECTION
17 TRACE SELECTION Problem: bytecode is not purely sequential
18 TRACE SELECTION Problem: bytecode is not purely sequential Solution: Software Trace Scheduling
19 TRACE SELECTION Problem: bytecode is not purely sequential Solution: Software Trace Scheduling Limited to loops
20 IDENTIFYING LOOP HEADERS
21 IDENTIFYING LOOP HEADERS Backward jump record destination
22 IDENTIFYING LOOP HEADERS Backward jump record destination Assumption: bytecode is forward
23 IDENTIFYING LOOP HEADERS Backward jump record destination Assumption: bytecode is forward Counter for backward jumps
24 IDENTIFYING LOOP HEADERS Backward jump record destination Assumption: bytecode is forward Counter for backward jumps Saved in intermediate representation
25 IDENTIFYING LOOP HEADERS Backward jump record destination Assumption: bytecode is forward Counter for backward jumps Saved in intermediate representation Record after threshold is exceeded
26 TRACE EXAMPLE
27 TRACE EXAMPLE public static void main(string args[]) { int i, k = 0; for (i = 0; i < 1000, ++i) ++k; System.out.println(k); }
28 TRACE EXAMPLE public static void main(string args[]) { int i, k = 0; for (i = 0; i < 1000, ++i) ++k; System.out.println(k); } A: B: iconst_0 istore_2 iconst_0 istore_1 iload_1 sipush 1000 if_icmpge B iinc 2,1 iinc 1,1 goto A getstatic System.out iload_2 invokevirtual println(int) return
29 TRACE EXAMPLE public static void main(string args[]) { int i, k = 0; for (i = 0; i < 1000, ++i) ++k; hotspot System.out.println(k); } A: B: iconst_0 istore_2 iconst_0 istore_1 iload_1 sipush 1000 if_icmpge B iinc 2,1 iinc 1,1 goto A getstatic System.out iload_2 invokevirtual println(int) return
30 TRACE EXAMPLE public static void main(string args[]) { int i, k = 0; for (i = 0; i < 1000, ++i) ++k; hotspot System.out.println(k); } A: B: iconst_0 istore_2 iconst_0 istore_1 iload_1 sipush 1000 if_icmpge B iinc 2,1 hotpath iinc 1,1 goto A getstatic System.out iload_2 invokevirtual println(int) return
31 RECORDING TRACES
32 RECORDING TRACES Meta block after each instruction
33 RECORDING TRACES Meta block after each instruction Second stop-loss threshold
34 RECORDING TRACES Meta block after each instruction Second stop-loss threshold No overhead without tracer
35 RECORDING TRACES Meta block after each instruction Second stop-loss threshold No overhead without tracer Guards for branches
36 GUARDS
37 GUARDS Ensures following the hotpath
38 GUARDS Ensures following the hotpath Returns control to VM on failure
39 GUARDS Ensures following the hotpath Returns control to VM on failure Reset values from intermediate representation
40 BRANCHES
41 BRANCHES Multiple hot paths in loop
42 BRANCHES Multiple hot paths in loop Lazy recording
43 BRANCHES Multiple hot paths in loop Lazy recording Secondary traces (like Dynamo)
44 BRANCHES Multiple hot paths in loop Lazy recording Secondary traces (like Dynamo) Updates guard instruction
45 BRANCHES Multiple hot paths in loop Lazy recording Secondary traces (like Dynamo) Updates guard instruction
46 STOP CONDITIONS
47 STOP CONDITIONS Successful recording
48 STOP CONDITIONS Successful recording Aborted recording on rare events
49 STOP CONDITIONS Successful recording Aborted recording on rare events Exceptions
50 STOP CONDITIONS Successful recording Aborted recording on rare events Exceptions Native method invocation
51 COMPILING TRACES
52 COMPILING TRACES Compiling complete traces only
53 COMPILING TRACES Compiling complete traces only Assumption: trace is executed repeatedly
54 COMPILING TRACES Compiling complete traces only Assumption: trace is executed repeatedly
55 COMPILING TRACES Compiling complete traces only Assumption: trace is executed repeatedly Stack Deconstruction
56 COMPILING TRACES Compiling complete traces only Assumption: trace is executed repeatedly Stack Deconstruction Code Analysis
57 COMPILING TRACES Compiling complete traces only Assumption: trace is executed repeatedly Stack Deconstruction Code Analysis Code Generation
58 STACK DECONSTRUCTION
59 STACK DECONSTRUCTION Generates SSA-based IR
60 STACK DECONSTRUCTION Generates SSA-based IR φ pseudo instruction
61 STACK DECONSTRUCTION x = 5 Generates SSA-based IR if x > 5 φ pseudo instruction x = 5 x = 7 x = 7
62 STACK DECONSTRUCTION x1 x = 5 Generates SSA-based IR if x1 x > 5 φ pseudo instruction x2 x = 5 x3 x = 7 x4 = x φ(x2,x3) = 7
63 STACK DECONSTRUCTION x1 x = 5 Generates SSA-based IR if x1 x > 5 φ pseudo instruction Flags loop invariant code x2 x = 5 x3 x = 7 x4 = x φ(x2,x3) = 7
64 STACK DECONSTRUCTION x1 x = 5 Generates SSA-based IR if x1 x > 5 φ pseudo instruction Flags loop invariant code x2 x = 5 x3 x = 7 x4 = x φ(x2,x3) = 7
65 CODE ANALYSIS
66 CODE ANALYSIS Constant Propagation
67 CODE ANALYSIS Constant Propagation Loop Peeling
68 CODE ANALYSIS Constant Propagation Loop Peeling Common subexpression elimination
69 CODE ANALYSIS Constant Propagation Loop Peeling Common subexpression elimination Invariant code motion
70 CODE GENERATION
71 CODE GENERATION Generating code backwards
72 CODE GENERATION Generating code backwards Enables to emit special machine code
73 CODE GENERATION Generating code backwards Enables to emit special machine code Constant Folding
74 SIDE EXITS
75 SIDE EXITS Leaving the hot path
76 SIDE EXITS Leaving the hot path Generator generates compensation code
77 SIDE EXITS Leaving the hot path Generator generates compensation code Special case: inline methods
78 SIDE EXITS Leaving the hot path Generator generates compensation code Special case: inline methods Writing back current state
79 WALKTHROUGH
80 WALKTHROUGH Java Code
81 WALKTHROUGH compilation Java Code
82 WALKTHROUGH compilation Java Code Bytecode
83 WALKTHROUGH Bytecode
84 WALKTHROUGH stack deconstruction Bytecode
85 WALKTHROUGH stack deconstruction Bytecode SSA
86 WALKTHROUGH stack deconstruction Bytecode SSA Flag invariant code
87 WALKTHROUGH SSA
88 WALKTHROUGH analysis optimization SSA
89 WALKTHROUGH analysis optimization SSA SSA
90 WALKTHROUGH analysis optimization SSA SSA Constant Propagation Loop Peeling Common subexpression elimination Invariant code motion
91 WALKTHROUGH SSA
92 WALKTHROUGH generation SSA
93 WALKTHROUGH generation SSA Machine code
94 WALKTHROUGH generation SSA Machine code Constant Folding
95 BENCHMARKS
96 BENCHMARKS execution time in s LU SOR FFT SCR Linpack NumSort MonteCarlo Java VM JamVM HotpathVM Hotspot VM
97 BENCHMARKS execution time in s LU SOR FFT SCR Linpack NumSort MonteCarlo Java VM JamVM HotpathVM Hotspot VM
98 BENCHMARKS execution time in s LU SOR FFT SCR Linpack NumSort MonteCarlo Java VM JamVM HotpathVM Hotspot VM
99 BENCHMARKS execution time in s LU SOR FFT SCR Linpack NumSort MonteCarlo Java VM JamVM HotpathVM Hotspot VM
100 BENCHMARKS execution time in s LU SOR FFT SCR Linpack NumSort MonteCarlo Java VM JamVM HotpathVM Hotspot VM
101 BENCHMARKS
102 BENCHMARKS speedup factor LU SOR FFT SCR Linpack NumSort MonteCarlo Java VM JamVM HotpathVM Hotspot VM
103 BENCHMARKS speedup factor LU SOR FFT SCR Linpack NumSort MonteCarlo Java VM JamVM HotpathVM Hotspot VM
104 BENCHMARKS speedup factor LU SOR FFT SCR Linpack NumSort MonteCarlo Java VM JamVM HotpathVM Hotspot VM
105 BENCHMARKS speedup factor LU SOR FFT SCR Linpack NumSort MonteCarlo Java VM JamVM HotpathVM Hotspot VM
106 BENCHMARKS speedup factor LU SOR FFT SCR Linpack NumSort MonteCarlo Java VM JamVM HotpathVM Hotspot VM
107 OUTLOOK
108 OUTLOOK Trace Merging
109 OUTLOOK Trace Merging Support additional architectures (ARM)
110 OUTLOOK Trace Merging Support additional architectures (ARM) Use outside embedded environment
111 HOTPATH VM An Effective JIT Compiler for Resource-constrained Devices
Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters
Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.
LaTTe: An Open-Source Java VM Just-in Compiler
LaTTe: An Open-Source Java VM Just-in in-time Compiler S.-M. Moon, B.-S. Yang, S. Park, J. Lee, S. Lee, J. Park, Y. C. Chung, S. Kim Seoul National University Kemal Ebcioglu, Erik Altman IBM T.J. Watson
02 B The Java Virtual Machine
02 B The Java Virtual Machine CS1102S: Data Structures and Algorithms Martin Henz January 22, 2010 Generated on Friday 22 nd January, 2010, 09:46 CS1102S: Data Structures and Algorithms 02 B The Java Virtual
CSC 8505 Handout : JVM & Jasmin
CSC 8505 Handout : JVM & Jasmin Note: This handout provides you with the basic information about JVM. Although we tried to be accurate about the description, there may be errors. Feel free to check your
Armed E-Bunny: A Selective Dynamic Compiler for Embedded Java Virtual Machine Targeting ARM Processors
2005 ACM Symposium on Applied Computing Armed E-Bunny: A Selective Dynamic Compiler for Embedded Java Virtual Machine Targeting ARM Processors Mourad Debbabi Computer Security Research Group CIISE, Concordia
Virtual Machine Learning: Thinking Like a Computer Architect
Virtual Machine Learning: Thinking Like a Computer Architect Michael Hind IBM T.J. Watson Research Center March 21, 2005 CGO 05 Keynote 2005 IBM Corporation What is this talk about? Virtual Machines? 2
picojava TM : A Hardware Implementation of the Java Virtual Machine
picojava TM : A Hardware Implementation of the Java Virtual Machine Marc Tremblay and Michael O Connor Sun Microelectronics Slide 1 The Java picojava Synergy Java s origins lie in improving the consumer
Introduction. Application Security. Reasons For Reverse Engineering. This lecture. Java Byte Code
Introduction Application Security Tom Chothia Computer Security, Lecture 16 Compiled code is really just data which can be edit and inspected. By examining low level code protections can be removed and
Advanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz 2007 03 16
Advanced compiler construction Michel Schinz 2007 03 16 General course information Teacher & assistant Course goals Teacher: Michel Schinz [email protected] Assistant: Iulian Dragos INR 321, 368 64
The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. [email protected] Oct 2003 Presented to Gordon College CS 311
The Java Virtual Machine and Mobile Devices John Buford, Ph.D. [email protected] Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture
Chapter 7D The Java Virtual Machine
This sub chapter discusses another architecture, that of the JVM (Java Virtual Machine). In general, a VM (Virtual Machine) is a hypothetical machine (implemented in either hardware or software) that directly
Inside the Java Virtual Machine
CS1Bh Practical 2 Inside the Java Virtual Machine This is an individual practical exercise which requires you to submit some files electronically. A system which measures software similarity will be used
Wiggins/Redstone: An On-line Program Specializer
Wiggins/Redstone: An On-line Program Specializer Dean Deaver Rick Gorton Norm Rubin {dean.deaver,rick.gorton,norm.rubin}@compaq.com Hot Chips 11 Wiggins/Redstone 1 W/R is a Software System That: u Makes
language 1 (source) compiler language 2 (target) Figure 1: Compiling a program
CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program
- Applet java appaiono di frequente nelle pagine web - Come funziona l'interprete contenuto in ogni browser di un certo livello? - Per approfondire
- Applet java appaiono di frequente nelle pagine web - Come funziona l'interprete contenuto in ogni browser di un certo livello? - Per approfondire il funzionamento della Java Virtual Machine (JVM): -
Under the Hood: The Java Virtual Machine. Lecture 24 CS 2110 Fall 2011
Under the Hood: The Java Virtual Machine Lecture 24 CS 2110 Fall 2011 Compiling for Different Platforms Program written in some high-level language (C, Fortran, ML,...) Compiled to intermediate form Optimized
Programming the Android Platform. Logistics
Programming the Android Platform CMSC498G Logistics Professor Adam Porter 4125 AVW [email protected] Course meets W 3:00 3:50 in CSI 3118 1 Goals Learn more about Mobile devices Mobile device programming
Habanero Extreme Scale Software Research Project
Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead
Introduction to Programming
Introduction to Programming Lecturer: Steve Maybank Department of Computer Science and Information Systems [email protected] Spring 2015 Week 2b: Review of Week 1, Variables 16 January 2015 Birkbeck
Jonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
The Java Virtual Machine (JVM) Pat Morin COMP 3002
The Java Virtual Machine (JVM) Pat Morin COMP 3002 Outline Topic 1 Topic 2 Subtopic 2.1 Subtopic 2.2 Topic 3 2 What is the JVM? The JVM is a specification of a computing machine Instruction set Primitive
Trace-based Just-in-Time Type Specialization for Dynamic Languages
Trace-based Just-in-Time Type Specialization for Dynamic Languages Andreas Gal +, Brendan Eich, Mike Shaver, David Anderson, David Mandelin, Mohammad R. Haghighat $, Blake Kaplan, Graydon Hoare, Boris
University of Twente. A simulation of the Java Virtual Machine using graph grammars
University of Twente Department of Computer Science A simulation of the Java Virtual Machine using graph grammars Master of Science thesis M. R. Arends, November 2003 A simulation of the Java Virtual Machine
General Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li ([email protected]) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
Virtual Machine Showdown: Stack Versus Registers
Virtual Machine Showdown: Stack Versus Registers Yunhe Shi, David Gregg, Andrew Beatty Department of Computer Science University of Dublin, Trinity College Dublin 2, Ireland {yshi, David.Gregg, Andrew.Beatty}@cs.tcd.ie
HVM TP : A Time Predictable and Portable Java Virtual Machine for Hard Real-Time Embedded Systems JTRES 2014
: A Time Predictable and Portable Java Virtual Machine for Hard Real-Time Embedded Systems JTRES 2014 Kasper Søe Luckow 1 Bent Thomsen 1 Stephan Erbs Korsholm 2 1 Department of Computer Science Aalborg
A JIT Compiler for Android s Dalvik VM. Ben Cheng, Bill Buzbee May 2010
A JIT Compiler for Android s Dalvik VM Ben Cheng, Bill Buzbee May 2010 Overview View live session notes and ask questions on Google Wave: http://bit.ly/bizjnf Dalvik Environment Trace vs. Method Granularity
Precise and Efficient Garbage Collection in VMKit with MMTk
Precise and Efficient Garbage Collection in VMKit with MMTk LLVM Developer s Meeting Nicolas Geoffray [email protected] 2 Background VMKit: Java and.net on top of LLVM Uses LLVM s JIT for executing
Instruction Folding in a Hardware-Translation Based Java Virtual Machine
Instruction Folding in a Hardware-Translation Based Java Virtual Machine Hitoshi Oi Department of Computer Science The University of Aizu Aizu-Wakamatsu, JAPAN hitoshi at u-aizu.ac.jp ABSTRACT Bytecode
Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert
Ubiquitous Computing Ubiquitous Computing The Sensor Network System Sun SPOT: The Sun Small Programmable Object Technology Technology-Based Wireless Sensor Networks a Java Platform for Developing Applications
Stack machines The MIPS assembly language A simple source language Stack-machine implementation of the simple language Readings: 9.1-9.
Code Generation I Stack machines The MIPS assembly language A simple source language Stack-machine implementation of the simple language Readings: 9.1-9.7 Stack Machines A simple evaluation model No variables
Java Programming. Binnur Kurt [email protected]. Istanbul Technical University Computer Engineering Department. Java Programming. Version 0.0.
Java Programming Binnur Kurt [email protected] Istanbul Technical University Computer Engineering Department Java Programming 1 Version 0.0.4 About the Lecturer BSc İTÜ, Computer Engineering Department,
Static Analysis of Virtualization- Obfuscated Binaries
Static Analysis of Virtualization- Obfuscated Binaries Johannes Kinder School of Computer and Communication Sciences École Polytechnique Fédérale de Lausanne (EPFL), Switzerland Virtualization Obfuscation
Write 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, [email protected] ABSTRACT We present
Lecture 32: The Java Virtual Machine. The Java Virtual Machine
The University of North Carolina at Chapel Hill Spring 2002 Lecture 32: The Java Virtual Machine April 12 1 The Java Virtual Machine Java Architecture Java Programming Language Java Virtual Machine (JVM)
Types of Separated Java Bytecode
Improving the Java Virtual Machine Using Type-Separated Bytecode Philipp Adler and Wolfram Amme Friedrich-Schiller-Universität, Ernst-Abbe-Platz 1-4, 07743 Jena, Germany, [phadler amme]@informatik.uni-jena.de
What is Software Watermarking? Software Watermarking Through Register Allocation: Implementation, Analysis, and Attacks
hat is Software atermarking? Software atermarking Through Register Allocation: Implementation, Analysis, and Attacks Ginger Myles Christian Collberg {mylesg,collberg}@cs.arizona.edu University of Arizona
Java Virtual-Machine Support for Portable Worst-Case Execution-Time Analysis
Java Virtual-Machine Support for Portable Worst-Case Execution-Time Analysis I. Bate, G. Bernat Department of Computer Science University of York York, YO10 5DD, UK iain.bate, bernat @cs.york.ac.uk P.
Java Program Coding Standards 4002-217-9 Programming for Information Technology
Java Program Coding Standards 4002-217-9 Programming for Information Technology Coding Standards: You are expected to follow the standards listed in this document when producing code for this class. Whether
Introduction to Java
Introduction to Java The HelloWorld program Primitive data types Assignment and arithmetic operations User input Conditional statements Looping Arrays CSA0011 Matthew Xuereb 2008 1 Java Overview A high
Instruction Set Architecture (ISA) Design. Classification Categories
Instruction Set Architecture (ISA) Design Overview» Classify Instruction set architectures» Look at how applications use ISAs» Examine a modern RISC ISA (DLX)» Measurement of ISA usage in real computers
Prototyping Faithful Execution in a Java Virtual Machine
SANDIA REPORT SAND2003-2327 Unlimited Release Printed July 2003 Prototyping Faithful Execution in a Java Virtual Machine Philip L. Campbell, Lyndon G. Pierson, Thomas D. Tarman Prepared by Sandia National
Linear Scan Register Allocation on SSA Form
Linear Scan Register Allocation on SSA Form Christian Wimmer Michael Franz Department of Computer Science University of California, Irvine {cwimmer, franz}@uci.edu Abstract The linear scan algorithm for
Eclipse Visualization and Performance Monitoring
Eclipse Visualization and Performance Monitoring Chris Laffra IBM Ottawa Labs http://eclipsefaq.org/chris Chris Laffra Eclipse Visualization and Performance Monitoring Page 1 Roadmap Introduction Introspection
Tachyon: a Meta-circular Optimizing JavaScript Virtual Machine
Tachyon: a Meta-circular Optimizing JavaScript Virtual Machine Maxime Chevalier-Boisvert Erick Lavoie Marc Feeley Bruno Dufour {chevalma, lavoeric, feeley, dufour}@iro.umontreal.ca DIRO - Université de
Checking Access to Protected Members in the Java Virtual Machine
Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/
Built-in Concurrency Primitives in Java Programming Language. by Yourii Martiak and Mahir Atmis
Built-in Concurrency Primitives in Java Programming Language by Yourii Martiak and Mahir Atmis Overview One of the many strengths of Java is the built into the programming language support for concurrency
Introduction to programming
Unit 1 Introduction to programming Summary Architecture of a computer Programming languages Program = objects + operations First Java program Writing, compiling, and executing a program Program errors
GENERIC and GIMPLE: A New Tree Representation for Entire Functions
GENERIC and GIMPLE: A New Tree Representation for Entire Functions Jason Merrill Red Hat, Inc. [email protected] 1 Abstract The tree SSA project requires a tree representation of functions for the optimizers
Effective Java Programming. efficient software development
Effective Java Programming efficient software development Structure efficient software development what is efficiency? development process profiling during development what determines the performance of
Can You Trust Your JVM Diagnostic Tools?
Can You Trust Your JVM Diagnostic Tools? Isaac Sjoblom, Tim S. Snyder, and Elena Machkasova Computer Science Discipline University of Minnesota Morris Morris, MN 56267 [email protected], [email protected],
Reducing Transfer Delay Using Java Class File Splitting and Prefetching
Reducing Transfer Delay Using Java Class File Splitting and Prefetching Chandra Krintz Brad Calder Urs Hölzle Department of Computer Science and Engineering University of California, San Diego ckrintz,calder
VLIW Processors. VLIW Processors
1 VLIW Processors VLIW ( very long instruction word ) processors instructions are scheduled by the compiler a fixed number of operations are formatted as one big instruction (called a bundle) usually LIW
Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding
Compiling Object Oriented Languages What is an Object-Oriented Programming Language? Last time Dynamic compilation Today Introduction to compiling object oriented languages What are the issues? Objects
Optimizing compilers. CS6013 - Modern Compilers: Theory and Practise. Optimization. Compiler structure. Overview of different optimizations
Optimizing compilers CS6013 - Modern Compilers: Theory and Practise Overview of different optimizations V. Krishna Nandivada IIT Madras Copyright c 2015 by Antony L. Hosking. Permission to make digital
Programming Language Pragmatics
Programming Language Pragmatics THIRD EDITION Michael L. Scott Department of Computer Science University of Rochester ^ШШШШШ AMSTERDAM BOSTON HEIDELBERG LONDON, '-*i» ЩЛ< ^ ' m H NEW YORK «OXFORD «PARIS»SAN
How To Trace
CS510 Software Engineering Dynamic Program Analysis Asst. Prof. Mathias Payer Department of Computer Science Purdue University TA: Scott A. Carr Slides inspired by Xiangyu Zhang http://nebelwelt.net/teaching/15-cs510-se
Compilers and Tools for Software Stack Optimisation
Compilers and Tools for Software Stack Optimisation EJCP 2014 2014/06/20 [email protected] Outline Compilers for a Set-Top-Box Compilers Potential Auto Tuning Tools Dynamic Program instrumentation
Cloud Computing. Up until now
Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines
Using inter-procedural side-effect information in JIT optimizations
Using inter-procedural side-effect information in JIT optimizations Anatole Le Ondřej Lhoták Laurie Hendren {ale44,olhotak,hendren}@sable.mcgill.ca Sable Research Group, McGill University, Montreal, Canada
Using jvmstat and visualgc to Solve Memory Management Problems
Using jvmstat and visualgc to Solve Memory Management Problems java.sun.com/javaone/sf 1 Wally Wedel Sun Software Services Brian Doherty Sun Microsystems, Inc. Analyze JVM Machine Memory Management Problems
CIS570 Modern Programming Language Implementation. Office hours: TDB 605 Levine [email protected]. [email protected].
CIS570 Modern Programming Language Implementation Instructor: Admin. Assistant: URL: E Christopher Lewis Office hours: TDB 605 Levine [email protected] Cheryl Hickey [email protected] 502
Performance Tools for Parallel Java Environments
Performance Tools for Parallel Java Environments Sameer Shende and Allen D. Malony Department of Computer and Information Science, University of Oregon {sameer,malony}@cs.uoregon.edu http://www.cs.uoregon.edu/research/paracomp/tau
EMSCRIPTEN - COMPILING LLVM BITCODE TO JAVASCRIPT (?!)
EMSCRIPTEN - COMPILING LLVM BITCODE TO JAVASCRIPT (?!) ALON ZAKAI (MOZILLA) @kripken JavaScript..? At the LLVM developer's conference..? Everything compiles into LLVM bitcode The web is everywhere, and
Replication on Virtual Machines
Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism
Chapter 4 Lecture 5 The Microarchitecture Level Integer JAVA Virtual Machine
Chapter 4 Lecture 5 The Microarchitecture Level Integer JAVA Virtual Machine This is a limited version of a hardware implementation to execute the JAVA programming language. 1 of 23 Structured Computer
CSCI E 98: Managed Environments for the Execution of Programs
CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office
PARALLEL JAVASCRIPT. Norm Rubin (NVIDIA) Jin Wang (Georgia School of Technology)
PARALLEL JAVASCRIPT Norm Rubin (NVIDIA) Jin Wang (Georgia School of Technology) JAVASCRIPT Not connected with Java Scheme and self (dressed in c clothing) Lots of design errors (like automatic semicolon
Briki: a Flexible Java Compiler
Briki: a Flexible Java Compiler Michał Cierniak Wei Li Technical Report 621 Department of Computer Science University of Rochester Rochester, NY 14627 cierniak,wei @cs.rochester.edu May 1996 Abstract We
How accurately do Java profilers predict runtime performance bottlenecks?
How accurately do Java profilers predict runtime performance bottlenecks? Master Software Engineering How accurately do Java profilers predict runtime performance bottlenecks? Peter Klijn: Student number
1 The Java Virtual Machine
1 The Java Virtual Machine About the Spec Format This document describes the Java virtual machine and the instruction set. In this introduction, each component of the machine is briefly described. This
DISK: A Distributed Java Virtual Machine For DSP Architectures
DISK: A Distributed Java Virtual Machine For DSP Architectures Mihai Surdeanu Southern Methodist University, Computer Science Department [email protected] Abstract Java is for sure the most popular programming
C# and Other Languages
C# and Other Languages Rob Miles Department of Computer Science Why do we have lots of Programming Languages? Different developer audiences Different application areas/target platforms Graphics, AI, List
Instruction Set Architecture (ISA)
Instruction Set Architecture (ISA) * Instruction set architecture of a machine fills the semantic gap between the user and the machine. * ISA serves as the starting point for the design of a new machine
On Demand Loading of Code in MMUless Embedded System
On Demand Loading of Code in MMUless Embedded System Sunil R Gandhi *. Chetan D Pachange, Jr.** Mandar R Vaidya***, Swapnilkumar S Khorate**** *Pune Institute of Computer Technology, Pune INDIA (Mob- 8600867094;
A Scalable Technique for Characterizing the Usage of Temporaries in Framework-intensive Java Applications
A Scalable Technique for Characterizing the Usage of Temporaries in Framework-intensive Java Applications Bruno Dufour Dept of Computer Science Rutgers University [email protected] Barbara G. Ryder
First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science
First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca
Experimental Evaluation of Distributed Middleware with a Virtualized Java Environment
Experimental Evaluation of Distributed Middleware with a Virtualized Java Environment Nuno A. Carvalho, João Bordalo, Filipe Campos and José Pereira HASLab / INESC TEC Universidade do Minho MW4SOC 11 December
An Exception Monitoring System for Java
An Exception Monitoring System for Java Heejung Ohe and Byeong-Mo Chang Department of Computer Science, Sookmyung Women s University, Seoul 140-742, Korea {lutino, [email protected] Abstract. Exception
