A conservative data flow algorithm for detecting all pairs of statements that may happen in parallel
- 1 November 1998
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 23 (6) , 24-34
- https://doi.org/10.1145/288195.288213
Abstract
Information about which pairs of statements in a concurrent program can execute in parallel is important for optimizing and debugging programs, for detecting anomalies, and for improving the accuracy of data flow analysis. In this paper, we describe a new data flow algorithm that finds a conservative approximation of the set of all such pairs. We have carried out an initial comparison of the precision of our algorithm and that of the most precise of the earlier approaches, Masticola and Ryder's non-concurrency analysis [8], using a sample of 159 concurrent Ada programs that includes the collection assembled by Masticola and Ryder. For these examples, our algorithm was almost always more precise than non-concurrency analysis, in the sense that the set of pairs identified by our algorithm as possibly happening in parallel is a proper subset of the set identified by non-concurrency analysis. In 132 cases, we were able to use reachability analysis to determine exactly the set of pairs of statements that may happen in parallel. For these cases, there were a total of only 10 pairs identified by our algorithm that cannot actually happen in parallel.Keywords
This publication has 9 references indexed in Scilit:
- Verification of concurrent software with FLAVERSPublished by Association for Computing Machinery (ACM) ,1997
- Demand interprocedural dataflow analysisPublished by Association for Computing Machinery (ACM) ,1995
- Lattice frameworks for multisource and bidirectional data flow problemsACM Transactions on Programming Languages and Systems, 1995
- Data flow analysis for verifying properties of concurrent programsPublished by Association for Computing Machinery (ACM) ,1994
- Non-concurrency analysisPublished by Association for Computing Machinery (ACM) ,1993
- Concurrency analysis in the presence of procedures using a data-flow frameworkPublished by Association for Computing Machinery (ACM) ,1991
- Properties of data flow frameworksActa Informatica, 1990
- Static analysis of low-level synchronizationPublished by Association for Computing Machinery (ACM) ,1988
- Complexity of analyzing the synchronization structure of concurrent programsActa Informatica, 1983