Ibm Research Report Combining Interprocedural Pointer Analysis and Conditional Constant Propagation Combining Interprocedural Pointer Analysis and Conditional Constant Propagation ?

نویسندگان

  • Anthony Pioli
  • Michael Hind
چکیده

LIMITED DISTRIBUTION NOTICE This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and speciic requests. After outside publication, requests should be lled only by reprints or legally obtained copies of the article (e.g., payment of royalties). Abstract. The information computed by a pointer alias analysis can be used to improve the precision of subsequent analyses, such as conditional constant propagation. Conditional constant propagation can, in turn, discover unexecutable code, which can improve the precision of pointer analysis. This improved alias precision, in turn, may increase the eeectiveness of the conditional constant propagation, and so on. One way to resolved this mutual dependence between conditional constant propagation and pointer alias analysis is to iterate over the two analyses until a xed point is reached. In addition to raising eeciency concerns, the resulting precision may also not be optimal, i.e., a more tightly coupled analysis can have better precision for both alias analysis and conditional constant propagation than iterating over the two analyses. In this work we explore three combinations of pointer alias analysis and conditional constant propagation: a one-pass-over-analyses approach, an iterate-over-analyses approach, and a new algorithm that synthesizes pointer alias analysis and conditional constant propagation. We empirically demonstrate the eeciency and precision of these three approaches on a benchmark suite of 21 C programs ranging in size from 200 { 4,600 LOC.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Ibm Research Report Eecient Flow-insensitive Alias Analysis in the Presence of Point- Ers Flow-insensitive Interprocedural Alias Analysis in the Presence of Pointers

This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and speciic requests. After outside...

متن کامل

Precise Interprocedural Dataaow Analysis with Applications to Constant Propagation 1

This paper concerns interprocedural dataaow-analysis problems in which the dataaow information at a program point is represented by an environment (i.e., a mapping from symbols to values), and the eeect of a program operation is represented by a distributive environment transformer. We present an eecient dynamic-programming algorithm that produces precise solutions. The method is applied to sol...

متن کامل

Online Cycle Detection and Difference Propagation for Pointer Analysis

This paper presents and evaluates a number of techniques to improve the execution time of interprocedural pointer analysis in the context of large C programs. The analysis is formulated as a graph of set constraints and solved using a worklist algorithm. Indirections lead to new constraints being added during this process. In this work, we present a new algorithm for online cycle detection, and...

متن کامل

Interprocedural Pointer Analysis for C Interprocedural Pointer Analysis for C

Interprocedural pointer analysis provides information on the values pointer variables may have at various points in a program. It is especially useful in languages like C, where pointers are extensively used. This analysis does not improve code directly but is used by other optimizations. This paper presents a framework in which to perform pointer analysis. Basic questions that any pointer anal...

متن کامل

Fully Automatic Verification of Absence of Errors via Interprocedural Integer Analysis

We present a interprocedural C String Static Verifier (iCSSV), a whole program analysis algorithm for verifying the safety of string operations in C programs. The algorithm automatically proves linear relationships among pointer expressions. The algorithm is conservative, i.e., it infers only valid relationships although it may fail to detect some of them. The algorithm is targeted to programs ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1999