diff options
author | Pete Cooper <peter_cooper@apple.com> | 2012-02-10 18:13:54 +0000 |
---|---|---|
committer | Pete Cooper <peter_cooper@apple.com> | 2012-02-10 18:13:54 +0000 |
commit | f95acc6d0286ffe6d0aa3f20bc61bba0dcfe14ba (patch) | |
tree | 78df29a86eb5a3bb23703ef4714235b65d55860e /docs | |
parent | 1de886c1fa932b9c33d1f9d34698bafa9cdabebd (diff) | |
download | external_llvm-f95acc6d0286ffe6d0aa3f20bc61bba0dcfe14ba.zip external_llvm-f95acc6d0286ffe6d0aa3f20bc61bba0dcfe14ba.tar.gz external_llvm-f95acc6d0286ffe6d0aa3f20bc61bba0dcfe14ba.tar.bz2 |
Added description of invariant.load metadata to LangRef. It was added to the compiler in r144100
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150257 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r-- | docs/LangRef.html | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html index a71cbfc..e3971ff 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -4681,7 +4681,7 @@ IfUnequal: <h5>Syntax:</h5> <pre> - <result> = load [volatile] <ty>* <pointer>[, align <alignment>][, !nontemporal !<index>] + <result> = load [volatile] <ty>* <pointer>[, align <alignment>][, !nontemporal !<index>][, !invariant.load !<index>] <result> = load atomic [volatile] <ty>* <pointer> [singlethread] <ordering>, align <alignment> !<index> = !{ i32 1 } </pre> @@ -4726,6 +4726,14 @@ IfUnequal: The code generator may select special instructions to save cache bandwidth, such as the <tt>MOVNT</tt> instruction on x86.</p> +<p>The optional <tt>!invariant.load</tt> metadata must reference a single + metatadata name <index> corresponding to a metadata node with no + entries. The existence of the <tt>!invariant.load</tt> metatadata on the + instruction tells the optimizer and code generator that this load address + points to memory which does not change value during program execution. + The optimizer may then move this load around, for example, by hoisting it + out of loops using loop invariant code motion.</p> + <h5>Semantics:</h5> <p>The location of memory pointed to is loaded. If the value being loaded is of scalar type then the number of bytes read does not exceed the minimum number |