-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>LLVM Assembly Language Reference Manual</title>
<div class="doc_text">
<p>The primitive types are the fundemental building blocks of the LLVM
system. The current set of primitive types are as follows:</p>
-<p>
-<table border="0" align="center">
+
+<table border="0" style="align: center">
<tbody>
<tr>
<td>
- <table border="1" cellspacing="0" cellpadding="4" align="center">
+ <table border="1" cellspacing="0" cellpadding="4" style="align: center">
<tbody>
<tr>
<td><tt>void</tt></td>
</table>
</td>
<td valign="top">
- <table border="1" cellspacing="0" cellpadding="4" align="center"">
+ <table border="1" cellspacing="0" cellpadding="4">
<tbody>
<tr>
<td><tt>bool</tt></td>
</tr>
</tbody>
</table>
-</p>
+
</div>
<!-- _______________________________________________________________________ -->
<div class="doc_subsubsection"> <a name="t_classifications">Type
<div class="doc_text">
<p>These different primitive types fall into a few useful
classifications:</p>
-<p>
-<table border="1" cellspacing="0" cellpadding="4" align="center">
+
+<table border="1" cellspacing="0" cellpadding="4">
<tbody>
<tr>
<td><a name="t_signed">signed</a></td>
</tr>
</tbody>
</table>
-</p>
+
<p>The <a href="#t_firstclass">first class</a> types are perhaps the
most important. Values of these types are the only ones which can be
produced by instructions, passed as arguments, or used as operands to
<tt>[40 x uint]</tt>: Array of 40 unsigned integer values.</p>
<p> </p>
<p>Here are some examples of multidimensional arrays:</p>
-<p>
+
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
</tr>
</tbody>
</table>
-</p>
+
</div>
<!-- _______________________________________________________________________ -->
<div class="doc_subsubsection"> <a name="t_function">Function Type</a> </div>
Variable argument functions can access their arguments with the <a
href="#int_varargs">variable argument handling intrinsic</a> functions.</p>
<h5>Examples:</h5>
-<p>
+
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
</tr>
</tbody>
</table>
-</p>
+
</div>
<!-- _______________________________________________________________________ -->
<div class="doc_subsubsection"> <a name="t_struct">Structure Type</a> </div>
<h5>Syntax:</h5>
<pre> { <type list> }<br></pre>
<h5>Examples:</h5>
-<p>
+
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
</tr>
</tbody>
</table>
-</p>
+
</div>
<!-- _______________________________________________________________________ -->
<div class="doc_subsubsection"> <a name="t_pointer">Pointer Type</a> </div>
<h5>Syntax:</h5>
<pre> <type> *<br></pre>
<h5>Examples:</h5>
-<p>
+
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
</tr>
</tbody>
</table>
-</p>
+
</div>
<!-- _______________________________________________________________________ --><!--
<div class="doc_subsubsection">
and have one of the following linkage types:</a>
<p> </p>
<dl>
- <a name="linkage_internal"> <dt><tt><b>internal</b></tt> </dt>
+ <dt><tt><b><a name="linkage_internal">internal</a></b></tt> </dt>
<dd>Global values with internal linkage are only directly accessible
by objects in the current module. In particular, linking code into a
module with an internal global value may cause the internal to be
idea of "anonymous namespaces" in C++.
<p> </p>
</dd>
- </a><a name="linkage_linkonce"> <dt><tt><b>linkonce</b></tt>: </dt>
+ <dt><tt><b><a name="linkage_linkonce">linkonce</a></b></tt>: </dt>
<dd>"<tt>linkonce</tt>" linkage is similar to <tt>internal</tt>
linkage, with the twist that linking together two modules defining the
same <tt>linkonce</tt> globals will cause one of the globals to be
Unreferenced <tt>linkonce</tt> globals are allowed to be discarded.
<p> </p>
</dd>
- </a><a name="linkage_weak"> <dt><tt><b>weak</b></tt>: </dt>
+ <dt><tt><b><a name="linkage_weak">weak</a></b></tt>: </dt>
<dd>"<tt>weak</tt>" linkage is exactly the same as <tt>linkonce</tt>
linkage, except that unreferenced <tt>weak</tt> globals may not be
discarded. This is used to implement constructs in C such as "<tt>int
X;</tt>" at global scope.
<p> </p>
</dd>
- </a><a name="linkage_appending"> <dt><tt><b>appending</b></tt>: </dt>
+ <dt><tt><b><a name="linkage_appending">appending</a></b></tt>: </dt>
<dd>"<tt>appending</tt>" linkage may only be applied to global
variables of pointer to array type. When two global variables with
appending linkage are linked together, the two global arrays are
.o files are linked.
<p> </p>
</dd>
- </a><a name="linkage_external"> <dt><tt><b>externally visible</b></tt>:</dt>
+ <dt><tt><b><a name="linkage_external">externally visible</a></b></tt>:</dt>
<dd>If none of the above identifiers are used, the global is
externally visible, meaning that it participates in linkage and can be
used to resolve external symbol references.
<p> </p>
</dd>
- </a>
</dl>
<p> </p>
<p><a name="linkage_external">For example, since the "<tt>.LC0</tt>"
<h5>Semantics:</h5>
<p>The truth table used for the '<tt>and</tt>' instruction is:</p>
<p> </p>
-<center>
+<div style="align: center">
<table border="1" cellspacing="0" cellpadding="4">
<tbody>
<tr>
</tr>
</tbody>
</table>
-</center>
+</div>
<h5>Example:</h5>
<pre> <result> = and int 4, %var <i>; yields {int}:result = 4 & %var</i>
<result> = and int 15, 40 <i>; yields {int}:result = 8</i>
<h5>Semantics:</h5>
<p>The truth table used for the '<tt>or</tt>' instruction is:</p>
<p> </p>
-<center>
+<div style="align: center">
<table border="1" cellspacing="0" cellpadding="4">
<tbody>
<tr>
</tr>
</tbody>
</table>
-</center>
+</div>
<h5>Example:</h5>
<pre> <result> = or int 4, %var <i>; yields {int}:result = 4 | %var</i>
<result> = or int 15, 40 <i>; yields {int}:result = 47</i>
<h5>Semantics:</h5>
<p>The truth table used for the '<tt>xor</tt>' instruction is:</p>
<p> </p>
-<center>
+<div style="align: center">
<table border="1" cellspacing="0" cellpadding="4">
<tbody>
<tr>
</tr>
</tbody>
</table>
-</center>
+</div>
<p> </p>
<h5>Example:</h5>
<pre> <result> = xor int 4, %var <i>; yields {int}:result = 4 ^ %var</i>
<!-- *********************************************************************** -->
<hr>
-<div class="doc_footer">
-<address><a href="mailto:sabre@nondot.org">Chris Lattner</a></address>
-<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a> <br>
-Last modified: $Date$ </div>
+<address>
+ <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
+ src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a>
+ <a href="http://validator.w3.org/check/referer"><img
+ src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
+
+ <a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
+ <a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
+ Last modified: $Date$
+</address>
</body>
</html>