]> granicus.if.org Git - llvm/commit
[LangRef] Clarify semantics of volatile operations.
authorEli Friedman <efriedma@codeaurora.org>
Tue, 22 Jan 2019 00:42:20 +0000 (00:42 +0000)
committerEli Friedman <efriedma@codeaurora.org>
Tue, 22 Jan 2019 00:42:20 +0000 (00:42 +0000)
commit5cba8a26a42dea02c9099bf1eaa05e59daea201c
tree8714158e9ebf9553c4d57525f938b4c7add7c297
parentb771a49ffaf44a3b85a5c5af5e1ac112d9a2a515
[LangRef] Clarify semantics of volatile operations.

Specifically, clarify the following:

1. Volatile load and store may access addresses that are not memory.
2. Volatile load and store do not modify arbitrary memory.
3. Volatile load and store do not trap.

Prompted by recent volatile discussion on llvmdev.

Currently, there's sort of a split in the source code about whether
volatile operations are allowed to trap; this resolves that dispute in
favor of not allowing them to trap.

Differential Revision: https://reviews.llvm.org/D53184

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351772 91177308-0d34-0410-b5e6-96231b3b80d8
docs/LangRef.rst