Do any or both of the following properties hold for the proposed memory
P1: "If an execution has a valid justification order, then it has a
valid justification order that has no prescient reads."
P2: "If an execution has a valid justification order, then it has a
valid justification order that has no prescient actions other than
In other words, my question is: I understand that prescient writes are
necessary, since they allow threads to see writes out of order, but does
it make a difference if other prescient actions are allowed or not?
Perhaps they are allowed only so that a justification order for an
execution E of a program P can also be used as a justification order for
an execution E' of an optimized program P'? Particularly, I do not see
what the implications are of allowing prescient reads (except, again, as
a proof technique).
I could attempt to prove these properties myself, but I figured it's
easier to ask those whose insight in the JMM is such that they can tell
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel
This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:53 EDT