2012-02-05 23:56:22 +00:00
|
|
|
.\" $FreeBSD$
|
2014-02-16 19:44:07 +00:00
|
|
|
.\" Man page generated from reStructuredText.
|
|
|
|
.
|
2012-08-20 18:33:03 +00:00
|
|
|
.
|
|
|
|
.nr rst2man-indent-level 0
|
|
|
|
.
|
|
|
|
.de1 rstReportMargin
|
|
|
|
\\$1 \\n[an-margin]
|
|
|
|
level \\n[rst2man-indent-level]
|
|
|
|
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
|
|
-
|
|
|
|
\\n[rst2man-indent0]
|
|
|
|
\\n[rst2man-indent1]
|
|
|
|
\\n[rst2man-indent2]
|
2012-02-05 23:56:22 +00:00
|
|
|
..
|
2012-08-20 18:33:03 +00:00
|
|
|
.de1 INDENT
|
|
|
|
.\" .rstReportMargin pre:
|
|
|
|
. RS \\$1
|
|
|
|
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
|
|
|
|
. nr rst2man-indent-level +1
|
|
|
|
.\" .rstReportMargin post:
|
2012-02-05 23:56:22 +00:00
|
|
|
..
|
2012-08-20 18:33:03 +00:00
|
|
|
.de UNINDENT
|
|
|
|
. RE
|
|
|
|
.\" indent \\n[an-margin]
|
|
|
|
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
|
|
.nr rst2man-indent-level -1
|
|
|
|
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
|
|
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
2012-02-05 23:56:22 +00:00
|
|
|
..
|
2021-04-26 11:23:24 +00:00
|
|
|
.TH "LLVM-DIFF" "1" "2021-06-07" "12" "LLVM"
|
|
|
|
.SH NAME
|
|
|
|
llvm-diff \- LLVM structural 'diff'
|
2012-08-20 18:33:03 +00:00
|
|
|
.SH SYNOPSIS
|
|
|
|
.sp
|
|
|
|
\fBllvm\-diff\fP [\fIoptions\fP] \fImodule 1\fP \fImodule 2\fP [\fIglobal name ...\fP]
|
|
|
|
.SH DESCRIPTION
|
|
|
|
.sp
|
|
|
|
\fBllvm\-diff\fP compares the structure of two LLVM modules, primarily
|
2012-02-05 23:56:22 +00:00
|
|
|
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.
|
2012-08-20 18:33:03 +00:00
|
|
|
.sp
|
2012-02-05 23:56:22 +00:00
|
|
|
An input module will be interpreted as an assembly file if its name
|
2012-08-20 18:33:03 +00:00
|
|
|
ends in \(aq.ll\(aq; otherwise it will be read in as a bitcode file.
|
|
|
|
.sp
|
2012-02-05 23:56:22 +00:00
|
|
|
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.
|
2012-08-20 18:33:03 +00:00
|
|
|
.sp
|
|
|
|
\fBllvm\-diff\fP compares two functions by comparing their basic blocks,
|
2012-02-05 23:56:22 +00:00
|
|
|
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.
|
2012-08-20 18:33:03 +00:00
|
|
|
.sp
|
|
|
|
\fBllvm\-diff\fP is intended as a debugging tool for writers of LLVM
|
2012-02-05 23:56:22 +00:00
|
|
|
passes and frontends. It does not have a stable output format.
|
2012-08-20 18:33:03 +00:00
|
|
|
.SH EXIT STATUS
|
|
|
|
.sp
|
|
|
|
If \fBllvm\-diff\fP finds no differences between the modules, it will exit
|
|
|
|
with 0 and produce no output. Otherwise it will exit with a non\-zero
|
2012-02-05 23:56:22 +00:00
|
|
|
value.
|
2012-08-20 18:33:03 +00:00
|
|
|
.SH BUGS
|
|
|
|
.sp
|
2012-02-05 23:56:22 +00:00
|
|
|
Many important differences, like changes in linkage or function
|
|
|
|
attributes, are not diagnosed.
|
2012-08-20 18:33:03 +00:00
|
|
|
.sp
|
2012-02-05 23:56:22 +00:00
|
|
|
Changes in memory behavior (for example, coalescing loads) can cause
|
|
|
|
massive detected differences in blocks.
|
2012-08-20 18:33:03 +00:00
|
|
|
.SH AUTHOR
|
2020-06-27 11:56:49 +00:00
|
|
|
Maintained by the LLVM Team (https://llvm.org/).
|
2012-08-20 18:33:03 +00:00
|
|
|
.SH COPYRIGHT
|
2021-04-26 11:23:24 +00:00
|
|
|
2003-2021, LLVM Project
|
2012-08-20 18:33:03 +00:00
|
|
|
.\" Generated by docutils manpage writer.
|
|
|
|
.
|