OSDN Git Service

Adding support for __builtin_annotation with an intrinsic called llvm.annotation...
authorTanya Lattner <tonic@nondot.org>
Fri, 21 Sep 2007 22:59:12 +0000 (22:59 +0000)
committerTanya Lattner <tonic@nondot.org>
Fri, 21 Sep 2007 22:59:12 +0000 (22:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42211 91177308-0d34-0410-b5e6-96231b3b80d8

docs/LangRef.html
include/llvm/Intrinsics.td

index 1b3f4f4..05f4e66 100644 (file)
           <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 &lt;val&gt;, i8* &lt;str&gt;, i8* &lt;str&gt;, i32  &lt;int&gt; )
+</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>
index f7b46b2..9d3b180 100644 (file)
@@ -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 -----------------------===//
 //