Provided by: llvm-3.9_3.9.1-19ubuntu2_amd64 bug

NAME

       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.

AUTHOR

       Maintained by The LLVM Team (http://llvm.org/).

COPYRIGHT

       2003-2018, LLVM Project