Efficient and exact data dependence analysis
1991, ACM SIGPLAN Notices
https://doi.org/10.1145/113446.113447Abstract
Data dependence testing is the basic step in detecting loop level parallelism in numerieal programs. The problem is equivalent to integer linear programming and thus in general cannot be solved efficiently. Current methods in use employ inexact methods that sacrifice potential parallelism in order to improve compiler efficiency. This paper shows that in practice, data dependence can be computed exactly and efficiently. There are three major ideas that lead to this result. First, we have developed and assembled a small set of efficient algorithms, each one exact for special case inputs. Combined with a moderately expensive backup test, they are exact for all the cases we have seen in practice. Second, we introduce a memorization technique to save results of previous tests, thus avoiding calling the data dependence routines multiple times on the same input. Third, we show that this approach can both be extended to compute distance and direction vectors and to use unknowns ymbolic terms without any loss of accuracy or efficiency, We have implemented our algorithm in the SUIF system, a general purpose compiler system developwl at Stanford. We ran the algorithm on the PERFECT Club Benchmarks and our data dependence analyzer gave an exact solution in all cases efficiently, Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation.
References (5)
- H. Abelson, G. J. Sussman, and J. Sussman. Struc- ture and Interpretation of Computer Programs. The MIT Press, 1985. [2] [31 [4] [5] [6] [7] [8] [9]
- R. Allen and K. Kennedy. Automatic translation of FORTRAN programs to vector form. ACM Trans- actions on Programming Languages and Systems, 9(4):491-542, October 1987.
- U. Banerjee. Speedup of Ordinary Programs. PhD thesis, University of Illinois at Urbana-Champaign, October 1979.
- U. Banerjee. Dependence Analysis for Supercom- puting. Kluwer Academic, 1988.
- M. Burke and R. Cytron. Interprocedural depen- dence analysis and parallelization. In Proceed- ings of the SIGPL4N 1986 Symposium on Compiler