Building a bridge between pointer aliases and program dependences

  • Authors:
  • John L. Ross;Mooly Sagiv

  • Affiliations:
  • University of Chicago, Department of Computer Science, 1100 East 58th Street, Chicago, IL;Tel-Aviv University, Department of Computer Science, School of Mathematical Sciences, Tel-Aviv 69978, Israel

  • Venue:
  • Nordic Journal of Computing
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper we present a surprisingly simple reduction of the program dependence problem to the may-alias problem. While both problems are undecidable, providing a reduction between them has great practical importance. Program dependence information is used extensively in compiler optimizations, automatic program parallelizations, code scheduling for super-scale machines, and software engineering tools such as code slicers. When working with languages that support pointers and references, these systems are forced to make very conservative assumptions. This leads to many superfluous program dependences and limits compiler performance and the usability of software engineering tools. Fortunately, there are many algorithms for computing conservative approximations to the may-alias problem. The reduction has the important property of always computing conservative program dependences when used with a conservative may-alias algorithm. We believe that the simplicity of the reduction and the fact that it takes linear time may make it practical for realistic applications.