ACM Home Page
Please provide us with feedback. Feedback
From generic to specific: off-line optimization for a general constraint solver
Full text PdfPdf (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
Ye Zhang  Technical University of Denmark, Lyngby, Denmark
Torben Amtoft  Kansas State University, Manhattan, KS, USA
Flemming Nielson  Technical University of Denmark, Lyngby, Denmark
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 37,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1449913.1449922
What is a DOI?

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
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
 
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.

Collaborative Colleagues:
Ye Zhang: colleagues
Torben Amtoft: colleagues
Flemming Nielson: colleagues