Affiliation:
1. Rutgers University
2. Siemens Corporate Research, Inc.
Abstract
The first interprocedural modification side-effects analysis for C (MOD
C
) that obtains better than worst-case precision on programs with general-purpose pointer usage is presented with empirical results. The analysis consists of an algorithm schema corresponding to a family of MOD
C
algorithms with two independent phases: one for determining pointer-induced aliases and a subsequent one for propagating interprocedural side effects. These MOD
C
algorithms are parameterized by the aliasing method used. The empirical results compare the performance of two dissimilar MOD
C
algorithms: MOD
C
(
FSAlias
) uses a flow-sensitive, calling-context-sensitive interprocedural alias analysis; MOD
C
(
FIAlias
uses a flow-insensitive, calling-context-insensitive alias analysis which is much faster, but less accurate. These two algorithms were profiled on 45 programs ranging in size from 250 to 30,000 lines of C code, and the results demonstrate dramatically the possible cost-precision trade-offs. This
first comparative
implementation of MOD
C
analyses offers insight into the differences between
flow-/context-sensitive
and
flow-/context-insensitive
analyses. The analysis cost versus precision trade-offs in side-effect information obtained are reported. The results show surprisingly that the precision of flow-sensitive side-effect analysis is not always prohibitive in cost, and that the precision of flow-insensitive analysis is substantially better than worst-case estimates and seems sufficient for certain applications. On average MOD
C
(
FSAlias
) for procedures and calls is in the range of 20% more precise than MOD
C
(
FIAlias
); however, the performance was found to be at least an order of magnitude slower than MOD
C
(
FIAlias
).
Publisher
Association for Computing Machinery (ACM)
Cited by
43 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Generalized Points-to Graphs;ACM Transactions on Programming Languages and Systems;2020-06-30
2. Region and effect inference for safe parallelism;Automated Software Engineering;2019-05-11
3. CoBOT;Proceedings of the 26th Conference on Program Comprehension;2018-05-28
4. Symbolic range analysis of pointers;Proceedings of the 2016 International Symposium on Code Generation and Optimization;2016-02-29
5. Region and Effect Inference for Safe Parallelism (T);2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE);2015-11