diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index 38201415ff3fc1..a0365758489e3c 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -9176,10 +9176,11 @@ Syntax: :: - = load [volatile] , * [, align ][, !nontemporal !][, !invariant.load !][, !invariant.group !][, !nonnull !][, !dereferenceable !][, !dereferenceable_or_null !][, !align !] - = load atomic [volatile] , * [syncscope("")] , align [, !invariant.group !] - ! = !{ i32 1 } - ! = !{i64 } + = load [volatile] , * [, align ][, !nontemporal !][, !invariant.load !][, !invariant.group !][, !nonnull !][, !dereferenceable !][, !dereferenceable_or_null !][, !align !][, !noundef !] + = load atomic [volatile] , * [syncscope("")] , align [, !invariant.group !] + ! = !{ i32 1 } + ! = !{} + ! = !{ i64 } ! = !{ i64 } Overview: @@ -9223,7 +9224,7 @@ 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 ```` corresponding to a metadata node with one +metadata name ```` corresponding to a metadata node with one ``i32`` entry of value 1. The existence of the ``!nontemporal`` metadata on the instruction tells the optimizer and code generator that this load is not expected to be reused in the cache. The code @@ -9231,7 +9232,7 @@ generator may select special instructions to save cache bandwidth, such as the ``MOVNT`` instruction on x86. The optional ``!invariant.load`` metadata must reference a single -metadata name ```` corresponding to a metadata node with no +metadata name ```` corresponding to a metadata node with no entries. If a load instruction tagged with the ``!invariant.load`` metadata is executed, the optimizer may assume the memory location referenced by the load contains the same value at all points in the @@ -9239,11 +9240,11 @@ program where the memory location is known to be dereferenceable; otherwise, the behavior is undefined. The optional ``!invariant.group`` metadata must reference a single metadata name - ```` corresponding to a metadata node with no entries. - See ``invariant.group`` metadata :ref:`invariant.group ` + ```` corresponding to a metadata node with no entries. + See ``invariant.group`` metadata :ref:`invariant.group `. The optional ``!nonnull`` metadata must reference a single -metadata name ```` corresponding to a metadata node with no +metadata name ```` corresponding to a metadata node with no entries. The existence of the ``!nonnull`` metadata on the instruction tells the optimizer that the value loaded is known to never be null. If the value is null at runtime, the behavior is undefined. @@ -9253,13 +9254,13 @@ values. This metadata can only be applied to loads of a pointer type. The optional ``!dereferenceable`` metadata must reference a single metadata name ```` corresponding to a metadata node with one ``i64`` entry. -See ``dereferenceable`` metadata :ref:`dereferenceable ` +See ``dereferenceable`` metadata :ref:`dereferenceable `. The optional ``!dereferenceable_or_null`` metadata must reference a single metadata name ```` corresponding to a metadata node with one ``i64`` entry. See ``dereferenceable_or_null`` metadata :ref:`dereferenceable_or_null -` +`. The optional ``!align`` metadata must reference a single metadata name ```` corresponding to a metadata node with one ``i64`` entry. @@ -9309,8 +9310,10 @@ Syntax: :: - store [volatile] , * [, align ][, !nontemporal !][, !invariant.group !] ; yields void - store atomic [volatile] , * [syncscope("")] , align [, !invariant.group !] ; yields void + store [volatile] , * [, align ][, !nontemporal !][, !invariant.group !] ; yields void + store atomic [volatile] , * [syncscope("")] , align [, !invariant.group !] ; yields void + ! = !{ i32 1 } + ! = !{} Overview: """"""""" @@ -9357,15 +9360,15 @@ 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 ```` corresponding to a metadata node with one ``i32`` entry of -value 1. The existence of the ``!nontemporal`` metadata on the instruction +name ```` corresponding to a metadata node with one ``i32`` entry +of value 1. The existence of the ``!nontemporal`` metadata on the instruction tells the optimizer and code generator that this load is not expected to be reused in the cache. The code generator may select special instructions to save cache bandwidth, such as the ``MOVNT`` instruction on x86. The optional ``!invariant.group`` metadata must reference a -single metadata name ````. See ``invariant.group`` metadata. +single metadata name ````. See ``invariant.group`` metadata. Semantics: """""""""" @@ -10273,7 +10276,7 @@ Syntax: :: - = inttoptr to [, !dereferenceable !][, !dereferenceable_or_null ! = inttoptr to [, !dereferenceable !][, !dereferenceable_or_null !] ; yields ty2 Overview: """""""""