Compilers transform programs, either to optimize performance or to translate language-level constructs into hardware primitives. For concurrent programs, ensuring that a transformation preserves the semantics of the input program can be challenging. In particu-lar, the emitted code must correctly emulate the semantics of the language-level memory model when running on hardware with a relaxed memory model. In this paper, we present a novel proof methodology for prov-ing the soundness of compiler transformations for concurrent pro-grams. Our methodology is based on a new formalization of mem-ory models as dynamic rewrite rules on event streams. We imple-ment our proof methodology in a first-of-its-kind semi-automated tool called Traver to ver...
The most intuitive memory model for shared-memory multi-threaded programming is sequenti...
Rewrite rules with side conditions can elegantly express many classical compiler optimizations for i...
It has been observed in previous work that it is desirable to avoid causal violations in any executi...
We consider the verified compilation of high-level managed languages like Java or C # whose intermed...
While program correctness for compiled languages depends fundamentally on compiler correctness, comp...
Software developers, compiler designers, and formal methods researchers all stand to benefit from im...
We analyse the validity of common optimisations on multi-threaded programs in two memory models—the ...
Compilers are not always correct due to the complexity of language semantics and transformation algo...
International audienceWe consider the verified compilation of high-level managed languages like Java...
We analyse the validity of common optimisations on multi-threaded programs in two memory models—the ...
Software developers, compiler designers, and formal methods researchers all stand to benefit from im...
Compilers are not always correct due to the complexity of language semantics and transformation algo...
Shared memory concurrency is the pervasive programming model for multicore architectures such as x8...
Many hardware and compiler optimisations introduced to speed up single-threaded programs also introd...
In this paper, we establish a notion of causality that should be used as a desideratum for memory mo...
The most intuitive memory model for shared-memory multi-threaded programming is sequenti...
Rewrite rules with side conditions can elegantly express many classical compiler optimizations for i...
It has been observed in previous work that it is desirable to avoid causal violations in any executi...
We consider the verified compilation of high-level managed languages like Java or C # whose intermed...
While program correctness for compiled languages depends fundamentally on compiler correctness, comp...
Software developers, compiler designers, and formal methods researchers all stand to benefit from im...
We analyse the validity of common optimisations on multi-threaded programs in two memory models—the ...
Compilers are not always correct due to the complexity of language semantics and transformation algo...
International audienceWe consider the verified compilation of high-level managed languages like Java...
We analyse the validity of common optimisations on multi-threaded programs in two memory models—the ...
Software developers, compiler designers, and formal methods researchers all stand to benefit from im...
Compilers are not always correct due to the complexity of language semantics and transformation algo...
Shared memory concurrency is the pervasive programming model for multicore architectures such as x8...
Many hardware and compiler optimisations introduced to speed up single-threaded programs also introd...
In this paper, we establish a notion of causality that should be used as a desideratum for memory mo...
The most intuitive memory model for shared-memory multi-threaded programming is sequenti...
Rewrite rules with side conditions can elegantly express many classical compiler optimizations for i...
It has been observed in previous work that it is desirable to avoid causal violations in any executi...