Flow-Sensitive Interprocedural Constant Propagation

We present a flow-sensitive interprocedural constant propagation algorithm that supports recursion while only performing one flow-sensitive analysis of each procedure. We present experimental results which show that this method finds more constants than previous methods and is efficient in practice. The results are further categorized into integer and floating point constants. We show how the flow-sensitive algorithm can be extended to propagate returned constants. We introduce new metrics for evaluating interprocedural constant propagation algorithms which measure the number of interprocedural constant values that are propagated. We use these metrics to provide further experimental results for our algorithm.

By: Paul R. Carini and Michael Hind

Published in: RC20290 in 1995


This Research Report is available. 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 specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g., payment of royalties). I have read and understand this notice and am a member of the scientific community outside or inside of IBM seeking a single copy only.


Questions about this service can be mailed to reports@us.ibm.com .