diff options
Diffstat (limited to 'docs/CommandGuide/llvm-bcanalyzer.rst')
| -rw-r--r-- | docs/CommandGuide/llvm-bcanalyzer.rst | 221 | 
1 files changed, 51 insertions, 170 deletions
| diff --git a/docs/CommandGuide/llvm-bcanalyzer.rst b/docs/CommandGuide/llvm-bcanalyzer.rst index f1e4eac1be50..7254088ec946 100644 --- a/docs/CommandGuide/llvm-bcanalyzer.rst +++ b/docs/CommandGuide/llvm-bcanalyzer.rst @@ -1,424 +1,305 @@  llvm-bcanalyzer - LLVM bitcode analyzer  ======================================= -  SYNOPSIS  -------- - -**llvm-bcanalyzer** [*options*] [*filename*] - +:program:`llvm-bcanalyzer` [*options*] [*filename*]  DESCRIPTION  ----------- +The :program:`llvm-bcanalyzer` command is a small utility for analyzing bitcode +files.  The tool reads a bitcode file (such as generated with the +:program:`llvm-as` tool) and produces a statistical report on the contents of +the bitcode file.  The tool can also dump a low level but human readable +version of the bitcode file.  This tool is probably not of much interest or +utility except for those working directly with the bitcode file format.  Most +LLVM users can just ignore this tool. -The **llvm-bcanalyzer** command is a small utility for analyzing bitcode files. -The tool reads a bitcode file (such as generated with the **llvm-as** tool) and -produces a statistical report on the contents of the bitcode file.  The tool -can also dump a low level but human readable version of the bitcode file. -This tool is probably not of much interest or utility except for those working -directly with the bitcode file format. Most LLVM users can just ignore -this tool. - -If *filename* is omitted or is ``-``, then **llvm-bcanalyzer** reads its input -from standard input. This is useful for combining the tool into a pipeline. -Output is written to the standard output. - +If *filename* is omitted or is ``-``, then :program:`llvm-bcanalyzer` reads its +input from standard input.  This is useful for combining the tool into a +pipeline.  Output is written to the standard output.  OPTIONS  ------- +.. program:: llvm-bcanalyzer +.. option:: -nodetails -**-nodetails** - - Causes **llvm-bcanalyzer** to abbreviate its output by writing out only a module - level summary. The details for individual functions are not displayed. - - + Causes :program:`llvm-bcanalyzer` to abbreviate its output by writing out only + a module level summary.  The details for individual functions are not + displayed. -**-dump** +.. option:: -dump - Causes **llvm-bcanalyzer** to dump the bitcode in a human readable format. This - format is significantly different from LLVM assembly and provides details about - the encoding of the bitcode file. + Causes :program:`llvm-bcanalyzer` to dump the bitcode in a human readable + format.  This format is significantly different from LLVM assembly and + provides details about the encoding of the bitcode file. +.. option:: -verify - -**-verify** - - Causes **llvm-bcanalyzer** to verify the module produced by reading the - bitcode. This ensures that the statistics generated are based on a consistent + Causes :program:`llvm-bcanalyzer` to verify the module produced by reading the + bitcode.  This ensures that the statistics generated are based on a consistent   module. - - -**-help** +.. option:: -help   Print a summary of command line options. - - -  EXIT STATUS  ----------- - -If **llvm-bcanalyzer** succeeds, it will exit with 0.  Otherwise, if an error -occurs, it will exit with a non-zero value, usually 1. - +If :program:`llvm-bcanalyzer` succeeds, it will exit with 0.  Otherwise, if an +error occurs, it will exit with a non-zero value, usually 1.  SUMMARY OUTPUT DEFINITIONS  -------------------------- - -The following items are always printed by llvm-bcanalyzer. They comprize the +The following items are always printed by llvm-bcanalyzer.  They comprize the  summary output. -  **Bitcode Analysis Of Module**   This just provides the name of the module for which bitcode analysis is being   generated. - -  **Bitcode Version Number**   The bitcode version (not LLVM version) of the file read by the analyzer. - -  **File Size**   The size, in bytes, of the entire bitcode file. - -  **Module Bytes** - The size, in bytes, of the module block. Percentage is relative to File Size. - - + The size, in bytes, of the module block.  Percentage is relative to File Size.  **Function Bytes** - The size, in bytes, of all the function blocks. Percentage is relative to File + The size, in bytes, of all the function blocks.  Percentage is relative to File   Size. - -  **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 bitcode file. - - + 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 bitcode file.  **Constant Pool Bytes**   The size, in bytes, of the Constant Pool Blocks Percentage is relative to File   Size. - -  **Module Globals Bytes**   Ths size, in bytes, of the Global Variable Definitions and their initializers.   Percentage is relative to File Size. - -  **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 + Percentage is relative to File Size.  Note that this value is also included in   the Function Bytes. - -  **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 + Percentage is relative to File Size.  Note that this value is also included in   the Function Bytes. - -  **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 + 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. - -  **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 + 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. - -  **Number Of Bitcode Blocks**   The total number of blocks of any kind in the bitcode file. - -  **Number Of Functions**   The total number of function definitions in the bitcode file. - -  **Number Of Types**   The total number of types defined in the Global Types Pool. - -  **Number Of Constants**   The total number of constants (of any type) defined in the Constant Pool. - -  **Number Of Basic Blocks**   The total number of basic blocks defined in all functions in the bitcode file. - -  **Number Of Instructions**   The total number of instructions defined in all functions in the bitcode file. - -  **Number Of Long Instructions**   The total number of long instructions defined in all functions in the bitcode - file. Long instructions are those taking greater than 4 bytes. Typically long + file.  Long instructions are those taking greater than 4 bytes.  Typically long   instructions are GetElementPtr with several indices, PHI nodes, and calls to   functions with large numbers of arguments. - -  **Number Of Operands**   The total number of operands used in all instructions in the bitcode file. - -  **Number Of Compaction Tables**   The total number of compaction tables in all functions in the bitcode file. - -  **Number Of Symbol Tables**   The total number of symbol tables in all functions in the bitcode file. - -  **Number Of Dependent Libs**   The total number of dependent libraries found in the bitcode file. - -  **Total Instruction Size**   The total size of the instructions in all functions in the bitcode file. - -  **Average Instruction Size**   The average number of bytes per instruction across all functions in the bitcode - file. This value is computed by dividing Total Instruction Size by Number Of + file.  This value is computed by dividing Total Instruction Size by Number Of   Instructions. - -  **Maximum Type Slot Number** - The maximum value used for a type's slot number. Larger slot number values take + The maximum value used for a type's slot number.  Larger slot number values take   more bytes to encode. - -  **Maximum Value Slot Number** - The maximum value used for a value's slot number. Larger slot number values take + The maximum value used for a value's slot number.  Larger slot number values take   more bytes to encode. - -  **Bytes Per Value** - The average size of a Value definition (of any type). This is computed by + 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. - -  **Bytes Per Global**   The average size of a global definition (constants and global variables). - -  **Bytes Per Function** - The average number of bytes per function definition. This is computed by + The average number of bytes per function definition.  This is computed by   dividing Function Bytes by Number Of Functions. - -  **# of VBR 32-bit Integers**   The total number of 32-bit integers encoded using the Variable Bit Rate   encoding scheme. - -  **# of VBR 64-bit Integers**   The total number of 64-bit integers encoded using the Variable Bit Rate encoding   scheme. - -  **# 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. - -  **# 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. - -  **Bytes Saved With VBR**   The total number of bytes saved by using the Variable Bit Rate encoding scheme.   The percentage is relative to # of VBR Expanded Bytes. - - -  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. -  **Type**   The type signature of the function. - -  **Byte Size**   The total number of bytes in the function's block. - -  **Basic Blocks**   The number of basic blocks defined by the function. - -  **Instructions**   The number of instructions defined by the function. - -  **Long Instructions**   The number of instructions using the long instruction format in the function. - -  **Operands**   The number of operands used by all instructions in the function. - -  **Instruction Size**   The number of bytes consumed by instructions in the function. - -  **Average Instruction Size** - The average number of bytes consumed by the instructions in the function. This - value is computed by dividing Instruction Size by Instructions. - - + The average number of bytes consumed by the instructions in the function. + This value is computed by dividing Instruction Size by Instructions.  **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. - - + 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.  **Number of VBR 32-bit Integers**   The total number of 32-bit integers found in this function (for any use). - -  **Number of VBR 64-bit Integers**   The total number of 64-bit integers found in this function (for any use). - -  **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. - -  **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. - -  **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 VBR Expanded Bytes. - - - + Rate encoding scheme.  The percentage is relative to # of VBR Expanded Bytes.  SEE ALSO  -------- +:doc:`/CommandGuide/llvm-dis`, :doc:`/BitCodeFormat` -llvm-dis|llvm-dis, `http://llvm.org/docs/BitCodeFormat.html <http://llvm.org/docs/BitCodeFormat.html>`_ | 
