Structured dataflow analysis for arrays and its use in an optimizing compiler (1990)
| Venue: | Software---Practice and Experience |
| Citations: | 52 - 0 self |
BibTeX
@ARTICLE{Gross90structureddataflow,
author = {Thomas Gross and Peter Steenkiste},
title = {Structured dataflow analysis for arrays and its use in an optimizing compiler},
journal = {Software---Practice and Experience},
year = {1990},
pages = {133--155}
}
Years of Citing Articles
OpenURL
Abstract
We extend the well-known interval analysis method so that it can be used to gather global flow information for individual array elements. Data dependences between all array accesses in different basic blocks, different iterations of the same loop, and across different loops are computed and represented as labelled arcs in a program flow graph. This approach results in a uniform treatment of scalars and arrays in the compiler and builds a systematic basis from which the compiler can perform numerous global optimizations. This global dataflow analysis is performed as a separate phase in the compiler. This phase only gathers the global relationships between different accesses to a variable, yet the use of this information is left to the code generator. This organization substantially simplifies the engineering of an optimizing compiler and separates the back end of the compiler (e.g. code generator and register allocator) from the flow analysis part. The global dataflow analysis algorithm described in this paper has been implemented and used in an optimizing compiler for a processor with deep pipelines. This paper describes the algorithm and its compact implementation and evaluates it, both with respect to the accuracy of the information and to the compile-time cost of obtaining and using it. KEY WORDS Compilation Global dataflow analysis Interval analysis Optimization Pipelining







