Bounded Model Checking for LLVM

Siddharth Priya, Yusen Su, Yuyan Bao, Xiang Zhou, Yakir Vizel, Arie Gurfinkel

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Bounded Model Checking (BMC) is an effective and precise static analysis technique that reduces program verification to satisfiability (SAT) solving. In this paper, we present the design and implementation of a new BMC engine (SEABMC) in the SEAHORN verification framework for LLVM. SeaBmc precisely models arithmetic, pointer, and memory operations of LLVM. Our key design innovation is to structure verification condition generation around a series of transformations, starting with a custom IR (called SEA-IR) that explicitly purifies all memory operations by explicating dependencies between them. This transformation-based approach enables supporting many different styles of verification conditions. To support memory safety checking, we extend our base approach with fat pointers and shadow bits of memory to keep track of metadata, such as the size of a pointed-to object. To evaluate SeaBmc, we have used it to verify aws-c-common library from AWS. We report on the effect of different encoding options with different SMT solvers, and also compare with CBMC, SMACK, KLEE and Symbiotic. We show that SeaBmc is capable of providing order of magnitude improvement compared with state-of-the-art.

Original languageEnglish
Title of host publicationProceedings of the 22nd Conference on Formal Methods in Computer-Aided Design, FMCAD 2022
EditorsAlberto Griggio, Neha Rungta
Pages214-224
Number of pages11
ISBN (Electronic)9783854480532
DOIs
StatePublished - 2022
Event22nd International Conference on Formal Methods in Computer-Aided Design, FMCAD 2022 - Trento, Italy
Duration: 17 Oct 202221 Oct 2022

Publication series

NameProceedings of the 22nd Conference on Formal Methods in Computer-Aided Design, FMCAD 2022

Conference

Conference22nd International Conference on Formal Methods in Computer-Aided Design, FMCAD 2022
Country/TerritoryItaly
CityTrento
Period17/10/2221/10/22

All Science Journal Classification (ASJC) codes

  • Artificial Intelligence
  • Computer Graphics and Computer-Aided Design
  • Safety, Risk, Reliability and Quality
  • Modelling and Simulation

Fingerprint

Dive into the research topics of 'Bounded Model Checking for LLVM'. Together they form a unique fingerprint.

Cite this