| From generic to specific: off-line optimization for a general constraint solver |
| Full text |
Pdf
(315 KB)
|
Source
|
Generative Programming And Component Engineering
archive
Proceedings of the 7th international conference on Generative programming and component engineering
table of contents
Nashville, TN, USA
SESSION: Technical papers 2
table of contents
Pages 45-54
Year of Publication: 2008
ISBN:978-1-60558-267-2
|
|
Authors
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 4, Downloads (12 Months): 37, Citation Count: 0
|
|
|
ABSTRACT
A general constraint solver simplifies the implementation of program analyses because constraint generation can then be separated from constraint solving. In return, a general solver often needs to sacrifice performance for generality. We describe a strategy that given a set of constraints first performs off-line optimizations (performed before the execution of the solver) which enable a solver to find (potential) equivalences between analysis variables so as to reduce the problem space and thus improve performance. The idea is that different analyses use different subsets of constraints. As a result, a specific property may hold for the subsets and a specific optimization can be conducted on the constraints. To be concrete, we introduce two off-line algorithms and apply them on the constraints generated by Andersen's pointer analysis, or by a reaching definitions analysis, respectively. The experimental results show that these algorithms dramatically reduce the effort of solving the constraints, by detecting and unifying equivalent analysis variables. Furthermore, because these optimizations are conducted on constraints instead of analysis specifications, we can reuse them for different analyses and even automatically detect the off-line analyses to be used.
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
|
L. O. Andersen. Program analysis and specialization for the C programming language. PhD thesis, DIKU, University of Copenhagen, May 1994.
|
| |
2
|
M. Buchholtz, H. R. Nielson, and F. Nielson. Experiments with succinct solvers. Technical Report IMM-TR-2002-4, Technical University of Denmark, 2002.
|
 |
3
|
|
 |
4
|
Manuel Fähndrich , Jeffrey S. Foster , Zhendong Su , Alexander Aiken, Partial online cycle elimination in inclusion constraint graphs, Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, p.85-96, June 17-19, 1998, Montreal, Quebec, Canada
|
 |
5
|
|
 |
6
|
|
 |
7
|
|
 |
8
|
|
| |
9
|
A. Kanamori and D. Weise. Worklist management strategies. Technical Report MSR-TR-94-12, Microsoft Research, 1994.
|
| |
10
|
|
| |
11
|
|
| |
12
|
|
| |
13
|
|
 |
14
|
|
| |
15
|
H. Pilegaard. A feasibility study: The Succinct Solver v2.0, XSB prolog v2.6, and flow-logic based program analysis for carmel. Technical Report SECSAFE-IMM-008-1.0, Technical University of Denmark, 2003.
|
 |
16
|
Konstantinos Sagonas , Terrance Swift , David S. Warren, XSB as an efficient deductive database engine, Proceedings of the 1994 ACM SIGMOD international conference on Management of data, p.442-453, May 24-27, 1994, Minneapolis, Minnesota, United States
|
| |
17
|
|
 |
18
|
|
| |
19
|
R. E. Tarjan. Depth-first search and linear graph algorithms. SIAM J. Comput., 1(2):146--160, 1972.
|
| |
20
|
|
| |
21
|
J. Whaley, D. Avots, M. Carbin, and M. S. Lam. Using datalog with binary decision diagrams for program analysis. In K. Yi, editor, APLAS, volume 3780 of Lecture Notes in Computer Science, pages 97--118. Springer, 2005.
|
| |
22
|
Y. Zhang and F. Nielson. A scalable inclusion constraint solver using unification. In A. King, editor, LOPSTR, volume 4915 of Lecture Notes in Computer Science, pages 121--136. Springer, 2008.
|
|