forked from OSchip/llvm-project
parent
53c9ac30f9
commit
978f007a80
|
@ -72,6 +72,9 @@ options) arguments to the tool you are interested in.</p>
|
||||||
<li><a href="/cmds/llvmc.html"><b>llvmc</b></a> -
|
<li><a href="/cmds/llvmc.html"><b>llvmc</b></a> -
|
||||||
a generic customizable compiler driver</li>
|
a generic customizable compiler driver</li>
|
||||||
|
|
||||||
|
<li><a href="/cmds/llvm-diff.html"><b>llvm-diff</b></a> -
|
||||||
|
structurally compare two modules</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
=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
|
Loading…
Reference in New Issue