diff options
| author | Artur Pilipenko <apilipenko@azulsystems.com> | 2015-09-28 17:41:08 +0000 |
|---|---|---|
| committer | Artur Pilipenko <apilipenko@azulsystems.com> | 2015-09-28 17:41:08 +0000 |
| commit | b4d009042bb897bc21b9ef8cb99785533488f7b2 (patch) | |
| tree | 2a07bde627ee4e887a1b05689ed7e5eb20d4fb38 /llvm/docs | |
| parent | 8aba4b058908937817443b8a23e1829806471b86 (diff) | |
| download | bcm5719-llvm-b4d009042bb897bc21b9ef8cb99785533488f7b2.tar.gz bcm5719-llvm-b4d009042bb897bc21b9ef8cb99785533488f7b2.zip | |
Introduce !align metadata for load instruction
Reviewed By: hfinkel
Differential Revision: http://reviews.llvm.org/D12853
llvm-svn: 248721
Diffstat (limited to 'llvm/docs')
| -rw-r--r-- | llvm/docs/LangRef.rst | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index 9b8aaa7a1fd..bc4df058646 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -6860,10 +6860,11 @@ Syntax: :: - <result> = load [volatile] <ty>, <ty>* <pointer>[, align <alignment>][, !nontemporal !<index>][, !invariant.load !<index>][, !invariant.group !<index>][, !nonnull !<index>][, !dereferenceable !<deref_bytes_node>][, !dereferenceable_or_null !<deref_bytes_node>] + <result> = load [volatile] <ty>, <ty>* <pointer>[, align <alignment>][, !nontemporal !<index>][, !invariant.load !<index>][, !invariant.group !<index>][, !nonnull !<index>][, !dereferenceable !<deref_bytes_node>][, !dereferenceable_or_null !<deref_bytes_node>][, !align !<align_node>] <result> = load atomic [volatile] <ty>* <pointer> [singlethread] <ordering>, align <alignment> [, !invariant.group !<index>] !<index> = !{ i32 1 } !<deref_bytes_node> = !{i64 <dereferenceable_bytes>} + !<align_node> = !{ i64 <value_alignment> } Overview: """"""""" @@ -6948,6 +6949,14 @@ value in the metadata node. This is analogous to the ''dereferenceable_or_null'' attribute on parameters and return values. This metadata can only be applied to loads of a pointer type. +The optional ``!align`` metadata must reference a single metadata name +``<align_node>`` corresponding to a metadata node with one ``i64`` entry. +The existence of the ``!align`` metadata on the instruction tells the +optimizer that the value loaded is known to be aligned to a boundary specified +by the integer value in the metadata node. The alignment must be a power of 2. +This is analogous to the ''align'' attribute on parameters and return values. +This metadata can only be applied to loads of a pointer type. + Semantics: """""""""" |

