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]

C++0x Memory model and gcc


I've been working for a while on understanding how the new memory model and Atomics work, and what the impacts are on GCC.

It would be ideal to get as many of these changes into GCC 4.6 as possible. I've started work on some of the modifications and testing, and the overall impact on GCC shouldn't be *too* bad :-)

The plan is to localize the changes as much as possible, and any intrusive bits like optimization changes will be controlled by a flag enabling us to keep the current behaviour when we want it.

I've put together a document summarizing how the memory model works, and how I propose to make the changes. I've converted it to wiki pages. Maybe no one will laugh at my choice of document format this time :-)

The document is linked off the Atomics wiki page, or directly here: http://gcc.gnu.org/wiki/Atomic/GCCMM

It consists mainly of describing the 2 primary aspects of the memory model which affects us
- Optimization changes to avoid introducing new data races
- Implementation of atomic variables and synchronization modes
as well as a new infrastructure to test these types of things.


I'm sure I've screwed something up while doing it, and I will proofread it later today again and tweak it further.

Please point out anything that isn't clear, or is downright wrong. Especially in the testing methodology since its all new stuff.
Suggestions for improvements on any of the plan are welcome as well.


Andrew




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