Efficient Interprocedural Array Data-Flow Analysis for Automatic Program Parallelization

  • Authors:
  • Junjie Gu;Zhiyuan Li

  • Affiliations:
  • Sun Microsystems, Inc., Palo Alto, CA;Purdue Univ., West Lafayette, IN

  • Venue:
  • IEEE Transactions on Software Engineering - Special issue on architecture-independent languages and software tools for parallel processing
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

Since sequential languages such as Fortran and C are more machine-independent than current parallel languages, it is highly desirable to develop powerful parallelization-tools which can generate parallel codes, automatically or semiautomatically, targeting different parallel architectures. Array data-flow analysis is known to be crucial to the success of automatic parallelization. Such an analysis should be performed interprocedurally and symbolically and it often needs to handle the predicates represented by IF conditions. Unfortunately, such a powerful program analysis can be extremely time-consuming if not carefully designed. How to enhance the efficiency of this analysis to a practical level remains an issue largely untouched to date. This paper presents techniques for efficient interprocedural array data-flow analysis and documents experimental results of its implementation in a research parallelizing compiler. Our techniques are based on guarded array regions and the resulting tool runs faster, by one or two orders of magnitude, than other similarly powerful tools.