Sciweavers

ECOOP
2008
Springer

On Validity of Program Transformations in the Java Memory Model

13 years 6 months ago
On Validity of Program Transformations in the Java Memory Model
Abstract. We analyse the validity of several common program transformations in multi-threaded Java, as defined by the Java Memory Model (JMM) section of Chapter 17 of the Java Language Specification. The main design goal of the JMM was to allow as many optimisations as possible. However, we find that commonly used optimisations, such as common subexpression elimination, can introduce new behaviours and so are invalid for Java. In this paper, we describe several kinds of transformations and explain the problems with a number of counterexamples. More positively, we also examine some valid transformations, and prove their validity. Our study contributes to the understanding of the JMM, and has the practical impact of revealing some cases where the Sun Hotspot JVM does not comply with the Java Memory Model.
Jaroslav Sevcík, David Aspinall
Added 19 Oct 2010
Updated 19 Oct 2010
Type Conference
Year 2008
Where ECOOP
Authors Jaroslav Sevcík, David Aspinall
Comments (0)