[cpp-threads] infinite loops

Lawrence Crowl lawrence.crowl at gmail.com
Thu Aug 17 19:17:34 BST 2006


On 8/16/06, Boehm, Hans <hans.boehm at hp.com> wrote:
> Clearly the transformation is invalid if either count13 or count17 is
> volatile or atomic, or if an opaque function call is involved.  But lots
> of compiler loop transformations that we do all the time have similar
> restrictions.  (If memory mapped I/O were involved, one of the above
> better apply.)

So, the two statements

    f = 1.0; c = 1.0;

have different synchronization effects when

    float f; std::complex<float> c;

What happens with direct compiler implementation of complex?
Will the compiler be required to not optimize because the standard
cannot rely on a direct compiler implementation?  Will the
programmer need to code around different compilers?

I think we are heading for trouble here.  I would rather we have
a specification that does not treat function calls specially, because
programmers do not know what calls are opaque.

-- 
Lawrence Crowl



More information about the cpp-threads mailing list