[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