[llvm-commits] CVS: llvm-www/pubs/2008-10-EMSOFT-Volatiles.html 2008-10-EMSOFT-Volatiles.pdf 2008-10-EMSOFT-Volatiles.ppt

Chris Lattner sabre at nondot.org
Thu Nov 20 22:10:32 PST 2008



Changes in directory llvm-www/pubs:

2008-10-EMSOFT-Volatiles.html added (r1.1)
2008-10-EMSOFT-Volatiles.pdf added (r1.1)
2008-10-EMSOFT-Volatiles.ppt added (r1.1)
---
Log message:

add volatile paper.


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

 2008-10-EMSOFT-Volatiles.html |   56 ++++++++++++++++++++++++++++++++++++++++++
 2008-10-EMSOFT-Volatiles.pdf  |    0 
 2008-10-EMSOFT-Volatiles.ppt  |    0 
 3 files changed, 56 insertions(+)


Index: llvm-www/pubs/2008-10-EMSOFT-Volatiles.html
diff -c /dev/null llvm-www/pubs/2008-10-EMSOFT-Volatiles.html:1.1
*** /dev/null	Fri Nov 21 00:10:23 2008
--- llvm-www/pubs/2008-10-EMSOFT-Volatiles.html	Fri Nov 21 00:10:12 2008
***************
*** 0 ****
--- 1,56 ----
+ <!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="http://llvm.org/llvm.css" type="text/css" media="screen" />
+   <title>Volatiles Are Miscompiled, and What to Do about It</title>
+ </head>
+ <body>
+ 
+ <div class="pub_title">
+   Volatiles Are Miscompiled, and What to Do about It
+ </div>
+ <div class="pub_author">
+   Eric Eide, John Regehr
+ </div>
+ 
+ <h2>Abstract:</h2>
+ <blockquote>
+ C's volatile qualifier is intended to provide a reliable link between 
+ operations at the source-code level and operations at the memory-system 
+ level. We tested thirteen production-quality C compilers 
+ and, for each, found situations in which the compiler generated 
+ incorrect code for accessing volatile variables. This result is disturbing 
+ because it implies that embedded software and operating 
+ systems—both typically coded in C, both being bases for many 
+ mission-critical and safety-critical applications, and both relying 
+ on the correct translation of volatiles—may be being miscompiled. 
+ Our contribution is centered on a novel technique for finding 
+ volatile bugs and a novel technique for working around them. First, 
+ we present access summary testing: an efficient, practical, and automatic 
+ way to detect code-generation errors related to the volatile 
+ qualifier. We have found a number of compiler bugs by performing 
+ access summary testing on randomly generated C programs. Some 
+ of these bugs have been confirmed and fixed by compiler developers. 
+ Second, we present and evaluate a workaround for the compiler 
+ defects we discovered. In 96% of the cases in which one of 
+ our randomly generated programs is miscompiled, we can cause the 
+ faulty C compiler to produce correctly behaving code by applying 
+ a straightforward source-level transformation to the test program.
+ </blockquote>
+ 
+ <h2>Download:</h2>
+ <ul>
+   <li><a href="2008-10-EMSOFT-Volatiles.pdf">Volatiles Are Miscompiled, and What 
+       to Do about It</a> (PDF)</li>
+   <li><a href="2008-10-EMSOFT-Volatiles.ppt">Volatiles Are Miscompiled, and What 
+       to Do about It</a> (PPT Slides)</li>
+ </ul>
+ 
+ <h2>See also:</h2>
+ <ul>
+   <li><a href="http://www.cs.utah.edu/~eeide/emsoft08/">Volatile Testing Tools</a></li>
+   <li><a href="http://www.cs.utah.edu/~regehr/compiler_correctness/llvm_gcc_x86/">Current LLVM Results</a></li>
+ </ul>
+ </body>
+ </html>


Index: llvm-www/pubs/2008-10-EMSOFT-Volatiles.pdf


Index: llvm-www/pubs/2008-10-EMSOFT-Volatiles.ppt






More information about the llvm-commits mailing list