z 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 semi-automatically, 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.
|
357
|
Efficient Context-Sensitive Pointer Analysis for C Programs
– Wilson, Lam
- 1995
|
|
342
|
Context-sensitive interprocedural points-to analysis in the presence of function pointers
– Emami, Ghiya, et al.
|
|
311
|
A Safe Approximate Algorithm for Interprocedural Pointer Aliasing
– Landi, Ryder
- 1992
|
|
222
|
Maximizing Multiprocessor Performance with the SUIF Compiler
– Hall, Anderson, et al.
- 1996
|
|
213
|
others. The PERFECT club benchmarks: Effective performance evaluation of supercomputers
– Berry
- 1989
|
|
199
|
An implementation of interprocedural bounded regular section analysis
– Havlak, Kennedy
- 1991
|
|
192
|
Interprocedural May-Alias Analysis for Pointers: Beyond k-Limiting
– Deutsch
- 1994
|
|
187
|
Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects
– Choi, Burke, et al.
- 1993
|
|
183
|
Dataflow analysis of array and scalar references
– Feautrier
- 1991
|
|
144
|
Parallel programming with Polaris
– Blume, Doallo, et al.
- 1996
|
|
126
|
Context-insensitive alias analysis reconsidered
– Ruf
- 1995
|
|
125
|
Automatic array privatization
– Tu, Padua
- 1993
|
|
116
|
Analysis of interprocedural side effects in a parallel programming environment
– CALLAHAN, K
- 1988
|
|
116
|
A schema for interprocedural modification side-effect analysis with pointer aliasing
– Ryder, Landi, et al.
- 2001
|
|
114
|
A precise inter-procedural data flow algorithm
– Myers
- 1981
|
|
103
|
Experience in the automatic parallelization of four Perfect-Benchmark programs
– Eigenmann, Hoeflinger, et al.
- 1991
|
|
101
|
Direct parallelization of CALL statements
– Triolet, Irigoin, et al.
- 1986
|
|
93
|
Array data-flow analysis and its use in array privatization
– MAYDAN, AMARASINGHE, et al.
- 1993
|
|
79
|
An exact method for analysis of valuebased array data dependences
– Pugh, Wonnacott
- 1993
|
|
77
|
Semantical interprocedural parallelization: An overview of the PIPS project
– IRIGOIN, JOUVELOT, et al.
- 1991
|
|
73
|
Array privatization for parallel execution of loops
– Li
- 1992
|
|
66
|
Gated SSA-based demand-driven symbolic analysis for parallelizing compilers
– TU, A
- 1995
|
|
61
|
Interprocedural array region analyses
– CREUSILLET, F
- 1995
|
|
59
|
Sh-uctured dataflow analysis for arrays and its use in an optimizing compiler
– Gross, Steenkiste
|
|
58
|
A practical data flow framework for array reference analysis and its application in optimization
– DUESTERWALD, GUPTA, et al.
- 1993
|
|
56
|
A mechanism for keeping useful internal information in parallel programming tools: The data access descriptor
– Balasundaram
- 1990
|
|
44
|
Program decomposition for pointer aliasing: A step toward practical analyses
– Zhang, Ryder, et al.
- 1996
|
|
43
|
An overview of symbolic analysis techniques needed for the effective parallelization of the PERFECT benchmarks
– Blume, Eigenmann
- 1994
|
|
37
|
Symbolic array dataflow analysis for array privatization and program parallelization
– Gu, Li, et al.
- 1995
|
|
36
|
Symbolic Evaluation and the Analysis of Programs
– Cheatham, Holloway, et al.
- 1979
|
|
36
|
On the Automatic Parallelization of the Perfect Benchmarks
– Eigenmann, Hoeflinger, et al.
- 1998
|
|
36
|
Interprocedural analysis for parallelization
– HALL, MURPHY, et al.
- 1995
|
|
33
|
Accurate Analysis of Array References
– Maydan
- 1992
|
|
31
|
The Structure of Computers and Computations. Volume 1
– Kuck
- 1978
|
|
30
|
Incremental Dependence Analysis
– Rosene
- 1990
|
|
28
|
Lazy array data-flow dependence analysis
– Maslov
- 1994
|
|
22
|
Applications of symbolic evaluation
– Clarke, Richardson
- 1985
|
|
21
|
Interprocedural analysis for program restructuring with Parafrase
– Triolet
- 1985
|
|
12
|
An interprocedural parallelizing compiler and its support for memory hierarchy research
– NGUYEN, GU, et al.
- 1995
|
|
6
|
Program parallelization with interprocedural analysis
– Li, Yew
- 1988
|
|
3
|
Interprocedural analysis for parallel computing
– Li, Yew
- 1988
|
|
1
|
Symbolic dependence analysis for parallelizing compilers
– Haghighat, Polychronopoulos
- 1994
|