<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                      "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>LLVM Bitcode File Format</title>
  <link rel="stylesheet" href="llvm.css" type="text/css">
</head>
<body>
<h1> LLVM Bitcode File Format</h1>
<ol>
  <li><a href="#abstract">Abstract</a></li>
  <li><a href="#overview">Overview</a></li>
  <li><a href="#bitstream">Bitstream Format</a>
    <ol>
    <li><a href="#magic">Magic Numbers</a></li>
    <li><a href="#primitives">Primitives</a></li>
    <li><a href="#abbrevid">Abbreviation IDs</a></li>
    <li><a href="#blocks">Blocks</a></li>
    <li><a href="#datarecord">Data Records</a></li>
    <li><a href="#abbreviations">Abbreviations</a></li>
    <li><a href="#stdblocks">Standard Blocks</a></li>
    </ol>
  </li>
  <li><a href="#wrapper">Bitcode Wrapper Format</a>
  </li>
  <li><a href="#llvmir">LLVM IR Encoding</a>
    <ol>
    <li><a href="#basics">Basics</a></li>
    <li><a href="#MODULE_BLOCK">MODULE_BLOCK Contents</a></li>
    <li><a href="#PARAMATTR_BLOCK">PARAMATTR_BLOCK Contents</a></li>
    <li><a href="#TYPE_BLOCK">TYPE_BLOCK Contents</a></li>
    <li><a href="#CONSTANTS_BLOCK">CONSTANTS_BLOCK Contents</a></li>
    <li><a href="#FUNCTION_BLOCK">FUNCTION_BLOCK Contents</a></li>
    <li><a href="#TYPE_SYMTAB_BLOCK">TYPE_SYMTAB_BLOCK Contents</a></li>
    <li><a href="#VALUE_SYMTAB_BLOCK">VALUE_SYMTAB_BLOCK Contents</a></li>
    <li><a href="#METADATA_BLOCK">METADATA_BLOCK Contents</a></li>
    <li><a href="#METADATA_ATTACHMENT">METADATA_ATTACHMENT Contents</a></li>
    </ol>
  </li>
</ol>
<div class="doc_author">
  <p>Written by <a href="mailto:sabre@nondot.org">Chris Lattner</a>,
  <a href="http://www.reverberate.org">Joshua Haberman</a>,
  and <a href="mailto:housel@acm.org">Peter S. Housel</a>.
</p>
</div>

<!-- *********************************************************************** -->
<h2><a name="abstract">Abstract</a></h2>
<!-- *********************************************************************** -->

<div class="doc_text">

<p>This document describes the LLVM bitstream file format and the encoding of
the LLVM IR into it.</p>

</div>

<!-- *********************************************************************** -->
<h2><a name="overview">Overview</a></h2>
<!-- *********************************************************************** -->

<div class="doc_text">

<p>
What is commonly known as the LLVM bitcode file format (also, sometimes
anachronistically known as bytecode) is actually two things: a <a 
href="#bitstream">bitstream container format</a>
and an <a href="#llvmir">encoding of LLVM IR</a> into the container format.</p>

<p>
The bitstream format is an abstract encoding of structured data, very
similar to XML in some ways.  Like XML, bitstream files contain tags, and nested
structures, and you can parse the file without having to understand the tags.
Unlike XML, the bitstream format is a binary encoding, and unlike XML it
provides a mechanism for the file to self-describe "abbreviations", which are
effectively size optimizations for the content.</p>

<p>LLVM IR files may be optionally embedded into a <a 
href="#wrapper">wrapper</a> structure that makes it easy to embed extra data
along with LLVM IR files.</p>

<p>This document first describes the LLVM bitstream format, describes the
wrapper format, then describes the record structure used by LLVM IR files.
</p>

</div>

<!-- *********************************************************************** -->
<h2><a name="bitstream">Bitstream Format</a></h2>
<!-- *********************************************************************** -->

<div class="doc_text">

<p>
The bitstream format is literally a stream of bits, with a very simple
structure.  This structure consists of the following concepts:
</p>

<ul>
<li>A "<a href="#magic">magic number</a>" that identifies the contents of
    the stream.</li>
<li>Encoding <a href="#primitives">primitives</a> like variable bit-rate
    integers.</li> 
<li><a href="#blocks">Blocks</a>, which define nested content.</li> 
<li><a href="#datarecord">Data Records</a>, which describe entities within the
    file.</li> 
<li>Abbreviations, which specify compression optimizations for the file.</li> 
</ul>

<p>Note that the <a 
href="CommandGuide/html/llvm-bcanalyzer.html">llvm-bcanalyzer</a> tool can be
used to dump and inspect arbitrary bitstreams, which is very useful for
understanding the encoding.</p>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="magic">Magic Numbers</a>
</h3>

<div class="doc_text">

<p>The first two bytes of a bitcode file are 'BC' (0x42, 0x43).
The second two bytes are an application-specific magic number.  Generic
bitcode tools can look at only the first two bytes to verify the file is
bitcode, while application-specific programs will want to look at all four.</p>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="primitives">Primitives</a>
</h3>

<div class="doc_text">

<p>
A bitstream literally consists of a stream of bits, which are read in order
starting with the least significant bit of each byte.  The stream is made up of a
number of primitive values that encode a stream of unsigned integer values.
These integers are encoded in two ways: either as <a href="#fixedwidth">Fixed
Width Integers</a> or as <a href="#variablewidth">Variable Width
Integers</a>.
</p>

</div>

<!-- _______________________________________________________________________ -->
<h4>
  <a name="fixedwidth">Fixed Width Integers</a>
</h4>

<div class="doc_text">

<p>Fixed-width integer values have their low bits emitted directly to the file.
   For example, a 3-bit integer value encodes 1 as 001.  Fixed width integers
   are used when there are a well-known number of options for a field.  For
   example, boolean values are usually encoded with a 1-bit wide integer. 
</p>

</div>

<!-- _______________________________________________________________________ -->
<h4>
  <a name="variablewidth">Variable Width Integers</a>
</h4>

<div class="doc_text">

<p>Variable-width integer (VBR) values encode values of arbitrary size,
optimizing for the case where the values are small.  Given a 4-bit VBR field,
any 3-bit value (0 through 7) is encoded directly, with the high bit set to
zero.  Values larger than N-1 bits emit their bits in a series of N-1 bit
chunks, where all but the last set the high bit.</p>

<p>For example, the value 27 (0x1B) is encoded as 1011 0011 when emitted as a
vbr4 value.  The first set of four bits indicates the value 3 (011) with a
continuation piece (indicated by a high bit of 1).  The next word indicates a
value of 24 (011 << 3) with no continuation.  The sum (3+24) yields the value
27.
</p>

</div>

<!-- _______________________________________________________________________ -->
<h4><a name="char6">6-bit characters</a></h4>

<div class="doc_text">

<p>6-bit characters encode common characters into a fixed 6-bit field.  They
represent the following characters with the following 6-bit values:</p>

<div class="doc_code">
<pre>
'a' .. 'z' &mdash;  0 .. 25
'A' .. 'Z' &mdash; 26 .. 51
'0' .. '9' &mdash; 52 .. 61
       '.' &mdash; 62
       '_' &mdash; 63
</pre>
</div>

<p>This encoding is only suitable for encoding characters and strings that
consist only of the above characters.  It is completely incapable of encoding
characters not in the set.</p>

</div>

<!-- _______________________________________________________________________ -->
<h4><a name="wordalign">Word Alignment</a></h4>

<div class="doc_text">

<p>Occasionally, it is useful to emit zero bits until the bitstream is a
multiple of 32 bits.  This ensures that the bit position in the stream can be
represented as a multiple of 32-bit words.</p>

</div>


<!-- ======================================================================= -->
<h3>
  <a name="abbrevid">Abbreviation IDs</a>
</h3>

<div class="doc_text">

<p>
A bitstream is a sequential series of <a href="#blocks">Blocks</a> and
<a href="#datarecord">Data Records</a>.  Both of these start with an
abbreviation ID encoded as a fixed-bitwidth field.  The width is specified by
the current block, as described below.  The value of the abbreviation ID
specifies either a builtin ID (which have special meanings, defined below) or
one of the abbreviation IDs defined for the current block by the stream itself.
</p>

<p>
The set of builtin abbrev IDs is:
</p>

<ul>
<li><tt>0 - <a href="#END_BLOCK">END_BLOCK</a></tt> &mdash; This abbrev ID marks
    the end of the current block.</li>
<li><tt>1 - <a href="#ENTER_SUBBLOCK">ENTER_SUBBLOCK</a></tt> &mdash; This
    abbrev ID marks the beginning of a new block.</li>
<li><tt>2 - <a href="#DEFINE_ABBREV">DEFINE_ABBREV</a></tt> &mdash; This defines
    a new abbreviation.</li>
<li><tt>3 - <a href="#UNABBREV_RECORD">UNABBREV_RECORD</a></tt> &mdash; This ID
    specifies the definition of an unabbreviated record.</li>
</ul>

<p>Abbreviation IDs 4 and above are defined by the stream itself, and specify
an <a href="#abbrev_records">abbreviated record encoding</a>.</p>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="blocks">Blocks</a>
</h3>

<div class="doc_text">

<p>
Blocks in a bitstream denote nested regions of the stream, and are identified by
a content-specific id number (for example, LLVM IR uses an ID of 12 to represent
function bodies).  Block IDs 0-7 are reserved for <a href="#stdblocks">standard blocks</a>
whose meaning is defined by Bitcode; block IDs 8 and greater are
application specific. Nested blocks capture the hierarchical structure of the data
encoded in it, and various properties are associated with blocks as the file is
parsed.  Block definitions allow the reader to efficiently skip blocks
in constant time if the reader wants a summary of blocks, or if it wants to
efficiently skip data it does not understand.  The LLVM IR reader uses this
mechanism to skip function bodies, lazily reading them on demand.
</p>

<p>
When reading and encoding the stream, several properties are maintained for the
block.  In particular, each block maintains:
</p>

<ol>
<li>A current abbrev id width.  This value starts at 2 at the beginning of
    the stream, and is set every time a
    block record is entered.  The block entry specifies the abbrev id width for
    the body of the block.</li>

<li>A set of abbreviations.  Abbreviations may be defined within a block, in
    which case they are only defined in that block (neither subblocks nor
    enclosing blocks see the abbreviation).  Abbreviations can also be defined
    inside a <tt><a href="#BLOCKINFO">BLOCKINFO</a></tt> block, in which case
    they are defined in all blocks that match the ID that the BLOCKINFO block is
    describing.
</li>
</ol>

<p>
As sub blocks are entered, these properties are saved and the new sub-block has
its own set of abbreviations, and its own abbrev id width.  When a sub-block is
popped, the saved values are restored.
</p>

</div>

<!-- _______________________________________________________________________ -->
<h4><a name="ENTER_SUBBLOCK">ENTER_SUBBLOCK Encoding</a></h4>

<div class="doc_text">

<p><tt>[ENTER_SUBBLOCK, blockid<sub>vbr8</sub>, newabbrevlen<sub>vbr4</sub>,
     &lt;align32bits&gt;, blocklen<sub>32</sub>]</tt></p>

<p>
The <tt>ENTER_SUBBLOCK</tt> abbreviation ID specifies the start of a new block
record.  The <tt>blockid</tt> value is encoded as an 8-bit VBR identifier, and
indicates the type of block being entered, which can be
a <a href="#stdblocks">standard block</a> or an application-specific block.
The <tt>newabbrevlen</tt> value is a 4-bit VBR, which specifies the abbrev id
width for the sub-block.  The <tt>blocklen</tt> value is a 32-bit aligned value
that specifies the size of the subblock in 32-bit words. This value allows the
reader to skip over the entire block in one jump.
</p>

</div>

<!-- _______________________________________________________________________ -->
<h4><a name="END_BLOCK">END_BLOCK Encoding</a></h4>

<div class="doc_text">

<p><tt>[END_BLOCK, &lt;align32bits&gt;]</tt></p>

<p>
The <tt>END_BLOCK</tt> abbreviation ID specifies the end of the current block
record.  Its end is aligned to 32-bits to ensure that the size of the block is
an even multiple of 32-bits.
</p>

</div>



<!-- ======================================================================= -->
<h3>
  <a name="datarecord">Data Records</a>
</h3>

<div class="doc_text">
<p>
Data records consist of a record code and a number of (up to) 64-bit
integer values.  The interpretation of the code and values is
application specific and may vary between different block types.
Records can be encoded either using an unabbrev record, or with an
abbreviation.  In the LLVM IR format, for example, there is a record
which encodes the target triple of a module.  The code is
<tt>MODULE_CODE_TRIPLE</tt>, and the values of the record are the
ASCII codes for the characters in the string.
</p>

</div>

<!-- _______________________________________________________________________ -->
<h4><a name="UNABBREV_RECORD">UNABBREV_RECORD Encoding</a></h4>

<div class="doc_text">

<p><tt>[UNABBREV_RECORD, code<sub>vbr6</sub>, numops<sub>vbr6</sub>,
       op0<sub>vbr6</sub>, op1<sub>vbr6</sub>, ...]</tt></p>

<p>
An <tt>UNABBREV_RECORD</tt> provides a default fallback encoding, which is both
completely general and extremely inefficient.  It can describe an arbitrary
record by emitting the code and operands as VBRs.
</p>

<p>
For example, emitting an LLVM IR target triple as an unabbreviated record
requires emitting the <tt>UNABBREV_RECORD</tt> abbrevid, a vbr6 for the
<tt>MODULE_CODE_TRIPLE</tt> code, a vbr6 for the length of the string, which is
equal to the number of operands, and a vbr6 for each character.  Because there
are no letters with values less than 32, each letter would need to be emitted as
at least a two-part VBR, which means that each letter would require at least 12
bits.  This is not an efficient encoding, but it is fully general.
</p>

</div>

<!-- _______________________________________________________________________ -->
<h4><a name="abbrev_records">Abbreviated Record Encoding</a></h4>

<div class="doc_text">

<p><tt>[&lt;abbrevid&gt;, fields...]</tt></p>

<p>
An abbreviated record is a abbreviation id followed by a set of fields that are
encoded according to the <a href="#abbreviations">abbreviation definition</a>.
This allows records to be encoded significantly more densely than records
encoded with the <tt><a href="#UNABBREV_RECORD">UNABBREV_RECORD</a></tt> type,
and allows the abbreviation types to be specified in the stream itself, which
allows the files to be completely self describing.  The actual encoding of
abbreviations is defined below.
</p>

<p>The record code, which is the first field of an abbreviated record,
may be encoded in the abbreviation definition (as a literal
operand) or supplied in the abbreviated record (as a Fixed or VBR
operand value).</p>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="abbreviations">Abbreviations</a>
</h3>

<div class="doc_text">
<p>
Abbreviations are an important form of compression for bitstreams.  The idea is
to specify a dense encoding for a class of records once, then use that encoding
to emit many records.  It takes space to emit the encoding into the file, but
the space is recouped (hopefully plus some) when the records that use it are
emitted.
</p>

<p>
Abbreviations can be determined dynamically per client, per file. Because the
abbreviations are stored in the bitstream itself, different streams of the same
format can contain different sets of abbreviations according to the needs
of the specific stream.
As a concrete example, LLVM IR files usually emit an abbreviation
for binary operators.  If a specific LLVM module contained no or few binary
operators, the abbreviation does not need to be emitted.
</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="DEFINE_ABBREV">DEFINE_ABBREV  Encoding</a></h4>

<div class="doc_text">

<p><tt>[DEFINE_ABBREV, numabbrevops<sub>vbr5</sub>, abbrevop0, abbrevop1,
 ...]</tt></p>

<p>
A <tt>DEFINE_ABBREV</tt> record adds an abbreviation to the list of currently
defined abbreviations in the scope of this block.  This definition only exists
inside this immediate block &mdash; it is not visible in subblocks or enclosing
blocks.  Abbreviations are implicitly assigned IDs sequentially starting from 4
(the first application-defined abbreviation ID).  Any abbreviations defined in a
<tt>BLOCKINFO</tt> record for the particular block type
receive IDs first, in order, followed by any
abbreviations defined within the block itself.  Abbreviated data records
reference this ID to indicate what abbreviation they are invoking.
</p>

<p>
An abbreviation definition consists of the <tt>DEFINE_ABBREV</tt> abbrevid
followed by a VBR that specifies the number of abbrev operands, then the abbrev
operands themselves.  Abbreviation operands come in three forms.  They all start
with a single bit that indicates whether the abbrev operand is a literal operand
(when the bit is 1) or an encoding operand (when the bit is 0).
</p>

<ol>
<li>Literal operands &mdash; <tt>[1<sub>1</sub>, litvalue<sub>vbr8</sub>]</tt>
&mdash; Literal operands specify that the value in the result is always a single
specific value.  This specific value is emitted as a vbr8 after the bit
indicating that it is a literal operand.</li>
<li>Encoding info without data &mdash; <tt>[0<sub>1</sub>,
 encoding<sub>3</sub>]</tt> &mdash; Operand encodings that do not have extra
 data are just emitted as their code.
</li>
<li>Encoding info with data &mdash; <tt>[0<sub>1</sub>, encoding<sub>3</sub>,
value<sub>vbr5</sub>]</tt> &mdash; Operand encodings that do have extra data are
emitted as their code, followed by the extra data.
</li>
</ol>

<p>The possible operand encodings are:</p>

<ul>
<li>Fixed (code 1): The field should be emitted as
    a <a href="#fixedwidth">fixed-width value</a>, whose width is specified by
    the operand's extra data.</li>
<li>VBR (code 2): The field should be emitted as
    a <a href="#variablewidth">variable-width value</a>, whose width is
    specified by the operand's extra data.</li>
<li>Array (code 3): This field is an array of values.  The array operand
    has no extra data, but expects another operand to follow it, indicating
    the element type of the array.  When reading an array in an abbreviated
    record, the first integer is a vbr6 that indicates the array length,
    followed by the encoded elements of the array.  An array may only occur as
    the last operand of an abbreviation (except for the one final operand that
    gives the array's type).</li>
<li>Char6 (code 4): This field should be emitted as
    a <a href="#char6">char6-encoded value</a>.  This operand type takes no
    extra data. Char6 encoding is normally used as an array element type.
    </li>
<li>Blob (code 5): This field is emitted as a vbr6, followed by padding to a
    32-bit boundary (for alignment) and an array of 8-bit objects.  The array of
    bytes is further followed by tail padding to ensure that its total length is
    a multiple of 4 bytes.  This makes it very efficient for the reader to
    decode the data without having to make a copy of it: it can use a pointer to
    the data in the mapped in file and poke directly at it.  A blob may only
    occur as the last operand of an abbreviation.</li>
</ul>

<p>
For example, target triples in LLVM modules are encoded as a record of the
form <tt>[TRIPLE, 'a', 'b', 'c', 'd']</tt>.  Consider if the bitstream emitted
the following abbrev entry:
</p>

<div class="doc_code">
<pre>
[0, Fixed, 4]
[0, Array]
[0, Char6]
</pre>
</div>

<p>
When emitting a record with this abbreviation, the above entry would be emitted
as:
</p>

<div class="doc_code">
<p>
<tt>[4<sub>abbrevwidth</sub>, 2<sub>4</sub>, 4<sub>vbr6</sub>, 0<sub>6</sub>,
1<sub>6</sub>, 2<sub>6</sub>, 3<sub>6</sub>]</tt>
</p>
</div>

<p>These values are:</p>

<ol>
<li>The first value, 4, is the abbreviation ID for this abbreviation.</li>
<li>The second value, 2, is the record code for <tt>TRIPLE</tt> records within LLVM IR file <tt>MODULE_BLOCK</tt> blocks.</li>
<li>The third value, 4, is the length of the array.</li>
<li>The rest of the values are the char6 encoded values
    for <tt>"abcd"</tt>.</li>
</ol>

<p>
With this abbreviation, the triple is emitted with only 37 bits (assuming a
abbrev id width of 3).  Without the abbreviation, significantly more space would
be required to emit the target triple.  Also, because the <tt>TRIPLE</tt> value
is not emitted as a literal in the abbreviation, the abbreviation can also be
used for any other string value.
</p>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="stdblocks">Standard Blocks</a>
</h3>

<div class="doc_text">

<p>
In addition to the basic block structure and record encodings, the bitstream
also defines specific built-in block types.  These block types specify how the
stream is to be decoded or other metadata.  In the future, new standard blocks
may be added.  Block IDs 0-7 are reserved for standard blocks.
</p>

</div>

<!-- _______________________________________________________________________ -->
<h4><a name="BLOCKINFO">#0 - BLOCKINFO Block</a></h4>

<div class="doc_text">

<p>
The <tt>BLOCKINFO</tt> block allows the description of metadata for other
blocks.  The currently specified records are:
</p>

<div class="doc_code">
<pre>
[SETBID (#1), blockid]
[DEFINE_ABBREV, ...]
[BLOCKNAME, ...name...]
[SETRECORDNAME, RecordID, ...name...]
</pre>
</div>

<p>
The <tt>SETBID</tt> record (code 1) indicates which block ID is being
described.  <tt>SETBID</tt> records can occur multiple times throughout the
block to change which block ID is being described.  There must be
a <tt>SETBID</tt> record prior to any other records.
</p>

<p>
Standard <tt>DEFINE_ABBREV</tt> records can occur inside <tt>BLOCKINFO</tt>
blocks, but unlike their occurrence in normal blocks, the abbreviation is
defined for blocks matching the block ID we are describing, <i>not</i> the
<tt>BLOCKINFO</tt> block itself.  The abbreviations defined
in <tt>BLOCKINFO</tt> blocks receive abbreviation IDs as described
in <tt><a href="#DEFINE_ABBREV">DEFINE_ABBREV</a></tt>.
</p>

<p>The <tt>BLOCKNAME</tt> record (code 2) can optionally occur in this block.  The elements of
the record are the bytes of the string name of the block.  llvm-bcanalyzer can use
this to dump out bitcode files symbolically.</p>

<p>The <tt>SETRECORDNAME</tt> record (code 3) can also optionally occur in this block.  The
first operand value is a record ID number, and the rest of the elements of the record are
the bytes for the string name of the record.  llvm-bcanalyzer can use
this to dump out bitcode files symbolically.</p>

<p>
Note that although the data in <tt>BLOCKINFO</tt> blocks is described as
"metadata," the abbreviations they contain are essential for parsing records
from the corresponding blocks.  It is not safe to skip them.
</p>

</div>

<!-- *********************************************************************** -->
<h2><a name="wrapper">Bitcode Wrapper Format</a></h2>
<!-- *********************************************************************** -->

<div class="doc_text">

<p>
Bitcode files for LLVM IR may optionally be wrapped in a simple wrapper
structure.  This structure contains a simple header that indicates the offset
and size of the embedded BC file.  This allows additional information to be
stored alongside the BC file.  The structure of this file header is:
</p>

<div class="doc_code">
<p>
<tt>[Magic<sub>32</sub>, Version<sub>32</sub>, Offset<sub>32</sub>,
Size<sub>32</sub>, CPUType<sub>32</sub>]</tt>
</p>
</div>

<p>
Each of the fields are 32-bit fields stored in little endian form (as with
the rest of the bitcode file fields).  The Magic number is always
<tt>0x0B17C0DE</tt> and the version is currently always <tt>0</tt>.  The Offset
field is the offset in bytes to the start of the bitcode stream in the file, and
the Size field is the size in bytes of the stream. CPUType is a target-specific
value that can be used to encode the CPU of the target.
</p>

</div>

<!-- *********************************************************************** -->
<h2><a name="llvmir">LLVM IR Encoding</a></h2>
<!-- *********************************************************************** -->

<div class="doc_text">

<p>
LLVM IR is encoded into a bitstream by defining blocks and records.  It uses
blocks for things like constant pools, functions, symbol tables, etc.  It uses
records for things like instructions, global variable descriptors, type
descriptions, etc.  This document does not describe the set of abbreviations
that the writer uses, as these are fully self-described in the file, and the
reader is not allowed to build in any knowledge of this.
</p>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="basics">Basics</a>
</h3>

<!-- _______________________________________________________________________ -->
<h4><a name="ir_magic">LLVM IR Magic Number</a></h4>

<div class="doc_text">

<p>
The magic number for LLVM IR files is:
</p>

<div class="doc_code">
<p>
<tt>[0x0<sub>4</sub>, 0xC<sub>4</sub>, 0xE<sub>4</sub>, 0xD<sub>4</sub>]</tt>
</p>
</div>

<p>
When combined with the bitcode magic number and viewed as bytes, this is
<tt>"BC&nbsp;0xC0DE"</tt>.
</p>

</div>

<!-- _______________________________________________________________________ -->
<h4><a name="ir_signed_vbr">Signed VBRs</a></h4>

<div class="doc_text">

<p>
<a href="#variablewidth">Variable Width Integer</a> encoding is an efficient way to
encode arbitrary sized unsigned values, but is an extremely inefficient for
encoding signed values, as signed values are otherwise treated as maximally large
unsigned values.
</p>

<p>
As such, signed VBR values of a specific width are emitted as follows:
</p>

<ul>
<li>Positive values are emitted as VBRs of the specified width, but with their
    value shifted left by one.</li>
<li>Negative values are emitted as VBRs of the specified width, but the negated
    value is shifted left by one, and the low bit is set.</li>
</ul>

<p>
With this encoding, small positive and small negative values can both
be emitted efficiently. Signed VBR encoding is used in
<tt>CST_CODE_INTEGER</tt> and <tt>CST_CODE_WIDE_INTEGER</tt> records
within <tt>CONSTANTS_BLOCK</tt> blocks.
</p>

</div>


<!-- _______________________________________________________________________ -->
<h4><a name="ir_blocks">LLVM IR Blocks</a></h4>

<div class="doc_text">

<p>
LLVM IR is defined with the following blocks:
</p>

<ul>
<li>8  &mdash; <a href="#MODULE_BLOCK"><tt>MODULE_BLOCK</tt></a> &mdash; This is the top-level block that
    contains the entire module, and describes a variety of per-module
    information.</li>
<li>9  &mdash; <a href="#PARAMATTR_BLOCK"><tt>PARAMATTR_BLOCK</tt></a> &mdash; This enumerates the parameter
    attributes.</li>
<li>10 &mdash; <a href="#TYPE_BLOCK"><tt>TYPE_BLOCK</tt></a> &mdash; This describes all of the types in
    the module.</li>
<li>11 &mdash; <a href="#CONSTANTS_BLOCK"><tt>CONSTANTS_BLOCK</tt></a> &mdash; This describes constants for a
    module or function.</li>
<li>12 &mdash; <a href="#FUNCTION_BLOCK"><tt>FUNCTION_BLOCK</tt></a> &mdash; This describes a function
    body.</li>
<li>13 &mdash; <a href="#TYPE_SYMTAB_BLOCK"><tt>TYPE_SYMTAB_BLOCK</tt></a> &mdash; This describes the type symbol
    table.</li>
<li>14 &mdash; <a href="#VALUE_SYMTAB_BLOCK"><tt>VALUE_SYMTAB_BLOCK</tt></a> &mdash; This describes a value symbol
    table.</li>
<li>15 &mdash; <a href="#METADATA_BLOCK"><tt>METADATA_BLOCK</tt></a> &mdash; This describes metadata items.</li>
<li>16 &mdash; <a href="#METADATA_ATTACHMENT"><tt>METADATA_ATTACHMENT</tt></a> &mdash; This contains records associating metadata with function instruction values.</li>
</ul>

</div>

<!-- ======================================================================= -->
<h3>
  <a name="MODULE_BLOCK">MODULE_BLOCK Contents</a>
</h3>

<div class="doc_text">

<p>The <tt>MODULE_BLOCK</tt> block (id 8) is the top-level block for LLVM
bitcode files, and each bitcode file must contain exactly one. In
addition to records (described below) containing information
about the module, a <tt>MODULE_BLOCK</tt> block may contain the
following sub-blocks:
</p>

<ul>
<li><a href="#BLOCKINFO"><tt>BLOCKINFO</tt></a></li>
<li><a href="#PARAMATTR_BLOCK"><tt>PARAMATTR_BLOCK</tt></a></li>
<li><a href="#TYPE_BLOCK"><tt>TYPE_BLOCK</tt></a></li>
<li><a href="#TYPE_SYMTAB_BLOCK"><tt>TYPE_SYMTAB_BLOCK</tt></a></li>
<li><a href="#VALUE_SYMTAB_BLOCK"><tt>VALUE_SYMTAB_BLOCK</tt></a></li>
<li><a href="#CONSTANTS_BLOCK"><tt>CONSTANTS_BLOCK</tt></a></li>
<li><a href="#FUNCTION_BLOCK"><tt>FUNCTION_BLOCK</tt></a></li>
<li><a href="#METADATA_BLOCK"><tt>METADATA_BLOCK</tt></a></li>
</ul>

</div>

<!-- _______________________________________________________________________ -->
<h4><a name="MODULE_CODE_VERSION">MODULE_CODE_VERSION Record</a></h4>

<div class="doc_text">

<p><tt>[VERSION, version#]</tt></p>

<p>The <tt>VERSION</tt> record (code 1) contains a single value
indicating the format version. Only version 0 is supported at this
time.</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="MODULE_CODE_TRIPLE">MODULE_CODE_TRIPLE Record</a></h4>

<div class="doc_text">
<p><tt>[TRIPLE, ...string...]</tt></p>

<p>The <tt>TRIPLE</tt> record (code 2) contains a variable number of
values representing the bytes of the <tt>target triple</tt>
specification string.</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="MODULE_CODE_DATALAYOUT">MODULE_CODE_DATALAYOUT Record</a></h4>

<div class="doc_text">
<p><tt>[DATALAYOUT, ...string...]</tt></p>

<p>The <tt>DATALAYOUT</tt> record (code 3) contains a variable number of
values representing the bytes of the <tt>target datalayout</tt>
specification string.</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="MODULE_CODE_ASM">MODULE_CODE_ASM Record</a></h4>

<div class="doc_text">
<p><tt>[ASM, ...string...]</tt></p>

<p>The <tt>ASM</tt> record (code 4) contains a variable number of
values representing the bytes of <tt>module asm</tt> strings, with
individual assembly blocks separated by newline (ASCII 10) characters.</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="MODULE_CODE_SECTIONNAME">MODULE_CODE_SECTIONNAME Record</a></h4>

<div class="doc_text">
<p><tt>[SECTIONNAME, ...string...]</tt></p>

<p>The <tt>SECTIONNAME</tt> record (code 5) contains a variable number
of values representing the bytes of a single section name
string. There should be one <tt>SECTIONNAME</tt> record for each
section name referenced (e.g., in global variable or function
<tt>section</tt> attributes) within the module. These records can be
referenced by the 1-based index in the <i>section</i> fields of
<tt>GLOBALVAR</tt> or <tt>FUNCTION</tt> records.</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="MODULE_CODE_DEPLIB">MODULE_CODE_DEPLIB Record</a></h4>

<div class="doc_text">
<p><tt>[DEPLIB, ...string...]</tt></p>

<p>The <tt>DEPLIB</tt> record (code 6) contains a variable number of
values representing the bytes of a single dependent library name
string, one of the libraries mentioned in a <tt>deplibs</tt>
declaration.  There should be one <tt>DEPLIB</tt> record for each
library name referenced.</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="MODULE_CODE_GLOBALVAR">MODULE_CODE_GLOBALVAR Record</a></h4>

<div class="doc_text">
<p><tt>[GLOBALVAR, pointer type, isconst, initid, linkage, alignment, section, visibility, threadlocal]</tt></p>

<p>The <tt>GLOBALVAR</tt> record (code 7) marks the declaration or
definition of a global variable. The operand fields are:</p>

<ul>
<li><i>pointer type</i>: The type index of the pointer type used to point to
this global variable</li>

<li><i>isconst</i>: Non-zero if the variable is treated as constant within
the module, or zero if it is not</li>

<li><i>initid</i>: If non-zero, the value index of the initializer for this
variable, plus 1.</li>

<li><a name="linkage"><i>linkage</i></a>: An encoding of the linkage
type for this variable:
  <ul>
    <li><tt>external</tt>: code 0</li>
    <li><tt>weak</tt>: code 1</li>
    <li><tt>appending</tt>: code 2</li>
    <li><tt>internal</tt>: code 3</li>
    <li><tt>linkonce</tt>: code 4</li>
    <li><tt>dllimport</tt>: code 5</li>
    <li><tt>dllexport</tt>: code 6</li>
    <li><tt>extern_weak</tt>: code 7</li>
    <li><tt>common</tt>: code 8</li>
    <li><tt>private</tt>: code 9</li>
    <li><tt>weak_odr</tt>: code 10</li>
    <li><tt>linkonce_odr</tt>: code 11</li>
    <li><tt>available_externally</tt>: code 12</li>
    <li><tt>linker_private</tt>: code 13</li>
  </ul>
</li>

<li><i>alignment</i>: The logarithm base 2 of the variable's requested
alignment, plus 1</li>

<li><i>section</i>: If non-zero, the 1-based section index in the
table of <a href="#MODULE_CODE_SECTIONNAME">MODULE_CODE_SECTIONNAME</a>
entries.</li>

<li><a name="visibility"><i>visibility</i></a>: If present, an
encoding of the visibility of this variable:
  <ul>
    <li><tt>default</tt>: code 0</li>
    <li><tt>hidden</tt>: code 1</li>
    <li><tt>protected</tt>: code 2</li>
  </ul>
</li>

<li><i>threadlocal</i>: If present and non-zero, indicates that the variable
is <tt>thread_local</tt></li>

<li><i>unnamed_addr</i>: If present and non-zero, indicates that the variable
has <tt>unnamed_addr</tt></li>

</ul>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="MODULE_CODE_FUNCTION">MODULE_CODE_FUNCTION Record</a></h4>

<div class="doc_text">

<p><tt>[FUNCTION, type, callingconv, isproto, linkage, paramattr, alignment, section, visibility, gc]</tt></p>

<p>The <tt>FUNCTION</tt> record (code 8) marks the declaration or
definition of a function. The operand fields are:</p>

<ul>
<li><i>type</i>: The type index of the function type describing this function</li>

<li><i>callingconv</i>: The calling convention number:
  <ul>
    <li><tt>ccc</tt>: code 0</li>
    <li><tt>fastcc</tt>: code 8</li>
    <li><tt>coldcc</tt>: code 9</li>
    <li><tt>x86_stdcallcc</tt>: code 64</li>
    <li><tt>x86_fastcallcc</tt>: code 65</li>
    <li><tt>arm_apcscc</tt>: code 66</li>
    <li><tt>arm_aapcscc</tt>: code 67</li>
    <li><tt>arm_aapcs_vfpcc</tt>: code 68</li>
  </ul>
</li>

<li><i>isproto</i>: Non-zero if this entry represents a declaration
rather than a definition</li>

<li><i>linkage</i>: An encoding of the <a href="#linkage">linkage type</a>
for this function</li>

<li><i>paramattr</i>: If nonzero, the 1-based parameter attribute index
into the table of <a href="#PARAMATTR_CODE_ENTRY">PARAMATTR_CODE_ENTRY</a>
entries.</li>

<li><i>alignment</i>: The logarithm base 2 of the function's requested
alignment, plus 1</li>

<li><i>section</i>: If non-zero, the 1-based section index in the
table of <a href="#MODULE_CODE_SECTIONNAME">MODULE_CODE_SECTIONNAME</a>
entries.</li>

<li><i>visibility</i>: An encoding of the <a href="#visibility">visibility</a>
    of this function</li>

<li><i>gc</i>: If present and nonzero, the 1-based garbage collector
index in the table of
<a href="#MODULE_CODE_GCNAME">MODULE_CODE_GCNAME</a> entries.</li>

<li><i>unnamed_addr</i>: If present and non-zero, indicates that the function
has <tt>unnamed_addr</tt></li>

</ul>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="MODULE_CODE_ALIAS">MODULE_CODE_ALIAS Record</a></h4>

<div class="doc_text">

<p><tt>[ALIAS, alias type, aliasee val#, linkage, visibility]</tt></p>

<p>The <tt>ALIAS</tt> record (code 9) marks the definition of an
alias. The operand fields are</p>

<ul>
<li><i>alias type</i>: The type index of the alias</li>

<li><i>aliasee val#</i>: The value index of the aliased value</li>

<li><i>linkage</i>: An encoding of the <a href="#linkage">linkage type</a>
for this alias</li>

<li><i>visibility</i>: If present, an encoding of the
<a href="#visibility">visibility</a> of the alias</li>

</ul>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="MODULE_CODE_PURGEVALS">MODULE_CODE_PURGEVALS Record</a></h4>

<div class="doc_text">
<p><tt>[PURGEVALS, numvals]</tt></p>

<p>The <tt>PURGEVALS</tt> record (code 10) resets the module-level
value list to the size given by the single operand value. Module-level
value list items are added by <tt>GLOBALVAR</tt>, <tt>FUNCTION</tt>,
and <tt>ALIAS</tt> records.  After a <tt>PURGEVALS</tt> record is seen,
new value indices will start from the given <i>numvals</i> value.</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="MODULE_CODE_GCNAME">MODULE_CODE_GCNAME Record</a></h4>

<div class="doc_text">
<p><tt>[GCNAME, ...string...]</tt></p>

<p>The <tt>GCNAME</tt> record (code 11) contains a variable number of
values representing the bytes of a single garbage collector name
string. There should be one <tt>GCNAME</tt> record for each garbage
collector name referenced in function <tt>gc</tt> attributes within
the module. These records can be referenced by 1-based index in the <i>gc</i>
fields of <tt>FUNCTION</tt> records.</p>
</div>

<!-- ======================================================================= -->
<h3>
  <a name="PARAMATTR_BLOCK">PARAMATTR_BLOCK Contents</a>
</h3>

<div class="doc_text">

<p>The <tt>PARAMATTR_BLOCK</tt> block (id 9) contains a table of
entries describing the attributes of function parameters. These
entries are referenced by 1-based index in the <i>paramattr</i> field
of module block <a name="MODULE_CODE_FUNCTION"><tt>FUNCTION</tt></a>
records, or within the <i>attr</i> field of function block <a
href="#FUNC_CODE_INST_INVOKE"><tt>INST_INVOKE</tt></a> and <a
href="#FUNC_CODE_INST_CALL"><tt>INST_CALL</tt></a> records.</p>

<p>Entries within <tt>PARAMATTR_BLOCK</tt> are constructed to ensure
that each is unique (i.e., no two indicies represent equivalent
attribute lists). </p>

</div>


<!-- _______________________________________________________________________ -->
<h4><a name="PARAMATTR_CODE_ENTRY">PARAMATTR_CODE_ENTRY Record</a></h4>

<div class="doc_text">

<p><tt>[ENTRY, paramidx0, attr0, paramidx1, attr1...]</tt></p>

<p>The <tt>ENTRY</tt> record (code 1) contains an even number of
values describing a unique set of function parameter attributes. Each
<i>paramidx</i> value indicates which set of attributes is
represented, with 0 representing the return value attributes,
0xFFFFFFFF representing function attributes, and other values
representing 1-based function parameters. Each <i>attr</i> value is a
bitmap with the following interpretation:
</p>

<ul>
<li>bit 0: <tt>zeroext</tt></li>
<li>bit 1: <tt>signext</tt></li>
<li>bit 2: <tt>noreturn</tt></li>
<li>bit 3: <tt>inreg</tt></li>
<li>bit 4: <tt>sret</tt></li>
<li>bit 5: <tt>nounwind</tt></li>
<li>bit 6: <tt>noalias</tt></li>
<li>bit 7: <tt>byval</tt></li>
<li>bit 8: <tt>nest</tt></li>
<li>bit 9: <tt>readnone</tt></li>
<li>bit 10: <tt>readonly</tt></li>
<li>bit 11: <tt>noinline</tt></li>
<li>bit 12: <tt>alwaysinline</tt></li>
<li>bit 13: <tt>optsize</tt></li>
<li>bit 14: <tt>ssp</tt></li>
<li>bit 15: <tt>sspreq</tt></li>
<li>bits 16&ndash;31: <tt>align <var>n</var></tt></li>
<li>bit 32: <tt>nocapture</tt></li>
<li>bit 33: <tt>noredzone</tt></li>
<li>bit 34: <tt>noimplicitfloat</tt></li>
<li>bit 35: <tt>naked</tt></li>
<li>bit 36: <tt>inlinehint</tt></li>
<li>bits 37&ndash;39: <tt>alignstack <var>n</var></tt>, represented as
the logarithm base 2 of the requested alignment, plus 1</li>
</ul>
</div>

<!-- ======================================================================= -->
<h3>
  <a name="TYPE_BLOCK">TYPE_BLOCK Contents</a>
</h3>

<div class="doc_text">

<p>The <tt>TYPE_BLOCK</tt> block (id 10) contains records which
constitute a table of type operator entries used to represent types
referenced within an LLVM module. Each record (with the exception of
<a href="#TYPE_CODE_NUMENTRY"><tt>NUMENTRY</tt></a>) generates a
single type table entry, which may be referenced by 0-based index from
instructions, constants, metadata, type symbol table entries, or other
type operator records.
</p>

<p>Entries within <tt>TYPE_BLOCK</tt> are constructed to ensure that
each entry is unique (i.e., no two indicies represent structurally
equivalent types). </p>

</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TYPE_CODE_NUMENTRY">TYPE_CODE_NUMENTRY Record</a></h4>

<div class="doc_text">

<p><tt>[NUMENTRY, numentries]</tt></p>

<p>The <tt>NUMENTRY</tt> record (code 1) contains a single value which
indicates the total number of type code entries in the type table of
the module. If present, <tt>NUMENTRY</tt> should be the first record
in the block.
</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TYPE_CODE_VOID">TYPE_CODE_VOID Record</a></h4>

<div class="doc_text">

<p><tt>[VOID]</tt></p>

<p>The <tt>VOID</tt> record (code 2) adds a <tt>void</tt> type to the
type table.
</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TYPE_CODE_FLOAT">TYPE_CODE_FLOAT Record</a></h4>

<div class="doc_text">

<p><tt>[FLOAT]</tt></p>

<p>The <tt>FLOAT</tt> record (code 3) adds a <tt>float</tt> (32-bit
floating point) type to the type table.
</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TYPE_CODE_DOUBLE">TYPE_CODE_DOUBLE Record</a></h4>

<div class="doc_text">

<p><tt>[DOUBLE]</tt></p>

<p>The <tt>DOUBLE</tt> record (code 4) adds a <tt>double</tt> (64-bit
floating point) type to the type table.
</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TYPE_CODE_LABEL">TYPE_CODE_LABEL Record</a></h4>

<div class="doc_text">

<p><tt>[LABEL]</tt></p>

<p>The <tt>LABEL</tt> record (code 5) adds a <tt>label</tt> type to
the type table.
</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TYPE_CODE_OPAQUE">TYPE_CODE_OPAQUE Record</a></h4>

<div class="doc_text">

<p><tt>[OPAQUE]</tt></p>

<p>The <tt>OPAQUE</tt> record (code 6) adds an <tt>opaque</tt> type to
the type table. Note that distinct <tt>opaque</tt> types are not
unified.
</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TYPE_CODE_INTEGER">TYPE_CODE_INTEGER  Record</a></h4>

<div class="doc_text">

<p><tt>[INTEGER, width]</tt></p>

<p>The <tt>INTEGER</tt> record (code 7) adds an integer type to the
type table. The single <i>width</i> field indicates the width of the
integer type.
</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TYPE_CODE_POINTER">TYPE_CODE_POINTER Record</a></h4>

<div class="doc_text">

<p><tt>[POINTER, pointee type, address space]</tt></p>

<p>The <tt>POINTER</tt> record (code 8) adds a pointer type to the
type table. The operand fields are</p>

<ul>
<li><i>pointee type</i>: The type index of the pointed-to type</li>

<li><i>address space</i>: If supplied, the target-specific numbered
address space where the pointed-to object resides. Otherwise, the
default address space is zero.
</li>
</ul>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TYPE_CODE_FUNCTION">TYPE_CODE_FUNCTION Record</a></h4>

<div class="doc_text">

<p><tt>[FUNCTION, vararg, ignored, retty, ...paramty... ]</tt></p>

<p>The <tt>FUNCTION</tt> record (code 9) adds a function type to the
type table. The operand fields are</p>

<ul>
<li><i>vararg</i>: Non-zero if the type represents a varargs function</li>

<li><i>ignored</i>: This value field is present for backward
compatibility only, and is ignored</li>

<li><i>retty</i>: The type index of the function's return type</li>

<li><i>paramty</i>: Zero or more type indices representing the
parameter types of the function</li>
</ul>
	
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TYPE_CODE_STRUCT">TYPE_CODE_STRUCT Record</a></h4>

<div class="doc_text">

<p><tt>[STRUCT, ispacked, ...eltty...]</tt></p>

<p>The <tt>STRUCT </tt> record (code 10) adds a struct type to the
type table. The operand fields are</p>

<ul>
<li><i>ispacked</i>: Non-zero if the type represents a packed structure</li>

<li><i>eltty</i>: Zero or more type indices representing the element
types of the structure</li>
</ul>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TYPE_CODE_ARRAY">TYPE_CODE_ARRAY Record</a></h4>

<div class="doc_text">

<p><tt>[ARRAY, numelts, eltty]</tt></p>

<p>The <tt>ARRAY</tt> record (code 11) adds an array type to the type
table.  The operand fields are</p>

<ul>
<li><i>numelts</i>: The number of elements in arrays of this type</li>

<li><i>eltty</i>: The type index of the array element type</li>
</ul>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TYPE_CODE_VECTOR">TYPE_CODE_VECTOR Record</a></h4>

<div class="doc_text">

<p><tt>[VECTOR, numelts, eltty]</tt></p>

<p>The <tt>VECTOR</tt> record (code 12) adds a vector type to the type
table.  The operand fields are</p>

<ul>
<li><i>numelts</i>: The number of elements in vectors of this type</li>

<li><i>eltty</i>: The type index of the vector element type</li>
</ul>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TYPE_CODE_X86_FP80">TYPE_CODE_X86_FP80 Record</a></h4>

<div class="doc_text">

<p><tt>[X86_FP80]</tt></p>

<p>The <tt>X86_FP80</tt> record (code 13) adds an <tt>x86_fp80</tt> (80-bit
floating point) type to the type table.
</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TYPE_CODE_FP128">TYPE_CODE_FP128 Record</a></h4>

<div class="doc_text">

<p><tt>[FP128]</tt></p>

<p>The <tt>FP128</tt> record (code 14) adds an <tt>fp128</tt> (128-bit
floating point) type to the type table.
</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TYPE_CODE_PPC_FP128">TYPE_CODE_PPC_FP128 Record</a></h4>

<div class="doc_text">

<p><tt>[PPC_FP128]</tt></p>

<p>The <tt>PPC_FP128</tt> record (code 15) adds a <tt>ppc_fp128</tt>
(128-bit floating point) type to the type table.
</p>
</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TYPE_CODE_METADATA">TYPE_CODE_METADATA Record</a></h4>

<div class="doc_text">

<p><tt>[METADATA]</tt></p>

<p>The <tt>METADATA</tt> record (code 16) adds a <tt>metadata</tt>
type to the type table.
</p>
</div>

<!-- ======================================================================= -->
<h3>
  <a name="CONSTANTS_BLOCK">CONSTANTS_BLOCK Contents</a>
</h3>

<div class="doc_text">

<p>The <tt>CONSTANTS_BLOCK</tt> block (id 11) ...
</p>

</div>


<!-- ======================================================================= -->
<h3>
  <a name="FUNCTION_BLOCK">FUNCTION_BLOCK Contents</a>
</h3>

<div class="doc_text">

<p>The <tt>FUNCTION_BLOCK</tt> block (id 12) ...
</p>

<p>In addition to the record types described below, a
<tt>FUNCTION_BLOCK</tt> block may contain the following sub-blocks:
</p>

<ul>
<li><a href="#CONSTANTS_BLOCK"><tt>CONSTANTS_BLOCK</tt></a></li>
<li><a href="#VALUE_SYMTAB_BLOCK"><tt>VALUE_SYMTAB_BLOCK</tt></a></li>
<li><a href="#METADATA_ATTACHMENT"><tt>METADATA_ATTACHMENT</tt></a></li>
</ul>

</div>


<!-- ======================================================================= -->
<h3>
  <a name="TYPE_SYMTAB_BLOCK">TYPE_SYMTAB_BLOCK Contents</a>
</h3>

<div class="doc_text">

<p>The <tt>TYPE_SYMTAB_BLOCK</tt> block (id 13) contains entries which
map between module-level named types and their corresponding type
indices.
</p>

</div>

<!-- _______________________________________________________________________ -->
<h4><a name="TST_CODE_ENTRY">TST_CODE_ENTRY Record</a></h4>

<div class="doc_text">

<p><tt>[ENTRY, typeid, ...string...]</tt></p>

<p>The <tt>ENTRY</tt> record (code 1) contains a variable number of
values, with the first giving the type index of the designated type,
and the remaining values giving the character codes of the type
name. Each entry corresponds to a single named type.
</p>
</div>


<!-- ======================================================================= -->
<h3>
  <a name="VALUE_SYMTAB_BLOCK">VALUE_SYMTAB_BLOCK Contents</a>
</h3>

<div class="doc_text">

<p>The <tt>VALUE_SYMTAB_BLOCK</tt> block (id 14) ... 
</p>

</div>


<!-- ======================================================================= -->
<h3>
  <a name="METADATA_BLOCK">METADATA_BLOCK Contents</a>
</h3>

<div class="doc_text">

<p>The <tt>METADATA_BLOCK</tt> block (id 15) ...
</p>

</div>


<!-- ======================================================================= -->
<h3>
  <a name="METADATA_ATTACHMENT">METADATA_ATTACHMENT Contents</a>
</h3>

<div class="doc_text">

<p>The <tt>METADATA_ATTACHMENT</tt> block (id 16) ...
</p>

</div>


<!-- *********************************************************************** -->
<hr>
<address> <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
 src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>
<a href="http://validator.w3.org/check/referer"><img
 src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
 <a href="mailto:sabre@nondot.org">Chris Lattner</a><br>
<a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br>
Last modified: $Date$
</address>
</body>
</html>
