A Precise Fixpoint Reaching Definition Analysis for Arrays
This paper describes a precise reaching definition (RD) analysis tuned for arrays.
RD analyses are of two kinds. The first group, Maximal Fixed Point (MFP) analyses, considers arrays as indivisible objects and does not contrast the side-effects of separate instances of writes. Its main benefit, however, is its wide applicability (e.g. to any unstructured program). On the other hand, analyses based on integer linear programming are able to pinpoint, for a given read instance, which instance of which write reference actually defined the read value. They are, however, restricted to limited classes of programs.
Our analysis tries to take the best of both worlds by computing, in an iterated MFP framework, instancewise RDs of array elements.
KeywordsInteger Linear Programming Array Element Execution Order Iteration Vector Coincidence Theorem
Unable to display preview. Download preview PDF.
- 1.A. V. Aho, R. Sethi, and J. D. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, Reading, Mass, 1986.Google Scholar
- 2.D. Barthou. Array Dataflow Analysis in Presence of Non-affine Constraints. PhD thesis, Univ. Versailles, February 1998.Google Scholar
- 4.A. Cohen and J.-F. Collard. Instance-wise reaching definition analysis for recursive programs using context-free transductions. In PACT’98, Paris, France, October 1998.Google Scholar
- 5.J.-F. Collard and M. Griebl. Array dataflow analysis for explicitly parallel programs. Parallel Processing Letters, 1997.Google Scholar
- 6.J.-F. Collard and J. Knoop. A comparative study of reaching definitions analyses. Technical Report 1998/22, PRiSM, U. of Versailles, 1998.Google Scholar
- 7.P. Cousot and R. Cousot. Comparing the Galois connection and widening/narrowing approaches to abstract interpretation. In M. Bruynooghe and M. Wirshing, editors, 4th Int. Symp. on Prog. Lang. Implem. and Logic Prog (PLILP’92), volume 631 of LNCS, pages 269–295, Leuven, Belgium, August 1992.Google Scholar
- 8.E. Duesterwald, R. Gupta, and M.-L. Soffa. A practical data flow framework for array reference analysis and its use in optimization. In ACM SIGPLAN’93 Conf. on Prog. Lang. Design and Implementation, pages 68–77, June 1993.Google Scholar
- 9.P. Feautrier. Dataflow analysis of scalar and array references. Int. Journal of Parallel Programming, 20(1):23–53, February 1991.Google Scholar
- 11.J. Knoop, D. Koschützki, and B. Steffen. Basic-block graphs: Living dinosaurs ? In Proc. of the 7th International Conference on Compiler Construction (CC’98), LNCS, Lisbon, Portugal, 1998.Google Scholar
- 12.J. Knoop and B. Steffen. The interprocedural coincidence theorem. In Proc. of the 4th International Conference on Compiler Construction (CC’92), number 641 in LNCS, Paderborn, Germany, 1992.Google Scholar
- 13.S. S. Muchnick. Advanced Compiler Design & Implementation. Morgan Kaufmann, 1997.Google Scholar
- 14.W. Pugh and D. Wonnacott. Going beyond integer programming with the omega test to eliminate false data dependences. Technical Report CS-TR-3191, U. of Maryland, December 1992.Google Scholar
- 15.D. Wonnacott and W. Pugh. Nonlinear array dependence analysis. In Proc. Third Workshop on Languages, Compilers and Run-Time Systems for Scalable Computers, 1995. Troy, New York.Google Scholar