2010
DOI: 10.1007/978-3-642-11957-6_10
|View full text |Cite
|
Sign up to set email alerts
|

A Theory of Speculative Computation

Abstract: Abstract. We propose a formal definition for (valid) speculative computations, which is independent of any implementation technique. By speculative computations we mean optimization mechanisms that rely on relaxing the flow of execution in a given program, and on guessing the values read from pointers in the memory. Our framework for formalizing these computations is the standard operational one that is used to describe the semantics of programming languages. In particular, we introduce speculation contexts, t… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
7
0

Year Published

2012
2012
2023
2023

Publication Types

Select...
7
1
1

Relationship

1
8

Authors

Journals

citations
Cited by 14 publications
(7 citation statements)
references
References 31 publications
0
7
0
Order By: Relevance
“…-The construction is independent from the language syntax and thread-local operational semantics, which is highly desirable for tackling a complex language like C. This contrasts with explicit-speculation calculi, e.g. [15,22]. -For entirely thread-local computation, as thread-local variables do not create memory events, optimisations are already factored into the computation of the thread-local LTS.…”
Section: R X=0 {A}mentioning
confidence: 99%
“…-The construction is independent from the language syntax and thread-local operational semantics, which is highly desirable for tackling a complex language like C. This contrasts with explicit-speculation calculi, e.g. [15,22]. -For entirely thread-local computation, as thread-local variables do not create memory events, optimisations are already factored into the computation of the thread-local LTS.…”
Section: R X=0 {A}mentioning
confidence: 99%
“…By this we mean that it consists in a set of rules that specify what can be the next step to perform, to go from one configuration to another. This contrasts with [8] for instance, where a whole sequence of steps is only deemed a valid behavior if it can be shown equivalent to a computation in normal order. We notice that, again constrasting [8], our model preserves a notion of causality: a read can only return a value that is present in the shared memory, or that is previously written by some thread.…”
Section: Introductionmentioning
confidence: 95%
“…This contrasts with [8] for instance, where a whole sequence of steps is only deemed a valid behavior if it can be shown equivalent to a computation in normal order. We notice that, again constrasting [8], our model preserves a notion of causality: a read can only return a value that is present in the shared memory, or that is previously written by some thread. Our notion of a temporary store is quite similar to the "reorder box" of [13], but formulated in the standard framework of programming language semantics.…”
Section: Introductionmentioning
confidence: 95%
“…From a certified compiler perspective, an operational definition of the JMM is desirable. There are several attempts to provide such a semantics [7,8,10,16] but none of them has been used in a proof assistant. Our operational semantics is inspired by the TSO memory model proposed in [35] which has been formalized in Coq.…”
Section: Related Workmentioning
confidence: 99%