|
ABSTRACT
Pointer analysis, a classic problem in software program analysis, has emerged as an important problem to solve in design automation, at a time when complex designs, specified in the form of C code, need to be synthesized or verified. However, precise pointer analysis algorithms that are both context and flow sensitive (FSCS), have not been shown to scale. In this paper, we report a new solution for FSCS analysis, which can evaluate the program states of all program points under billions of different calling paths. Our solution extends the recently proposed symbolic pointer analysis (SPA) technology, which exploits the efficiency of Binary Decision Diagrams (BDDs). With our new strategy of problem solving, called superposed symbolic computation, and its application on our generic pointer analysis framework, we are able to report the first result on all SPEC2000 benchmarks that completes context sensitive, flow insensitive analysis in seconds, and context sensitive, flow sensitive analysis in minutes.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
Marc Berndl , Ondrej Lhoták , Feng Qian , Laurie Hendren , Navindra Umanee, Points-to analysis using BDDs, Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation, June 09-11, 2003, San Diego, California, USA
|
| |
2
|
|
| |
3
|
J. R. Burch, E. M. Clarke, K. L. McMillan, D. L. Dill, and L. J. Hwang. Symbolic model checking: 1020 states and beyond. In Proceedings of the Fifth Annual IEEE Symposium on Logic in Computer Science, Washington, DC, 1990.
|
 |
4
|
|
 |
5
|
Ben-Chung Cheng , Wen-Mei W. Hwu, Modular interprocedural pointer analysis using access paths: design, implementation, and evaluation, Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, p.57-69, June 18-21, 2000, Vancouver, British Columbia, Canada
|
| |
6
|
O. Coudert, C. Berthet, and J. C. Madre. A unified framework for the formal verification of sequential circuits. In Proceedings of the International Conference on Computer-Aided Design, pages 126--129, November 1990.
|
 |
7
|
|
| |
8
|
S. A. Edwards. The challenges of hardware synthesis from C-like languages. In Proceedings of the International Workshop of Logic and Synthesis (IWLS), June 2004.
|
 |
9
|
Maryam Emami , Rakesh Ghiya , Laurie J. Hendren, Context-sensitive interprocedural points-to analysis in the presence of function pointers, Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation, p.242-256, June 20-24, 1994, Orlando, Florida, United States
|
 |
10
|
Manuel Fähndrich , Jakob Rehof , Manuvir Das, Scalable context-sensitive flow analysis using instantiation constraints, Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, p.253-263, June 18-21, 2000, Vancouver, British Columbia, Canada
|
| |
11
|
|
| |
12
|
D. Gajski, J. Zhu, D. Doemer, A. Gerstlauer, and S. Zhao. SpecC: Specification Language and Methodology. Kluwer Academic Publishers, Boston, March 2000.
|
 |
13
|
|
 |
14
|
|
 |
15
|
|
| |
16
|
|
 |
17
|
Stan Liao , Steve Tjiang , Rajesh Gupta, An efficient implementation of reactivity for modeling hardware in the scenic design environment, Proceedings of the 34th annual conference on Design automation, p.70-75, June 09-13, 1997, Anaheim, California, United States
[doi> 10.1145/266021.266037]
|
 |
18
|
|
 |
19
|
|
 |
20
|
|
| |
21
|
L. Semeria and G. D. Micheli. Resolution, optimization, and encoding of pointer variables for the behavioral synthesis from C. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, February 2001.
|
| |
22
|
L. Semeria, K. Sata, and G. D. Micheli. Synthesis of hardware models in C with pointers and complex data structures. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, February 2001.
|
| |
23
|
F. Somenzi. CUDD: Binary decision diagram package release. http://vlsi.Colorado.EDU/~fabio/CUDD/cuddIntro.html, 1998.
|
| |
24
|
SystemC Web Site. http://www.systemc.org.
|
 |
25
|
|
 |
26
|
|
| |
27
|
|
 |
28
|
|
 |
29
|
|
| |
30
|
J. Zhu, R. Doemer, and D. Gajski. Syntax and semantics of SpecC+ language. In Proceedings of the Ninth Workshop on Synthesis and System Integration of Mixed Technologies, Japan, December 1997.
|
|