Weak Memory Demands Model-based Compiler Testing@The Future of Weak Memory (POPL 2024)
Talk and Paper
I gave a talk at the Future of Weak Memory Workshop at POPL 2024 titled Weak Memory Demands Model-based Compiler Testing.
A copy of the paper can be found on the POPL website
The paper is also on ArXiv.
ACM SIGPLAN upload the recorded talk here (2 hours, 10 minutes in)
The abstract is repeated here:
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 relaxed hardware 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.