Abstract
Data dependence distance is widely used to characterize data dependences in advance optimizing compilers. The standard definition of dependence distance assumes that loops are normalized (have constant lower bounds and a step of 1); there is not a commonly accepted definition for unnormalized loops. We have identified several potential definitions, all of which give the same answer for normalized loops. There are a number of subtleties involved in choosing between these definitions, and no one definition is suitable for all applications.
- 1 BANERJEE, U. Unimodular transformations of double loops. In Proceedings of the 3rd Workshop on Programming Languages and Compilers for Parallel Computing (Irvine, Calif., Aug. 1990).Google Scholar
- 2 FEAUTRIER, P. Dataflow analysis of array and scalar references. Int. J. Parall. Programm. 20, 1 (Feb. 1991).Google Scholar
- 3 MAYDAN, D. E., AMARASINGHE, S. P., AND LAM, M.S. Array data-flow analysis and its use in array privatization. In the ACM "93 Conference on Principles of Programming Languages, (Jan. 1993). ACM, New York. Google Scholar
- 4 PUGH, W. Uniform techniques for loop optimization. In Proceedings of the 1991 International Conference on Supercomputing (Cologne, Germany, June 1991), 341-352. Google Scholar
- 5 WOLFE, M. Experiences with data dependence abstractions. In Proceedings of the 1991 International Conference on Supercomputing (Cologne, Germany, June 1991), 321-329. Google Scholar
- 6 ZIMA, H., AND CHAPMAN, B. Supercompilers for Parallel and Vector Computers. ACM Press, New York, 1991. Google Scholar
Index Terms
- Definitions of dependence distance
Recommendations
The definition of dependence distance
Several definitions of dependence distance can be found in the literature. A single coherent definition is the vector distance between the iteration vectors of two iterations involved in a dependence relation. Different ways to associate iteration ...
Fast condensation of the program dependence graph
PLDI '13Aggressive compiler optimizations are formulated around the Program Dependence Graph (PDG). Many techniques, including loop fission and parallelization are concerned primarily with dependence cycles in the PDG. The Directed Acyclic Graph of Strongly ...
Fast condensation of the program dependence graph
PLDI '13: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and ImplementationAggressive compiler optimizations are formulated around the Program Dependence Graph (PDG). Many techniques, including loop fission and parallelization are concerned primarily with dependence cycles in the PDG. The Directed Acyclic Graph of Strongly ...
Comments