diff options
-rw-r--r-- | docs/LangRef.html | 37 | ||||
-rw-r--r-- | include/llvm/Intrinsics.td | 4 |
2 files changed, 41 insertions, 0 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html index 1b3f4f4..05f4e66 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -210,6 +210,10 @@ <li><a href="#int_var_annotation"> <tt>llvm.var.annotation</tt>' Intrinsic</a></li> </ol> + <ol> + <li><a href="#int_annotation"> + <tt>llvm.annotation</tt>' Intrinsic</a></li> + </ol> </li> </ol> </li> @@ -5263,6 +5267,39 @@ This can be useful for special purpose optimizations that want to look for these generation and optimization. </div> +<!-- _______________________________________________________________________ --> +<div class="doc_subsubsection"> + <a name="int_annotation">'<tt>llvm.annotation</tt>' Intrinsic</a> +</div> + +<div class="doc_text"> + +<h5>Syntax:</h5> +<pre> + declare i32 @llvm.annotation(i32 <val>, i8* <str>, i8* <str>, i32 <int> ) +</pre> + +<h5>Overview:</h5> +<p>This is an overloaded intrinsic. You can use '<tt>llvm.annotation</tt>' on +any integer bit width. Not all targets support all bit widths however. +</p> + +<h5>Arguments:</h5> + +<p> +The first argument is an integer value (result of some expression), +the second is a pointer to a global string, the third is a pointer to a global +string which is the source file name, and the last argument is the line number. +</p> + +<h5>Semantics:</h5> + +<p> +This intrinsic allows annotations to be put on arbitrary expressions +with arbitrary strings. This can be useful for special purpose optimizations +that want to look for these annotations. These have no other defined use, they +are ignored by code generation and optimization. +</div> <!-- *********************************************************************** --> <hr> diff --git a/include/llvm/Intrinsics.td b/include/llvm/Intrinsics.td index f7b46b2..9d3b180 100644 --- a/include/llvm/Intrinsics.td +++ b/include/llvm/Intrinsics.td @@ -240,6 +240,10 @@ def int_eh_dwarf_cfa : Intrinsic<[llvm_ptr_ty, llvm_i32_ty]>; def int_var_annotation : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_ptr_ty, llvm_ptr_ty, llvm_i32_ty], [], "llvm.var.annotation">; + +def int_annotation : Intrinsic<[llvm_anyint_ty, LLVMMatchType<0>, llvm_ptr_ty, + llvm_ptr_ty, llvm_i32_ty], + [], "llvm.annotation">; //===------------------------ Trampoline Intrinsics -----------------------===// // |