mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-03 09:21:02 +00:00
First pass at llvm.objectsize documentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90116 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f58e86d762
commit
0e671491d7
@ -291,6 +291,8 @@
|
||||
'<tt>llvm.trap</tt>' Intrinsic</a></li>
|
||||
<li><a href="#int_stackprotector">
|
||||
'<tt>llvm.stackprotector</tt>' Intrinsic</a></li>
|
||||
<li><a href="#int_objectsize">
|
||||
'<tt>llvm.objectsize</tt>' Intrinsic</a></li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
@ -7246,6 +7248,41 @@ LLVM</a>.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- _______________________________________________________________________ -->
|
||||
<div class="doc_subsubsection">
|
||||
<a name="int_objectsize">'<tt>llvm.objectsize</tt>' Intrinsic</a>
|
||||
</div>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<h5>Syntax:</h5>
|
||||
<pre>
|
||||
declare i32 @llvm.objectsize.i32( i8* <ptr>, i32 <type> )
|
||||
declare i64 @llvm.objectsize.i64( i8* <ptr>, i32 <type> )
|
||||
</pre>
|
||||
|
||||
<h5>Overview:</h5>
|
||||
<p>The <tt>llvm.objectsize</tt> intrinsic returns the constant number of bytes
|
||||
from <tt>ptr</tt> to the end of the object <tt>ptr</tt> points to if it
|
||||
can deduce this at compile time. If there are any side-effects in evaluating
|
||||
the argument or it cannot deduce which objects <tt>ptr</tt> points to at compile
|
||||
time the intrinsic returns <tt>(size_t) -1</tt> for <tt>type</tt> 0
|
||||
or 1 and <tt>(size_t) 0</tt> for <tt>type</tt> 2 or 3.</p>
|
||||
|
||||
<h5>Arguments:</h5>
|
||||
<p>The <tt>llvm.objectsize</tt> intrinsic takes two arguments. The first
|
||||
argument is a pointer to the object <tt>ptr</tt> and an integer <tt>type</tt>.
|
||||
<tt>type</tt> is an integer ranging from 0 to 3. The lsb corresponds to
|
||||
a return value based on whole objects, the second bit whether or not we
|
||||
return the maximum or minimum remaining bytes computed.</p>
|
||||
|
||||
<h5>Semantics:</h5>
|
||||
<p>The <tt>llvm.objectsize</tt> intrinsic is lowered to either a constant
|
||||
representing the size of the object concerned or <tt>(size_t) -1</tt> if
|
||||
it cannot be determined at compile time.</p>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
<hr>
|
||||
<address>
|
||||
|
Loading…
Reference in New Issue
Block a user