Address Taken FIAlias, which is equivalent to Steensgaard. CS553 Lecture Alias Analysis II 2
|
|
|
- Gerard Carpenter
- 9 years ago
- Views:
Transcription
1 Alias Analysis Last time Alias analysis I (pointer analysis) Address Taken FIAlias, which is equivalent to Steensgaard Today Alias analysis II (pointer analysis) Anderson Emami Next time Midterm review CS553 Lecture Alias Analysis II 2 Properties of Alias Analysis Scope: Intraprocedural (per procedure) or Interprocedural (whole program) Representation Alias pairs - pairs of memory references that may access the same location Points-to sets - relations of the form (a->b) such that location a contains the address of location b Equivalence sets - all memory references in the same set may alias Flow sensitivity: Sensitive versus insensitive Context sensitivity: Sensitive versus insensitive Definiteness: May versus must as well Heap Modeling - How are dynamically allocated locations modeled? Aggregate Modeling - are fields in structs or records modeled separately? CS553 Lecture Alias Analysis II 6 1
2 Address Taken Algorithm overview Assume that nothing must alias Assume that all pointer dereferences may alias each other Assume that variables whose addresses are taken (and globals) may alias all pointer dereferences Characterization of Address Taken Per procedure Flow-insensitive Context-insensitive May analysis Alias representation: equivalence sets Heap modeling: none Aggregate modeling: none int **a, *b, c, *d, e; 1: a = &b; 2: b = &c; 3: d = &e; 4: a = &d; two equivalence sets a **a, *a, *b, *d, b, c, e, d CS553 Lecture Alias Analysis II 7 Steensgaard 96 equivalent to FIAlias [Ryder et. al. 2001] Overview Uses unification constraints, for pointer assignments, p = q, Pts-to(p) = Pts-to(q). The union is done recursively for multiple-level pointers Almost linear in terms of program size, O(n) Uses fast union-find algorithm Imprecision stems from merging points-to sets Characterization of Steensgaard Whole program Flow-insensitive Context-insensitive May analysis Alias representation: points-to Heap modeling: none Aggregate modeling: possibly int **a, *b, c, *d, e; 1: a = &b; 2: b = &c; 3: d = &e; 4: a = &d; source: Barbara Ryder s Reference Analysis slides CS553 Lecture Alias Analysis II 8 2
3 Unification Constraints Conceptual Outline Add a constraint for each statement Solve the set of constraints Steensgaard Constraints for C s: p = &x; x Pts-to(p) s: p = q; Pts-to(p) = Pts-to(q) s: p = *q; a Pts-to(q), Pts-to(p) = Pts-to(a) s: *p = q; b Pts-to(p), Pts-to(b) = Pts-to(q) CS553 Lecture Alias Analysis II 9 Andersen 94 Overview Uses inclusion constraints, for pointer assignments, p = q, Pts-to(q) Pts-to(p) Cubic complexity in program size, O(n 3 ) Characterization of Andersen Whole program Flow-insensitive Context-insensitive May analysis Alias representation: points-to Heap modeling? Aggregate modeling: fields int **a, *b, c, *d, e; 1: a = &b; 2: b = &c; 3: d = &e; 4: a = &d; source: Barbara Ryder s Reference Analysis slides CS553 Lecture Alias Analysis II 10 3
4 Outline of Andersen s Algorithm Find all pointer assignments in the program For each pointer assignment For p = q, all outgoing points-to edges from q are copied to be outgoing from p If new outgoing edges are added to q during the algorithm they must also be copied to p Using flow-insensitive, points-to s: p = &x; x Pts-to(p) s: p = q; Pts-to(q) Pts-to(p) s: p = *q; a Pts-to(q), Pts-to(a) Pts-to(p) s: *p = q; b Pts-to(p), Pts-to(q) Pts-to(b) source: Barbara Ryder slides and Maks Orlovich Slides CS553 Lecture Alias Analysis II 11 Flow-sensitive May Points-To Analysis Analogous flow functions is s: p = &x; out[s] = {(p x)} (in[s] {(p y) y}) s: p = q; out[s] = {(p t) (q t) in[s]} (in[s] {(p y) y)}) s: p = *q; out[s] = {(p t) (q r) in[s] & (r t) in[s]} (in[s] {(p x) x}) s: *p = q; out[s] = {(r t) (p r) in[s] & (q t) in[s]} (in[s] {(r x) x (p r) in must [s]}) CS553 Lecture Alias Analysis II 12 4
5 Flow-sensitive May Alias-Pairs Analysis In the below data-flow equations, M and N represent any memory reference expression and + represents a specific number of dereferences. Meet function is s: p = &x; out[s] = {(*p,x)} (in[s] {(*p y) y}) {(*M,x) (M,p) in[s]} {(**+M,N) (M,p) in[s] & (+x,n) in[s]} s: p = q; out[s] = {(*p,t) (*q,t) in[s]} (in[s] {(*p,y) y)}) {(*M,t) (M,p) in[s] & (*q,t) in[s] } {(**+M,N) (M,p) in[s] & (*q,t) in[s] & (+t,n) in[s]} s: p = *q; out[s] = {(*p,t) (*q,r) in[s] & (*r,t) in[s]} (in[s] {(*p,x) x}) {(*M,t) (M,p) in[s] & (*q,r) in[s] & (*r,t) in[s] } {(**+M,N) (M,p) in[s] & (*q,r) in[s] & (*r,t) in[s]} & (+t,n) in[s]} s: *p = q; out[s] = {(*r,t) (*p,r) in[s] & (*q,t) in[s]} (in[s] {(*r,x) x (*p,r) in must [s]}) {(*M,t) (M,r) in[s] & (*p,r) in[s] & (*q,t) in[s]} {(**+M,N) (M,r) in[s] & (*p,r) in[s] & (*q,t) in[s]&(+t,n) in[s]} CS553 Lecture Alias Analysis II 13 Other Issues (Modeling the Heap) Issue Each allocation creates a new piece of storage e.g., p = new T Proposal? Generate (at compile-time) a new variable to stand for new storage newvar: Creates a new variable Flow function s: p = new T; out[s] = {(p newvar)} (in[s] {(p x) x}) Problem Domain is unbounded! Iterative data-flow analysis may not converge CS553 Lecture Alias Analysis II 14 5
6 Modeling the Heap (cont) Simple solution Create a summary variable (node) for each allocation statement Domain: 2 (Var Stmt) (Var Stmt) rather than 2Var Var Monotonic flow function s: p = new T; out[s] = {(p stmt s )} (in[s] {(p x) x}) Less precise (but finite) Alternatives Summary node for entire heap Summary node for each type K-limited summary Maintain distinct nodes up to k links removed from root variables CS553 Lecture Alias Analysis II 15 Other issues: Function Calls Question How do function calls affect our points-to sets? e.g., p1 = &x; p2 = &p1;... {(p1 x), (p2 p1)} foo();??? Be conservative Assume that any reachable pointer may be changed Pointers can be reached via globals and parameters May pass through objects in the heap Can be changed to anything reachable or something else Can we prune aliases using types? Problem Lose a lot of information CS553 Lecture Alias Analysis II 16 6
7 Emami 1994 Overview Compute L and R locations to implement flow-sensitive data-flow analysis Uses invocation graph for context-sensitivity Can be exponential in program size Handles function pointers Characterization of Steensgaard Whole program Flow-sensitive Context-sensitive May and must analysis Alias representation: points-to Heap modeling: one heap variable Aggregate modeling: fields and first array element int **a, *b, c, *d, e; 1: a = &b; 2: b = &c; 3: d = &e; 4: a = &d; CS553 Lecture Alias Analysis II 17 Using Alias Information Example: reaching definitions Compute at each point in the program a set of (s,v) pairs, indicating that statement s may define variable v Flow functions s: *p = x; out reach [s] = {(s,z) (p z) in may-pt [s]} (in reach [s] {(t,y) t (p y) in must-pt [s]} s: x = *p; out reach [s] = {(s,x)} (in reach [s] {(t,x) t}... CS553 Lecture Alias Analysis II 18 7
8 Concepts Properties of alias analyses Alias/Pointer Analysis algorithms Address Taken Steensgaard or FIAlias Andersen Emami Flow-insensitive alias algorithms can be specified with constraint equations Flow-sensitive alias algorithms can be specified with data-flow equations Function calls degrade alias information Context-sensitive interprocedural analysis CS553 Lecture Alias Analysis II 19 Next Time Assignments HW2 due Lecture Midterm review CS553 Lecture Alias Analysis II 20 8
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
General Flow-Sensitive Pointer Analysis and Call Graph Construction
General Flow-Sensitive Pointer Analysis and Call Graph Construction Endre Horváth, István Forgács, Ákos Kiss, Judit Jász and Tibor Gyimóthy University of Szeged 4D Soft Ltd. Aradi Vértanúk tere 1. Soroksári
Review; questions Discussion of Semester Project Arbitrary interprocedural control flow Assign (see Schedule for links)
Class 9 Review; questions Discussion of Semester Project Arbitrary interprocedural control flow Assign (see Schedule for links) Readings on pointer analysis Problem Set 5: due 9/22/09 Project proposal
Introduction to Data-flow analysis
Introduction to Data-flow analysis Last Time LULESH intro Typed, 3-address code Basic blocks and control flow graphs LLVM Pass architecture Data dependencies, DU chains, and SSA Today CFG and SSA example
Static Taint-Analysis on Binary Executables
Static Taint-Analysis on Binary Executables Sanjay Rawat, Laurent Mounier, Marie-Laure Potet VERIMAG University of Grenoble October 2011 Static Taint-Analysis on Binary Executables 1/29 Outline 1 Introduction
How to Write a Checker in 24 Hours
How to Write a Checker in 24 Hours Clang Static Analyzer Anna Zaks and Jordan Rose Apple Inc. What is this talk about? The Clang Static Analyzer is a bug finding tool It can be extended with custom checkers
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
The Union-Find Problem Kruskal s algorithm for finding an MST presented us with a problem in data-structure design. As we looked at each edge,
The Union-Find Problem Kruskal s algorithm for finding an MST presented us with a problem in data-structure design. As we looked at each edge, cheapest first, we had to determine whether its two endpoints
Lecture Notes on Static Analysis
Lecture Notes on Static Analysis Michael I. Schwartzbach BRICS, Department of Computer Science University of Aarhus, Denmark [email protected] Abstract These notes present principles and applications of static
Lecture 2 Introduction to Data Flow Analysis
Lecture 2 Introduction to Data Flow Analysis I. Introduction II. Example: Reaching definition analysis III. Example: Liveness analysis IV. A General Framework (Theory in next lecture) Reading: Chapter
Binary Heap Algorithms
CS Data Structures and Algorithms Lecture Slides Wednesday, April 5, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks [email protected] 2005 2009 Glenn G. Chappell
Pixy: A Static Analysis Tool for Detecting Web Application Vulnerabilities (Technical Report)
Pixy: A Static Analysis Tool for Detecting Web Application Vulnerabilities (Technical Report) Nenad Jovanovic, Christopher Kruegel, Engin Kirda Secure Systems Lab Vienna University of Technology Abstract
CSE 326, Data Structures. Sample Final Exam. Problem Max Points Score 1 14 (2x7) 2 18 (3x6) 3 4 4 7 5 9 6 16 7 8 8 4 9 8 10 4 Total 92.
Name: Email ID: CSE 326, Data Structures Section: Sample Final Exam Instructions: The exam is closed book, closed notes. Unless otherwise stated, N denotes the number of elements in the data structure
Securing software by enforcing data-flow integrity
Securing software by enforcing data-flow integrity Manuel Costa Joint work with: Miguel Castro, Tim Harris Microsoft Research Cambridge University of Cambridge Software is vulnerable use of unsafe languages
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
Static analysis for detecting taint-style vulnerabilities in web applications
Journal of Computer Security 18 (2010) 861 907 861 DOI 10.3233/JCS-2009-0385 IOS Press Static analysis for detecting taint-style vulnerabilities in web applications Nenad Jovanovic a, Christopher Kruegel
Programming Language Features (cont.) CMSC 330: Organization of Programming Languages. Parameter Passing in OCaml. Call-by-Value
CMSC 33: Organization of Programming Languages Programming Language Features (cont.) Names & binding Namespaces Static (lexical) scopes Dynamic scopes Polymorphism Parametric Subtype Ad-hoc Parameter Passing
Practical Memory Leak Detection using Guarded Value-Flow Analysis
Practical Memory Leak Detection using Guarded Value-Flow Analysis Sigmund Cherem Lonnie Princehouse Radu Rugina Computer Science Department Cornell University Ithaca, NY 14853 {siggi, lonnie, rugina}@cs.cornell.edu
Efficiency of algorithms. Algorithms. Efficiency of algorithms. Binary search and linear search. Best, worst and average case.
Algorithms Efficiency of algorithms Computational resources: time and space Best, worst and average case performance How to compare algorithms: machine-independent measure of efficiency Growth rate Complexity
C++FA 5.1 PRACTICE MID-TERM EXAM
C++FA 5.1 PRACTICE MID-TERM EXAM This practicemid-term exam covers sections C++FA 1.1 through C++FA 1.4 of C++ with Financial Applications by Ben Van Vliet, available at www.benvanvliet.net. 1.) A pointer
A staged static program analysis to improve the performance of runtime monitoring
A staged static program analysis to improve the performance of runtime monitoring Eric Bodden 1, Laurie Hendren 1, Ondřej Lhoták 2 1 McGill University, Montréal, Québec, Canada 2 University of Waterloo,
Roots of Polynomials
Roots of Polynomials (Com S 477/577 Notes) Yan-Bin Jia Sep 24, 2015 A direct corollary of the fundamental theorem of algebra is that p(x) can be factorized over the complex domain into a product a n (x
µz An Efficient Engine for Fixed points with Constraints
µz An Efficient Engine for Fixed points with Constraints Kryštof Hoder, Nikolaj Bjørner, and Leonardo de Moura Manchester University and Microsoft Research Abstract. The µz tool is a scalable, efficient
Parameter Passing. Parameter Passing. Parameter Passing Modes in Fortran. Parameter Passing Modes in C
Parameter Passing In this set of notes you will learn about: Parameter passing modes Call by Call by reference Call by sharing Call by result Call by /result Call by name Subroutine closures as parameters
90% Perspiration: Engineering Static Analysis Techniques for Industrial Applications
Eighth IEEE International Working Conference on Source Code Analysis and Manipulation 90% Perspiration: Engineering Static Analysis Techniques for Industrial Applications Paul Anderson GrammaTech, Inc.
Questions 1 through 25 are worth 2 points each. Choose one best answer for each.
Questions 1 through 25 are worth 2 points each. Choose one best answer for each. 1. For the singly linked list implementation of the queue, where are the enqueues and dequeues performed? c a. Enqueue in
5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.
1. The advantage of.. is that they solve the problem if sequential storage representation. But disadvantage in that is they are sequential lists. [A] Lists [B] Linked Lists [A] Trees [A] Queues 2. The
5.1 Bipartite Matching
CS787: Advanced Algorithms Lecture 5: Applications of Network Flow In the last lecture, we looked at the problem of finding the maximum flow in a graph, and how it can be efficiently solved using the Ford-Fulkerson
Union-Find Algorithms. network connectivity quick find quick union improvements applications
Union-Find Algorithms network connectivity quick find quick union improvements applications 1 Subtext of today s lecture (and this course) Steps to developing a usable algorithm. Define the problem. Find
Integrated System Modeling for Handling Big Data in Electric Utility Systems
Integrated System Modeling for Handling Big Data in Electric Utility Systems Stephanie Hamilton Brookhaven National Laboratory Robert Broadwater EDD [email protected] 1 Finding Good Solutions for the Hard
A Practical Blended Analysis for Dynamic Features in JavaScript
A Practical Blended Analysis for Dynamic Features in JavaScript Shiyi Wei Barbara G. Ryder Department of Computer Science Virginia Tech wei, [email protected] ABSTRACT The JavaScript Blended Analysis Framework
Computer Graphics. Geometric Modeling. Page 1. Copyright Gotsman, Elber, Barequet, Karni, Sheffer Computer Science - Technion. An Example.
An Example 2 3 4 Outline Objective: Develop methods and algorithms to mathematically model shape of real world objects Categories: Wire-Frame Representation Object is represented as as a set of points
Static Analysis. Find the Bug! 15-654: Analysis of Software Artifacts. Jonathan Aldrich. disable interrupts. ERROR: returning with interrupts disabled
Static Analysis 15-654: Analysis of Software Artifacts Jonathan Aldrich 1 Find the Bug! Source: Engler et al., Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions, OSDI
Analysis report examination with CUBE
Analysis report examination with CUBE Brian Wylie Jülich Supercomputing Centre CUBE Parallel program analysis report exploration tools Libraries for XML report reading & writing Algebra utilities for report
CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team
CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team Lecture Summary In this lecture, we learned about the ADT Priority Queue. A
Chapter 4, Arithmetic in F [x] Polynomial arithmetic and the division algorithm.
Chapter 4, Arithmetic in F [x] Polynomial arithmetic and the division algorithm. We begin by defining the ring of polynomials with coefficients in a ring R. After some preliminary results, we specialize
Comprehensive Static Analysis Using Polyspace Products. A Solution to Today s Embedded Software Verification Challenges WHITE PAPER
Comprehensive Static Analysis Using Polyspace Products A Solution to Today s Embedded Software Verification Challenges WHITE PAPER Introduction Verification of embedded software is a difficult task, made
Probabilità e Nondeterminismo nella teoria dei domini
Probabilità e Nondeterminismo nella teoria dei domini Daniele Varacca ENS, Paris BRICS, Aarhus Parma, 15 giugno 2004 Probabilità e Nondeterminismo nella teoria dei domini p.1 Road Map Motivation Domain
Optimizations. Optimization Safety. Optimization Safety. Control Flow Graphs. Code transformations to improve program
Optimizations Code transformations to improve program Mainly: improve execution time Also: reduce program size Control low Graphs Can be done at high level or low level E.g., constant folding Optimizations
Linear Programming. Widget Factory Example. Linear Programming: Standard Form. Widget Factory Example: Continued.
Linear Programming Widget Factory Example Learning Goals. Introduce Linear Programming Problems. Widget Example, Graphical Solution. Basic Theory:, Vertices, Existence of Solutions. Equivalent formulations.
3. Interpolation. Closing the Gaps of Discretization... Beyond Polynomials
3. Interpolation Closing the Gaps of Discretization... Beyond Polynomials Closing the Gaps of Discretization... Beyond Polynomials, December 19, 2012 1 3.3. Polynomial Splines Idea of Polynomial Splines
A Practical Blended Analysis for Dynamic Features in JavaScript
A Practical Blended Analysis for Dynamic Features in JavaScript Shiyi Wei and Barbara G. Ryder Department of Computer Science Virginia Tech {wei, ryder}@cs.vt.edu Abstract JavaScript is widely used in
Finding Application Errors and Security Flaws Using PQL: a Program Query Language
Finding Application Errors and Security Flaws Using PQL: a Program Query Language Michael Martin Benjamin Livshits Monica S. Lam Computer Science Department Stanford University {mcmartin,livshits,lam}@cs.stanford.edu
Which Pointer Analysis Should I Use?
Which Pointer Analysis Should I Use? Michael Hind IBM Watson Research Center 30 Saw Mill River Road Hawthorne, NY 10532, USA [email protected] Anthony Pioli Register.com 575 11th Ave New York, NY 10018,
Data Structures and Algorithms Written Examination
Data Structures and Algorithms Written Examination 22 February 2013 FIRST NAME STUDENT NUMBER LAST NAME SIGNATURE Instructions for students: Write First Name, Last Name, Student Number and Signature where
Lecture 2 CS 3311. An example of a middleware service: DNS Domain Name System
Lecture 2 CS 3311 An example of a middleware service: DNS Domain Name System The problem Networked computers have names and IP addresses. Applications use names; IP uses for routing purposes IP addresses.
AUTOMATED TEST GENERATION FOR SOFTWARE COMPONENTS
TKK Reports in Information and Computer Science Espoo 2009 TKK-ICS-R26 AUTOMATED TEST GENERATION FOR SOFTWARE COMPONENTS Kari Kähkönen ABTEKNILLINEN KORKEAKOULU TEKNISKA HÖGSKOLAN HELSINKI UNIVERSITY OF
Sample Questions Csci 1112 A. Bellaachia
Sample Questions Csci 1112 A. Bellaachia Important Series : o S( N) 1 2 N N i N(1 N) / 2 i 1 o Sum of squares: N 2 N( N 1)(2N 1) N i for large N i 1 6 o Sum of exponents: N k 1 k N i for large N and k
1. Relational database accesses data in a sequential form. (Figures 7.1, 7.2)
Chapter 7 Data Structures for Computer Graphics (This chapter was written for programmers - option in lecture course) Any computer model of an Object must comprise three different types of entities: 1.
Recursive Algorithms. Recursion. Motivating Example Factorial Recall the factorial function. { 1 if n = 1 n! = n (n 1)! if n > 1
Recursion Slides by Christopher M Bourke Instructor: Berthe Y Choueiry Fall 007 Computer Science & Engineering 35 Introduction to Discrete Mathematics Sections 71-7 of Rosen cse35@cseunledu Recursive Algorithms
Krishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA-213 : DATA STRUCTURES USING C
Tutorial#1 Q 1:- Explain the terms data, elementary item, entity, primary key, domain, attribute and information? Also give examples in support of your answer? Q 2:- What is a Data Type? Differentiate
Software Tamper Resistance: Obstructing Static Analysis of Programs
Software Tamper Resistance: Obstructing Static Analysis of Programs Abstract Chenxi Wang, Jonathan Hill, John Knight, Jack Davidson Department of Computer Science University of Virginia{cw2e jch8f knight
Astrée: Building a Static Analyzer for Real-Life Programs
Astrée: Building a Static Analyzer for Real-Life Programs Antoine Miné CNRS & École normale supérieure Paris, France Workshop on Learning From experience June 6th, 2010 LFX June 6th, 2010 Astrée: Building
Contents. System Development Models and Methods. Design Abstraction and Views. Synthesis. Control/Data-Flow Models. System Synthesis Models
System Development Models and Methods Dipl.-Inf. Mirko Caspar Version: 10.02.L.r-1.0-100929 Contents HW/SW Codesign Process Design Abstraction and Views Synthesis Control/Data-Flow Models System Synthesis
Data Structure with C
Subject: Data Structure with C Topic : Tree Tree A tree is a set of nodes that either:is empty or has a designated node, called the root, from which hierarchically descend zero or more subtrees, which
PES Institute of Technology-BSC QUESTION BANK
PES Institute of Technology-BSC Faculty: Mrs. R.Bharathi CS35: Data Structures Using C QUESTION BANK UNIT I -BASIC CONCEPTS 1. What is an ADT? Briefly explain the categories that classify the functions
CS 575 Parallel Processing
CS 575 Parallel Processing Lecture one: Introduction Wim Bohm Colorado State University Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5
CSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis. Linda Shapiro Winter 2015
CSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis Linda Shapiro Today Registration should be done. Homework 1 due 11:59 pm next Wednesday, January 14 Review math essential
CS412/CS413. Introduction to Compilers Tim Teitelbaum. Lecture 20: Stack Frames 7 March 08
CS412/CS413 Introduction to Compilers Tim Teitelbaum Lecture 20: Stack Frames 7 March 08 CS 412/413 Spring 2008 Introduction to Compilers 1 Where We Are Source code if (b == 0) a = b; Low-level IR code
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
Adaptive Context-sensitive Analysis for JavaScript
Adaptive Context-sensitive Analysis for JavaScript Shiyi Wei and Barbara G. Ryder Department of Computer Science Virginia Tech Blacksburg, VA, USA {wei, ryder}@cs.vt.edu Abstract Context sensitivity is
Finding Frequent Patterns Based On Quantitative Binary Attributes Using FP-Growth Algorithm
R. Sridevi et al Int. Journal of Engineering Research and Applications RESEARCH ARTICLE OPEN ACCESS Finding Frequent Patterns Based On Quantitative Binary Attributes Using FP-Growth Algorithm R. Sridevi,*
QUADRATIC, EXPONENTIAL AND LOGARITHMIC FUNCTIONS
QUADRATIC, EXPONENTIAL AND LOGARITHMIC FUNCTIONS Content 1. Parabolas... 1 1.1. Top of a parabola... 2 1.2. Orientation of a parabola... 2 1.3. Intercept of a parabola... 3 1.4. Roots (or zeros) of a parabola...
Application-only Call Graph Construction
Application-only Call Graph Construction Karim Ali and Ondřej Lhoták David R. Cheriton School of Computer Science, University of Waterloo Abstract. Since call graphs are an essential starting point for
Why have SSA? Birth Points (cont) Birth Points (a notion due to Tarjan)
Why have SSA? Building SSA Form SSA-form Each name is defined exactly once, thus Each use refers to exactly one name x 17-4 What s hard? Straight-line code is trivial Splits in the CFG are trivial x a
Algorithms Chapter 12 Binary Search Trees
Algorithms Chapter 1 Binary Search Trees Outline Assistant Professor: Ching Chi Lin 林 清 池 助 理 教 授 [email protected] Department of Computer Science and Engineering National Taiwan Ocean University
Correlation Tracking for Points-To Analysis of JavaScript
Correlation Tracking for Points-To Analysis of JavaScript Manu Sridharan, Julian Dolby, Satish Chandra, Max Schäfer, and Frank Tip IBM T.J. Watson Research Center, Yorktown Heights, NY, USA {msridhar,dolby,satishchandra,mschaefer,ftip}@us.ibm.com
Static Analysis for Dynamic Coupling Measures
Static Analysis for Dynamic Coupling Measures Yin Liu Ana Milanova Department of Computer Science Rensselaer Polytechnic Institute Troy, NY 12180, USA {liuy,milanova}@cs.rpi.edu Abstract Coupling measures
