Optimizing compilers should produce efficient code even in the presence of high-level language constructs. However, current programming support systems are significantly lacking in their ability to analyze procedure calls. This deficiency complicates parallel programming, because loops with calls can be a significant source of parallelism. We describe an implementation of regular section analysis, which summarizes interprocedural side effects on subarrays in a form useful to dependence analysis while avoiding the complexity of prior solutions. The paper gives the results of experiments on the Linpack library and a small set of scientific codes.
|
1267
|
Abstract interpretation : a unified lattice model for the static analysis of programs by construction or approximation of fixpoints
– Cousot, Cousot
- 1977
|
|
276
|
LINPACK Users' Guide
– Dongarra, Bunch, et al.
- 1979
|
|
156
|
Global value numbers and redundant computations
– Rosen, Wegman, et al.
- 1988
|
|
137
|
Practical dependence testing
– Goff, Kennedy, et al.
- 1991
|
|
135
|
Software methods for improvement of cache performance on supercomputer applications
– Porterfield
- 1989
|
|
116
|
Interprocedural dependence analysis and parallelization
– Burke, Cytron
- 1986
|
|
114
|
Analysis of interprocedural side effects in a parallel programming environment
– Callahan, Cocke, et al.
- 1988
|
|
104
|
Complexity of interprocedural side-effect analysis
– Cooper, Kennedy
- 1987
|
|
100
|
Direct parallelization of CALL statements
– Triolet, Irigoin, et al.
- 1986
|
|
97
|
Affine Relationships Among Variables of a Program
– Karr
- 1976
|
|
93
|
A catalogue of optimizing transformations
– ALLEN, COCKE
- 1972
|
|
78
|
Interprocedural constant propagation
– Callahan, Cooper, et al.
- 1984
|
|
77
|
A technique for summarizing data access and its use in parallelism enhancing transformations
– Balasundaram, Kennedy
- 1989
|
|
76
|
Compiler Analysis of the Value Ranges for Variables
– Harrison
- 1977
|
|
75
|
Supercomputer performance evaluation and the Perfect Benchmarks
– CYBENKO, KIPP, et al.
- 1990
|
|
73
|
Semantic foundations of program analysis
– Cousot
- 1981
|
|
67
|
PFC: A Program to Convert Fortran to Parallel Form
– Allen, Kennedy
- 1984
|
|
64
|
A practical interprocedural data flow analysis algorithm
– Barth
- 1978
|
|
62
|
Interactive parallel programming using the ParaScope Editor
– Kennedy, McKinley, et al.
- 1991
|
|
59
|
Sh-uctured dataflow analysis for arrays and its use in an optimizing compiler
– Gross, Steenkiste
|
|
55
|
A mechanism for keeping useful internal information in parallel programming tools: The data access descriptor
– Balasundaram
- 1990
|
|
53
|
The impact of interprocedural analysis and optimization in the rn programming environment
– Cooper, Kennedy, et al.
- 1986
|
|
52
|
A Global Approach to Detection of Parallelism
– Callahan
- 1987
|
|
45
|
An Experiment with Inline Substitution
– Cooper, Hall, et al.
- 1991
|
|
40
|
Efficient interprocedural analysis for program restructuring for parallel programs
– Li, Yew
- 1988
|
|
36
|
Efficient computation of flow insensitive interprocedural summary information
– COOPER, K
- 1984
|
|
30
|
Incremental Dependence Analysis
– Rosene
- 1990
|
|
21
|
Interprocedural analysis for program restructuring with Parafrase
– Triolet
- 1985
|
|
21
|
Private communication
– Li
- 1990
|
|
15
|
Interactive Parallelization of Numerical Scientific Programs
– Balasundaram
- 1989
|
|
10
|
A Method for Determining the Side Effects of Procedure Calls
– Banning
- 1978
|
|
6
|
Program parallelization with interprocedural analysis
– Li, Yew
- 1988
|
|
4
|
Compilation Dependences in an Ambitious Optimizing Compiler
– Torczon
- 1985
|
|
2
|
An implementation of interprocedural analysis in a vectorizing Fortran compiler
– Allen, Callahan, et al.
- 1986
|
|
2
|
A direct parallelization of CALL statements -- a review
– Banerjee
- 1986
|
|
1
|
Tarjan, "Symbolic program analysis in almost-linear time
– Reif, E
- 1981
|