diff --git a/docs/CommandGuide/llvm-extract.rst b/docs/CommandGuide/llvm-extract.rst index d569e35729e..d0e9c1c255a 100644 --- a/docs/CommandGuide/llvm-extract.rst +++ b/docs/CommandGuide/llvm-extract.rst @@ -1,104 +1,79 @@ llvm-extract - extract a function from an LLVM module ===================================================== - SYNOPSIS -------- - -**llvm-extract** [*options*] **--func** *function-name* [*filename*] - +:program:`llvm-extract` [*options*] **--func** *function-name* [*filename*] DESCRIPTION ----------- - -The **llvm-extract** command takes the name of a function and extracts it from -the specified LLVM bitcode file. It is primarily used as a debugging tool to -reduce test cases from larger programs that are triggering a bug. +The :program:`llvm-extract` command takes the name of a function and extracts +it from the specified LLVM bitcode file. It is primarily used as a debugging +tool to reduce test cases from larger programs that are triggering a bug. In addition to extracting the bitcode of the specified function, -**llvm-extract** will also remove unreachable global variables, prototypes, and -unused types. - -The **llvm-extract** command reads its input from standard input if filename is -omitted or if filename is -. The output is always written to standard output, -unless the **-o** option is specified (see below). +:program:`llvm-extract` will also remove unreachable global variables, +prototypes, and unused types. +The :program:`llvm-extract` command reads its input from standard input if +filename is omitted or if filename is ``-``. The output is always written to +standard output, unless the **-o** option is specified (see below). OPTIONS ------- - - **-f** - Enable binary output on terminals. Normally, **llvm-extract** will refuse to - write raw bitcode output if the output stream is a terminal. With this option, - **llvm-extract** will write raw bitcode regardless of the output device. - - + Enable binary output on terminals. Normally, :program:`llvm-extract` will + refuse to write raw bitcode output if the output stream is a terminal. With + this option, :program:`llvm-extract` will write raw bitcode regardless of the + output device. **--func** *function-name* - Extract the function named *function-name* from the LLVM bitcode. May be + Extract the function named *function-name* from the LLVM bitcode. May be specified multiple times to extract multiple functions at once. - - **--rfunc** *function-regular-expr* Extract the function(s) matching *function-regular-expr* from the LLVM bitcode. All functions matching the regular expression will be extracted. May be specified multiple times. - - **--glob** *global-name* - Extract the global variable named *global-name* from the LLVM bitcode. May be + Extract the global variable named *global-name* from the LLVM bitcode. May be specified multiple times to extract multiple global variables at once. - - **--rglob** *glob-regular-expr* Extract the global variable(s) matching *global-regular-expr* from the LLVM - bitcode. All global variables matching the regular expression will be extracted. - May be specified multiple times. - - + bitcode. All global variables matching the regular expression will be + extracted. May be specified multiple times. **-help** Print a summary of command line options. - - **-o** *filename* Specify the output filename. If filename is "-" (the default), then - **llvm-extract** sends its output to standard output. - - + :program:`llvm-extract` sends its output to standard output. **-S** Write output in LLVM intermediate language (instead of bitcode). - - - EXIT STATUS ----------- - -If **llvm-extract** succeeds, it will exit with 0. Otherwise, if an error +If :program:`llvm-extract` succeeds, it will exit with 0. Otherwise, if an error occurs, it will exit with a non-zero value. - SEE ALSO -------- +bugpoint -bugpoint|bugpoint diff --git a/docs/CommandGuide/llvm-nm.rst b/docs/CommandGuide/llvm-nm.rst index e501c4a23f4..83d9fbaf9e8 100644 --- a/docs/CommandGuide/llvm-nm.rst +++ b/docs/CommandGuide/llvm-nm.rst @@ -1,189 +1,146 @@ llvm-nm - list LLVM bitcode and object file's symbol table ========================================================== - SYNOPSIS -------- - :program:`llvm-nm` [*options*] [*filenames...*] - DESCRIPTION ----------- - The :program:`llvm-nm` utility lists the names of symbols from the LLVM bitcode files, object files, or :program:`ar` archives containing them, named on the -command line. Each symbol is listed along with some simple information about its -provenance. If no file name is specified, or *-* is used as a file name, +command line. Each symbol is listed along with some simple information about +its provenance. If no file name is specified, or *-* is used as a file name, :program:`llvm-nm` will process a file on its standard input stream. :program:`llvm-nm`'s default output format is the traditional BSD :program:`nm` -output format. Each such output record consists of an (optional) 8-digit +output format. Each such output record consists of an (optional) 8-digit hexadecimal address, followed by a type code character, followed by a name, for -each symbol. One record is printed per line; fields are separated by spaces. +each symbol. One record is printed per line; fields are separated by spaces. When the address is omitted, it is replaced by 8 spaces. Type code characters currently supported, and their meanings, are as follows: - U Named object is referenced but undefined in this bitcode file - - C Common (multiple definitions link together into one def) - - W Weak reference (multiple definitions link together into zero or one definitions) - - t Local function (text) object - - T Global function (text) object - - d Local data object - - D Global data object - - ? Something unrecognizable - - Because LLVM bitcode files typically contain objects that are not considered to have addresses until they are linked into an executable image or dynamically compiled "just-in-time", :program:`llvm-nm` does not print an address for any symbol in an LLVM bitcode file, even symbols which are defined in the bitcode file. - OPTIONS ------- - .. program:: llvm-nm - .. option:: -B (default) - Use BSD output format. Alias for :option:`--format=bsd`. - + Use BSD output format. Alias for :option:`--format=bsd`. .. option:: -P - Use POSIX.2 output format. Alias for :option:`--format=posix`. - + Use POSIX.2 output format. Alias for :option:`--format=posix`. .. option:: --debug-syms, -a Show all symbols, even debugger only. - .. option:: --defined-only Print only symbols defined in this file (as opposed to symbols which may be referenced by objects in this file, but not defined in this file.) - .. option:: --dynamic, -D Display dynamic symbols instead of normal symbols. - .. option:: --extern-only, -g Print only symbols whose definitions are external; that is, accessible from other files. - .. option:: --format=format, -f format - Select an output format; *format* may be *sysv*, *posix*, or *bsd*. The default + Select an output format; *format* may be *sysv*, *posix*, or *bsd*. The default is *bsd*. - .. option:: -help Print a summary of command-line options and their meanings. - .. option:: --no-sort, -p Shows symbols in order encountered. - .. option:: --numeric-sort, -n, -v Sort symbols by address. - .. option:: --print-file-name, -A, -o Precede each symbol with the file it came from. - .. option:: --print-size, -S Show symbol size instead of address. - .. option:: --size-sort Sort symbols by size. - .. option:: --undefined-only, -u Print only symbols referenced but not defined in this file. - BUGS ---- - * :program:`llvm-nm` cannot demangle C++ mangled names, like GNU :program:`nm` can. * :program:`llvm-nm` does not support the full set of arguments that GNU :program:`nm` does. - EXIT STATUS ----------- - :program:`llvm-nm` exits with an exit code of zero. - SEE ALSO -------- - -llvm-dis|llvm-dis, ar(1), nm(1) +llvm-dis, ar(1), nm(1)