[cpp-threads] Web site updated

Boehm, Hans hans.boehm at hp.com
Tue Feb 13 19:26:09 GMT 2007


> 
> MMIO accesses, anyone?  Hardware timing analysis (especially 
> if there is a short loop between the two)?
> 
> Let's please just outlaw that sort of optimization for 
> store_raw(), so that it can retain its full meaning.
> 
My understanding is that we are constrained here as to what we can
require in normative standards text.  Any program using memory mapped IO
or relying on timing is clearly using features well beyond the standard,
and hence we can't say anything about its behavior.  I think that's one
problem with the original, imho not very successful, attempt to define
"volatile" in the standard.

In general, we cannot formally prohibit any compiler transformation that
is not observable in a conforming program.  We are probably a bit more
constrained, in that I don't think we can require anything that implies
fairness, since we almost certainly want nonpreemptively scheduled
threads packages to conform.  (This constraint probably doesn't apply to
Microsoft's PRISM, and they may want to diverge here.)

I am less clear as to what we can reasonably suggest as nonbinding notes
in the standard.  And I suspect we can express intentions like this
there, but this will not result in a binding requirement.  It may
nonetheless be observed, since I doubt you will get much benefit on
standard benchmarks by combining atomic operations or the like.

Hans



More information about the cpp-threads mailing list