Abstract
Precise value-based data dependence analysis for scalars is useful for advanced compiler optimizations. The new method presented here for flow and output dependence uses Factored Use and Def chains (FUD chains), our interpretation and extension of Static Single Assignment. It is precise with respect to conditional control flow and dependence vectors. Our method detects dependences which are independent with respect to arbitrary loop nesting, as well as loop-carried dependences. A loop-carried dependence is further classified as being carried by the previous iteration, with distance 1, or by any previous iteration, with direction <. This precision cannot be achieved by traditional analysis, such as dominator information or reaching definitions. To compute anti- and input dependence, we use Factored Redef-Use chains, which are related to FUD chains. We are not aware of any prior work which explicitly deals with scalar data dependence utilizing a sparse graph representation.
Supported in part by NSF grant CCR-9113885 and a grant from Intel Corporation and the Oregon Advanced Computing Institute.
Preview
Unable to display preview. Download preview PDF.
References
John R. Allen and Ken Kennedy. Automatic translation of Fortran programs to vector form. ACM Trans. on Programming Languages and Systems, 9(4):491–542, October 1987.
Robert A. Ballance, Arthur B. Maccabe, and Karl J. Ottenstein. The Program Dependence Web: A representation supporting control-, data-, and demand-driven interpretation of imperative languages. In Proc. ACM SIGPLAN '90 Conf. on Programming Language Design and Implementation, pages 257–271, White Plains, NY, June 1990.
Michael Burke, Ron Cytron, Jeanne Ferrante, and Wilson Hsieh. Automatic generation of nested, fork-join parallelism. The Journal of Supercomputing, 3(2):71–88, July 1989.
Jong-Deok Choi, Ron Cytron, and Jeanne Ferrante. Automatic construction of sparse data flow evaluation graphs. In Conf. Record 18th Annual ACM Symp. Principles of Programming Languages, pages 55–66, Orlando, Florida, January 1991.
George Cybenko, Lyle Kipp, Lynn Pointer, and David Kuck. Supercomputer performance evaluation and the Perfect Benchmarks. In International Conference on Supercomputing, pages 254–266, March 1990.
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, and F. Kenneth Zadeck. Efficiently computing Static Single Assignment form and the control dependence graph. ACM Trans. on Programming Languages and Systems, 13(4):451–490, October 1991.
Paul Feautrier. Dataflow analysis of array and scalar references. International Journal of Parallel Programming, 20(1):23–54, 1991.
Michael P. Gerlek, Eric Stoltz, and Michael Wolfe. Beyond induction variables: Detecting and classifying sequences using a demand-driven SSA form. To appear in TOPLAS.
Richard Johnson and Keshav Pingali. Dependence-based program analysis. In Proc. ACM SIGPLAN '93 Conf. on Programming Language Design and Implementation, pages 78–89, Albuquerque, NM, June 1993.
Vadim Maslov. Lazy array data-flow dependence analysis. In Conf. Record 21st Annual ACM Symp. Principles of Programming Languages, pages 311–325, Portland, OR, January 1994.
Eric Stoltz, Michael P. Gerlek, and Michael Wolfe. Extended SSA with factored use-def chains to support optimization and parallelism. In Proc. of 27th Annual Hawaii International Conference on System Sciences, pages 43–52, January 1994.
Eric Stoltz, Michael Wolfe, and Michael P. Gerlek. Constant propagation: A fresh, demand-driven look. In Symposium on Applied Computing, Phoenix, AZ, March 1994. ACM SIGAPP.
Chau-Wen Tseng. An optimizing Fortran D compiler for MIMD distributed-memory machines. PhD Dissertation TR93-199, Rice University, Dept. of Computer Science, January 1993.
Michael E. Wolf. Improving locality and parallelism in nested loops. PhD Dissertation COMP TR. CSL-TR-92-538, Stanford Univ., Dept. Computer Science, August 1992.
Michael Wolfe. Optimizing Supercompilers for Supercomputers. Research Monographs in Parallel and Distributed Computing. Pitman Publishing, London, 1989. (also available from MIT Press).
Michael Wolfe and Utpal Banerjee. Data dependence and its application to parallel processing. International J. Parallel Programming, 16(2):137–178, April 1987.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Stoltz, E., Wolfe, M. (1995). Detecting value-based scalar dependence. In: Pingali, K., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1994. Lecture Notes in Computer Science, vol 892. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0025879
Download citation
DOI: https://doi.org/10.1007/BFb0025879
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-58868-9
Online ISBN: 978-3-540-49134-7
eBook Packages: Springer Book Archive