.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  | will give a
.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
.\" expand to `' in nroff, nothing in troff, for use with C<>.
.tr \(*W-|\(bv\*(Tr
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.if \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.\"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.hy 0
.if n .na
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "LLVM-BCANALYZER 1"
.TH LLVM-BCANALYZER 1 "2006-03-13" "CVS" "LLVM Command Guide"
.SH "NAME"
llvm\-bcanalyzer \- LLVM bytecode analyzer
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
\&\fBllvm-bcanalyzer\fR [\fIoptions\fR] [\fIfilename\fR]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
The \fBllvm-bcanalyzer\fR command is a small utility for analyzing bytecode files.
The tool reads a bytecode file (such as generated with the \fBllvm-as\fR tool) and
produces a statistical report on the contents of the byteocde file.  The tool
can also dump a low level but human readable version of the bytecode file. 
This tool is probably not of much interest or utility except for those working 
directly with the bytecode file format. Most \s-1LLVM\s0 users can just ignore
this tool.
.PP
If \fIfilename\fR is omitted or is \f(CW\*(C`\-\*(C'\fR, then \fBllvm-bcanalyzer\fR reads its input 
from standard input. This is useful for combining the tool into a pipeline.
Output is written to the standard output.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-nodetails\fR" 4
.IX Item "-nodetails"
Causes \fBllvm-bcanalyzer\fR to abbreviate its output by writing out only a module 
level summary. The details for individual functions are not displayed.
.IP "\fB\-dump\fR" 4
.IX Item "-dump"
Causes \fBllvm-bcanalyzer\fR to dump the bytecode in a human readable format. This 
format is significantly different from \s-1LLVM\s0 assembly and provides details about 
the encoding of the bytecode file.
.IP "\fB\-verify\fR" 4
.IX Item "-verify"
Causes \fBllvm-bcanalyzer\fR to verify the module produced by reading the 
bytecode. This ensures that the statistics generated are based on a consistent
module.
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
Print a summary of command line options.
.SH "EXIT STATUS"
.IX Header "EXIT STATUS"
If \fBllvm-bcanalyzer\fR succeeds, it will exit with 0.  Otherwise, if an error
occurs, it will exit with a non-zero value, usually 1.
.SH "SUMMARY OUTPUT DEFINITIONS"
.IX Header "SUMMARY OUTPUT DEFINITIONS"
The following items are always printed by llvm\-bcanalyzer. They comprize the
summary output.
.IP "\fBBytecode Analysis Of Module\fR" 4
.IX Item "Bytecode Analysis Of Module"
This just provides the name of the module for which bytecode analysis is being
generated.
.IP "\fBBytecode Version Number\fR" 4
.IX Item "Bytecode Version Number"
The bytecode version (not \s-1LLVM\s0 version) of the file read by the analyzer.
.IP "\fBFile Size\fR" 4
.IX Item "File Size"
The size, in bytes, of the entire bytecode file.
.IP "\fBModule Bytes\fR" 4
.IX Item "Module Bytes"
The size, in bytes, of the module block. Percentage is relative to File Size.
.IP "\fBFunction Bytes\fR" 4
.IX Item "Function Bytes"
The size, in bytes, of all the function blocks. Percentage is relative to File
Size.
.IP "\fBGlobal Types Bytes\fR" 4
.IX Item "Global Types Bytes"
The size, in bytes, of the Global Types Pool. Percentage is relative to File
Size. This is the size of the definitions of all types in the bytecode file.
.IP "\fBConstant Pool Bytes\fR" 4
.IX Item "Constant Pool Bytes"
The size, in bytes, of the Constant Pool Blocks Percentage is relative to File
Size.
.IP "\fBModule Globals Bytes\fR" 4
.IX Item "Module Globals Bytes"
Ths size, in bytes, of the Global Variable Definitions and their initializers.
Percentage is relative to File Size.
.IP "\fBInstruction List Bytes\fR" 4
.IX Item "Instruction List Bytes"
The size, in bytes, of all the instruction lists in all the functions.
Percentage is relative to File Size. Note that this value is also included in
the Function Bytes.
.IP "\fBCompaction Table Bytes\fR" 4
.IX Item "Compaction Table Bytes"
The size, in bytes, of all the compaction tables in all the functions.
Percentage is relative to File Size. Note that this value is also included in
the Function Bytes.
.IP "\fBSymbol Table Bytes\fR" 4
.IX Item "Symbol Table Bytes"
The size, in bytes, of all the symbol tables in all the functions. Percentage is
relative to File Size. Note that this value is also included in the Function
Bytes.
.IP "\fBDependent Libraries Bytes\fR" 4
.IX Item "Dependent Libraries Bytes"
The size, in bytes, of the list of dependent libraries in the module. Percentage
is relative to File Size. Note that this value is also included in the Module
Global Bytes.
.IP "\fBNumber Of Bytecode Blocks\fR" 4
.IX Item "Number Of Bytecode Blocks"
The total number of blocks of any kind in the bytecode file.
.IP "\fBNumber Of Functions\fR" 4
.IX Item "Number Of Functions"
The total number of function definitions in the bytecode file.
.IP "\fBNumber Of Types\fR" 4
.IX Item "Number Of Types"
The total number of types defined in the Global Types Pool.
.IP "\fBNumber Of Constants\fR" 4
.IX Item "Number Of Constants"
The total number of constants (of any type) defined in the Constant Pool.
.IP "\fBNumber Of Basic Blocks\fR" 4
.IX Item "Number Of Basic Blocks"
The total number of basic blocks defined in all functions in the bytecode file.
.IP "\fBNumber Of Instructions\fR" 4
.IX Item "Number Of Instructions"
The total number of instructions defined in all functions in the bytecode file.
.IP "\fBNumber Of Long Instructions\fR" 4
.IX Item "Number Of Long Instructions"
The total number of long instructions defined in all functions in the bytecode
file. Long instructions are those taking greater than 4 bytes. Typically long
instructions are GetElementPtr with several indices, \s-1PHI\s0 nodes, and calls to
functions with large numbers of arguments.
.IP "\fBNumber Of Operands\fR" 4
.IX Item "Number Of Operands"
The total number of operands used in all instructions in the bytecode file.
.IP "\fBNumber Of Compaction Tables\fR" 4
.IX Item "Number Of Compaction Tables"
The total number of compaction tables in all functions in the bytecode file.
.IP "\fBNumber Of Symbol Tables\fR" 4
.IX Item "Number Of Symbol Tables"
The total number of symbol tables in all functions in the bytecode file.
.IP "\fBNumber Of Dependent Libs\fR" 4
.IX Item "Number Of Dependent Libs"
The total number of dependent libraries found in the bytecode file.
.IP "\fBTotal Instruction Size\fR" 4
.IX Item "Total Instruction Size"
The total size of the instructions in all functions in the bytecode file.
.IP "\fBAverage Instruction Size\fR" 4
.IX Item "Average Instruction Size"
The average number of bytes per instruction across all functions in the bytecode
file. This value is computed by dividing Total Instruction Size by Number Of
Instructions.
.IP "\fBMaximum Type Slot Number\fR" 4
.IX Item "Maximum Type Slot Number"
The maximum value used for a type's slot number. Larger slot number values take 
more bytes to encode.
.IP "\fBMaximum Value Slot Number\fR" 4
.IX Item "Maximum Value Slot Number"
The maximum value used for a value's slot number. Larger slot number values take 
more bytes to encode.
.IP "\fBBytes Per Value\fR" 4
.IX Item "Bytes Per Value"
The average size of a Value definition (of any type). This is computed by
dividing File Size by the total number of values of any type.
.IP "\fBBytes Per Global\fR" 4
.IX Item "Bytes Per Global"
The average size of a global definition (constants and global variables).
.IP "\fBBytes Per Function\fR" 4
.IX Item "Bytes Per Function"
The average number of bytes per function definition. This is computed by
dividing Function Bytes by Number Of Functions.
.IP "\fB# of \s-1VBR\s0 32\-bit Integers\fR" 4
.IX Item "# of VBR 32-bit Integers"
The total number of 32\-bit integers encoded using the Variable Bit Rate
encoding scheme.
.IP "\fB# of \s-1VBR\s0 64\-bit Integers\fR" 4
.IX Item "# of VBR 64-bit Integers"
The total number of 64\-bit integers encoded using the Variable Bit Rate encoding
scheme.
.IP "\fB# of \s-1VBR\s0 Compressed Bytes\fR" 4
.IX Item "# of VBR Compressed Bytes"
The total number of bytes consumed by the 32\-bit and 64\-bit integers that use
the Variable Bit Rate encoding scheme.
.IP "\fB# of \s-1VBR\s0 Expanded Bytes\fR" 4
.IX Item "# of VBR Expanded Bytes"
The total number of bytes that would have been consumed by the 32\-bit and 64\-bit
integers had they not been compressed with the Variable Bit Rage encoding
scheme.
.IP "\fBBytes Saved With \s-1VBR\s0\fR" 4
.IX Item "Bytes Saved With VBR"
The total number of bytes saved by using the Variable Bit Rate encoding scheme.
The percentage is relative to # of \s-1VBR\s0 Expanded Bytes.
.SH "DETAILED OUTPUT DEFINITIONS"
.IX Header "DETAILED OUTPUT DEFINITIONS"
The following definitions occur only if the \-nodetails option was not given.
The detailed output provides additional information on a per-function basis.
.IP "\fBType\fR" 4
.IX Item "Type"
The type signature of the function.
.IP "\fBByte Size\fR" 4
.IX Item "Byte Size"
The total number of bytes in the function's block.
.IP "\fBBasic Blocks\fR" 4
.IX Item "Basic Blocks"
The number of basic blocks defined by the function.
.IP "\fBInstructions\fR" 4
.IX Item "Instructions"
The number of instructions defined by the function.
.IP "\fBLong Instructions\fR" 4
.IX Item "Long Instructions"
The number of instructions using the long instruction format in the function.
.IP "\fBOperands\fR" 4
.IX Item "Operands"
The number of operands used by all instructions in the function.
.IP "\fBInstruction Size\fR" 4
.IX Item "Instruction Size"
The number of bytes consumed by instructions in the function.
.IP "\fBAverage Instruction Size\fR" 4
.IX Item "Average Instruction Size"
The average number of bytes consumed by the instructions in the funtion. This
value is computed by dividing Instruction Size by Instructions.
.IP "\fBBytes Per Instruction\fR" 4
.IX Item "Bytes Per Instruction"
The average number of bytes used by the function per instruction. This value is
computed by dividing Byte Size by Instructions. Note that this is not the same
as Average Instruction Size. It computes a number relative to the total function
size not just the size of the instruction list.
.IP "\fBNumber of \s-1VBR\s0 32\-bit Integers\fR" 4
.IX Item "Number of VBR 32-bit Integers"
The total number of 32\-bit integers found in this function (for any use).
.IP "\fBNumber of \s-1VBR\s0 64\-bit Integers\fR" 4
.IX Item "Number of VBR 64-bit Integers"
The total number of 64\-bit integers found in this function (for any use).
.IP "\fBNumber of \s-1VBR\s0 Compressed Bytes\fR" 4
.IX Item "Number of VBR Compressed Bytes"
The total number of bytes in this function consumed by the 32\-bit and 64\-bit 
integers that use the Variable Bit Rate encoding scheme.
.IP "\fBNumber of \s-1VBR\s0 Expanded Bytes\fR" 4
.IX Item "Number of VBR Expanded Bytes"
The total number of bytes in this function that would have been consumed by 
the 32\-bit and 64\-bit integers had they not been compressed with the Variable 
Bit Rate encoding scheme.
.IP "\fBBytes Saved With \s-1VBR\s0\fR" 4
.IX Item "Bytes Saved With VBR"
The total number of bytes saved in this function by using the Variable Bit 
Rate encoding scheme. The percentage is relative to # of \s-1VBR\s0 Expanded Bytes.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
llvm-dis, <http://llvm.org/docs/BytecodeFormat.html>
.SH "AUTHORS"
.IX Header "AUTHORS"
Maintained by the \s-1LLVM\s0 Team (<http://llvm.org>).
