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