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.
