Title:
A Framework for Understanding Data Dependences
A Framework for Understanding Data Dependences
Author(s)
Orso, Alessandro
Liang, Donglin
Sinha, Saurabh
Harrold, Mary Jean
Liang, Donglin
Sinha, Saurabh
Harrold, Mary Jean
Advisor(s)
Editor(s)
Collections
Supplementary to
Permanent Link
Abstract
Identifying and understanding data dependences is important for a variety of
software-engineering tasks. The presence of pointers, arrays, and dynamic
memory allocation introduces subtle and complex data dependences that may be
difficult to understand. In this paper, we present a refinement of our
previously developed classification that also distinguishes the types of
memory locations, considers interprocedural data dependences, and further
distinguishes such data dependences based on the kinds of interprocedura
paths on which they occur. This new classification enables reasoning about
the complexity of data dependences in programs using features such as pointers, arrays, and dynamic memory
allocation. We present an algorithm for computing interprocedural data
dependences according to our classification. To evaluate the classification,
we compute the distribution of data dependences for a set of real C programs
and we discuss how the distribution can be useful in understanding the
characteristics of a program. We also evaluate how alias information
provided by different algorithms, varying in precision, affects the
distribution. Finally, we investigate how the classification can be exploited
to estimate complexity of the data dependences in a program.
Sponsor
Date Issued
2002
Extent
417659 bytes
Resource Type
Text
Resource Subtype
Technical Report