Verifying optimizations for concurrent programs

William Mansky, Elsa L. Gunter

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

While program correctness for compiled languages depends fundamentally on compiler correctness, compiler optimizations are not usually formally verified due to the effort involved, particularly in the presence of concurrency. In this paper, we present a framework for stating and reasoning about compiler optimizations and transformations on programs in the presence of relaxed memory models. The core of the framework is the PTRANS specification language, in which program transformations are expressed as rewrites on control flow graphs with temporal logic side conditions. We demonstrate our technique by verifying the correctness of a redundant store elimination optimization in a simple LLVM-like intermediate language, relying on a theorem that allows us to lift single-thread simulation relations to simulations on multithreaded programs.

Original languageEnglish (US)
Title of host publication1st International Workshop on Rewriting Techniques for Program Transformations and Evaluation, WPTE 2014
PublisherSchloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing
Pages15-26
Number of pages12
ISBN (Print)9783939897705
DOIs
StatePublished - 2014
Event1st International Workshop on Rewriting Techniques for Program Transformations and Evaluation, WPTE 2014 - Vienna, Austria
Duration: Jul 13 2014Jul 13 2014

Publication series

NameOpenAccess Series in Informatics
Volume40
ISSN (Print)2190-6807

Other

Other1st International Workshop on Rewriting Techniques for Program Transformations and Evaluation, WPTE 2014
Country/TerritoryAustria
CityVienna
Period7/13/147/13/14

Keywords

  • Interactive theorem proving
  • Optimizing compilers
  • Program transformations
  • Relaxed memory models
  • Temporal logic

ASJC Scopus subject areas

  • Geography, Planning and Development
  • Modeling and Simulation

Fingerprint

Dive into the research topics of 'Verifying optimizations for concurrent programs'. Together they form a unique fingerprint.

Cite this