This Article 
 Bibliographic References 
 Add to: 
Going Beyond Integer Programming with the Omega Test to Eliminate False Data Dependences
February 1995 (vol. 6 no. 2)
pp. 204-211

Abstract—Array data dependence analysis methods currently in use generate false dependences that can prevent useful program transformations. These false dependences arise because the questions asked are conservative approximations to the questions we really should be asking. Unfortunately, the questions we really should be asking go beyond integer programming and require decision procedures for a subclass of Presburger formulas. In this paper, we describe how to extend the Omega test so that it can answer these queries and allow us to eliminate these false data dependences. We have implemented the techniques described here and believe they are suitable for use in production compilers.

[1] V. Balasundaram and K. Kennedy, "A Technique for Summarizing Data Access and Its Use in Parallelism Enhancing Transformations," Proc. SIGPLAN '89 Conf. Programming Language Design and Implementation, pp. 41-53,Portland, Ore., June 1989.
[2] W. W. Bledsoe,“A new method for proving certain presburger formulas,”inAdvance Papers, 4th Int. Joint Conf. Artif. Intell., Tibilisi,, U.S.S.R, 1975.
[3] T. Brandes,“The importance of direct dependences for automatic parallelism,”inProc. 1988 Int. Conf. Supercomput., July 1988, pp. 407–417.
[4] D. C. Cooper,“Theorem proving in arithmetic with multiplication,”inMachine Intelligence 7, B. Meltzer and D. Michie, Eds. New York: American Elsevier, 1972, pp. 91–99.
[5] D. Y. Cheng and D. M. Pase,“An evaluation of automatic and interactive parallel programming tools,”inSupercomputing '91, Nov. 1991, pp. 412–423.
[6] G. B. Dantzig and B. C. Eaves,“Fourier-Motzkin elimination and its dual,”J. Combinatorial Theory (A), vol. 14, pp. 288–297, 1973.
[7] P. Feautrier,“Dataflow analysis of array and scalar references,”Int. J. Parallel Programming, vol. 20, no. 1, Feb. 1991.
[8] T. Gross and P. Steenkiste, “Structured Data-Flow Analysis for Arrays and Its Use in an Optimizing Compiler,” Software Practice and Experience, vol. 20, no. 2, pp. 133–155, Feb. 1990.
[9] M. W. Hall, T. Karvey, K. Kennedy, N. McIntosh, K. S. McKinley, J. D. Oldham, M. Paleczny, and G. Roth,“Experiences using the parascope editor: An interactive parallel programming tool,”inPrinciples and Practice of Parallel Programming, Apr. 1993.
[10] M. Haghighat and C. Polychronopoulos,“Symbolic dependence analysis for high-performance parallelizing compilers,”inAdvances In Languages And Compilers for Parallel Processing, Aug. 1991.
[11] ——,“A graph-theoretic approach for timing analysis and its implementation,”IEEE Trans. Comput., vol. C-36, pp. 961–975, Aug. 1987.
[12] G. Kreisel and J. L. Krevine,Elements of Mathematical Logic. Amsterdam, The Netherlands: North-Holland, 1967.
[13] W. Kelly and W. Pugh,“A framework for unifying reordering transformations,”Dept. of Comput. Sci., Univ. Maryland, College Park, Tech. Rep., CS-TR-3193, Apr. 1993.
[14] D. Klappholz, K. Psarris, and X. Kong,“On the perfect accuracy of an approximate subscript analysis test,”inProc. 1990 Int. Conf. Supercomput., Nov. 1990, pp. 201–212.
[15] D. Levine, D. Callahan, and J. Dongarra,“A comparative study of automatic vectorizing compilers,”Argonne Nat. Lab., Tech. Rep., MCS-P218-0391, Apr. 1991.
[16] Z. Li, “Array Privatization for Parallel Execution of Loops,” Proc. ACM Int'l. Conf. Supercomputing, pp. 313-322, July 1992.
[17] D.E. Maydan, S.P. Amarasinghe, and M.S. Lam, "Data Dependence and Data-Flow Analysis of Arrays," Proc. Fourth Workshop Programming Languages and Compilers for Parallel Computing, Aug. 1992.
[18] D.E. Maydan, S.P. Amarasinghe, and M.S. Lam, “Array Data-flow Analysis and Its Use in Array Privatization,” Proc. 20th ACM Symp. Principles of Programming Languages, pp. 2–15, Jan. 1993.
[19] D.E. Maydan, “Accurate Analysis of Array References,” PhD thesis, Stanford Univ., Oct. 1992.
[20] K. S. McKinley,“Dependence analysis of arrays subscripted by index arrays,”Dept. of Comput. Sci., Rice Univ., Tech. Rep. RICE COMP TR91-162, Dec. 1990.
[21] D. Oppen,“A$2^{2^{2^{pn}}}$upper bound on the complexity of presburger arithmetic,”J. Comput. Syst. Sci., vol. 16, no. 3, pp. 323–332, July 1978.
[22] W. Pugh, “The Omega Test: A Fast and Practical Integer Programming Algorithm for Dependence Analysis,” Comm. ACM, vol. 8, pp. 102–114, Aug. 1992.
[23] ——,“Definitions of dependence distance,”Lett. Programming Languages Syst., Sept. 1993.
[24] W. Pugh and D. Wonnacott, “Eliminating False Data Dependences Using the Omega Test,” Proc. Programming Languages Design and Implementation, June 1992.
[25] ——,“Going beyond integer programming with the Omega test to eliminate false data dependences,”Dep. of Comput. Sci., Univ. Maryland, College Park, Tech. Rep. CS-TR-3191, Dec. 1992. An earlier version of this paper appeared at theSIGPLAN PLDI '92 Conf..
[26] W. Pugh and D. Wonnacott, “An Exact Method for Analysis of Value-Based Array Data Dependences,” Proc. Sixth Ann. Workshop Programming Languages and Compilers for Parallel Computing, Aug. 1993.
[27] ——,“Static analysis of upper and lower bounds on dependences and parallelism,”ACM Trans. Programming Languages Syst., 1993. Accepted for publication.
[28] H. Ribas,“Obtaining dependence vectors for nested-loop computations,”inProc. 1990 Int. Conf. Parallel Process., Aug. 1990, pp. II-212–II-219.
[29] C. Rosene, “Incremental Dependence Analysis,” Technical report CRPC-TR90044, PhD thesis, Computer Science Dept., Rice Univ., Mar. 1990.
[30] R. E. Shostak,“On the SUP-INF method for proving Presburger formulas,”J. ACM,vol. 24, no. 4, pp. 529–543, Oct. 1977.
[31] Z. Shen, Z. Li, and P. Yew,“An emperical student of array subscripts and data dependences,”inProc. 1989 Int. Conf. Parallel Process., Aug. 1989.
[32] V. V. Voevodin,Mathematical Foundations of Parallel Computing. New York: World Scientific Publishers, 1992; World Scientific Series in Computer Science, vol. 33.
[33] ——,“Theory and practice of parallelism detection in sequential programs.”Programming and Comput. Software$($Programmirovaniye$)$, vol. 18, no. 3, May 1992.
[34] M. Wolfe,“The tiny loop restructuring research tool,”inProc. 1991 Int. Conf. Parallel Process., 1991, pp. II-46–II-53.
[35] H. Zima and B. Chapman, Supercompilers for Parallel and Vector Computers. ACM Press, 1990.

William Pugh, David Wonnacott, "Going Beyond Integer Programming with the Omega Test to Eliminate False Data Dependences," IEEE Transactions on Parallel and Distributed Systems, vol. 6, no. 2, pp. 204-211, Feb. 1995, doi:10.1109/71.342135
Usage of this product signifies your acceptance of the Terms of Use.