Program Calling Context. Motivation

Size: px
Start display at page:

Download "Program Calling Context. Motivation"

Transcription

1 Program alling ontext Motivation alling context enhances program understanding and dynamic analyses by providing a rich representation of program location ollecting calling context can be expensive The resulting representation of contexts can be bulky 2 1

2 Overview Probabilistic alling ontext [2] Precise alling ontext Encoding [3] 3 Probabilistic alling ontext[2] ased on Mike ond s slides[1] 2

3 Why ontext Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdinterface.execquery():213 5 Why ontext Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdinterface.execquery():213 at com.mckoi.db.jdbc.monnection.executequery():348 at com.mckoi.db.jdbc.mstatement.executequery():110 at com.mckoi.db.jdbc.mstatement.executequery():127 at Test.main():48 6 3

4 Why ontext Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdinterface.execquery():213 at com.mckoi.db.jdbc.monnection.executequery():348 at com.mckoi.db.jdbc.mstatement.executequery():110 at com.mckoi.db.jdbc.mstatement.executequery():127 at Test.main():48 Motivated by omplex programs Small methods Virtual dispatch 7 Why ontext Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdinterface.execquery():213 at com.mckoi.db.jdbc.monnection.executequery():348 at com.mckoi.db.jdbc.mstatement.executequery():110 at com.mckoi.db.jdbc.mstatement.executequery():127 at Test.main():48 Motivated by omplex programs Small methods Virtual dispatch /Fortran method call return Java/# method return call 8 4

5 ontext Is Nontrivial PI calls Program all sites Distinct contexts antlr 4, ,627 bloat 3, ,947 chart 2, ,603 eclipse 9, ,020 fop 2,225 37,710 hsqldb ,050 jython 1, ,048 luindex ,556 lusearch pmd 1, ,108 xalan 1,530 17,905 9 Example: Residual Testing t production time, are there any untested behaviors, such as unexercised calling context? class SimpleWindow { close() { class EditorWindow { close() { 10 5

6 Example: Residual Testing t production time, are there any untested behaviors, such as unexercised calling context? class SimpleWindow { close() { inputhandler() { class EditorWindow { case LIK_EXIT: close() { w.checkunsaved(); w.close(); autoupdate() { for all windows w w.close(); 11 Example: Residual Testing t production time, are there any untested behaviors, such as unexercised calling context? class SimpleWindow { close() { inputhandler() { class EditorWindow { case LIK_EXIT: close() { w.checkunsaved(); w.close(); autoupdate() { for all windows w w.close(); ug! 12 6

7 inputhandler() { case LIK_EXIT: Example: Residual Testing t production time, are there any untested behaviors, such as unexercised calling context? autoupdate() { class SimpleWindow { close() { for all windows w New behavior indicates bugs w.close(); ontext class EditorWindow sensievity helps { find new behavior close() { w.checkunsaved(); ug! w.close(); 13 Two-Phase Dynamic nalyses Training ProducEon ehavior observed New or anomalous behavior detected 14 7

8 Probabilistic alling ontext dds context sensitivity to dynamic analyses Maintains value representing context Unique with high probability New value à new context à walk stack High accuracy: <0.1% false negatives Low overhead: 3% overhead, 0-8% for clients Training ProducEon ehavior observed New or anomalous behavior detected 15 P Function f ( V, cs ) q V is P value q cs is call site ID 16 8

9 f ( V, cs ) q V is P value q cs is call site ID P Function V f ( V, cs 1 ) cs cs V f ( V, cs 2 ) 1 2 V V saved V V saved 17 P Function f ( V, cs ) 3V + cs (mod 2 32 ) q V is P value q cs is call site ID 18 9

10 P Function f ( V, cs ) 3V + cs (mod 2 32 ) heap to compute Desirable properties: Non-commutative omposition efficient to compute 19 Differentiating Similar ontexts V 3V + cs 1 V 3V + cs 2 V 3V + cs 2 V 3V + cs 1 à () à () à à () à () à 20 10

11 Differentiating Similar ontexts V 3V + cs 1 V 3V + cs 2 V 3V + cs 2 V 3V + cs 1 Non-commutative f ( f (V, cs 1 ), cs 2 ) f ( f (V, cs 2 ), cs 1 ) 21 Efficiency at Inlined alls V 3V + cs 1 V 3V + cs

12 Efficiency at Inlined alls V 3V + cs 1 V 3V + cs 2 V 3 ( 3V + cs 1 ) + cs 2 23 Efficiency at Inlined alls V 3V + cs 1 V 3V + cs 2 V 9V + 3cs 1 + cs

13 Efficiency at Inlined alls V 3V + cs 1 V 3V + cs 2 V 9V + 3cs 1 + cs 2 omposition efficient to compute n n i f ( V, cs ) = 3 V + 3 cs i i i 25 Outline Introduction Previous approaches Maintaining the P value Evaluation Methodology Evaluating potential clients ccuracy Performance 26 13

14 Methodology Implementation in Jikes RVM vailable on Jikes RVM Research rchive Deterministic calling context profiling Maintains T node at each call & return enchmarks: Daapo, SPE J2000, SPE JVM98 Platform: 3.6 GHz Pentium 4 w/linux 27 How lients Use P Record values New value à new context à walk stack Training ProducEon ehavior observed New or anomalous behavior detected 28 14

15 Evaluating Potential lients Record values Training Global hash table heck values (no new values) ProducEon ehavior observed New or anomalous behavior detected 29 Evaluating Potential lients Memory overhead: proporeonal to contexts Record values Training Global hash table heck values (no new values) ProducEon ehavior observed New or anomalous behavior detected 30 15

16 Evaluating Potential lients nomaly- based intrusion deteceon heck P value at system calls (Network, I/O, OS) Residual teseng heck P value at Java PI calls (calls to java.*) Upper bound heck P value at all calls 31 n Ideal ccuracy P maps context to value New P value à new context Familiar P value à probably familiar context q q 32 16

17 n Ideal ccuracy P maps context to value New P value à new context Familiar P value à probably familiar context q q Expected conflicts (false negatives) Distinct contexts 32-bit values 64-bit values 100,000 1 (0.0%) 0 (0.0%) 1,000, (0.0%) 0 (0.0%) 10,000,000 11,632 (0.1%) 0 (0.0%) 100,000,000 1,155,170 (1.2%) 0 (0.0%) 1,000,000, ,882,641 (10.8%) 0 (0.0%) 10,000,000,000 6,123,623,065 (61.2%) 3 (0.0%) 33 n Ideal ccuracy P maps context to value New P value à new context Familiar P value à probably familiar context q q Expected conflicts (false negatives) Distinct contexts 32-bit values 64-bit values 100,000 1 (0.0%) 0 (0.0%) 1,000,000 PI calls 116 (0.0%) 0 (0.0%) 10,000,000 11,632 (0.1%) 0 (0.0%) 100,000,000 1,155,170 (1.2%) 0 (0.0%) 1,000,000, ,882,641 (10.8%) 0 (0.0%) 10,000,000,000 6,123,623,065 (61.2%) 3 (0.0%) 34 17

18 n Ideal ccuracy P maps context to value New P value à new context Familiar P value à probably familiar context q q Expected conflicts (false negatives) Distinct contexts 32-bit values 64-bit values 100,000 1 (0.0%) 0 (0.0%) 1,000, (0.0%) 0 (0.0%) 10,000,000 11,632 (0.1%) ll calls 0 (0.0%) 100,000,000 1,155,170 (1.2%) 0 (0.0%) 1,000,000, ,882,641 (10.8%) 0 (0.0%) 10,000,000,000 6,123,623,065 (61.2%) 3 (0.0%) 35 n Ideal ccuracy P maps context to value New P value à new context Familiar P value à probably familiar context q q Expected conflicts (false negatives) Distinct contexts 32-bit values 64-bit values 100,000 1 (0.0%) 0 (0.0%) 1,000, (0.0%) 0 (0.0%) 10,000,000 Near- perfect 11,632 accuracy (0.1%) 0 (0.0%) 100,000,000 1,155,170 (1.2%) 0 (0.0%) 1,000,000, ,882,641 (10.8%) 0 (0.0%) 10,000,000,000 6,123,623,065 (61.2%) 3 (0.0%) 36 18

19 P s ccuracy System calls Java PI calls Program Dynamic Distinct onf. Dynamic Distinct onf. antlr 211,490 1, ,422, ,627 3 bloat ,159,281, , chart ,891, ,603 4 eclipse 14, ,507, ,020 5 fop ,918,275 37,710 0 hsqldb ,161,541 16,050 0 jython 5,929 4, ,845, , luindex 2, ,733, ,556 0 lusearch ,511, pmd 1, ,017, , xalan 137, ,105,838,670 17,905 0 P s ccuracy System calls Java PI calls Program Dynamic Distinct onf. Dynamic Distinct onf. antlr 211,490 1, ,422, ,627 3 bloat ,159,281, , chart ,891, ,603 4 eclipse 14, ,507, ,020 5 fop ,918,275 37,710 0 hsqldb ,161,541 16,050 0 jython 5,929 4, ,845, , luindex 2, ,733, ,556 0 lusearch ,511, pmd 1, ,017, , xalan 137, ,105,838,670 17,

20 P s ccuracy ll calls Program Dynamic Distinct onf. antlr 490,363,211 1,006, bloat 6,276,446,059 1,980, chart 908,459, , eclipse 1,266,810,504 4,815,901 2,652 fop 44,200, ,955 2 hsqldb 877,680, ,795 1 jython 5,326,949,158 3,859,545 1,738 luindex 740,053, , lusearch 1,439,034,336 6,039 0 pmd 2,726,876,957 8,043,096 7,653 xalan 10,083,858, ,205 6 P s Execution Time Overhead Daapo SPE ll Overhead (%) P 3% P + system calls 20

21 P s Execution Time Overhead Daapo SPE ll Overhead (%) % P P + system calls P + PI calls P + all calls Summary P maintains calling context value New value indicates new behavior Low overhead Maintaining P value adds 3% hecking P value 0-8% Memory overhead proportional to contexts High accuracy Less than 0.1% false negative rate P adds context sensitivity to clients that detect anomalous behavior 42 21

22 Precise alling ontext Encoding [3] ased on Slides[5] Motivation alling context is important for profiling, debugging, and event logging The prior work encodes each calling context into a hash value, but cannot decode the context out of the value Is it possible to encode calling contexts into numbers from which the contexts can be restored? 44 22

23 ackground Efficient Path Profiling [4] Naively, where do you want to instrument to get the path profile? Is there any way to reduce instrumentation edges? D E F 45 The asic Idea If one node has only one outgoing edge, you don t need to instrument the edge If different paths can be encoded to different numbers, you can restore the whole paths purely based on the number values naïve example: Given the FG, how do you map the values to paths? E D F 46 23

24 Edge Value ssignment ssign each edge a value such that: Sum of values along DG path is unique, non-negative integer Sum lies in range 0 num_paths 1 Simple linear-time algorithm 47 Edge Value ssignment 48 24

25 Edge Value ssignment lgorithm foreach vertex v in reverse topological order { if v is a leaf vertex { NumPaths(v) = 1; else { NumPaths(v) = 0; for each edge e = v - > w { Val(e) = NumPaths(v); NumPaths(v) = NumPaths(v) + NumPaths(w); E D F 49 How to decode a path from a number? lgorithm Given a path id Idx, set current node cur = while (cur!= F) { take the path whose value val(e) is (1) smaller than Idx, and (2) the maximum value among all the values smaller than Idx Idx = Idx val(e); cur = tgt(e); E D F 50 25

26 Is the all-larus algorithm applicable to all Graph encoding? Yes. The L algorithm uniquely identifies each path ending at different methods. However, paths ending at different methods can have the same values, if we know ending points. E D 2 1 F ontext id DE 0 DF 1 DE 2 DF 3 E D 1 F ontext id DE 0 DF 0 DE 1 DF 1 51 lgorithm Edge Value ssignment foreach vertex v in topological order { if v is a root vertex { NumPaths(v) = 1; else { NumPaths(v) = 0; for each edge e = w - > v { Val(e) = NumPaths(v); NumPaths(v) = NumPaths(w) + Val(e); 52 26

27 L vs. New lgorithm D D 1 3 E F E F 53 How to decode a context from a number? E D 1 F ontext id DE 0 DF 0 DE 1 DF

28 Encoding yclic Gs Introduce dummy edges D 1 Given encoded context (F, 1), does it correspond to path ( D F), ( D F D F), etc? Dummy D 1 1 E F Path Encoding D F (1, F) D F D F (<0, F to >, 1, F) E F 55 Selective Reduction To fit IDs of contexts in 32-bit integers, Profiling is used to identify hot and code call edges ode edges are replaced with dummy edges such as sub-paths starting with these code edges can be separately encoded 56 28

29 Evaluation 19 programs from SPEint 2000 benchmarks, and a set of open source programs 57 omparison between L and the new algorithm 58 29

30 Observations L usually instruments outgoing edges when there are multiple The new algorithm usually instruments incoming edges when there are multiple It seems that the latter instrumentation is more efficient than the former one The intuition behind is there are more methods with multi-method callees than methods with multi-method callers No experiment focuses on the instrumentation comparison 59 Stack Depth & Encountered Dynamic ontexts 60 30

31 Summary alling context is important for program analysis and debugging oth instrumentation overhead and memory overhead (how to encode the context) are important an you think about any approach to further reduce instrumentation effort? 61 References [1] Mike ond, Probabilistic alling ontext, PPT, papers.html [2] Mike D. ond, Kathryn S. McKinley, Probabilistic alling ontext, OOPSL 07. [3] William N. Sumner, Yunhui Zheng, Dasarath Weeratunge, Xiangyu Zhang, Precise calling context encoding, ISE 10 [4] Thomas all, James Larus, Efficient Path Profiling, Micro 96 [5] James Larus, Efficient Path Profiling, Pages,

Probabilistic Calling Context

Probabilistic 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 information

Lu Fang, University of California, Irvine Liang Dou, East China Normal University Harry Xu, University of California, Irvine

Lu Fang, University of California, Irvine Liang Dou, East China Normal University Harry Xu, University of California, Irvine Lu Fang, University of California, Irvine Liang Dou, East China Normal University Harry Xu, University of California, Irvine 2015-07-09 Inefficient code regions [G. Jin et al. PLDI 2012] Inefficient code

More information

Execution Tracing and Profiling

Execution Tracing and Profiling lass 8 Questions/comments iscussion of academic honesty, GT Honor ode fficient path profiling inal project presentations: ec, 3; 4:35-6:45 ssign (see Schedule for links) Problem Set 7 discuss Readings

More information

Towards Parallel, Scalable VM Services

Towards 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 information

Efficient Path Profiling

Efficient Path Profiling Efficient Path Profiling Thomas Ball James R. Larus Bell Laboratories Univ. of Wisconsin (now at Microsoft Research) Presented by Ophelia Chesley Overview Motivation Path Profiling vs. Edge Profiling Path

More information

Free-Me: A Static Analysis for Automatic Individual Object Reclamation

Free-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 information

Efficient Runtime Tracking of Allocation Sites in Java

Efficient Runtime Tracking of Allocation Sites in Java Efficient Runtime Tracking of Allocation Sites in Java Rei Odaira, Kazunori Ogata, Kiyokuni Kawachiya, Tamiya Onodera, Toshio Nakatani IBM Research - Tokyo Why Do You Need Allocation Site Information?

More information

A Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler

A 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 information

A Dynamic Evaluation of the Precision of Static Heap Abstractions

A Dynamic Evaluation of the Precision of Static Heap Abstractions A Dynamic Evaluation of the Precision of Static Heap Abstractions OOSPLA - Reno, NV October 20, 2010 Percy Liang Omer Tripp Mayur Naik Mooly Sagiv UC Berkeley Tel-Aviv Univ. Intel Labs Berkeley Tel-Aviv

More information

Identifying the Sources of Cache Misses in Java Programs Without Relying on Hardware Counters. Hiroshi Inoue and Toshio Nakatani IBM Research - Tokyo

Identifying the Sources of Cache Misses in Java Programs Without Relying on Hardware Counters. Hiroshi Inoue and Toshio Nakatani IBM Research - Tokyo Identifying the Sources of Cache Misses in Java Programs Without Relying on Hardware Counters Hiroshi Inoue and Toshio Nakatani IBM Research - Tokyo June 15, 2012 ISMM 2012 at Beijing, China Motivation

More information

Efficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees and Customized Memory Management

Efficient 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 information

Elfen Scheduling. Fine-Grain Principled Borrowing from Latency-Critical Workloads using Simultaneous Multithreading (SMT) Xi Yang

Elfen Scheduling. Fine-Grain Principled Borrowing from Latency-Critical Workloads using Simultaneous Multithreading (SMT) Xi Yang Elfen Scheduling Fine-Grain Principled Borrowing from Latency-Critical Workloads using Simultaneous Multithreading (SMT) Xi Yang Australian National University Stephen M Blackburn Australian National University

More information

Lightweight Data Race Detection for Production Runs

Lightweight Data Race Detection for Production Runs Lightweight Data Race Detection for Production Runs Swarnendu Biswas, UT Austin Man Cao, Ohio State University Minjia Zhang, Microsoft Research Michael D. Bond, Ohio State University Benjamin P. Wood,

More information

Phase-based Adaptive Recompilation in a JVM

Phase-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 information

How s the Parallel Computing Revolution Going? Towards Parallel, Scalable VM Services

How s the Parallel Computing Revolution Going? Towards Parallel, Scalable VM Services How s the Parallel Computing Revolution Going? Towards Parallel, Scalable VM Services Kathryn S McKinley The University of Texas at Austin Kathryn McKinley Towards Parallel, Scalable VM Services 1 20 th

More information

Adaptive Multi-Level Compilation in a Trace-based Java JIT Compiler

Adaptive Multi-Level Compilation in a Trace-based Java JIT Compiler Adaptive Multi-Level Compilation in a Trace-based Java JIT Compiler Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu and Toshio Nakatani IBM Research Tokyo IBM Research T.J. Watson Research Center October

More information

Cachetor: Detecting Cacheable Data to Remove Bloat

Cachetor: Detecting Cacheable Data to Remove Bloat Cachetor: Detecting Cacheable Data to Remove Bloat Khanh Nguyen and Guoqing Xu University of California, Irvine, CA, USA {khanhtn, guoqingx}@ics.uci.edu ABSTRACT Modern object-oriented software commonly

More information

Screaming Fast Declarative Pointer Analysis

Screaming Fast Declarative Pointer Analysis Screaming Fast Declarative Pointer Analysis http://doop.program-analysis.org Martin Bravenboer and Yannis Smaragdakis University of Massachusetts Amherst University of Oregon NEPLS March 5, 2008 overview

More information

Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization

Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization Aritra Sengupta, Man Cao, Michael D. Bond and Milind Kulkarni 1 PPPJ 2015, Melbourne, Florida, USA Programming

More information

Uncovering Performance Problems in Java Applications with Reference Propagation Profiling

Uncovering 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 information

Bugs in Deployed Software

Bugs in Deployed Software Bell: Bit-Encoding Online Memory Leak Detection Michael D. Bond Kathryn S. McKinley University of Texas at Austin Bugs in Deployed Software Humans rely on software for critical tasks Bugs are costly &

More information

Adaptive Optimization using Hardware Performance Monitors. Master Thesis by Mathias Payer

Adaptive Optimization using Hardware Performance Monitors. Master Thesis by Mathias Payer Adaptive Optimization using Hardware Performance Monitors Master Thesis by Mathias Payer Supervising Professor: Thomas Gross Supervising Assistant: Florian Schneider Adaptive Optimization using HPM 1/21

More information

Program Analysis. Program Analysis

Program Analysis. Program Analysis Program Analysis Class #4 Program Analysis Dynamic Analysis 1 Static VS Dynamic Analysis Static analysis operates on a model of the SW (without executing it) If successful, produces definitive information

More information

Space-Time Tradeoffs in Software-Based Deep Packet Inspection

Space-Time Tradeoffs in Software-Based Deep Packet Inspection Space-Time Tradeoffs in Software-ased eep Packet Inspection nat remler-arr I Herzliya, Israel Yotam Harchol avid Hay Hebrew University, Israel. OWSP Israel 2011 (Was also presented in I HPSR 2011) Parts

More information

Trace-based JIT Compilation

Trace-based JIT Compilation Trace-based JIT Compilation Hiroshi Inoue, IBM Research - Tokyo 1 Trace JIT vs. Method JIT https://twitter.com/yukihiro_matz/status/533775624486133762 2 Background: Trace-based Compilation Using a Trace,

More information

DELTAPATH: PRECISE AND SCALABLE CALLING CONTEXT ENCODING

DELTAPATH: PRECISE AND SCALABLE CALLING CONTEXT ENCODING DELTAPATH: PRECISE AND SCALABLE CALLING CONTEXT ENCODING Qiang Zeng*, Junghwan Rhee, Hui Zhang, Nipun Arora, Guofei Jiang, Peng Liu* NEC Laboratories America *Penn State University www.nec-labs.com Calling

More information

Jinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces

Jinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces Jinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces Byeongcheol Lee Ben Wiedermann Mar>n Hirzel Robert Grimm Kathryn S. McKinley B. Lee, B. Wiedermann, M. Hirzel, R. Grimm, and K.

More information

PERFBLOWER: Quickly Detecting Memory-Related Performance Problems via Amplification

PERFBLOWER: Quickly Detecting Memory-Related Performance Problems via Amplification PERFBLOWER: Quickly Detecting Memory-Related Performance Problems via Amplification Lu Fang 1, Liang Dou 2, and Guoqing Xu 1 1 University of California, Irvine, USA {lfang3, guoqingx}@ics.uci.edu 2 East

More information

Phosphor: Illuminating Dynamic. Data Flow in Commodity JVMs

Phosphor: Illuminating Dynamic. Data Flow in Commodity JVMs Phosphor: Illuminating Dynamic Fork me on Github Data Flow in Commodity JVMs Jonathan Bell and Gail Kaiser Columbia University, New York, NY USA Dynamic Data Flow Analysis: Taint Tracking Output that is

More information

Chronicler: Lightweight Recording to Reproduce Field Failures

Chronicler: Lightweight Recording to Reproduce Field Failures Chronicler: Lightweight Recording to Reproduce Field Failures Jonathan Bell, Nikhil Sarda and Gail Kaiser Columbia University, New York, NY USA What happens when software crashes? Stack Traces Aren

More information

Towards Garbage Collection Modeling

Towards Garbage Collection Modeling Towards Garbage Collection Modeling Peter Libič Petr Tůma Department of Distributed and Dependable Systems Faculty of Mathematics and Physics, Charles University Malostranské nám. 25, 118 00 Prague, Czech

More information

Detecting and Fixing Memory-Related Performance Problems in Managed Languages

Detecting and Fixing Memory-Related Performance Problems in Managed Languages Detecting and Fixing -Related Performance Problems in Managed Languages Lu Fang Committee: Prof. Guoqing Xu (Chair), Prof. Alex Nicolau, Prof. Brian Demsky University of California, Irvine May 26, 2017,

More information

Part I Garbage Collection Modeling: Progress Report

Part I Garbage Collection Modeling: Progress Report Part I Garbage Collection Modeling: Progress Report Peter Libič Department of Distributed and Dependable Systems http://d3s.mff.cuni.cz CHARLES UNIVERSITY PRAGUE Faculty of Mathematics and Physics Last

More information

Java Heap Resizing From Hacked-up Heuristics to Mathematical Models. Jeremy Singer and David R. White

Java Heap Resizing From Hacked-up Heuristics to Mathematical Models. Jeremy Singer and David R. White Java Heap Resizing From Hacked-up Heuristics to Mathematical Models Jeremy Singer and David R. White Outline Background Microeconomic Theory Heap Sizing as a Control Problem Summary Outline Background

More information

GC Assertions: Using the Garbage Collector to Check Heap Properties

GC Assertions: Using the Garbage Collector to Check Heap Properties GC Assertions: Using the Garbage Collector to Check Heap Properties Edward E. Aftandilian Samuel Z. Guyer Department of Computer Science Tufts University {eaftan,sguyer}@cs.tufts.edu Abstract This paper

More information

Correcting the Dynamic Call Graph Using Control Flow Constraints

Correcting the Dynamic Call Graph Using Control Flow Constraints Correting the Dynmi Cll Grph Using Control Flow Constrints Byeongheol Lee Kevin Resnik Mihel Bond Kthryn MKinley 1 Appered in CC2007 Motivtion Complexity of lrge objet oriented progrms Deompose the progrm

More information

Z-Rays: Divide Arrays and Conquer Speed and Flexibility

Z-Rays: Divide Arrays and Conquer Speed and Flexibility Z-Rays: Divide Arrays and Conquer Speed and Flexibility Jennifer B. Sartor Stephen M. Blackburn Daniel Frampton Martin Hirzel Kathryn S. McKinley University of Texas at Austin Australian National University

More information

Complex, concurrent software. Precision (no false positives) Find real bugs in real executions

Complex, 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 information

Method-Level Phase Behavior in Java Workloads

Method-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 information

Efficient Runtime Tracking of Allocation Sites in Java

Efficient Runtime Tracking of Allocation Sites in Java Efficient Runtime Tracking of Allocation Sites in Java Rei Odaira, Kazunori Ogata, Kiyokuni Kawachiya, Tamiya Onodera, Toshio Nakatani IBM Research Tokyo 623-4, Shimotsuruma, Yamato-shi, Kanagawa-ken,

More information

CSE 373: Data Structures and Algorithms. Memory and Locality. Autumn Shrirang (Shri) Mare

CSE 373: Data Structures and Algorithms. Memory and Locality. Autumn Shrirang (Shri) Mare CSE 373: Data Structures and Algorithms Memory and Locality Autumn 2018 Shrirang (Shri) Mare shri@cs.washington.edu Thanks to Kasey Champion, Ben Jones, Adam Blank, Michael Lee, Evan McCarty, Robbie Weber,

More information

IBM Research - Tokyo 数理 計算科学特論 C プログラミング言語処理系の最先端実装技術. Trace Compilation IBM Corporation

IBM Research - Tokyo 数理 計算科学特論 C プログラミング言語処理系の最先端実装技術. Trace Compilation IBM Corporation 数理 計算科学特論 C プログラミング言語処理系の最先端実装技術 Trace Compilation Trace JIT vs. Method JIT https://twitter.com/yukihiro_matz/status/533775624486133762 2 Background: Trace-based Compilation Using a Trace, a hot path identified

More information

New Algorithms for Static Analysis via Dyck Reachability

New Algorithms for Static Analysis via Dyck Reachability New Algorithms for Static Analysis via Dyck Reachability Andreas Pavlogiannis 4th Inria/EPFL Workshop February 15, 2018 A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 2 A. Pavlogiannis

More information

Acknowledgements These slides are based on Kathryn McKinley s slides on garbage collection as well as E Christopher Lewis s slides

Acknowledgements These slides are based on Kathryn McKinley s slides on garbage collection as well as E Christopher Lewis s slides Garbage Collection Last time Compiling Object-Oriented Languages Today Motivation behind garbage collection Garbage collection basics Garbage collection performance Specific example of using GC in C++

More information

The Potentials and Challenges of Trace Compilation:

The Potentials and Challenges of Trace Compilation: Peng Wu IBM Research January 26, 2011 The Potentials and Challenges of Trace Compilation: Lessons learned from building a trace-jit on top of J9 JVM (Joint work with Hiroshige Hayashizaki and Hiroshi Inoue,

More information

The DaCapo Benchmarks: Java Benchmarking Development and Analysis

The DaCapo Benchmarks: Java Benchmarking Development and Analysis The DaCapo Benchmarks: Java Benchmarking Development and Analysis Stephen M Blackburn αβ, Robin Garner β, Chris Hoffmann γ, Asjad M Khan γ, Kathryn S McKinley δ, Rotem Bentzur ε, Amer Diwan ζ, Daniel Feinberg

More information

1 Scalable Runtime Bloat Detection Using Abstract Dynamic Slicing

1 Scalable Runtime Bloat Detection Using Abstract Dynamic Slicing 1 Scalable Runtime Bloat Detection Using Abstract Dynamic Slicing GUOQING XU, University of California, Irvine NICK MITCHELL, IBM T. J. Watson Research Center MATTHEW ARNOLD, IBM T. J. Watson Research

More information

Java Performance Evaluation through Rigorous Replay Compilation

Java Performance Evaluation through Rigorous Replay Compilation Java Performance Evaluation through Rigorous Replay Compilation Andy Georges Lieven Eeckhout Dries Buytaert Department Electronics and Information Systems, Ghent University, Belgium {ageorges,leeckhou}@elis.ugent.be,

More information

Dynamic Analysis of Inefficiently-Used Containers

Dynamic Analysis of Inefficiently-Used Containers Dynamic Analysis of Inefficiently-Used Containers Shengqian (Victor) Yang 1 Dacong Yan 1 Guoqing Xu 2 Atanas Rountev 1 1 Ohio State University 2 University of California, Irvine PRESTO: Program Analyses

More information

String Deduplication for Java-based Middleware in Virtualized Environments

String Deduplication for Java-based Middleware in Virtualized Environments String Deduplication for Java-based Middleware in Virtualized Environments Michihiro Horie, Kazunori Ogata, Kiyokuni Kawachiya, Tamiya Onodera IBM Research - Tokyo Duplicated strings found on Web Application

More information

Continuous Object Access Profiling and Optimizations to Overcome the Memory Wall and Bloat

Continuous Object Access Profiling and Optimizations to Overcome the Memory Wall and Bloat Continuous Object Access Profiling and Optimizations to Overcome the Memory Wall and Bloat Rei Odaira, Toshio Nakatani IBM Research Tokyo ASPLOS 2012 March 5, 2012 Many Wasteful Objects Hurt Performance.

More information

Understanding Parallelism-Inhibiting Dependences in Sequential Java

Understanding Parallelism-Inhibiting Dependences in Sequential Java Understanding Parallelism-Inhibiting Dependences in Sequential Java Programs Atanas(Nasko) Rountev Kevin Van Valkenburgh Dacong Yan P. Sadayappan Ohio State University Overview and Motivation Multi-core

More information

More Graph Algorithms

More Graph Algorithms More Graph Algorithms Data Structures and Algorithms CSE 373 SP 18 - KASEY CHAMPION 1 Announcements Calendar on the webpage has updated office hours for this week. Last Time: Dijkstra s Algorithm to find

More information

Averroes: Letting go of the library!

Averroes: Letting go of the library! Workshop on WALA - PLDI 15 June 13th, 2015 public class HelloWorld { public static void main(string[] args) { System.out.println("Hello, World!"); 2 public class HelloWorld { public static void main(string[]

More information

Cooperative Memory Management in Embedded Systems

Cooperative Memory Management in Embedded Systems ooperative Memory Management in Embedded Systems, Philip Taffner, hristoph Erhardt, hris7an Dietrich, Michael S7lkerich Department of omputer Science 4 Distributed Systems and Opera7ng Systems 1 2 Motivation

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Lecture 4 Thomas Wies New York University Review Last week Control Structures Selection Loops Adding Invariants Outline Subprograms Calling Sequences Parameter

More information

Pointer Analysis in the Presence of Dynamic Class Loading

Pointer Analysis in the Presence of Dynamic Class Loading 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 Pointer analysis motivation Code a =

More information

Precise Calling Context Encoding

Precise Calling Context Encoding Precise Calling Context Encoding William N. Sumner, Yunhui Zheng, asarath Weeratunge, Xiangyu Zhang epartment of Computer Science, Purdue University {wsumner,zheng6,dweeratu,xyzhang@cs.purdue.edu ASTRACT

More information

Finding the Limit: Examining the Potential and Complexity of Compilation Scheduling for JIT-Based Runtime Systems

Finding the Limit: Examining the Potential and Complexity of Compilation Scheduling for JIT-Based Runtime Systems Finding the Limit: Examining the Potential and Complexity of Compilation Scheduling for JIT-Based Runtime Systems Yufei Ding, Mingzhou Zhou, Zhijia Zhao, Sarah Eisenstat, Xipeng Shen Computer Science Department,

More information

CSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion

CSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion CSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion Review from Lectures 5 & 6 Arrays and pointers, Pointer arithmetic and dereferencing, Types of memory ( automatic, static,

More information

Tolerating Memory Leaks

Tolerating Memory Leaks Tolerating Memory Leaks UT Austin Technical Report TR-07-64 December 7, 2007 Michael D. Bond Kathryn S. McKinley Department of Computer Sciences The University of Texas at Austin {mikebond,mckinley}@cs.utexas.edu

More information

Myths and Realities: The Performance Impact of Garbage Collection

Myths 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 information

We don t have much time, so we don t teach them [students]; we acquaint them with things that they can learn. Charles E. Leiserson

We don t have much time, so we don t teach them [students]; we acquaint them with things that they can learn. Charles E. Leiserson Homework 3 CS 321 - Data Structures Fall 2018 Dec 6, 2018 Name: Collaborators: We don t have much time, so we don t teach them [students]; we acquaint them with things that they can learn. Charles E. Leiserson

More information

CSE 417 Branch & Bound (pt 4) Branch & Bound

CSE 417 Branch & Bound (pt 4) Branch & Bound CSE 417 Branch & Bound (pt 4) Branch & Bound Reminders > HW8 due today > HW9 will be posted tomorrow start early program will be slow, so debugging will be slow... Review of previous lectures > Complexity

More information

Algorithms for Data Structures: Uninformed Search. Phillip Smith 19/11/2013

Algorithms for Data Structures: Uninformed Search. Phillip Smith 19/11/2013 lgorithms for Data Structures: Uninformed Search Phillip Smith 19/11/2013 Representations for Reasoning We know (at least) two models of a world: model of the static states of the world model of the effects

More information

Chapter 2: Basic Data Structures

Chapter 2: Basic Data Structures Chapter 2: Basic Data Structures Basic Data Structures Stacks Queues Vectors, Linked Lists Trees (Including Balanced Trees) Priority Queues and Heaps Dictionaries and Hash Tables Spring 2014 CS 315 2 Two

More information

6.006 Introduction to Algorithms Recitation 19 November 23, 2011

6.006 Introduction to Algorithms Recitation 19 November 23, 2011 The Knapsack Problem You find yourself in a vault chock full of valuable items. However, you only brought a knapsack of capacity S pounds, which means the knapsack will break down if you try to carry more

More information

COMP 202 Recursion. CONTENTS: Recursion. COMP Recursion 1

COMP 202 Recursion. CONTENTS: Recursion. COMP Recursion 1 COMP 202 Recursion CONTENTS: Recursion COMP 202 - Recursion 1 Recursive Thinking A recursive definition is one which uses the word or concept being defined in the definition itself COMP 202 - Recursion

More information

Large-Scale API Protocol Mining for Automated Bug Detection

Large-Scale API Protocol Mining for Automated Bug Detection Large-Scale API Protocol Mining for Automated Bug Detection Michael Pradel Department of Computer Science ETH Zurich 1 Motivation LinkedList pinconnections =...; Iterator i = pinconnections.iterator();

More information

CISC 662 Graduate Computer Architecture. Classifying ISA. Lecture 3 - ISA Michela Taufer. In a CPU. From Source to Assembly Code

CISC 662 Graduate Computer Architecture. Classifying ISA. Lecture 3 - ISA Michela Taufer. In a CPU. From Source to Assembly Code IS 662 Graduate omputer rchitecture Lecture 3 - IS Michela Taufer lassifying IS Powerpoint Lecture Notes from John Hennessy and David Patterson s: omputer rchitecture, 4th edition ---- dditional teaching

More information

B+ Tree Review. CSE332: Data Abstractions Lecture 10: More B Trees; Hashing. Can do a little better with insert. Adoption for insert

B+ Tree Review. CSE332: Data Abstractions Lecture 10: More B Trees; Hashing. Can do a little better with insert. Adoption for insert B+ Tree Review CSE2: Data Abstractions Lecture 10: More B Trees; Hashing Dan Grossman Spring 2010 M-ary tree with room for L data items at each leaf Order property: Subtree between keys x and y contains

More information

Interprocedural Analysis. Motivation. Interprocedural Analysis. Function Calls and Pointers

Interprocedural 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 information

Analysis of Algorithms

Analysis of Algorithms Algorithm An algorithm is a procedure or formula for solving a problem, based on conducting a sequence of specified actions. A computer program can be viewed as an elaborate algorithm. In mathematics and

More information

Graphs & Digraphs Tuesday, November 06, 2007

Graphs & Digraphs Tuesday, November 06, 2007 Graphs & Digraphs Tuesday, November 06, 2007 10:34 PM 16.1 Directed Graphs (digraphs) like a tree but w/ no root node & no guarantee of paths between nodes consists of: nodes/vertices - a set of elements

More information

Write Barrier Removal by Static Analysis

Write 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 information

MEMORY: SWAPPING. Shivaram Venkataraman CS 537, Spring 2019

MEMORY: SWAPPING. Shivaram Venkataraman CS 537, Spring 2019 MEMORY: SWAPPING Shivaram Venkataraman CS 537, Spring 2019 ADMINISTRIVIA - Project 2b is out. Due Feb 27 th, 11:59 - Project 1b grades are out Lessons from p2a? 1. Start early! 2. Sketch out a design?

More information

Machine Learning. bad news. Big Picture: Supervised Learning. Supervised (Function) Learning. Learning From Data with Decision Trees.

Machine Learning. bad news. Big Picture: Supervised Learning. Supervised (Function) Learning. Learning From Data with Decision Trees. bad news Machine Learning Learning From Data with Decision Trees Supervised (Function) Learning y = F(x 1 x n ): true function (usually not known) D: training sample drawn from F(x) 57,M,195,0,125,95,39,25,0,1,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0

More information

Automated Documentation Inference to Explain Failed Tests

Automated Documentation Inference to Explain Failed Tests Automated Documentation Inference to Explain Failed Tests Sai Zhang University of Washington Joint work with: Cheng Zhang, Michael D. Ernst A failed test reveals a potential bug Before bug-fixing, programmers

More information

CMU-Q Lecture 2: Search problems Uninformed search. Teacher: Gianni A. Di Caro

CMU-Q Lecture 2: Search problems Uninformed search. Teacher: Gianni A. Di Caro CMU-Q 15-381 Lecture 2: Search problems Uninformed search Teacher: Gianni A. Di Caro RECAP: ACT RATIONALLY Think like people Think rationally Agent Sensors? Actuators Percepts Actions Environment Act like

More information

An Efficient Storeless Heap Abstraction Using SSA Form

An Efficient Storeless Heap Abstraction Using SSA Form An Efficient Storeless Heap Abstraction Using SSA Form Nomair A. Naeem Ondřej Lhoták D. R. Cheriton School of Computer Science University of Waterloo, Canada {nanaeem,olhotak}@uwaterloo.ca Abstract Precise,

More information

CS 135 Winter 2018 Tutorial 7: Accumulative Recursion and Binary Trees. CS 135 Winter 2018 Tutorial 7: Accumulative Recursion and Binary Trees 1

CS 135 Winter 2018 Tutorial 7: Accumulative Recursion and Binary Trees. CS 135 Winter 2018 Tutorial 7: Accumulative Recursion and Binary Trees 1 CS 135 Winter 2018 Tutorial 7: Accumulative Recursion and Binary Trees CS 135 Winter 2018 Tutorial 7: Accumulative Recursion and Binary Trees 1 Goals of this tutorial You should be able to... understand

More information

IP Forwarding Computer Networking. Graph Model. Routes from Node A. Lecture 11: Intra-Domain Routing

IP Forwarding Computer Networking. Graph Model. Routes from Node A. Lecture 11: Intra-Domain Routing IP Forwarding 5-44 omputer Networking Lecture : Intra-omain Routing RIP (Routing Information Protocol) & OSPF (Open Shortest Path First) The Story So Far IP addresses are structured to reflect Internet

More information

ShortCut: Architectural Support for Fast Object Access in Scripting Languages

ShortCut: Architectural Support for Fast Object Access in Scripting Languages Jiho Choi, Thomas Shull, Maria J. Garzaran, and Josep Torrellas Department of Computer Science University of Illinois at Urbana-Champaign http://iacoma.cs.uiuc.edu ISCA 2017 Overheads of Scripting Languages

More information

References. NoSQL Motivation. Why NoSQL as the Solution? NoSQL Key Feature Decisions. CSE 444: Database Internals

References. NoSQL Motivation. Why NoSQL as the Solution? NoSQL Key Feature Decisions. CSE 444: Database Internals References SE 444: atabase Internals Scalable SQL and NoSQL ata Stores, Rick attell, SIGMO Record, ecember 2010 (Vol. 39, No. 4) ynamo: mazon s Highly vailable Key-value Store. y Giuseppe eandia et. al.

More information

CS 251, LE 2 Fall MIDTERM 2 Tuesday, November 1, 2016 Version 00 - KEY

CS 251, LE 2 Fall MIDTERM 2 Tuesday, November 1, 2016 Version 00 - KEY CS 251, LE 2 Fall 2016 MIDTERM 2 Tuesday, November 1, 2016 Version 00 - KEY W1.) (i) Show one possible valid 2-3 tree containing the nine elements: 1 3 4 5 6 8 9 10 12. (ii) Draw the final binary search

More information

JAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder

JAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder JAVA PERFORMANCE PR SW2 S18 Dr. Prähofer DI Leopoldseder OUTLINE 1. What is performance? 1. Benchmarking 2. What is Java performance? 1. Interpreter vs JIT 3. Tools to measure performance 4. Memory Performance

More information

Software Challenges: Abstraction and Analysis

Software Challenges: Abstraction and Analysis Software Challenges: Abstraction and Analysis Martin Bravenboer University of Massachusetts Amherst University of Oregon April 2, 2009 University of Waterloo my research 1 the design and implementation

More information

Midterm 1 for CS 170

Midterm 1 for CS 170 UC Berkeley CS 170 Midterm 1 Lecturer: Satish Rao March 10 Midterm 1 for CS 170 Print your name:, (last) (first) Sign your name: Write your section number (e.g., 101): Write your SID: One page of notes

More information

Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization

Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization Aritra Sengupta Man Cao Michael D. Bond Milind Kulkarni Ohio State University Purdue University {sengupta,caoma,mikebond}@cse.ohio-state.edu

More information

The wolf sheep cabbage problem. Search. Terminology. Solution. Finite state acceptor / state space

The wolf sheep cabbage problem. Search. Terminology. Solution. Finite state acceptor / state space Search The wolf sheep cabbage problem What is search? Terminology: search space, strategy Modelling Uninformed search (not intelligent ) Breadth first Depth first, some variations omplexity space and time

More information

CS415 Compilers. Procedure Abstractions. These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University

CS415 Compilers. Procedure Abstractions. These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University CS415 Compilers Procedure Abstractions These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University Where are we? Well understood Engineering Source Code

More information

Solutions to Exam Data structures (X and NV)

Solutions to Exam Data structures (X and NV) Solutions to Exam Data structures X and NV 2005102. 1. a Insert the keys 9, 6, 2,, 97, 1 into a binary search tree BST. Draw the final tree. See Figure 1. b Add NIL nodes to the tree of 1a and color it

More information

Module 5 Graph Algorithms

Module 5 Graph Algorithms Module 5 Graph lgorithms Dr. Natarajan Meghanathan Professor of Computer Science Jackson State University Jackson, MS 97 E-mail: natarajan.meghanathan@jsums.edu 5. Graph Traversal lgorithms Depth First

More information

Hello, and welcome to the Texas Instruments Precision DAC overview of DC specifications of DACs. In this presentation we will briefly cover the

Hello, and welcome to the Texas Instruments Precision DAC overview of DC specifications of DACs. In this presentation we will briefly cover the Hello, and welcome to the Texas Instruments Precision DAC overview of DC specifications of DACs. In this presentation we will briefly cover the properties of the ideal DAC and several other important DC

More information

Scribe: Virginia Williams, Sam Kim (2016), Mary Wootters (2017) Date: May 22, 2017

Scribe: Virginia Williams, Sam Kim (2016), Mary Wootters (2017) Date: May 22, 2017 CS6 Lecture 4 Greedy Algorithms Scribe: Virginia Williams, Sam Kim (26), Mary Wootters (27) Date: May 22, 27 Greedy Algorithms Suppose we want to solve a problem, and we re able to come up with some recursive

More information

Evaluating Design Tradeoffs in Numeric Static Analysis for Java

Evaluating Design Tradeoffs in Numeric Static Analysis for Java Evaluating Design Tradeoffs in Numeric Static Analysis for Java Shiyi Wei 1(B), Piotr Mardziel 2, Andrew Ruef 3,JeffreyS.Foster 3, and Michael Hicks 3 1 The University of Texas at Dallas, Richardson, USA

More information

Static Java Program Features for Intelligent Squash Prediction

Static 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 information

Calvin Lin The University of Texas at Austin

Calvin 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 information

CCured. One-Slide Summary. Lecture Outline. Type-Safe Retrofitting of C Programs

CCured. One-Slide Summary. Lecture Outline. Type-Safe Retrofitting of C Programs CCured Type-Safe Retrofitting of C Programs [Necula, McPeak,, Weimer, Condit, Harren] #1 One-Slide Summary CCured enforces memory safety and type safety in legacy C programs. CCured analyzes how you use

More information

Preemption Delay Analysis for the Stack Cache

Preemption Delay Analysis for the Stack Cache Preemption Delay nalysis for the Stack ache mine Naji U2IS ENST ParisTech Florian randner LTI, NRS Telecom ParisTech This work is supported by the Digiteo project PM-TOP. 1/18 Real-Time Systems Strict

More information