Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1109/ISSRE.2015.7381814guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Studying the influence of standard compiler optimizations on symbolic execution

Published: 02 November 2015 Publication History

Abstract

Systematic testing plays a vital role in increasing software reliability. A particularly effective and popular approach for systematic testing is symbolic execution, which analyzes a large number of program behaviors using symbolic inputs. Even though symbolic execution is among the most studied analyses during the last decade, scaling it to real-world applications remains a key challenge. This paper studies how a class of semantics-preserving program transformations, namely compiler optimizations, which are designed to enhance performance of standard program execution (using concrete inputs), influence traditional symbolic execution. As an enabling technology, the study uses KLEE, a well-known symbolic execution engine based on the LLVM compiler infrastructure, and focuses on 33 optimization flags of LLVM. Our specific research questions include: (1) how different optimizations influence the performance of symbolic execution for Unix Coreutils, (2) how the influence varies across two different program classes, and (3) how the influence varies across three different back-end constraint solvers. Some of our findings surprised us. For example, applying the 33 optimizations in a pre-defined order provides a slowdown (compared to applying no optimization) for a majority of the Coreutils when using the basic depth-first search with no constraint caching. The key finding of our work is that standard compiler optimizations need to be used with care when performing symbolic execution for creating tests that provide high code coverage. We hope our study motivates future research on harnessing the power of symbolic execution more effectively for enhancing software reliability, e.g., by designing program transformations specifically to scale symbolic execution or by studying broader classes of traditional compiler optimizations in the context of different search heuristics, memoization, and other strategies employed by modern symbolic execution tools.

Cited By

View all
  • (2023)Speeding up SMT Solving via Compiler OptimizationProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3616357(1177-1189)Online publication date: 30-Nov-2023
  • (2022)FastKLEE: faster symbolic execution via reducing redundant bound checking of type-safe pointersProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3558919(1741-1745)Online publication date: 7-Nov-2022
  • (2022)A synergistic approach to improving symbolic execution using test rangesInnovations in Systems and Software Engineering10.1007/s11334-019-00331-915:3-4(325-342)Online publication date: 10-Mar-2022
  • Show More Cited By

Index Terms

  1. Studying the influence of standard compiler optimizations on symbolic execution
    Index terms have been assigned to the content through auto-classification.

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    ISSRE '15: Proceedings of the 2015 IEEE 26th International Symposium on Software Reliability Engineering (ISSRE)
    November 2015
    575 pages
    ISBN:9781509004065

    Publisher

    IEEE Computer Society

    United States

    Publication History

    Published: 02 November 2015

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 22 Sep 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Speeding up SMT Solving via Compiler OptimizationProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3616357(1177-1189)Online publication date: 30-Nov-2023
    • (2022)FastKLEE: faster symbolic execution via reducing redundant bound checking of type-safe pointersProceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3540250.3558919(1741-1745)Online publication date: 7-Nov-2022
    • (2022)A synergistic approach to improving symbolic execution using test rangesInnovations in Systems and Software Engineering10.1007/s11334-019-00331-915:3-4(325-342)Online publication date: 10-Mar-2022
    • (2020)Exposing cache timing side-channel leaks through out-of-order symbolic executionProceedings of the ACM on Programming Languages10.1145/34282154:OOPSLA(1-32)Online publication date: 13-Nov-2020
    • (2020)Fast bit-vector satisfiabilityProceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3395363.3397378(38-50)Online publication date: 18-Jul-2020
    • (2019)SLFProceedings of the 41st International Conference on Software Engineering10.1109/ICSE.2019.00080(712-723)Online publication date: 25-May-2019
    • (2018)MC/DC coverage-oriented compiler optimization for symbolic executionProceedings of the 40th International Conference on Software Engineering: Companion Proceeedings10.1145/3183440.3195102(214-215)Online publication date: 27-May-2018
    • (2018)A Survey of Symbolic Execution TechniquesACM Computing Surveys10.1145/318265751:3(1-39)Online publication date: 23-May-2018
    • (2017)Discovering instructions for robust binary-level coverage criteriaProceedings of the 1st ACM SIGSOFT International Workshop on Testing Embedded and Cyber-Physical Systems10.1145/3107091.3107092(1-4)Online publication date: 13-Jul-2017
    • (2017)Accelerating array constraints in symbolic executionProceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3092703.3092728(68-78)Online publication date: 10-Jul-2017
    • Show More Cited By

    View Options

    View options

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media