Relaxed-memory concurrency and verified compilation

  • Authors:
  • Jaroslav Ŝevčik;Viktor Vafeiadis;Francesco Zappa Nardelli;Suresh Jagannathan;Peter Sewell

  • Affiliations:
  • University of Cambridge, Cambridge, United Kingdom;MPI-SWS, Saarbruecken , Germany;INRIA, Rocquencourt, France;Purdue University, West Lafayette, USA;University of Cambridge, Cambridge, United Kingdom

  • Venue:
  • Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper, we consider the semantic design and verified compilation of a C-like programming language for concurrent shared-memory computation above x86 multiprocessors. The design of such a language is made surprisingly subtle by several factors: the relaxed-memory behaviour of the hardware, the effects of compiler optimisation on concurrent code, the need to support high-performance concurrent algorithms, and the desire for a reasonably simple programming model. In turn, this complexity makes verified (or verifying) compilation both essential and challenging. We define a concurrent relaxed-memory semantics for ClightTSO, an extension of CompCert's Clight in which the processor's memory model is exposed for high-performance code. We discuss a strategy for verifying compilation from ClightTSO to x86, which we validate with correctness proofs (building on CompCert) for the most interesting compiler phases.