=pod

=head1 NAME

llvm-diff - LLVM structural 'diff'

=head1 SYNOPSIS

B<llvm-diff> [I<options>] I<module 1> I<module 2> [I<global name ...>]

=head1 DESCRIPTION

B<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.

B<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.

B<llvm-diff> is intended as a debugging tool for writers of LLVM
passes and frontends.  It does not have a stable output format.

=head1 EXIT STATUS

If B<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.

=head1 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.

=head1 AUTHORS

Maintained by the LLVM Team (L<http://llvm.org/>).

=cut
