Pointer Analysis for CASH Compiler Framework Deepak Garg Himanshu Jain Spring 2005.

Slides:



Advertisements
Similar presentations
CT is a self-directed process by which we take deliberate steps to think at the highest level of quality. CT is skillful, responsible thinking that is.
Advertisements

Context-Sensitive Interprocedural Points-to Analysis in the Presence of Function Pointers Presentation by Patrick Kaleem Justin.
8. Code Generation. Generate executable code for a target machine that is a faithful representation of the semantics of the source code Depends not only.
Pointer Analysis – Part I Mayur Naik Intel Research, Berkeley CS294 Lecture March 17, 2009.
Analysis of programs with pointers. Simple example What are the dependences in this program? Problem: just looking at variable names will not give you.
Architecture Representation
Demand-driven Alias Analysis Implementation Based on Open64 Xiaomi An
CS7100 (Prasad)L16-7AG1 Attribute Grammars Attribute Grammar is a Framework for specifying semantics and enables Modular specification.
Flow-Insensitive Points-to Analysis with Term and Set Constraints Presentation by Kaleem Travis Patrick.
Parallel Inclusion-based Points-to Analysis Mario Méndez-Lojo Augustine Mathew Keshav Pingali The University of Texas at Austin (USA) 1.
1 Practical Object-sensitive Points-to Analysis for Java Ana Milanova Atanas Rountev Barbara Ryder Rutgers University.
Parameterized Object Sensitivity for Points-to Analysis for Java Presented By: - Anand Bahety Dan Bucatanschi.
The Ant and The Grasshopper Fast and Accurate Pointer Analysis for Millions of Lines of Code Ben Hardekopf and Calvin Lin PLDI 2007 (Best Paper & Best.
Program Analysis with Set Constraints Ravi Chugh.
Pointer and Shape Analysis Seminar Context-sensitive points-to analysis: is it worth it? Article by Ondřej Lhoták & Laurie Hendren from McGill University.
“Using Data-Based Program Modification to Frame Research on Problem Solving” Stan Deno RIPS Brown Bag 12/5/2010.
Aliases in a bug finding tool Benjamin Chelf Seth Hallem June 5 th, 2002.
Cpeg421-08S/final-review1 Course Review Tom St. John.
Context-Sensitive Flow Analysis Using Instantiation Constraints CS 343, Spring 01/02 John Whaley Based on a presentation by Chris Unkel.
Set Constraint-Based Program Analysis Manuel Fähndrich CS590 UW Spring 2001.
Reasons to study concepts of PL
Range Analysis. Intraprocedural Points-to Analysis Want to compute may-points-to information Lattice:
Chess Review May 10, 2004 Berkeley, CA Platform-based Design for Mixed Analog-Digital Designs Fernando De Bernardinis, Yanmei Li, Alberto Sangiovanni-Vincentelli.
A Context-Sensitive Pointer Analysis Phase in Open64 Compiler Tianwei Sheng, Wenguang Chen, Weimin Zheng Tsinghua University.
Pointer Analysis for CASH Compiler Framework Deepak Garg Himanshu Jain Spring 2005.
Intraprocedural Points-to Analysis Flow functions:
1 Introduction to System Engineering G. Nacouzi ME 155B.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts, Amherst Advanced Compilers CMPSCI 710.
Swerve: Semester in Review. Topics  Symbolic pointer analysis  Model checking –C programs –Abstract counterexamples  Symbolic simulation and execution.
ESP [Das et al PLDI 2002] Interface usage rules in documentation –Order of operations, data access –Resource management –Incomplete, wordy, not checked.
Comparison Caller precisionCallee precisionCode bloat Inlining context-insensitive interproc Context sensitive interproc Specialization.
Reps Horwitz and Sagiv 95 (RHS) Another approach to context-sensitive interprocedural analysis Express the problem as a graph reachability query Works.
Platform-based Design for Mixed Analog-Digital Designs Fernando De Bernardinis, Yanmei Li, Alberto Sangiovanni-Vincentelli May 10, 2004 Analog Platform.
An Efficient Inclusion-Based Points-To Analysis for Strictly-Typed Languages John Whaley Monica S. Lam Computer Systems Laboratory Stanford University.
Pointer analysis. Pointer Analysis Outline: –What is pointer analysis –Intraprocedural pointer analysis –Interprocedural pointer analysis Andersen and.
EXAMPLE 4 Choose a solution method Tell what method you would use to solve the quadratic equation. Explain your choice(s). a. 10x 2 – 7 = 0 SOLUTION a.
Control Flow Resolution in Dynamic Language Author: Štěpán Šindelář Supervisor: Filip Zavoral, Ph.D.
The presentation: 5 parts Follow Design Inquiry Framework 1. what inspired you (good or bad) [What is your BIG IDEA] 2. who are the affected stakeholders.
/425 Declarative Methods - J. Eisner /425 Declarative Methods Prof. Jason Eisner MWF 3-4pm (sometimes 3-4:15)
COP 4620 / 5625 Programming Language Translation / Compiler Writing Fall 2003 Lecture 10, 10/30/2003 Prof. Roy Levow.
Fast Points-to Analysis for Languages with Structured Types Michael Jung and Sorin A. Huss Integrated Circuits and Systems Lab. Department of Computer.
The Development of BPR Pertemuan 6 Matakuliah: M0734-Business Process Reenginering Tahun: 2010.
Introduction Hamdy A. Taha, Operations Research: An introduction, 8th Edition.
Pointer Analysis Survey. Rupesh Nasre. Aug 24, 2007.
What is OASIS? Water resources simulation/optimization model
Points-To Analysis in Almost Linear Time Josh Bauman Jason Bartkowiak CSCI 3294 OCTOBER 9, 2001.
Quick Write Reflection How will you implement the Engineering Design Process with your students in your classes?
Templates of slides for P2 1. A very brief refresher of your problem Describe in English -what artifacts (programs, etc) you wish to synthesize, -from.
5/7/03ICSE Fragment Class Analysis for Testing of Polymorphism in Java Software Atanas (Nasko) Rountev Ohio State University Ana Milanova Barbara.
Turtle: A Constraint Imperative Programming Language Martin Grabmüller and Petra Hofstedt Fakultät IV – Elektrotechnik und Informatik.
R-Verify: Deep Checking of Embedded Code James Ezick † Donald Nguyen † Richard Lethin † Rick Pancoast* (†) Reservoir Labs (*) Lockheed Martin The Eleventh.
Constraint-Based Configuration, a New Paradigm Product Configuration.
1PLDI 2000 Off-line Variable Substitution for Scaling Points-to Analysis Atanas (Nasko) Rountev PROLANGS Group Rutgers University Satish Chandra Bell Labs.
CS 404Ahmed Ezzat 1 CS 404 Introduction to Compiler Design Lecture 10 Ahmed Ezzat.
Review: Algebra. Write numeric expressions:  Numeric expressions are expressions written out as phrases  Example:  Written as: The difference.
MUS Outcomes Assessment Workshop University-wide Program-level Writing Assessment at The University of Montana Beverly Ann Chin Chair, Writing Committee.
Preparing For Success Building a Successful Business Manufacturing Mr. Graves.
INFORMATION-FLOW ANALYSIS OF ANDROID APPLICATIONS IN DROIDSAFE JARED YOUNG.
CS 6340 Constraint-Based Analysis. Motivation “What” No null pointer is dereferenced along any path in the program. Program Analysis = Specification +
Manuel Fahndrich Jakob Rehof Manuvir Das
What Do Computers Do? A computer system is
Daniel Strüber University of Koblenz and Landau
Harry Xu University of California, Irvine & Microsoft Research
إستراتيجيات ونماذج التقويم
CT is a self-directed process by which we take deliberate steps to think at the highest level of quality. CT is skillful, responsible thinking that is.
Evaluate Determinants & Apply Cramer’s Rule
Experiencing the Question Formulation Technique (QFT)
Pointer analysis.
Programming Languages, Preliminaries, History & Evolution
Engineering Design Process
Presentation transcript:

Pointer Analysis for CASH Compiler Framework Deepak Garg Himanshu Jain Spring 2005

Project Goal Flow insensitive, context insensitive Pointer analysis for CASH Use a constraint based formulation Compare with existing pointer analysis in CASH

Possible choices: – Context sensitive vs. insensitive – Flow sensitive vs. insensitive We choose flow insensitive, context insensitive analysis – Scalable – Results reasonably good Pointer Analysis

Two popular analyses –Andersen’s analysis (O(n 3 )) –Steensgaard’s analysis (O(n  (n,n))) Both create points-to graphs for program locations Andersen’s more accurate (we will implement this) Flow & Context Insensitive Analysis

Example a = &b b = &c a = &d d = &e a bd ce Andersen’s analysis a c,e b,d Steensgaard’s analysis

Using Constraints Both analysis can be expressed in constraint-based frameworks High-level idea –Traverse IR and generate constraints that express points-to information –Use constraint solver to solve constraints

Implementing Andersen’s Traverse program expressions Give each expression e a type  written e:   is a set of program locations e:  means “e may evaluate to address of any location in  ”

Implementing Andersen’s Typing rules generate constraints on types Example:

Solving the Constraints Banshee framework –General purpose constraint solver for set- based constraints –Given specification of constraint language, generates a constraint solver for it Can be easily used for Andersen’s analysis

Where we are… Know how to use Banshee Have read about Andersen’s analysis TODO: –Are studying the existing pointer analysis in CASH –Design a constraint generation procedure for CASH IR –Interface with Banshee