Provided by: llvm-4.0_4.0.1-10build1_amd64 bug


       llvm-diff - LLVM structural 'diff'


       llvm-diff [options] module 1 module 2 [global name ]


       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.


       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.


       Many  important  differences,  like  changes  in  linkage  or function attributes, are not

       Changes in memory behavior (for example, coalescing  loads)  can  cause  massive  detected
       differences in blocks.


       Maintained by The LLVM Team (


       2003-2018, LLVM Project