This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: C++0x Memory model and gcc


On 05/10/2010 12:39 AM, Ian Lance Taylor wrote:
Albert Cohen<Albert.Cohen@inria.fr> writes:

I agree. Or even, =c++0x or =gnu++0x


On the other hand, I fail to see the differen between =single and
=fast, and the explanation about "the same memory word" is not really
relevant as memory models typically tell you about concurrent accesses
to "different memory words".
What I was thinking is that the difference between =single and =fast
is that =single permits store speculation.  The difference between
=fast and =safe/=conformant is that =fast permits writing to a byte by
loading a word, changing the byte, and storing the word; in
particular, =fast permits write combining in cases where =safe does
not.

Memory models may not talk about memory words, but they exist
nevertheless.

Ian

I've changed the documentation and code to --params suggestion and the following, for now. we can work out the exact wording and other options later.


-fmemory-model=c++0x - Disable data races as per architectural requirements to match the standard.
-fmemory-model=safe - Disable all data race introductions. (enforce all 4 internal restrictions.)
-fmemory-model=single - Enable all data races introductions, as they are today. (relax all 4 internal restrictions.)


Andrew



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]