Weak Memory Demands Model-based Compiler Testing

Fuente: arXiv
Enregistré dans:
Détails bibliographiques
Auteur principal: Geeson, Luke
Format: Preprint
Publié: 2024
Sujets:
Accès en ligne:
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866913199006154752
author Geeson, Luke
author_facet Geeson, Luke
contents A compiler bug arises if the behaviour of a compiled concurrent program, as allowed by its architecture memory model, is not a behaviour permitted by the source program under its source model. One might reasonably think that most compiler bugs have been found in the decade since the introduction of the C/C++ memory model. We observe that processor implementations are increasingly exploiting the behaviour of relaxed architecture models. As such, compiled programs may exhibit bugs not seen on older hardware. To account for this we require model-based compiler testing. While this observation is not surprising, its implications are broad. Compilers and their testing tools will need to be updated to follow hardware relaxations, concurrent test generators will need to be improved, and assumptions of prior work will need revisiting. We explore these ideas using a compiler toolchain bug we reported in LLVM.
format Preprint
id arxiv_https___arxiv_org_abs_2401_09474
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Weak Memory Demands Model-based Compiler Testing
Geeson, Luke
Programming Languages
Hardware Architecture
Software Engineering
D.1.3; B.1.2; B.1.4; D.2.5
A compiler bug arises if the behaviour of a compiled concurrent program, as allowed by its architecture memory model, is not a behaviour permitted by the source program under its source model. One might reasonably think that most compiler bugs have been found in the decade since the introduction of the C/C++ memory model. We observe that processor implementations are increasingly exploiting the behaviour of relaxed architecture models. As such, compiled programs may exhibit bugs not seen on older hardware. To account for this we require model-based compiler testing. While this observation is not surprising, its implications are broad. Compilers and their testing tools will need to be updated to follow hardware relaxations, concurrent test generators will need to be improved, and assumptions of prior work will need revisiting. We explore these ideas using a compiler toolchain bug we reported in LLVM.
title Weak Memory Demands Model-based Compiler Testing
topic Programming Languages
Hardware Architecture
Software Engineering
D.1.3; B.1.2; B.1.4; D.2.5
url https://arxiv.org/abs/2401.09474