Title/Author/Abstract
- Title:
A Compiler for Multiple Memory Models
- Author:
Sam Midkiff, Jaejin Lee, David Padua
- Full Paper(.ps version)
- Abstract:
The design of consistency models for both hardware and software is a
difficult task. For programming languages it is particularly difficult
because the target audience for a programming language is much wider than
the target audience for a hardware programming language, making usability a
more important criteria. Exacerbating this problem is the reality that the
programming languages community has very little experience designing
programming language consistency models, and therefore each new attempt is
very much a voyage into uncharted territory. A concrete example of the
difficulties of the task is the current Java Memory Model. Although
designed to be easy to use by Java programmers, it is poorly understood and
at least one common idiom (the "double check idiom") to exploit the model
is unsafe. In this paper we describe the design of an optimizing Java
compiler that will allow a consistency model for the code to be compiled to
be specified as an input. The compiler will use Shasha and Snir's delay
set analysis, and our CSSA program representation, to normalize the effects
of different consistency models on optimizations and analysis. When
completed, the compiler will serve as a testbed to prototype new memory
models, and to measure the differences of different memory models on
program performance.
Please contact our
webadmin with any comments or changes.
Unless explicitly stated otherwise, all material is
copyright © The University of Edinburgh.