Content area

Abstract

Randomly generated programs are popular for testing compilers and program analysis tools, with hundreds of bugs in real-world C compilers found by random testing. However, existing random program generators may generate large amounts of dead code (computations whose result is never used). This leaves relatively little code to exercise a target compiler's more complex optimizations. To address this shortcoming, we introduce liveness-driven random program generation. In this approach the random program is constructed bottom-up, guided by a simultaneous structural data-flow analysis to ensure that the generator never generates dead code. The algorithm is implemented as a plugin for the Frama-C framework. We evaluate it in comparison to Csmith, the standard random C program generator. Our tool generates programs that compile to more machine code with a more complex instruction mix.

Details

1009240
Title
Liveness-Driven Random Program Generation
Publication title
arXiv.org; Ithaca
Publication year
2017
Publication date
Sep 13, 2017
Section
Computer Science
Publisher
Cornell University Library, arXiv.org
Source
arXiv.org
Place of publication
Ithaca
Country of publication
United States
University/institution
Cornell University Library arXiv.org
e-ISSN
2331-8422
Source type
Working Paper
Language of publication
English
Document type
Working Paper
Publication history
 
 
Online publication date
2017-09-14
Milestone dates
2017-09-13 (Submission v1)
Publication history
 
 
   First posting date
14 Sep 2017
ProQuest document ID
2076909992
Document URL
https://www.proquest.com/working-papers/liveness-driven-random-program-generation/docview/2076909992/se-2?accountid=208611
Full text outside of ProQuest
Copyright
© 2017. This work is published under http://arxiv.org/licenses/nonexclusive-distrib/1.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.
Last updated
2019-04-13
Database
ProQuest One Academic