[llvm-commits] CVS: llvm-www/pubs/2007-06-10-PLDI-DSA.html

Chris Lattner sabre at nondot.org
Wed Mar 28 20:26:14 PDT 2007



Changes in directory llvm-www/pubs:

2007-06-10-PLDI-DSA.html added (r1.1)
---
Log message:

new paper


---
Diffs of the changes:  (+92 -0)

 2007-06-10-PLDI-DSA.html |   92 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 92 insertions(+)


Index: llvm-www/pubs/2007-06-10-PLDI-DSA.html
diff -c /dev/null llvm-www/pubs/2007-06-10-PLDI-DSA.html:1.1
*** /dev/null	Wed Mar 28 22:26:07 2007
--- llvm-www/pubs/2007-06-10-PLDI-DSA.html	Wed Mar 28 22:25:57 2007
***************
*** 0 ****
--- 1,92 ----
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+ <html>
+ <head>
+   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+   <link rel="stylesheet" href="../llvm.css" type="text/css" media="screen">
+   <title>Making Context-Sensitive Points-to Analysis with Heap Cloning
+         Practical For The Real World</title>
+ </head>
+ <body>
+ 
+ <div class="pub_title">
+   Making Context-Sensitive Points-to Analysis with Heap Cloning
+         Practical For The Real World
+ </div>
+ <div class="pub_author">
+   <a href="http://www.nondot.org/sabre/">Chris Lattner</a>,
+   Andrew Lenharth, and
+   <a href="http://www.cs.uiuc.edu/~vadve">Vikram Adve</a>
+ </div>
+ 
+ <h2>Abstract:</h2>
+ <blockquote>
+ Context-sensitive pointer analysis algorithms with full "heap
+ cloning" are powerful but are widely considered to be too expensive
+ to include in production compilers.  This paper shows, for the first
+ time, that a context-sensitive, field-sensitive algorithm with full
+ heap cloning (by acyclic call paths) can indeed be both scalable and
+ extremely fast in practice.  Overall, the algorithm is able to analyze
+ programs in the range of 100K-200K lines of C code in 1-3 seconds,
+ takes less than 5% of the time it takes for GCC to compile the code
+ (which includes no whole-program
+ analysis), and scales well across five orders of magnitude of code
+ size.  It is also able to analyze the Linux kernel (about 355K lines
+ of code) in 3.1 seconds.  The paper describes the major algorithmic
+ and engineering design choices that are required to achieve these
+ results, including (a) using flow-insensitive and unification-based
+ analysis, which are essential to avoid exponential behavior in
+ practice;
+ (b) sacrificing context-sensitivity within strongly connected components
+ of the call graph; and
+ (c) carefully eliminating several kinds of O(N<sup>2</sup>) behaviors (largely
+ without affecting precision).
+ The techniques used for (b) and (c) eliminated several major bottlenecks
+ to scalability, and both are generalizable to
+ other context-sensitive algorithms.  We show that the engineering
+ choices collectively reduce analysis time by factors of up to 3x-21x
+ in our ten largest programs, and that the savings grow strongly 
+ with program size.
+ Finally, we briefly summarize results demonstrating the precision of the
+ analysis.
+ </blockquote>
+ 
+ <h2>Published:</h2>
+ <blockquote>
+   "Making Context-Sensitive Points-to Analysis with Heap Cloning
+         Practical For The Real World"<br>
+   Chris Lattner, Andrew Lenharth, and Vikram Adve.<br>
+   Proc. of the 2007 ACM SIGPLAN Conference on Programming Language 
+   Design and Implementation (PLDI'07), San Diego, CA, Jun, 2007.
+ </blockquote>
+ 
+ <h2>Download:</h2>
+ <h3>Paper:</h3>
+ <ul>
+   <li><a href="2007-06-10-PLDI-DSA.pdf">Making Context-Sensitive Points-to
+        Analysis with Heap Cloning Practical For The Real World</a> (PDF)</li>
+ </ul>
+ 
+ <h3>Slides:</h3>
+ <p>not yet</p>
+ 
+ <h2>BibTeX Entry:</h2>
+ <pre>
+   @InProceedings{DSA:PLDI07,
+     author    = {Chris Lattner and Vikram Adve},
+     title     = "{Making Context-Sensitive Points-to Analysis with Heap Cloning Practical For The Real World}",
+     booktitle = "{Proceedings of the 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'07)}",
+     address   = {San Diego, California},
+     month     = {June},
+     year      = {2007}
+   }
+ </pre>
+ 
+ <!-- *********************************************************************** -->
+ <hr>
+   <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
+   src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a>
+   <a href="http://validator.w3.org/check/referer"><img
+   src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
+ 
+ </body>
+ </html>






More information about the llvm-commits mailing list