[llvm-commits] [llvm] r113303 - in /llvm/trunk/docs/CommandGuide: index.html llvm-diff.pod

John McCall rjmccall at apple.com
Tue Sep 7 16:10:21 PDT 2010


Author: rjmccall
Date: Tue Sep  7 18:10:21 2010
New Revision: 113303

URL: http://llvm.org/viewvc/llvm-project?rev=113303&view=rev
Log:
Add documentation for llvm-diff.


Added:
    llvm/trunk/docs/CommandGuide/llvm-diff.pod
Modified:
    llvm/trunk/docs/CommandGuide/index.html

Modified: llvm/trunk/docs/CommandGuide/index.html
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/CommandGuide/index.html?rev=113303&r1=113302&r2=113303&view=diff
==============================================================================
--- llvm/trunk/docs/CommandGuide/index.html (original)
+++ llvm/trunk/docs/CommandGuide/index.html Tue Sep  7 18:10:21 2010
@@ -72,6 +72,9 @@
 <li><a href="/cmds/llvmc.html"><b>llvmc</b></a> -
     a generic customizable compiler driver</li>
 
+<li><a href="/cmds/llvm-diff.html"><b>llvm-diff</b></a> -
+    structurally compare two modules</li>
+
 </ul>
 
 </div>

Added: llvm/trunk/docs/CommandGuide/llvm-diff.pod
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/CommandGuide/llvm-diff.pod?rev=113303&view=auto
==============================================================================
--- llvm/trunk/docs/CommandGuide/llvm-diff.pod (added)
+++ llvm/trunk/docs/CommandGuide/llvm-diff.pod Tue Sep  7 18:10:21 2010
@@ -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





More information about the llvm-commits mailing list