Skip to main content
Log in

Alias analysis of pointers in Pascal and Fortran 90: dependence analysis between pointer references

  • Published:
Acta Informatica Aims and scope Submit manuscript

Abstract

Vectorization and parallelization of programs written in languages where pointers are used is now a subject of increasing interest. The presence of pointers in programs, however, poses new problems to dependence analysis in vectorizing and parallelizing compilers which had been designed to target only at FORTRAN77 programs. In this paper, a new method to analyze dependencies between pointer references in Pascal is proposed, which can also be applied to Fortran 90. It is designed to handle programs with dynamic data structures, such as linear linked lists or trees, which are the most common use of pointers. The method divides into two stages. The first stage is a safe alias analysis which handles any kind of dynamic data structures. The second stage focuses on the specific data structures. It first detects linear linked lists, and then performs dependence analysis between pointer references to the same list. The paper also proposes ways to enhance the second stage. Tree structures are handled here. Loops which manipulate linked lists can now be considered for vectorization by the proposed analysis. Techniques to vectorize such loops are presented in this paper. Some of the proposed algorithms are implemented in V-Pascal, the automatic vectorizing Pascal compiler of our laboratory. The effectiveness of the vectorization of list operations is proved by an experiment on HITAC S-820/80.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: principles, techniques, and tools. Reading, MA: Addison-Wesley 1986

    Google Scholar 

  2. Banerjee, U.: Dependence analysis for supercomputing. Boston: Kluwer Academic Publishers 1988

    Google Scholar 

  3. Chase, D.R., Wegman, M., Zadeck, F.K.: Analysis of pointers and structures. Proc. of SIGPLAN’90 Conf. on Programming Language Design and Implementation (June), pp. 296–310 1990

  4. Cooper, K.D.: Analyzing aliases of reference formal parameters. Conf. Rec. 12th ACM Symp. on Principles of Programming Languages (January), pp. 281–290 1985

  5. Guarna, V.A. Jr.: A technique for analyzing pointers and structure references in parallel restructuring compilers. Proc. Int. Conf. on Parallel Processing —1988 (Aug.), vol. 2, pp. 212–220 1988

    Google Scholar 

  6. Harary, F.: Graph theory. Reading, MA: Addison-Wesley 1971

    Google Scholar 

  7. Hendren, L.J., Nicolau, A.: Interference analysis tools for parallelizing programs with recursive data structures. Proc. Int. Conf. on Supercomputing (June), pp. 205–214 1989

  8. Hendren, L.J., Nicolau, A.: Parallelizing programs with recursive data structures. Proc. Internat. Conf. on Parallel Processing (August), pp. II: 49–56 1989

  9. Hockney, R.W., Jesshope, C.R.: Parallel computers 2. Bristol: IOP Publishing Ltd. 1988

    MATH  Google Scholar 

  10. ISO/IEC: Information technology —programming languages —Fortran, ISO/IEC 1539, 2nd ed. 1991

  11. Loeliger, J., Metzger, R., Seligman, M., Stroud, S.: Pointer target tracking —an empirical study. Proc. Supercomputing’91, pp. 14–23. Los Alamitos, Calif.: IEEE Computer Society Press 1991

    Google Scholar 

  12. Smith, L.L.: Vectorizing C Compilers: how good are they? Proc. Supercomputing’91, pp. 544–553. Los Alamitos, Calif.: IEEE Computer Society Press 1991

    Google Scholar 

  13. Suehiro, K.: Automatic vectorization and parallelization of while loops. 45th Convention Record of the Information Processing Society of Japan (Tokushima, Oct. 1992), pp. 5–51 and 5–52 (in Japanese)

  14. Tsuda, T., Kunieda, Y.: V-Pascal: An automatic vectorizing compiler for Pascal with no language extensions. The J. Supercomputing 5 251–275 (1990)

    Article  Google Scholar 

  15. Uehara, T., Tsuda, T.: Automatic vectorization and parallelization of recursive procedures. Proc. Joint Symp. on Parallel Processings’93 (Tokyo, May 1993), pp. 135–142 (in Japanese)

  16. Zima, H., Chapman, B.: Supercompilers for vector and parallel computers. New York: ACM Press 1991

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

A preliminary version of this paper was presented in the International Symposium on Supercomputing, November 6–8, 1991, Fukuoka, Japan

Rights and permissions

Reprints and permissions

About this article

Cite this article

Matsumoto, A., Han, D.S. & Tsuda, T. Alias analysis of pointers in Pascal and Fortran 90: dependence analysis between pointer references. Acta Informatica 33, 99–130 (1996). https://doi.org/10.1007/s002360050037

Download citation

  • Received:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s002360050037

Keywords

Navigation