]> git.ipfire.org Git - thirdparty/gcc.git/blob - libitm/doc/the-libitm-abi/memory-model.rst
sphinx: add missing trailing newline
[thirdparty/gcc.git] / libitm / doc / the-libitm-abi / memory-model.rst
1 ..
2 Copyright 1988-2022 Free Software Foundation, Inc.
3 This is part of the GCC manual.
4 For copying conditions, see the copyright.rst file.
5
6 [New] Memory model
7 ******************
8
9 The ABI should define a memory model and the ordering that is guaranteed for
10 data transfers and commit/undo actions, or at least refer to another memory
11 model that needs to be preserved. Without that, the compiler cannot ensure the
12 memory model specified on the level of the programming language (e.g., by the
13 C++ TM specification).
14
15 For example, if a transactional load is ordered before another load/store, then
16 the TM runtime must also ensure this ordering when accessing shared state. If
17 not, this might break the kind of publication safety used in the C++ TM
18 specification. Likewise, the TM runtime must ensure privatization safety.