Speaker: Viktor Vafeiadis
The talk will discuss recent work on checking the correctness of LLVM compiler optimisations on C11 programs as far as concurrency is concerned. We have built a validator checks that optimisations performed by the compiler do not change memory accesses in ways disallowed by the C11 and/or LLVM memory models. Although the LLVM concurrency model has not yet fully been formalised, our experiments highlight an important difference between the C11 and LLVM memory models, which has led to some misunderstanding among compiler developers, which in turn led to concurrency-specific compilation errors. This is joint work with Soham Chakraborty.