[AVX512] Remove separate instruction and patterns for lowering ctlz_zero_undef. Chang...
[oota-llvm.git] / docs / CommandGuide / llvm-nm.rst
index 1ada009dbfc65d67d5429004b972650c4649c850..83d9fbaf9e8ccd1cb4f39fbbe8196b69b4a33602 100644 (file)
-llvm-nm - list LLVM bitcode file's symbol table
-===============================================
-
+llvm-nm - list LLVM bitcode and object file's symbol table
+==========================================================
 
 SYNOPSIS
 --------
 
-
-**llvm-nm** [*options*] [*filenames...*]
-
+: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,
+:program:`llvm-nm` will process a file on its standard input stream.
 
-The **llvm-nm** utility lists the names of symbols from the LLVM bitcode files,
-or **ar** archives containing LLVM bitcode files, 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, **llvm-nm** will
-process a bitcode file on its standard input stream.
-
-**llvm-nm**'s default output format is the traditional BSD **nm** 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. When the address is
-omitted, it is replaced by 8 spaces.
+: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
+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.
+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", **llvm-nm** does not print an address for any symbol,
-even symbols which are defined in the bitcode file.
-
+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)
 
-**-P**
-
- Use POSIX.2 output format. Alias for **--format=posix**.
+ Use BSD output format.  Alias for :option:`--format=bsd`.
 
+.. option:: -P
 
+ Use POSIX.2 output format.  Alias for :option:`--format=posix`.
 
-**-B**    (default)
+.. option:: --debug-syms, -a
 
Use BSD output format. Alias for **--format=bsd**.
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.)
 
-**-help**
-
- Print a summary of command-line options and their meanings.
+.. option:: --dynamic, -D
 
+ Display dynamic symbols instead of normal symbols.
 
+.. option:: --extern-only, -g
 
-**--defined-only**
+ Print only symbols whose definitions are external; that is, accessible
+ from other files.
 
- Print only symbols defined in this bitcode file (as opposed to
- symbols which may be referenced by objects in this file, but not
- defined in this file.)
+.. option:: --format=format, -f format
 
+ Select an output format; *format* may be *sysv*, *posix*, or *bsd*.  The default
+ is *bsd*.
 
+.. option:: -help
 
-**--extern-only**, **-g**
+ Print a summary of command-line options and their meanings.
 
- Print only symbols whose definitions are external; that is, accessible
- from other bitcode files.
+.. option:: --no-sort, -p
 
+ Shows symbols in order encountered.
 
+.. option:: --numeric-sort, -n, -v
 
-**--undefined-only**, **-u**
+ Sort symbols by address.
 
- Print only symbols referenced but not defined in this bitcode file.
+.. 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.
 
- Select an output format; *fmt* may be *sysv*, *posix*, or *bsd*. The
- default is *bsd*.
+.. 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.
 
-**llvm-nm** cannot demangle C++ mangled names, like GNU **nm** can.
-
+ * :program:`llvm-nm` does not support the full set of arguments that GNU
+   :program:`nm` does.
 
 EXIT STATUS
 -----------
 
-
-**llvm-nm** exits with an exit code of zero.
-
+: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)