Alias analysis pointers in Pascal and Fortran 90. I: Dependence analysis between pointer references (Q1901693)

From MaRDI portal





scientific article; zbMATH DE number 814146
Language Label Description Also known as
default for all languages
No label defined
    English
    Alias analysis pointers in Pascal and Fortran 90. I: Dependence analysis between pointer references
    scientific article; zbMATH DE number 814146

      Statements

      Alias analysis pointers in Pascal and Fortran 90. I: Dependence analysis between pointer references (English)
      0 references
      0 references
      0 references
      0 references
      16 November 1995
      0 references
      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. 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 and 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.
      0 references
      vectorizing compilers
      0 references
      pointers
      0 references
      parallelizing compilers
      0 references
      Pascal
      0 references
      Fortran 90
      0 references
      dynamic data structures
      0 references
      alias analysis
      0 references
      linked lists
      0 references
      loops
      0 references

      Identifiers