gcroot must take concrete types, not arbitrary types.

clean up intrinsic descriptions in langref a bit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42194 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2007-09-21 17:30:40 +00:00
parent dfe8934258
commit 1df4f752f8
3 changed files with 14 additions and 13 deletions

View File

@ -159,7 +159,7 @@ interface that front-end authors should generate code for.
<div class="doc_text">
<div class="doc_code"><tt>
void %llvm.gcroot(&lt;ty&gt;** %ptrloc, &lt;ty2&gt;* %metadata)
void %llvm.gcroot(i8** %ptrloc, i8* %metadata)
</tt></div>
<p>
@ -200,7 +200,8 @@ CodeBlock:
;; Initialize the object, telling LLVM that it is now live.
;; Java has type-tags on objects, so it doesn't need any
;; metadata.
call void %llvm.gcroot(%Object** %X, sbyte* null)
%tmp = bitcast %Object** %X to i8**
call void %llvm.gcroot(i8** %tmp, i8* null)
...
;; As the pointer goes out of scope, store a null value into
@ -219,7 +220,7 @@ CodeBlock:
<div class="doc_text">
<div class="doc_code"><tt>
sbyte *%llvm_gc_allocate(unsigned %Size)
void *%llvm_gc_allocate(unsigned %Size)
</tt></div>
<p>The <tt>llvm_gc_allocate</tt> function is a global function defined by the
@ -236,8 +237,8 @@ zeroed-out block of memory of the appropriate size.</p>
<div class="doc_text">
<div class="doc_code"><tt>
sbyte *%llvm.gcread(sbyte *, sbyte **)<br>
void %llvm.gcwrite(sbyte*, sbyte*, sbyte**)
i8 *%llvm.gcread(i8 *, i8 **)<br>
void %llvm.gcwrite(i8*, i8*, i8**)
</tt></div>
<p>Several of the more interesting garbage collectors (e.g., generational

View File

@ -3923,7 +3923,7 @@ href="GarbageCollection.html">Accurate Garbage Collection with LLVM</a>.
<h5>Syntax:</h5>
<pre>
declare void @llvm.gcroot(&lt;ty&gt;** %ptrloc, &lt;ty2&gt;* %metadata)
declare void @llvm.gcroot(i8** %ptrloc, i8* %metadata)
</pre>
<h5>Overview:</h5>
@ -4194,8 +4194,7 @@ See the description for <a href="#int_stacksave"><tt>llvm.stacksave</tt></a>.
<h5>Syntax:</h5>
<pre>
declare void @llvm.prefetch(i8 * &lt;address&gt;,
i32 &lt;rw&gt;, i32 &lt;locality&gt;)
declare void @llvm.prefetch(i8* &lt;address&gt;, i32 &lt;rw&gt;, i32 &lt;locality&gt;)
</pre>
<h5>Overview:</h5>

View File

@ -271,3 +271,4 @@ times each day, making it a high volume list.</li>
Last modified: $Date$
</address>
</body></html>