mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 04:38:24 +00:00
[docs] Add ReST version of all the man pages.
- The POD versions are slated for execution, but are still around until llvm.org machinery is in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156384 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
56
docs/CommandGuide/llvm-diff.rst
Normal file
56
docs/CommandGuide/llvm-diff.rst
Normal file
@ -0,0 +1,56 @@
|
||||
llvm-diff - LLVM structural 'diff'
|
||||
==================================
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
|
||||
|
||||
**llvm-diff** [*options*] *module 1* *module 2* [*global name ...*]
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
|
||||
|
||||
**llvm-diff** compares the structure of two LLVM modules, primarily
|
||||
focusing on differences in function definitions. Insignificant
|
||||
differences, such as changes in the ordering of globals or in the
|
||||
names of local values, are ignored.
|
||||
|
||||
An input module will be interpreted as an assembly file if its name
|
||||
ends in '.ll'; otherwise it will be read in as a bitcode file.
|
||||
|
||||
If a list of global names is given, just the values with those names
|
||||
are compared; otherwise, all global values are compared, and
|
||||
diagnostics are produced for globals which only appear in one module
|
||||
or the other.
|
||||
|
||||
**llvm-diff** compares two functions by comparing their basic blocks,
|
||||
beginning with the entry blocks. If the terminators seem to match,
|
||||
then the corresponding successors are compared; otherwise they are
|
||||
ignored. This algorithm is very sensitive to changes in control flow,
|
||||
which tend to stop any downstream changes from being detected.
|
||||
|
||||
**llvm-diff** is intended as a debugging tool for writers of LLVM
|
||||
passes and frontends. It does not have a stable output format.
|
||||
|
||||
|
||||
EXIT STATUS
|
||||
-----------
|
||||
|
||||
|
||||
If **llvm-diff** finds no differences between the modules, it will exit
|
||||
with 0 and produce no output. Otherwise it will exit with a non-zero
|
||||
value.
|
||||
|
||||
|
||||
BUGS
|
||||
----
|
||||
|
||||
|
||||
Many important differences, like changes in linkage or function
|
||||
attributes, are not diagnosed.
|
||||
|
||||
Changes in memory behavior (for example, coalescing loads) can cause
|
||||
massive detected differences in blocks.
|
Reference in New Issue
Block a user