summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2016-06-16 16:33:41 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2016-06-16 16:33:41 +0000
commit7020f255b1807704e0dfc5a42f3016b0b940327b (patch)
tree77d230f48a7f33942209960b6813e85399dadf98
parent4a90f57ef217677839f89976a1f4d3e6b5469422 (diff)
downloadbcm5719-llvm-7020f255b1807704e0dfc5a42f3016b0b940327b.tar.gz
bcm5719-llvm-7020f255b1807704e0dfc5a42f3016b0b940327b.zip
LangRef: Note expectations when loading with extra alignment
llvm-svn: 272914
-rw-r--r--llvm/docs/LangRef.rst16
1 files changed, 14 insertions, 2 deletions
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst
index 086df648da4..42ee5bf7262 100644
--- a/llvm/docs/LangRef.rst
+++ b/llvm/docs/LangRef.rst
@@ -7019,7 +7019,12 @@ alignment for the target. It is the responsibility of the code emitter
to ensure that the alignment information is correct. Overestimating the
alignment results in undefined behavior. Underestimating the alignment
may produce less efficient code. An alignment of 1 is always safe. The
-maximum possible alignment is ``1 << 29``.
+maximum possible alignment is ``1 << 29``. An alignment value higher
+than the size of the loaded type implies memory up to the alignment
+value bytes can be safely loaded without trapping in the default
+address space. Access of the high bytes can interfere with debugging
+tools, so should not be accessed if the function has the
+``sanitize_thread`` or ``sanitize_address`` attributes.
The optional ``!nontemporal`` metadata must reference a single
metadata name ``<index>`` corresponding to a metadata node with one
@@ -7144,7 +7149,14 @@ alignment for the target. It is the responsibility of the code emitter
to ensure that the alignment information is correct. Overestimating the
alignment results in undefined behavior. Underestimating the
alignment may produce less efficient code. An alignment of 1 is always
-safe. The maximum possible alignment is ``1 << 29``.
+safe. The maximum possible alignment is ``1 << 29``. An alignment
+value higher than the size of the stored type implies memory up to the
+alignment value bytes can be stored to without trapping in the default
+address space. Storing to the higher bytes however may result in data
+races if another thread can access the same address. Introducing a
+data race is not allowed. Storing to the extra bytes is not allowed
+even in situations where a data race is known to not exist if the
+function has the ``sanitize_address`` attribute.
The optional ``!nontemporal`` metadata must reference a single metadata
name ``<index>`` corresponding to a metadata node with one ``i32`` entry of
OpenPOWER on IntegriCloud