Merge llvm-project release/16.x llvmorg-16.0.4-0-gae42196bc493

This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-16.0.4-0-gae42196bc493 (aka 16.0.4 release).

PR:		271047
MFC after:	1 month
This commit is contained in:
Dimitry Andric 2023-05-22 19:29:55 +02:00
commit a324c34037
46 changed files with 1266 additions and 1402 deletions

View File

@ -1812,7 +1812,7 @@ void TypePrinter::printAttributedAfter(const AttributedType *T,
void TypePrinter::printBTFTagAttributedBefore(const BTFTagAttributedType *T,
raw_ostream &OS) {
printBefore(T->getWrappedType(), OS);
OS << " btf_type_tag(" << T->getAttr()->getBTFTypeTag() << ")";
OS << " __attribute__((btf_type_tag(\"" << T->getAttr()->getBTFTypeTag() << "\")))";
}
void TypePrinter::printBTFTagAttributedAfter(const BTFTagAttributedType *T,

View File

@ -7782,7 +7782,7 @@ void Clang::AddClangCLArgs(const ArgList &Args, types::ID InputType,
if (Args.hasArg(options::OPT__SLASH_kernel))
CmdArgs.push_back("-fms-kernel");
if (Arg *A = Args.getLastArg(options::OPT__SLASH_guard)) {
for (const Arg *A : Args.filtered(options::OPT__SLASH_guard)) {
StringRef GuardArgs = A->getValue();
// The only valid options are "cf", "cf,nochecks", "cf-", "ehcont" and
// "ehcont-".

View File

@ -227,7 +227,7 @@ void visualstudio::Linker::ConstructJob(Compilation &C, const JobAction &JA,
Args.AddAllArgValues(CmdArgs, options::OPT__SLASH_link);
// Control Flow Guard checks
if (Arg *A = Args.getLastArg(options::OPT__SLASH_guard)) {
for (const Arg *A : Args.filtered(options::OPT__SLASH_guard)) {
StringRef GuardArgs = A->getValue();
if (GuardArgs.equals_insensitive("cf") ||
GuardArgs.equals_insensitive("cf,nochecks")) {

View File

@ -5348,14 +5348,16 @@ static void TryOrBuildParenListInitialization(
// The remaining elements are initialized with their default member
// initializers, if any
auto *FD = cast<FieldDecl>(SubEntity.getDecl());
if (Expr *ICE = FD->getInClassInitializer(); ICE && !VerifyOnly) {
ExprResult DIE = S.BuildCXXDefaultInitExpr(FD->getLocation(), FD);
if (DIE.isInvalid())
return false;
S.checkInitializerLifetime(SubEntity, DIE.get());
InitExprs.push_back(DIE.get());
if (FD->hasInClassInitializer()) {
if (!VerifyOnly) {
ExprResult DIE = S.BuildCXXDefaultInitExpr(FD->getLocation(), FD);
if (DIE.isInvalid())
return false;
S.checkInitializerLifetime(SubEntity, DIE.get());
InitExprs.push_back(DIE.get());
}
continue;
};
}
}
// Remaining class elements without default member initializers and
// array elements are value initialized:

View File

@ -38,7 +38,7 @@
// _LIBCPP_VERSION represents the version of libc++, which matches the version of LLVM.
// Given a LLVM release LLVM XX.YY.ZZ (e.g. LLVM 16.0.1 == 16.00.01), _LIBCPP_VERSION is
// defined to XXYYZZ.
# define _LIBCPP_VERSION 160003
# define _LIBCPP_VERSION 160004
# define _LIBCPP_CONCAT_IMPL(_X, _Y) _X##_Y
# define _LIBCPP_CONCAT(_X, _Y) _LIBCPP_CONCAT_IMPL(_X, _Y)

View File

@ -1724,12 +1724,9 @@ bool TargetLowering::SimplifyDemandedBits(
unsigned InnerBits = InnerVT.getScalarSizeInBits();
if (ShAmt < InnerBits && DemandedBits.getActiveBits() <= InnerBits &&
isTypeDesirableForOp(ISD::SHL, InnerVT)) {
EVT ShTy = getShiftAmountTy(InnerVT, DL);
if (!APInt(BitWidth, ShAmt).isIntN(ShTy.getSizeInBits()))
ShTy = InnerVT;
SDValue NarrowShl =
TLO.DAG.getNode(ISD::SHL, dl, InnerVT, InnerOp,
TLO.DAG.getConstant(ShAmt, dl, ShTy));
SDValue NarrowShl = TLO.DAG.getNode(
ISD::SHL, dl, InnerVT, InnerOp,
TLO.DAG.getShiftAmountConstant(ShAmt, InnerVT, dl));
return TLO.CombineTo(
Op, TLO.DAG.getNode(ISD::ANY_EXTEND, dl, VT, NarrowShl));
}

View File

@ -8488,11 +8488,13 @@ SystemZTargetLowering::emitMemMemWrapper(MachineInstr &MI,
.addReg(RemSrcReg).addImm(SrcDisp);
MBB->addSuccessor(AllDoneMBB);
MBB = AllDoneMBB;
if (EndMBB) {
if (Opcode != SystemZ::MVC) {
EXRL_MIB.addReg(SystemZ::CC, RegState::ImplicitDefine);
MBB->addLiveIn(SystemZ::CC);
if (EndMBB)
MBB->addLiveIn(SystemZ::CC);
}
}
MF.getProperties().reset(MachineFunctionProperties::Property::NoPHIs);
}
// Handle any remaining bytes with straight-line code.

View File

@ -1557,7 +1557,19 @@ void X86FrameLowering::emitPrologue(MachineFunction &MF,
Fn.arg_size() == 2) {
StackSize += 8;
MFI.setStackSize(StackSize);
emitSPUpdate(MBB, MBBI, DL, -8, /*InEpilogue=*/false);
// Update the stack pointer by pushing a register. This is the instruction
// emitted that would be end up being emitted by a call to `emitSPUpdate`.
// Hard-coding the update to a push avoids emitting a second
// `STACKALLOC_W_PROBING` instruction in the save block: We know that stack
// probing isn't needed anyways for an 8-byte update.
// Pushing a register leaves us in a similar situation to a regular
// function call where we know that the address at (rsp-8) is writeable.
// That way we avoid any off-by-ones with stack probing for additional
// stack pointer updates later on.
BuildMI(MBB, MBBI, DL, TII.get(X86::PUSH64r))
.addReg(X86::RAX, RegState::Undef)
.setMIFlag(MachineInstr::FrameSetup);
}
// If this is x86-64 and the Red Zone is not disabled, if we are a leaf

View File

@ -1,10 +1,10 @@
// $FreeBSD$
#define LLVM_REVISION "llvmorg-16.0.3-0-gda3cd333bea5"
#define LLVM_REVISION "llvmorg-16.0.4-0-gae42196bc493"
#define LLVM_REPOSITORY "https://github.com/llvm/llvm-project.git"
#define CLANG_REVISION "llvmorg-16.0.3-0-gda3cd333bea5"
#define CLANG_REVISION "llvmorg-16.0.4-0-gae42196bc493"
#define CLANG_REPOSITORY "https://github.com/llvm/llvm-project.git"
#define LLDB_REVISION "llvmorg-16.0.3-0-gda3cd333bea5"
#define LLDB_REVISION "llvmorg-16.0.4-0-gae42196bc493"
#define LLDB_REPOSITORY "https://github.com/llvm/llvm-project.git"

View File

@ -1,10 +1,10 @@
/* $FreeBSD$ */
#define CLANG_VERSION 16.0.3
#define CLANG_VERSION_STRING "16.0.3"
#define CLANG_VERSION 16.0.4
#define CLANG_VERSION_STRING "16.0.4"
#define CLANG_VERSION_MAJOR 16
#define CLANG_VERSION_MAJOR_STRING "16"
#define CLANG_VERSION_MINOR 0
#define CLANG_VERSION_PATCHLEVEL 3
#define CLANG_VERSION_PATCHLEVEL 4
#define CLANG_VENDOR "FreeBSD "

View File

@ -1,4 +1,4 @@
// Local identifier in __FreeBSD_version style
#define LLD_FREEBSD_VERSION 1400006
#define LLD_VERSION_STRING "16.0.3 (FreeBSD llvmorg-16.0.3-0-gda3cd333bea5-" __XSTRING(LLD_FREEBSD_VERSION) ")"
#define LLD_VERSION_STRING "16.0.4 (FreeBSD llvmorg-16.0.4-0-gae42196bc493-" __XSTRING(LLD_FREEBSD_VERSION) ")"

View File

@ -1,6 +1,6 @@
#define LLDB_VERSION 16.0.3
#define LLDB_VERSION_STRING "16.0.3"
#define LLDB_VERSION 16.0.4
#define LLDB_VERSION_STRING "16.0.4"
#define LLDB_VERSION_MAJOR 16
#define LLDB_VERSION_MINOR 0
#define LLDB_VERSION_PATCH 3
#define LLDB_VERSION_PATCH 4
/* #undef LLDB_FULL_VERSION_STRING */

View File

@ -348,10 +348,10 @@
#define PACKAGE_NAME "LLVM"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "LLVM 16.0.3"
#define PACKAGE_STRING "LLVM 16.0.4"
/* Define to the version of this package. */
#define PACKAGE_VERSION "16.0.3"
#define PACKAGE_VERSION "16.0.4"
/* Define to the vendor of this package. */
/* #undef PACKAGE_VENDOR */

View File

@ -74,10 +74,10 @@
#define LLVM_VERSION_MINOR 0
/* Patch version of the LLVM API */
#define LLVM_VERSION_PATCH 3
#define LLVM_VERSION_PATCH 4
/* LLVM version string */
#define LLVM_VERSION_STRING "16.0.3"
#define LLVM_VERSION_STRING "16.0.4"
/* Whether LLVM records statistics for use with GetStatistics(),
* PrintStatistics() or PrintStatisticsJSON()

View File

@ -1,3 +1,3 @@
/* $FreeBSD$ */
#define LLVM_REVISION "llvmorg-16.0.3-0-gda3cd333bea5"
#define LLVM_REVISION "llvmorg-16.0.4-0-gae42196bc493"
#define LLVM_REPOSITORY "https://github.com/llvm/llvm-project.git"

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BUGPOINT" "1" "2021-06-07" "12" "LLVM"
.TH "BUGPOINT" "1" "2023-05-24" "16" "LLVM"
.SH NAME
bugpoint \- automatic test case reduction tool
.SH SYNOPSIS
@ -42,7 +41,7 @@ can be used to debug three types of failures: optimizer crashes, miscompilations
by optimizers, or bad native code generation (including problems in the static
and JIT compilers). It aims to reduce large test cases to small, useful ones.
For more information on the design and inner workings of \fBbugpoint\fP, as well as
advice for using bugpoint, see /Bugpoint in the LLVM
advice for using bugpoint, see \fI\%LLVM bugpoint tool: design and usage\fP in the LLVM
distribution.
.SH OPTIONS
.sp
@ -67,7 +66,7 @@ code is considered a test failure. Defaults to false.
.INDENT 0.0
.INDENT 3.5
Pass all arguments specified after \fB\-\-args\fP to the test program whenever it runs.
Note that if any of the \fIprogram args\fP start with a "\fB\-\fP", you should use:
Note that if any of the \fIprogram args\fP start with a \(dq\fB\-\fP\(dq, you should use:
.INDENT 0.0
.INDENT 3.5
.sp
@ -79,8 +78,8 @@ bugpoint [bugpoint args] \-\-args \-\- [program args]
.UNINDENT
.UNINDENT
.sp
The "\fB\-\-\fP" right after the \fB\-\-args\fP option tells \fBbugpoint\fP to consider
any options starting with "\fB\-\fP" to be part of the \fB\-\-args\fP option, not as
The \(dq\fB\-\-\fP\(dq right after the \fB\-\-args\fP option tells \fBbugpoint\fP to consider
any options starting with \(dq\fB\-\fP\(dq to be part of the \fB\-\-args\fP option, not as
options to \fBbugpoint\fP itself.
.UNINDENT
.UNINDENT
@ -102,8 +101,8 @@ bugpoint [bugpoint args] \-\-tool\-args \-\- [tool args]
.UNINDENT
.UNINDENT
.sp
The "\fB\-\-\fP" right after the \fB\-\-tool\-args\fP option tells \fBbugpoint\fP to
consider any options starting with "\fB\-\fP" to be part of the \fB\-\-tool\-args\fP
The \(dq\fB\-\-\fP\(dq right after the \fB\-\-tool\-args\fP option tells \fBbugpoint\fP to
consider any options starting with \(dq\fB\-\fP\(dq to be part of the \fB\-\-tool\-args\fP
option, not as options to \fBbugpoint\fP itself. (See \fB\-\-args\fP, above.)
.UNINDENT
.UNINDENT
@ -111,7 +110,7 @@ option, not as options to \fBbugpoint\fP itself. (See \fB\-\-args\fP, above.)
\fB\-\-safe\-tool\-args\fP \fItool args\fP
.INDENT 0.0
.INDENT 3.5
Pass all arguments specified after \fB\-\-safe\-tool\-args\fP to the "safe" execution
Pass all arguments specified after \fB\-\-safe\-tool\-args\fP to the \(dqsafe\(dq execution
tool.
.UNINDENT
.UNINDENT
@ -205,9 +204,9 @@ to zero to disable the limit.
.INDENT 0.0
.INDENT 3.5
Whenever the test program produces output on its standard output stream, it
should match the contents of \fIfilename\fP (the "reference output"). If you
should match the contents of \fIfilename\fP (the \(dqreference output\(dq). If you
do not use this option, \fBbugpoint\fP will attempt to generate a reference output
by compiling the program with the "safe" backend and running it.
by compiling the program with the \(dqsafe\(dq backend and running it.
.UNINDENT
.UNINDENT
.sp
@ -225,13 +224,13 @@ custom command (see \fB\-\-exec\-command\fP) respectively.
.INDENT 0.0
.INDENT 3.5
When debugging a code generator, \fBbugpoint\fP should use the specified code
generator as the "safe" code generator. This is a known\-good code generator
used to generate the "reference output" if it has not been provided, and to
generator as the \(dqsafe\(dq code generator. This is a known\-good code generator
used to generate the \(dqreference output\(dq if it has not been provided, and to
compile portions of the program that as they are excluded from the testcase.
These options allow you to choose the
static native code compiler, or a custom command, (see \fB\-\-exec\-command\fP)
respectively. The interpreter and the JIT backends cannot currently
be used as the "safe" backends.
be used as the \(dqsafe\(dq backends.
.UNINDENT
.UNINDENT
.sp
@ -249,9 +248,9 @@ be useful for cross\-compilation.
.INDENT 3.5
This option defines the command to use with the \fB\-\-compile\-custom\fP
option to compile the bitcode testcase. The command should exit with a
failure exit code if the file is "interesting" and should exit with a
failure exit code if the file is \(dqinteresting\(dq and should exit with a
success exit code (i.e. 0) otherwise (this is the same as if it crashed on
"interesting" inputs).
\(dqinteresting\(dq inputs).
.sp
This can be useful for
testing compiler output without running any link or execute stages. To
@ -263,14 +262,14 @@ testcase and pass the name of an executable compile\-command script in this form
.nf
.ft C
#!/bin/sh
llc "$@"
llc \(dq$@\(dq
not FileCheck [bugpoint input file].ll < bugpoint\-test\-program.s
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
This script will "fail" as long as FileCheck passes. So the result
This script will \(dqfail\(dq as long as FileCheck passes. So the result
will be the minimum bitcode that passes FileCheck.
.UNINDENT
.UNINDENT
@ -287,7 +286,7 @@ option.
\fB\-\-verbose\-errors\fP=\fI{true,false}\fP
.INDENT 0.0
.INDENT 3.5
The default behavior of bugpoint is to print "<crash>" when it finds a reduced
The default behavior of bugpoint is to print \(dq<crash>\(dq when it finds a reduced
test that crashes compilation. This flag prints the output of the crashing
program to stderr. This is useful to make sure it is the same error being
tracked down and not a different error that happens to crash the compiler as
@ -304,6 +303,6 @@ if an error occurs, it will exit with a non\-zero value.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "CLANG" "1" "2021-06-07" "12" "Clang"
.TH "CLANG" "1" "2023-05-24" "16" "Clang"
.SH NAME
clang \- the Clang C, C++, and Objective-C compiler
.SH SYNOPSIS
@ -53,8 +52,8 @@ transparently use it to run the other tools.
.B Preprocessing
This stage handles tokenization of the input source file, macro expansion,
#include expansion and handling of other preprocessor directives. The
output of this stage is typically called a ".i" (for C), ".ii" (for C++),
".mi" (for Objective\-C), or ".mii" (for Objective\-C++) file.
output of this stage is typically called a \(dq.i\(dq (for C), \(dq.ii\(dq (for C++),
\(dq.mi\(dq (for Objective\-C), or \(dq.mii\(dq (for Objective\-C++) file.
.TP
.B Parsing and Semantic Analysis
This stage parses the input file, translating preprocessor tokens into a
@ -62,27 +61,27 @@ parse tree. Once in the form of a parse tree, it applies semantic
analysis to compute types for expressions as well and determine whether
the code is well formed. This stage is responsible for generating most of
the compiler warnings as well as parse errors. The output of this stage is
an "Abstract Syntax Tree" (AST).
an \(dqAbstract Syntax Tree\(dq (AST).
.TP
.B Code Generation and Optimization
This stage translates an AST into low\-level intermediate code (known as
"LLVM IR") and ultimately to machine code. This phase is responsible for
\(dqLLVM IR\(dq) and ultimately to machine code. This phase is responsible for
optimizing the generated code and handling target\-specific code generation.
The output of this stage is typically called a ".s" file or "assembly" file.
The output of this stage is typically called a \(dq.s\(dq file or \(dqassembly\(dq file.
.sp
Clang also supports the use of an integrated assembler, in which the code
generator produces object files directly. This avoids the overhead of
generating the ".s" file and of calling the target assembler.
generating the \(dq.s\(dq file and of calling the target assembler.
.TP
.B Assembler
This stage runs the target assembler to translate the output of the
compiler into a target object file. The output of this stage is typically
called a ".o" file or "object" file.
called a \(dq.o\(dq file or \(dqobject\(dq file.
.TP
.B Linker
This stage runs the target linker to merge multiple object files into an
executable or dynamic library. The output of this stage is typically called
an "a.out", ".dylib" or ".so" file.
an \(dqa.out\(dq, \(dq.dylib\(dq or \(dq.so\(dq file.
.UNINDENT
.sp
\fBClang Static Analyzer\fP
@ -101,7 +100,7 @@ Run the preprocessor stage.
.INDENT 0.0
.TP
.B \-fsyntax\-only
Run the preprocessor, parser and type checking stages.
Run the preprocessor, parser and semantic analysis stages.
.UNINDENT
.INDENT 0.0
.TP
@ -112,7 +111,7 @@ and target\-specific code generation, producing an assembly file.
.INDENT 0.0
.TP
.B \-c
Run all of the above, plus the assembler, generating a target ".o" object file.
Run all of the above, plus the assembler, generating a target \(dq.o\(dq object file.
.UNINDENT
.INDENT 0.0
.TP
@ -305,27 +304,45 @@ ISO C++ 2017 with amendments and GNU extensions
.UNINDENT
.UNINDENT
.nf
\fBc++2a\fP
\fBc++20\fP
.fi
.sp
.INDENT 0.0
.INDENT 3.5
Working draft for ISO C++ 2020
ISO C++ 2020 with amendments
.UNINDENT
.UNINDENT
.nf
\fBgnu++2a\fP
\fBgnu++20\fP
.fi
.sp
.INDENT 0.0
.INDENT 3.5
Working draft for ISO C++ 2020 with GNU extensions
ISO C++ 2020 with amendments and GNU extensions
.UNINDENT
.UNINDENT
.nf
\fBc++2b\fP
.fi
.sp
.INDENT 0.0
.INDENT 3.5
Working draft for ISO C++ 2023
.UNINDENT
.UNINDENT
.nf
\fBgnu++2b\fP
.fi
.sp
.INDENT 0.0
.INDENT 3.5
Working draft for ISO C++ 2023 with GNU extensions
.UNINDENT
.UNINDENT
.UNINDENT
.UNINDENT
.sp
The default C++ language standard is \fBgnu++14\fP\&.
The default C++ language standard is \fBgnu++17\fP\&.
.sp
Supported values for the OpenCL language are:
.INDENT 7.0
@ -424,8 +441,26 @@ implementations, as these are needed for efficient codegen for many programs.
.INDENT 0.0
.TP
.B \-fno\-builtin
Disable special handling and optimizations of builtin functions like
\fBstrlen()\fP and \fBmalloc()\fP\&.
Disable special handling and optimizations of well\-known library functions,
like \fBstrlen()\fP and \fBmalloc()\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-fno\-builtin\-<function>
Disable special handling and optimizations for the specific library function.
For example, \fB\-fno\-builtin\-strlen\fP removes any special handling for the
\fBstrlen()\fP library function.
.UNINDENT
.INDENT 0.0
.TP
.B \-fno\-builtin\-std\-<function>
Disable special handling and optimizations for the specific C++ standard
library function in namespace \fBstd\fP\&. For example,
\fB\-fno\-builtin\-std\-move_if_noexcept\fP removes any special handling for the
\fBstd::move_if_noexcept()\fP library function.
.sp
For C standard library functions that the C++ standard library also provides
in namespace \fBstd\fP, use \fI\%\-fno\-builtin\-<function>\fP instead.
.UNINDENT
.INDENT 0.0
.TP
@ -435,7 +470,7 @@ Indicate that math functions should be treated as updating \fBerrno\fP\&.
.INDENT 0.0
.TP
.B \-fpascal\-strings
Enable support for Pascal\-style strings with "\epfoo".
Enable support for Pascal\-style strings with \(dq\epfoo\(dq.
.UNINDENT
.INDENT 0.0
.TP
@ -479,13 +514,13 @@ overall bit\-width
.INDENT 0.0
.TP
.B \-fblocks
Enable the "Blocks" language feature.
Enable the \(dqBlocks\(dq language feature.
.UNINDENT
.INDENT 0.0
.TP
.B \-fobjc\-abi\-version=version
Select the Objective\-C ABI version to use. Available versions are 1 (legacy
"fragile" ABI), 2 (non\-fragile ABI 1), and 3 (non\-fragile ABI 2).
\(dqfragile\(dq ABI), 2 (non\-fragile ABI 1), and 3 (non\-fragile ABI 2).
.UNINDENT
.INDENT 0.0
.TP
@ -509,7 +544,12 @@ number of cross compilers, or may only support a native target.
.INDENT 0.0
.TP
.B \-arch <architecture>
Specify the architecture to build for.
Specify the architecture to build for (Mac OS X specific).
.UNINDENT
.INDENT 0.0
.TP
.B \-target <architecture>
Specify the architecture to build for (all platforms).
.UNINDENT
.INDENT 0.0
.TP
@ -550,7 +590,7 @@ but which may not exist on earlier ones.
Specify which optimization level to use:
.INDENT 7.0
.INDENT 3.5
\fI\%\-O0\fP Means "no optimization": this level compiles the fastest and
\fI\%\-O0\fP Means \(dqno optimization\(dq: this level compiles the fastest and
generates the most debuggable code.
.sp
\fI\%\-O1\fP Somewhere between \fI\%\-O0\fP and \fI\%\-O2\fP\&.
@ -594,9 +634,9 @@ best at \fI\%\-O0\fP\&. When more than one option starting with \fI\-g\fP is
specified, the last one wins:
.INDENT 7.0
.INDENT 3.5
\fB\-g\fP Generate debug information.
\fI\%\-g\fP Generate debug information.
.sp
\fB\-gline\-tables\-only\fP Generate only line table debug information. This
\fI\%\-gline\-tables\-only\fP Generate only line table debug information. This
allows for symbolicated backtraces with inlining information, but does not
include any information about variables, their locations or types.
.sp
@ -627,7 +667,7 @@ needed by a module and could be replaced with a forward declaration.
Further, Clang will only emit type info for a dynamic C++ class in the
module that contains the vtable for the class.
.sp
The \fB\-fstandalone\-debug\fP option turns off these optimizations.
The \fI\%\-fstandalone\-debug\fP option turns off these optimizations.
This is useful when working with 3rd\-party libraries that don\(aqt come with
debug information. This is the default on Darwin. Note that Clang will
never emit type information for types that are not referenced at all by the
@ -668,8 +708,8 @@ It can be disabled with \fI\%\-fno\-common\fP\&.
.TP
.B \-ftls\-model=<model>
Set the default thread\-local storage (TLS) model to use for thread\-local
variables. Valid values are: "global\-dynamic", "local\-dynamic",
"initial\-exec" and "local\-exec". The default is "global\-dynamic". The default
variables. Valid values are: \(dqglobal\-dynamic\(dq, \(dqlocal\-dynamic\(dq,
\(dqinitial\-exec\(dq and \(dqlocal\-exec\(dq. The default is \(dqglobal\-dynamic\(dq. The default
model can be overridden with the tls_model attribute. The compiler will try
to choose a more efficient model if possible.
.UNINDENT
@ -681,16 +721,16 @@ When used with \fI\%\-S\fP this generates LLVM intermediate language
assembly files, otherwise this generates LLVM bitcode format object files
(which may be passed to the linker depending on the stage selection options).
.sp
The default for \fI\%\-flto\fP is "full", in which the
The default for \fI\%\-flto\fP is \(dqfull\(dq, in which the
LLVM bitcode is suitable for monolithic Link Time Optimization (LTO), where
the linker merges all such modules into a single combined module for
optimization. With "thin", ThinLTO
optimization. With \(dqthin\(dq, \fI\%ThinLTO\fP
compilation is invoked instead.
.sp
\fBNOTE:\fP
.INDENT 7.0
.INDENT 3.5
On Darwin, when using \fI\%\-flto\fP along with \fB\-g\fP and
On Darwin, when using \fI\%\-flto\fP along with \fI\%\-g\fP and
compiling and linking in separate steps, you also need to pass
\fB\-Wl,\-object_path_lto,<lto\-filename>.o\fP at the linking step to instruct the
ld64 linker not to delete the temporary object file generated during Link
@ -765,7 +805,7 @@ Print the full library path of file.
.TP
.B \-print\-libgcc\-file\-name
Print the library path for the currently used compiler runtime library
("libgcc.a" or "libclang_rt.builtins.*.a").
(\(dqlibgcc.a\(dq or \(dqlibclang_rt.builtins.*.a\(dq).
.UNINDENT
.INDENT 0.0
.TP
@ -786,8 +826,8 @@ Save intermediate compilation results.
.TP
.B \-save\-stats, \-save\-stats=cwd, \-save\-stats=obj
Save internal code generation (LLVM) statistics to a file in the current
directory (\fI\%\-save\-stats\fP/"\-save\-stats=cwd") or the directory
of the output file ("\-save\-state=obj").
directory (\fI\%\-save\-stats\fP/\(dq\-save\-stats=cwd\(dq) or the directory
of the output file (\(dq\-save\-state=obj\(dq).
.UNINDENT
.INDENT 0.0
.TP
@ -895,15 +935,15 @@ Darwin targets.
.UNINDENT
.SH BUGS
.sp
To report bugs, please visit <\fI\%https://bugs.llvm.org/\fP>. Most bug reports should
To report bugs, please visit <\fI\%https://github.com/llvm/llvm\-project/issues/\fP>. Most bug reports should
include preprocessed source files (use the \fI\%\-E\fP option) and the full
output of the compiler, along with information to reproduce.
.SH SEE ALSO
.sp
\fBld(1)\fP
\fBas(1)\fP, \fBld(1)\fP
.SH AUTHOR
Maintained by the Clang / LLVM Team (<http://clang.llvm.org>)
.SH COPYRIGHT
2007-2021, The Clang Team
2007-2023, The Clang Team
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLC" "1" "2021-06-07" "12" "LLVM"
.TH "LLC" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llc \- LLVM static compiler
.SH SYNOPSIS
@ -45,15 +44,15 @@ determined from the input file, unless the \fI\%\-march\fP option is used to
override the default.
.SH OPTIONS
.sp
If \fBfilename\fP is "\fB\-\fP" or omitted, \fBllc\fP reads from standard input.
Otherwise, it will from \fBfilename\fP\&. Inputs can be in either the LLVM assembly
language format (\fB\&.ll\fP) or the LLVM bitcode format (\fB\&.bc\fP).
If \fBfilename\fP is \(dq\fB\-\fP\(dq or omitted, \fBllc\fP reads from standard input.
Otherwise, it will read from \fBfilename\fP\&. Inputs can be in either the LLVM
assembly language format (\fB\&.ll\fP) or the LLVM bitcode format (\fB\&.bc\fP).
.sp
If the \fI\%\-o\fP option is omitted, then \fBllc\fP will send its output
to standard output if the input is from standard input. If the \fI\%\-o\fP
option specifies "\fB\-\fP", then the output will also be sent to standard output.
option specifies \(dq\fB\-\fP\(dq, then the output will also be sent to standard output.
.sp
If no \fI\%\-o\fP option is specified and an input file other than "\fB\-\fP" is
If no \fI\%\-o\fP option is specified and an input file other than \(dq\fB\-\fP\(dq is
specified, then \fBllc\fP creates the output filename by taking the input
filename, removing any existing \fB\&.bc\fP extension, and adding a \fB\&.s\fP suffix.
.sp
@ -291,6 +290,6 @@ occurs, it will exit with a non\-zero value.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLI" "1" "2021-06-07" "12" "LLVM"
.TH "LLI" "1" "2023-05-24" "16" "LLVM"
.SH NAME
lli \- directly execute programs from LLVM bitcode
.SH SYNOPSIS
@ -228,7 +227,8 @@ Register allocator to use (default=linearscan)
.nf
.ft C
=bigblock: Big\-block register allocator
=linearscan: linear scan register allocator =local \- local register allocator
=linearscan: linear scan register allocator
=local: local register allocator
=simple: simple register allocator
.ft P
.fi
@ -245,7 +245,8 @@ Choose relocation model from:
.nf
.ft C
=default: Target default relocation model
=static: Non\-relocatable code =pic \- Fully relocatable, position independent code
=static: Non\-relocatable code
=pic: Fully relocatable, position independent code
=dynamic\-no\-pic: Relocatable external references, non\-relocatable code
.ft P
.fi
@ -294,6 +295,6 @@ Otherwise, it will return the exit code of the program it executes.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-AR" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-AR" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-ar \- LLVM archiver
.SH SYNOPSIS
@ -43,9 +42,9 @@ the archive can contain any kind of file. By default, \fBllvm\-ar\fP
generates a symbol table that makes linking faster because only the symbol
table needs to be consulted, not each individual file member of the archive.
.sp
The \fBllvm\-ar\fP command can be used to \fIread\fP archive files in SVR4,
GNU, BSD and Darwin format, and \fIwrite\fP in the GNU, BSD, and Darwin style
archive files. If an SVR4 format archive is used with the \fI\%r\fP
The \fBllvm\-ar\fP command can be used to \fIread\fP archive files in SVR4, GNU,
BSD , Big Archive, and Darwin format, and \fIwrite\fP in the GNU, BSD, Big Archive, and
Darwin style archive files. If an SVR4 format archive is used with the \fI\%r\fP
(replace), \fI\%d\fP (delete), \fI\%m\fP (move) or \fI\%q\fP
(quick update) operations, the archive will be reconstructed in the format
defined by \fI\%\-\-format\fP\&.
@ -104,7 +103,7 @@ found in other \fBar\fP implementations. The options for
\fBllvm\-ar\fP specify a single basic Operation to perform on the archive,
a variety of Modifiers for that Operation, the name of the archive file, and an
optional list of file names. If the \fIfiles\fP option is not specified, it
generally means either "none" or "all" members, depending on the operation. The
generally means either \(dqnone\(dq or \(dqall\(dq members, depending on the operation. The
Options, Operations and Modifiers are explained in the sections below.
.sp
The minimal set of options is at least one operator and the name of the
@ -235,7 +234,7 @@ is a feature for \fBllvm\-ar\fP that is not found in gnu\-ar.
.B N
When extracting or deleting a member that shares its name with another member,
the \fIcount\fP parameter allows you to supply a positive whole number that
selects the instance of the given name, with "1" indicating the first
selects the instance of the given name, with \(dq1\(dq indicating the first
instance. If \fI\%N\fP is not specified the first member of that name will
be selected. If \fIcount\fP is not supplied, the operation fails.*count* cannot be
.UNINDENT
@ -254,10 +253,8 @@ Display member offsets inside the archive.
.INDENT 0.0
.TP
.B T
When creating or modifying an archive, this option specifies that the
\fBarchive\fP will be thin. By default, archives are not created as thin
archives and when modifying a thin archive, it will be converted to a regular
archive.
Alias for \fB\-\-thin\fP\&. In many ar implementations \fBT\fP has a different
meaning, as specified by X/Open System interface.
.UNINDENT
.INDENT 0.0
.TP
@ -338,11 +335,63 @@ stream. No other options are compatible with this option.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-output=<dir>
Specify a directory where archive members should be extracted to. By default the
current working directory is used.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-rsp\-quoting=<type>
.TP
.B This option selects the quoting style \(ga\(ga<type>\(ga\(ga for response files, either
.TP
.B \(ga\(gaposix\(ga\(ga or \(ga\(gawindows\(ga\(ga. The default when on Windows is \(ga\(gawindows\(ga\(ga, otherwise the
.TP
.B default is \(ga\(gaposix\(ga\(ga.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-thin
When creating or modifying an archive, this option specifies that the
\fBarchive\fP will be thin. By default, archives are not created as thin archives
and when modifying a thin archive, it will be converted to a regular archive.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-version
Display the version of the \fBllvm\-ar\fP executable.
.UNINDENT
.INDENT 0.0
.TP
.B \-X mode
Specifies the type of object file \fBllvm\-ar\fP will recognise. The mode must be
one of the following:
.INDENT 7.0
.INDENT 3.5
.INDENT 0.0
.TP
.B 32
Process only 32\-bit object files.
.TP
.B 64
Process only 64\-bit object files.
.TP
.B 32_64
Process both 32\-bit and 64\-bit object files.
.TP
.B any
Process all object files.
.UNINDENT
.UNINDENT
.UNINDENT
.sp
The default is to process 32\-bit object files (ignore 64\-bit objects). The mode can also
be set with the OBJECT_MODE environment variable. For example, OBJECT_MODE=64 causes ar to
process any 64\-bit objects and ignore 32\-bit objects. The \-X flag overrides the OBJECT_MODE
variable.
.UNINDENT
.INDENT 0.0
.TP
.B @<FILE>
Read command\-line options and commands from response file \fB<FILE>\fP\&.
.UNINDENT
@ -415,6 +464,6 @@ will exit with a non\-zero value.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,16 +27,16 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-RANLIB" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-RANLIB" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-ranlib \- generates an archive index
.SH SYNOPSIS
.sp
\fBllvm\-ranlib\fP [\fIoptions\fP]
\fBllvm\-ranlib\fP [\fIoptions\fP] \fIarchive...\fP
.SH DESCRIPTION
.sp
\fBllvm\-ranlib\fP is an alias for the llvm\-ar tool that
generates an index for an archive. It can be used as a replacement for GNU\(aqs
\fBllvm\-ranlib\fP is an alias for the \fI\%llvm\-ar\fP tool that
generates an index for one or more archives. It can be used as a replacement for GNU\(aqs
\fBranlib\fP tool.
.sp
Running \fBllvm\-ranlib\fP is equivalent to running \fBllvm\-ar s\fP\&.
@ -47,6 +46,6 @@ Running \fBllvm\-ranlib\fP is equivalent to running \fBllvm\-ar s\fP\&.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-AS" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-AS" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-as \- LLVM assembler
.SH SYNOPSIS
@ -82,6 +81,6 @@ will exit with a non\-zero value.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-BCANALYZER" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-BCANALYZER" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-bcanalyzer \- LLVM bitcode analyzer
.SH SYNOPSIS
@ -50,28 +49,14 @@ pipeline. Output is written to the standard output.
.SH OPTIONS
.INDENT 0.0
.TP
.B \-nodetails
Causes \fBllvm\-bcanalyzer\fP to abbreviate its output by writing out only
a module level summary. The details for individual functions are not
displayed.
.UNINDENT
.INDENT 0.0
.TP
.B \-dump
.B \-\-dump
Causes \fBllvm\-bcanalyzer\fP to dump the bitcode in a human readable
format. This format is significantly different from LLVM assembly and
provides details about the encoding of the bitcode file.
.UNINDENT
.INDENT 0.0
.TP
.B \-verify
Causes \fBllvm\-bcanalyzer\fP to verify the module produced by reading the
bitcode. This ensures that the statistics generated are based on a consistent
module.
.UNINDENT
.INDENT 0.0
.TP
.B \-help
.B \-\-help
Print a summary of command line options.
.UNINDENT
.SH EXIT STATUS
@ -467,10 +452,10 @@ Rate encoding scheme. The percentage is relative to # of VBR Expanded Bytes.
.UNINDENT
.SH SEE ALSO
.sp
\fBllvm\-dis(1)\fP, /BitCodeFormat
\fBllvm\-dis(1)\fP, \fI\%LLVM Bitcode File Format\fP
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-COV" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-COV" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-cov \- emit coverage information
.SH SYNOPSIS
@ -70,9 +69,7 @@ To use \fBllvm\-cov gcov\fP, you must first build an instrumented version
of your application that collects coverage data as it runs. Compile with the
\fB\-fprofile\-arcs\fP and \fB\-ftest\-coverage\fP options to add the
instrumentation. (Alternatively, you can use the \fB\-\-coverage\fP option, which
includes both of those other options.) You should compile with debugging
information (\fB\-g\fP) and without optimization (\fB\-O0\fP); otherwise, the
coverage data cannot be accurately mapped back to the source code.
includes both of those other options.)
.sp
At the time you compile the instrumented code, a \fB\&.gcno\fP data file will be
generated for each object file. These \fB\&.gcno\fP files contain half of the
@ -125,6 +122,11 @@ Display branch counts instead of probabilities (requires \-b).
.UNINDENT
.INDENT 0.0
.TP
.B \-m, \-\-demangled\-names
Demangle function names.
.UNINDENT
.INDENT 0.0
.TP
.B \-f, \-\-function\-summaries
Show a summary of coverage for each function instead of just one summary for
an entire source file.
@ -150,7 +152,7 @@ displayed.
.UNINDENT
.INDENT 0.0
.TP
.B \-o=<DIR|FILE>, \-\-object\-directory=<DIR>, \-\-object\-file=<FILE>
.B \-o <DIR|FILE>, \-\-object\-directory=<DIR>, \-\-object\-file=<FILE>
Find objects in DIR or based on FILE\(aqs path. If you specify a particular
object file, the coverage data files are expected to have the same base name
with \fB\&.gcno\fP and \fB\&.gcda\fP extensions. If you specify a directory, the
@ -169,6 +171,22 @@ included file name.
.UNINDENT
.INDENT 0.0
.TP
.B \-r
Only dump files with relative paths or absolute paths with the prefix specified
by \fB\-s\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-s <string>
Source prefix to elide.
.UNINDENT
.INDENT 0.0
.TP
.B \-t, \-\-stdout
Print to stdout instead of producing \fB\&.gcov\fP files.
.UNINDENT
.INDENT 0.0
.TP
.B \-u, \-\-unconditional\-branches
Include unconditional branches in the output for the \-\-branch\-probabilities
option.
@ -191,12 +209,12 @@ it exits with zero.
.SH SHOW COMMAND
.SS SYNOPSIS
.sp
\fBllvm\-cov show\fP [\fIoptions\fP] \-instr\-profile \fIPROFILE\fP \fIBIN\fP [\fI\-object BIN,...\fP] [[\fI\-object BIN\fP]] [\fISOURCES\fP]
\fBllvm\-cov show\fP [\fIoptions\fP] \-instr\-profile \fIPROFILE\fP [\fIBIN\fP] [\fI\-object BIN\fP]... [\fI\-sources\fP] [\fISOURCE\fP]...
.SS DESCRIPTION
.sp
The \fBllvm\-cov show\fP command shows line by line coverage of the
binaries \fIBIN\fP,... using the profile data \fIPROFILE\fP\&. It can optionally be
filtered to only show the coverage for the files listed in \fISOURCES\fP\&.
binaries \fIBIN\fP\&... using the profile data \fIPROFILE\fP\&. It can optionally be
filtered to only show the coverage for the files listed in \fISOURCE\fP\&....
.sp
\fIBIN\fP may be an executable, object file, dynamic library, or archive (thin or
otherwise).
@ -219,7 +237,7 @@ tool.
.TP
.B \-show\-branches=<VIEW>
Show coverage for branch conditions in terms of either count or percentage.
The supported views are: "count", "percent".
The supported views are: \(dqcount\(dq, \(dqpercent\(dq.
.UNINDENT
.INDENT 0.0
.TP
@ -274,9 +292,9 @@ Show code coverage only for functions with the given name.
.UNINDENT
.INDENT 0.0
.TP
.B \-name\-whitelist=<FILE>
.B \-name\-allowlist=<FILE>
Show code coverage only for functions listed in the given file. Each line in
the file should start with \fIwhitelist_fun:\fP, immediately followed by the name
the file should start with \fIallowlist_fun:\fP, immediately followed by the name
of the function to accept. This name can be a wildcard expression.
.UNINDENT
.INDENT 0.0
@ -292,7 +310,7 @@ Skip source code files with file paths that match the given regular expression.
.INDENT 0.0
.TP
.B \-format=<FORMAT>
Use the specified output format. The supported formats are: "text", "html".
Use the specified output format. The supported formats are: \(dqtext\(dq, \(dqhtml\(dq.
.UNINDENT
.INDENT 0.0
.TP
@ -327,6 +345,13 @@ use. This is the default.
.UNINDENT
.INDENT 0.0
.TP
.B \-compilation\-dir=<dir>
Directory used as a base for relative coverage mapping paths. Only applicable
when binaries have been compiled with one of \fI\-fcoverage\-prefix\-map\fP
\fI\-fcoverage\-compilation\-dir\fP, or \fI\-ffile\-compilation\-dir\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-line\-coverage\-gt=<N>
Show code coverage only for functions with line coverage greater than the
given threshold.
@ -356,15 +381,38 @@ Map the paths in the coverage data to local source file paths. This allows you
to generate the coverage data on one machine, and then use llvm\-cov on a
different machine where you have the same files on a different path.
.UNINDENT
.INDENT 0.0
.TP
.B \-coverage\-watermark=<high>,<low>
Set high and low watermarks for coverage in html format output. This allows you
to set the high and low watermark of coverage as desired, green when
coverage >= high, red when coverage < low, and yellow otherwise. Both high and
low should be between 0\-100 and high > low.
.UNINDENT
.INDENT 0.0
.TP
.B \-debuginfod
.UNINDENT
.sp
Use debuginfod to look up coverage mapping for binary IDs present in the profile
but not in any object given on the command line. Defaults to true if debuginfod
is compiled in and configured via the DEBUGINFOD_URLS environment variable.
.INDENT 0.0
.TP
.B \-debug\-file\-directory=<dir>
.UNINDENT
.sp
Provides local directories to search for objects corresponding to binary IDs in
the profile (as with debuginfod). Defaults to system build ID directories.
.SH REPORT COMMAND
.SS SYNOPSIS
.sp
\fBllvm\-cov report\fP [\fIoptions\fP] \-instr\-profile \fIPROFILE\fP \fIBIN\fP [\fI\-object BIN,...\fP] [[\fI\-object BIN\fP]] [\fISOURCES\fP]
\fBllvm\-cov report\fP [\fIoptions\fP] \-instr\-profile \fIPROFILE\fP [\fIBIN\fP] [\fI\-object BIN\fP]... [\fI\-sources\fP] [\fISOURCE\fP]...
.SS DESCRIPTION
.sp
The \fBllvm\-cov report\fP command displays a summary of the coverage of
the binaries \fIBIN\fP,... using the profile data \fIPROFILE\fP\&. It can optionally be
filtered to only show the coverage for the files listed in \fISOURCES\fP\&.
the binaries \fIBIN\fP\&... using the profile data \fIPROFILE\fP\&. It can optionally be
filtered to only show the coverage for the files listed in \fISOURCE\fP\&....
.sp
\fIBIN\fP may be an executable, object file, dynamic library, or archive (thin or
otherwise).
@ -391,6 +439,11 @@ non\-universal binary.
.UNINDENT
.INDENT 0.0
.TP
.B \-show\-region\-summary
Show statistics for all regions. Defaults to true.
.UNINDENT
.INDENT 0.0
.TP
.B \-show\-branch\-summary
Show statistics for all branch conditions. Defaults to true.
.UNINDENT
@ -409,14 +462,37 @@ Show statistics for all function instantiations. Defaults to false.
.B \-ignore\-filename\-regex=<PATTERN>
Skip source code files with file paths that match the given regular expression.
.UNINDENT
.INDENT 0.0
.TP
.B \-compilation\-dir=<dir>
Directory used as a base for relative coverage mapping paths. Only applicable
when binaries have been compiled with one of \fI\-fcoverage\-prefix\-map\fP
\fI\-fcoverage\-compilation\-dir\fP, or \fI\-ffile\-compilation\-dir\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-debuginfod
.UNINDENT
.sp
Attempt to look up coverage mapping from objects using debuginfod. This is
attempted by default for binary IDs present in the profile but not provided on
the command line, so long as debuginfod is compiled in and configured via
DEBUGINFOD_URLS.
.INDENT 0.0
.TP
.B \-debug\-file\-directory=<dir>
.UNINDENT
.sp
Provides a directory to search for objects corresponding to binary IDs in the
profile.
.SH EXPORT COMMAND
.SS SYNOPSIS
.sp
\fBllvm\-cov export\fP [\fIoptions\fP] \-instr\-profile \fIPROFILE\fP \fIBIN\fP [\fI\-object BIN,...\fP] [[\fI\-object BIN\fP]] [\fISOURCES\fP]
\fBllvm\-cov export\fP [\fIoptions\fP] \-instr\-profile \fIPROFILE\fP [\fIBIN\fP] [\fI\-object BIN\fP]... [\fI\-sources\fP] [\fISOURCE\fP]...
.SS DESCRIPTION
.sp
The \fBllvm\-cov export\fP command exports coverage data of the binaries
\fIBIN\fP,... using the profile data \fIPROFILE\fP in either JSON or lcov trace file
\fIBIN\fP\&... using the profile data \fIPROFILE\fP in either JSON or lcov trace file
format.
.sp
When exporting JSON, the regions, functions, branches, expansions, and
@ -424,7 +500,7 @@ summaries of the coverage data will be exported. When exporting an lcov trace
file, the line\-based coverage, branch coverage, and summaries will be exported.
.sp
The exported data can optionally be filtered to only export the coverage
for the files listed in \fISOURCES\fP\&.
for the files listed in \fISOURCE\fP\&....
.sp
For information on compiling programs for coverage and generating profile data,
see \fI\%SHOW COMMAND\fP\&.
@ -440,8 +516,8 @@ non\-universal binary.
.INDENT 0.0
.TP
.B \-format=<FORMAT>
Use the specified output format. The supported formats are: "text" (JSON),
"lcov".
Use the specified output format. The supported formats are: \(dqtext\(dq (JSON),
\(dqlcov\(dq.
.UNINDENT
.INDENT 0.0
.TP
@ -476,9 +552,32 @@ Skip exporting per\-function coverage data.
Use N threads to export coverage data. When N=0, llvm\-cov auto\-detects an
appropriate number of threads to use. This is the default.
.UNINDENT
.INDENT 0.0
.TP
.B \-compilation\-dir=<dir>
Directory used as a base for relative coverage mapping paths. Only applicable
when binaries have been compiled with one of \fI\-fcoverage\-prefix\-map\fP
\fI\-fcoverage\-compilation\-dir\fP, or \fI\-ffile\-compilation\-dir\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-debuginfod
.UNINDENT
.sp
Attempt to look up coverage mapping from objects using debuginfod. This is
attempted by default for binary IDs present in the profile but not provided on
the command line, so long as debuginfod is compiled in and configured via
DEBUGINFOD_URLS.
.INDENT 0.0
.TP
.B \-debug\-file\-directory=<dir>
.UNINDENT
.sp
Provides a directory to search for objects corresponding to binary IDs in the
profile.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-CXXFILT" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-CXXFILT" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-cxxfilt \- LLVM symbol name demangler
.SH SYNOPSIS
@ -78,11 +77,6 @@ Print a summary of command line options.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-help\-list
Print an uncategorized summary of command line options.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-no\-strip\-underscore, \-n
Do not strip a leading underscore. This is the default for all platforms
except Mach\-O based hosts.
@ -118,6 +112,6 @@ case a non\-zero exit code is returned.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-DIFF" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-DIFF" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-diff \- LLVM structural 'diff'
.SH SYNOPSIS
@ -72,6 +71,6 @@ massive detected differences in blocks.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-DIS" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-DIS" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-dis \- LLVM disassembler
.SH SYNOPSIS
@ -83,6 +82,6 @@ occurs, it will exit with a non\-zero value.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-DWARFDUMP" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-DWARFDUMP" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-dwarfdump \- dump and verify DWARF debug information
.SH SYNOPSIS
@ -150,6 +149,12 @@ Show the sizes of all debug sections, expressed in bytes.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-show\-sources
Print all source files mentioned in the debug information. Absolute
paths are given whenever possible.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-statistics
Collect debug info quality metrics and print the results
as machine\-readable single\-line JSON output. The output
@ -198,7 +203,7 @@ Display the version of the tool.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-debug\-abbrev, \-\-debug\-addr, \-\-debug\-aranges, \-\-debug\-cu\-index, \-\-debug\-frame[=<offset>], \-\-debug\-gnu\-pubnames, \-\-debug\-gnu\-pubtypes, \-\-debug\-info [=<offset>], \-\-debug\-line [=<offset>], \-\-debug\-line\-str, \-\-debug\-loc [=<offset>], \-\-debug\-loclists [=<offset>], \-\-debug\-macro, \-\-debug\-names, \-\-debug\-pubnames, \-\-debug\-pubtypes, \-\-debug\-ranges, \-\-debug\-rnglists, \-\-debug\-str, \-\-debug\-str\-offsets, \-\-debug\-tu\-index, \-\-debug\-types [=<offset>], \-\-eh\-frame [=<offset>], \-\-gdb\-index, \-\-apple\-names, \-\-apple\-types, \-\-apple\-namespaces, \-\-apple\-objc
.B \-\-debug\-abbrev, \-\-debug\-addr, \-\-debug\-aranges, \-\-debug\-cu\-index, \-\-debug\-frame [=<offset>], \-\-debug\-gnu\-pubnames, \-\-debug\-gnu\-pubtypes, \-\-debug\-info [=<offset>], \-\-debug\-line [=<offset>], \-\-debug\-line\-str, \-\-debug\-loc [=<offset>], \-\-debug\-loclists [=<offset>], \-\-debug\-macro, \-\-debug\-names, \-\-debug\-pubnames, \-\-debug\-pubtypes, \-\-debug\-ranges, \-\-debug\-rnglists, \-\-debug\-str, \-\-debug\-str\-offsets, \-\-debug\-tu\-index, \-\-debug\-types [=<offset>], \-\-eh\-frame [=<offset>], \-\-gdb\-index, \-\-apple\-names, \-\-apple\-types, \-\-apple\-namespaces, \-\-apple\-objc
Dump the specified DWARF section by name. Only the
\fI\&.debug_info\fP section is shown by default. Some entries
support adding an \fI=<offset>\fP as a way to provide an
@ -206,6 +211,10 @@ optional offset of the exact entry to dump within the
respective section. When an offset is provided, only the
entry at that offset will be dumped, else the entire
section will be dumped.
.sp
The \fI\%\-\-debug\-macro\fP option prints both the .debug_macro and the .debug_macinfo sections.
.sp
The \fI\%\-\-debug\-frame\fP and \fI\%\-\-eh\-frame\fP options are aliases, in cases where both sections are present one command outputs both.
.UNINDENT
.INDENT 0.0
.TP
@ -214,7 +223,7 @@ Read command\-line options from \fI<FILE>\fP\&.
.UNINDENT
.SH FORMAT OF STATISTICS OUTPUT
.sp
The :\fI\%\-\-statistics\fP option generates single\-line JSON output
The \fI\%\-\-statistics\fP option generates single\-line JSON output
representing quality metrics of the processed debug info. These metrics are
useful to compare changes between two compilers, particularly for judging
the effect that a change to the compiler has on the debug info quality.
@ -258,6 +267,6 @@ successfully. Otherwise, it returns 1.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-DWARFUTIL" "1" "2022-07-24" "15" "LLVM"
.TH "LLVM-DWARFUTIL" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-dwarfutil \- A tool to copy and manipulate debug info
.SH SYNOPSIS
@ -41,8 +41,8 @@ In basic usage, it makes a semantic copy of the input to the output. If any
options are specified, the output may be modified along the way, e.g.
by removing unused debug info.
.sp
If "\-" is specified for the input file, the input is read from the program\(aqs
standard input stream. If "\-" is specified for the output file, the output
If \(dq\-\(dq is specified for the input file, the input is read from the program\(aqs
standard input stream. If \(dq\-\(dq is specified for the output file, the output
is written to the standard output stream of the program.
.sp
The tool is still in active development.
@ -61,7 +61,7 @@ That option is enabled by default.
.INDENT 0.0
.TP
.B \-\-odr\-deduplication
Remove duplicated types (if "One Definition Rule" is supported by source
Remove duplicated types (if \(dqOne Definition Rule\(dq is supported by source
language). Keeps first type definition and removes other definitions,
potentially significantly reducing the size of output debug info.
.sp
@ -163,6 +163,6 @@ To report bugs, please visit <\fI\%https://github.com/llvm/llvm\-project/labels/
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2022, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-EXTRACT" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-EXTRACT" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-extract \- extract a function from an LLVM module
.SH SYNOPSIS
@ -151,7 +150,7 @@ Print a summary of command line options.
\fB\-o\fP \fIfilename\fP
.INDENT 0.0
.INDENT 3.5
Specify the output filename. If filename is "\-" (the default), then
Specify the output filename. If filename is \(dq\-\(dq (the default), then
\fBllvm\-extract\fP sends its output to standard output.
.UNINDENT
.UNINDENT
@ -172,6 +171,6 @@ occurs, it will exit with a non\-zero value.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-LINK" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-LINK" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-link \- LLVM bitcode linker
.SH SYNOPSIS
@ -51,7 +50,7 @@ device.
.INDENT 0.0
.TP
.B \-o filename
Specify the output file name. If \fBfilename\fP is "\fB\-\fP", then
Specify the output file name. If \fBfilename\fP is \(dq\fB\-\fP\(dq, then
\fBllvm\-link\fP will write its output to standard output.
.UNINDENT
.INDENT 0.0
@ -84,6 +83,6 @@ occurs, it will exit with a non\-zero value.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-MCA" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-MCA" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-mca \- LLVM Machine Code Analyzer
.SH SYNOPSIS
@ -41,8 +40,8 @@ available in LLVM (e.g. scheduling models) to statically measure the performance
of machine code in a specific CPU.
.sp
Performance is measured in terms of throughput as well as processor resource
consumption. The tool currently works for processors with an out\-of\-order
backend, for which there is a scheduling model available in LLVM.
consumption. The tool currently works for processors with a backend for which
there is a scheduling model available in LLVM.
.sp
The main goal of this tool is not just to predict the performance of the code
when run on the target, but also help with diagnosing potential performance
@ -93,12 +92,12 @@ please \fI\%file a bug\fP
against the appropriate backend.
.SH OPTIONS
.sp
If \fBinput\fP is "\fB\-\fP" or omitted, \fBllvm\-mca\fP reads from standard
If \fBinput\fP is \(dq\fB\-\fP\(dq or omitted, \fBllvm\-mca\fP reads from standard
input. Otherwise, it will read from the specified filename.
.sp
If the \fI\%\-o\fP option is omitted, then \fBllvm\-mca\fP will send its output
to standard output if the input is from standard input. If the \fI\%\-o\fP
option specifies "\fB\-\fP", then the output will also be sent to standard output.
option specifies \(dq\fB\-\fP\(dq, then the output will also be sent to standard output.
.INDENT 0.0
.TP
.B \-help
@ -153,7 +152,7 @@ zero, then the default dispatch width is used.
.B \-register\-file\-size=<size>
Specify the size of the register file. When specified, this flag limits how
many physical registers are available for register renaming purposes. A value
of zero for this flag means "unlimited number of physical registers".
of zero for this flag means \(dqunlimited number of physical registers\(dq.
.UNINDENT
.INDENT 0.0
.TP
@ -197,8 +196,8 @@ timeline view prints information for up to 10 iterations.
.INDENT 0.0
.TP
.B \-timeline\-max\-cycles=<cycles>
Limit the number of cycles in the timeline view. By default, the number of
cycles is set to 80.
Limit the number of cycles in the timeline view, or use 0 for no limit. By
default, the number of cycles is set to 80.
.UNINDENT
.INDENT 0.0
.TP
@ -240,6 +239,12 @@ Enable the printing of instruction encodings within the instruction info view.
.UNINDENT
.INDENT 0.0
.TP
.B \-show\-barriers
Enable the printing of LoadBarrier and StoreBarrier flags within the
instruction info view.
.UNINDENT
.INDENT 0.0
.TP
.B \-all\-stats
Print all hardware statistics. This enables extra statistics related to the
dispatch logic, the hardware schedulers, the register file(s), and the retire
@ -263,15 +268,34 @@ instruction in sequence.
.TP
.B \-bottleneck\-analysis
Print information about bottlenecks that affect the throughput. This analysis
can be expensive, and it is disabled by default. Bottlenecks are highlighted
in the summary view.
can be expensive, and it is disabled by default. Bottlenecks are highlighted
in the summary view. Bottleneck analysis is currently not supported for
processors with an in\-order backend.
.UNINDENT
.INDENT 0.0
.TP
.B \-json
Print the requested views in JSON format. The instructions and the processor
resources are printed as members of special top level JSON objects. The
individual views refer to them by index.
Print the requested views in valid JSON format. The instructions and the
processor resources are printed as members of special top level JSON objects.
The individual views refer to them by index. However, not all views are
currently supported. For example, the report from the bottleneck analysis is
not printed out in JSON. All the default views are currently supported.
.UNINDENT
.INDENT 0.0
.TP
.B \-disable\-cb
Force usage of the generic CustomBehaviour and InstrPostProcess classes rather
than using the target specific implementation. The generic classes never
detect any custom hazards or make any post processing modifications to
instructions.
.UNINDENT
.INDENT 0.0
.TP
.B \-disable\-im
Force usage of the generic InstrumentManager rather than using the target
specific implementation. The generic class creates Instruments that provide
no extra information, and InstrumentManager never overrides the default
schedule class for a given instruction.
.UNINDENT
.SH EXIT STATUS
.sp
@ -281,9 +305,9 @@ to standard error, and the tool returns 1.
.sp
\fBllvm\-mca\fP allows for the optional usage of special code comments to
mark regions of the assembly code to be analyzed. A comment starting with
substring \fBLLVM\-MCA\-BEGIN\fP marks the beginning of a code region. A comment
starting with substring \fBLLVM\-MCA\-END\fP marks the end of a code region. For
example:
substring \fBLLVM\-MCA\-BEGIN\fP marks the beginning of an analysis region. A
comment starting with substring \fBLLVM\-MCA\-END\fP marks the end of a region.
For example:
.INDENT 0.0
.INDENT 3.5
.sp
@ -300,9 +324,9 @@ example:
If no user\-defined region is specified, then \fBllvm\-mca\fP assumes a
default region which contains every instruction in the input file. Every region
is analyzed in isolation, and the final performance report is the union of all
the reports generated for every code region.
the reports generated for every analysis region.
.sp
Code regions can have names. For example:
Analysis regions can have names. For example:
.INDENT 0.0
.INDENT 3.5
.sp
@ -316,7 +340,7 @@ Code regions can have names. For example:
.UNINDENT
.UNINDENT
.sp
The code from the example above defines a region named "A simple example" with a
The code from the example above defines a region named \(dqA simple example\(dq with a
single instruction in it. Note how the region name doesn\(aqt have to be repeated
in the \fBLLVM\-MCA\-END\fP directive. In the absence of overlapping regions,
an anonymous \fBLLVM\-MCA\-END\fP directive always ends the currently active user
@ -368,9 +392,9 @@ C++. As a workaround, inline assembly directives may be used:
.nf
.ft C
int foo(int a, int b) {
__asm volatile("# LLVM\-MCA\-BEGIN foo");
__asm volatile(\(dq# LLVM\-MCA\-BEGIN foo\(dq:::\(dqmemory\(dq);
a += 42;
__asm volatile("# LLVM\-MCA\-END");
__asm volatile(\(dq# LLVM\-MCA\-END\(dq:::\(dqmemory\(dq);
a *= b;
return a;
}
@ -387,6 +411,125 @@ to emit markers, then the recommendation is to always verify that the output
assembly is equivalent to the assembly generated in the absence of markers.
The \fI\%Clang options to emit optimization reports\fP
can also help in detecting missed optimizations.
.SH INSTRUMENT REGIONS
.sp
An InstrumentRegion describes a region of assembly code guarded by
special LLVM\-MCA comment directives.
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
# LLVM\-MCA\-<INSTRUMENT_TYPE> <data>
... ## asm
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
where \fIINSTRUMENT_TYPE\fP is a type defined by the target and expects
to use \fIdata\fP\&.
.sp
A comment starting with substring \fILLVM\-MCA\-<INSTRUMENT_TYPE>\fP
brings data into scope for llvm\-mca to use in its analysis for
all following instructions.
.sp
If a comment with the same \fIINSTRUMENT_TYPE\fP is found later in the
instruction list, then the original InstrumentRegion will be
automatically ended, and a new InstrumentRegion will begin.
.sp
If there are comments containing the different \fIINSTRUMENT_TYPE\fP,
then both data sets remain available. In contrast with an AnalysisRegion,
an InstrumentRegion does not need a comment to end the region.
.sp
Comments that are prefixed with \fILLVM\-MCA\-\fP but do not correspond to
a valid \fIINSTRUMENT_TYPE\fP for the target cause an error, except for
\fIBEGIN\fP and \fIEND\fP, since those correspond to AnalysisRegions. Comments
that do not start with \fILLVM\-MCA\-\fP are ignored by :program \fIllvm\-mca\fP\&.
.sp
An instruction (a MCInst) is added to an InstrumentRegion R only
if its location is in range [R.RangeStart, R.RangeEnd].
.sp
On RISCV targets, vector instructions have different behaviour depending
on the LMUL. Code can be instrumented with a comment that takes the
following form:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
# LLVM\-MCA\-RISCV\-LMUL <M1|M2|M4|M8|MF2|MF4|MF8>
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
The RISCV InstrumentManager will override the schedule class for vector
instructions to use the scheduling behaviour of its pseudo\-instruction
which is LMUL dependent. It makes sense to place RISCV instrument
comments directly after \fIvset{i}vl{i}\fP instructions, although
they can be placed anywhere in the program.
.sp
Example of program with no call to \fIvset{i}vl{i}\fP:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
# LLVM\-MCA\-RISCV\-LMUL M2
vadd.vv v2, v2, v2
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Example of program with call to \fIvset{i}vl{i}\fP:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
vsetvli zero, a0, e8, m1, tu, mu
# LLVM\-MCA\-RISCV\-LMUL M1
vadd.vv v2, v2, v2
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Example of program with multiple calls to \fIvset{i}vl{i}\fP:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
vsetvli zero, a0, e8, m1, tu, mu
# LLVM\-MCA\-RISCV\-LMUL M1
vadd.vv v2, v2, v2
vsetvli zero, a0, e8, m8, tu, mu
# LLVM\-MCA\-RISCV\-LMUL M8
vadd.vv v2, v2, v2
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Example of program with call to \fIvsetvl\fP:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
vsetvl rd, rs1, rs2
# LLVM\-MCA\-RISCV\-LMUL M1
vadd.vv v12, v12, v12
vsetvl rd, rs1, rs2
# LLVM\-MCA\-RISCV\-LMUL M4
vadd.vv v12, v12, v12
.ft P
.fi
.UNINDENT
.UNINDENT
.SH HOW LLVM-MCA WORKS
.sp
\fBllvm\-mca\fP takes assembly code as input. The assembly code is parsed
@ -486,7 +629,9 @@ overview of the performance throughput. Important performance indicators are
Throughput).
.sp
Field \fIDispatchWidth\fP is the maximum number of micro opcodes that are dispatched
to the out\-of\-order backend every simulated cycle.
to the out\-of\-order backend every simulated cycle. For processors with an
in\-order backend, \fIDispatchWidth\fP is the maximum number of micro opcodes issued
to the backend every simulated cycle.
.sp
IPC is computed dividing the total number of simulated instructions by the total
number of cycles.
@ -782,6 +927,9 @@ Instructions from the critical sequence are expected to significantly impact
performance. By construction, the accuracy of this analysis is strongly
dependent on the simulation and (as always) by the quality of the processor
model in llvm.
.sp
Bottleneck analysis is currently not supported for processors with an in\-order
backend.
.SS Extra Statistics to Further Diagnose Performance Issues
.sp
The \fB\-all\-stats\fP command line option enables extra statistics and performance
@ -939,11 +1087,14 @@ Write Back (Instruction is executed, and results are written back).
Retire (Instruction is retired; writes are architecturally committed).
.UNINDENT
.sp
The default pipeline only models the out\-of\-order portion of a processor.
Therefore, the instruction fetch and decode stages are not modeled. Performance
bottlenecks in the frontend are not diagnosed. \fBllvm\-mca\fP assumes that
instructions have all been decoded and placed into a queue before the simulation
start. Also, \fBllvm\-mca\fP does not model branch prediction.
The in\-order pipeline implements the following sequence of stages:
* InOrderIssue (Instruction is issued to the processor pipelines).
* Retire (Instruction is retired; writes are architecturally committed).
.sp
\fBllvm\-mca\fP assumes that instructions have all been decoded and placed
into a queue before the simulation start. Therefore, the instruction fetch and
decode stages are not modeled. Performance bottlenecks in the frontend are not
diagnosed. Also, \fBllvm\-mca\fP does not model branch prediction.
.SS Instruction Dispatch
.sp
During the dispatch stage, instructions are picked in program order from a
@ -977,7 +1128,7 @@ dispatch stalls caused by the lack of physical registers.
The number of reorder buffer entries consumed by an instruction depends on the
number of micro\-opcodes specified for that instruction by the target scheduling
model. The reorder buffer is responsible for tracking the progress of
instructions that are "in\-flight", and retiring them in program order. The
instructions that are \(dqin\-flight\(dq, and retiring them in program order. The
number of entries in the reorder buffer defaults to the value specified by field
\fIMicroOpBufferSize\fP in the target scheduling model.
.sp
@ -1029,7 +1180,7 @@ instructions wait until they reach the write\-back stage. At that point, they
get removed from the queue and the retire control unit is notified.
.sp
When instructions are executed, the retire control unit flags the instruction as
"ready to retire."
\(dqready to retire.\(dq
.sp
Instructions are retired in program order. The register file is notified of the
retirement so that it can free the physical registers that were allocated for
@ -1084,25 +1235,26 @@ fences.
.UNINDENT
.sp
The LSUnit does not attempt to predict if a load or store hits or misses the L1
cache. It only knows if an instruction "MayLoad" and/or "MayStore." For
loads, the scheduling model provides an "optimistic" load\-to\-use latency (which
cache. It only knows if an instruction \(dqMayLoad\(dq and/or \(dqMayStore.\(dq For
loads, the scheduling model provides an \(dqoptimistic\(dq load\-to\-use latency (which
usually matches the load\-to\-use latency for when there is a hit in the L1D).
.sp
\fBllvm\-mca\fP does not know about serializing operations or memory\-barrier
like instructions. The LSUnit conservatively assumes that an instruction which
has both "MayLoad" and unmodeled side effects behaves like a "soft"
load\-barrier. That means, it serializes loads without forcing a flush of the
load queue. Similarly, instructions that "MayStore" and have unmodeled side
effects are treated like store barriers. A full memory barrier is a "MayLoad"
and "MayStore" instruction with unmodeled side effects. This is inaccurate, but
it is the best that we can do at the moment with the current information
available in LLVM.
\fBllvm\-mca\fP does not (on its own) know about serializing operations or
memory\-barrier like instructions. The LSUnit used to conservatively use an
instruction\(aqs \(dqMayLoad\(dq, \(dqMayStore\(dq, and unmodeled side effects flags to
determine whether an instruction should be treated as a memory\-barrier. This was
inaccurate in general and was changed so that now each instruction has an
IsAStoreBarrier and IsALoadBarrier flag. These flags are mca specific and
default to false for every instruction. If any instruction should have either of
these flags set, it should be done within the target\(aqs InstrPostProcess class.
For an example, look at the \fIX86InstrPostProcess::postProcessInstruction\fP method
within \fIllvm/lib/Target/X86/MCA/X86CustomBehaviour.cpp\fP\&.
.sp
A load/store barrier consumes one entry of the load/store queue. A load/store
barrier enforces ordering of loads/stores. A younger load cannot pass a load
barrier. Also, a younger store cannot pass a store barrier. A younger load
has to wait for the memory/load barrier to execute. A load/store barrier is
"executed" when it becomes the oldest entry in the load/store queue(s). That
\(dqexecuted\(dq when it becomes the oldest entry in the load/store queue(s). That
also means, by construction, all of the older loads/stores have been executed.
.sp
In conclusion, the full set of load/store consistency rules are:
@ -1120,9 +1272,97 @@ A load may not pass a previous store unless \fB\-noalias\fP is set.
.IP 6. 3
A load has to wait until an older load barrier is fully executed.
.UNINDENT
.SS In\-order Issue and Execute
.sp
In\-order processors are modelled as a single \fBInOrderIssueStage\fP stage. It
bypasses Dispatch, Scheduler and Load/Store unit. Instructions are issued as
soon as their operand registers are available and resource requirements are
met. Multiple instructions can be issued in one cycle according to the value of
the \fBIssueWidth\fP parameter in LLVM\(aqs scheduling model.
.sp
Once issued, an instruction is moved to \fBIssuedInst\fP set until it is ready to
retire. \fBllvm\-mca\fP ensures that writes are committed in\-order. However,
an instruction is allowed to commit writes and retire out\-of\-order if
\fBRetireOOO\fP property is true for at least one of its writes.
.SS Custom Behaviour
.sp
Due to certain instructions not being expressed perfectly within their
scheduling model, \fBllvm\-mca\fP isn\(aqt always able to simulate them
perfectly. Modifying the scheduling model isn\(aqt always a viable
option though (maybe because the instruction is modeled incorrectly on
purpose or the instruction\(aqs behaviour is quite complex). The
CustomBehaviour class can be used in these cases to enforce proper
instruction modeling (often by customizing data dependencies and detecting
hazards that \fBllvm\-mca\fP has no way of knowing about).
.sp
\fBllvm\-mca\fP comes with one generic and multiple target specific
CustomBehaviour classes. The generic class will be used if the \fB\-disable\-cb\fP
flag is used or if a target specific CustomBehaviour class doesn\(aqt exist for
that target. (The generic class does nothing.) Currently, the CustomBehaviour
class is only a part of the in\-order pipeline, but there are plans to add it
to the out\-of\-order pipeline in the future.
.sp
CustomBehaviour\(aqs main method is \fIcheckCustomHazard()\fP which uses the
current instruction and a list of all instructions still executing within
the pipeline to determine if the current instruction should be dispatched.
As output, the method returns an integer representing the number of cycles
that the current instruction must stall for (this can be an underestimate
if you don\(aqt know the exact number and a value of 0 represents no stall).
.sp
If you\(aqd like to add a CustomBehaviour class for a target that doesn\(aqt
already have one, refer to an existing implementation to see how to set it
up. The classes are implemented within the target specific backend (for
example \fI/llvm/lib/Target/AMDGPU/MCA/\fP) so that they can access backend symbols.
.SS Instrument Manager
.sp
On certain architectures, scheduling information for certain instructions
do not contain all of the information required to identify the most precise
schedule class. For example, data that can have an impact on scheduling can
be stored in CSR registers.
.sp
One example of this is on RISCV, where values in registers such as \fIvtype\fP
and \fIvl\fP change the scheduling behaviour of vector instructions. Since MCA
does not keep track of the values in registers, instrument comments can
be used to specify these values.
.sp
InstrumentManager\(aqs main function is \fIgetSchedClassID()\fP which has access
to the MCInst and all of the instruments that are active for that MCInst.
This function can use the instruments to override the schedule class of
the MCInst.
.sp
On RISCV, instrument comments containing LMUL information are used
by \fIgetSchedClassID()\fP to map a vector instruction and the active
LMUL to the scheduling class of the pseudo\-instruction that describes
that base instruction and the active LMUL.
.SS Custom Views
.sp
\fBllvm\-mca\fP comes with several Views such as the Timeline View and
Summary View. These Views are generic and can work with most (if not all)
targets. If you wish to add a new View to \fBllvm\-mca\fP and it does not
require any backend functionality that is not already exposed through MC layer
classes (MCSubtargetInfo, MCInstrInfo, etc.), please add it to the
\fI/tools/llvm\-mca/View/\fP directory. However, if your new View is target specific
AND requires unexposed backend symbols or functionality, you can define it in
the \fI/lib/Target/<TargetName>/MCA/\fP directory.
.sp
To enable this target specific View, you will have to use this target\(aqs
CustomBehaviour class to override the \fICustomBehaviour::getViews()\fP methods.
There are 3 variations of these methods based on where you want your View to
appear in the output: \fIgetStartViews()\fP, \fIgetPostInstrInfoViews()\fP, and
\fIgetEndViews()\fP\&. These methods returns a vector of Views so you will want to
return a vector containing all of the target specific Views for the target in
question.
.sp
Because these target specific (and backend dependent) Views require the
\fICustomBehaviour::getViews()\fP variants, these Views will not be enabled if
the \fI\-disable\-cb\fP flag is used.
.sp
Enabling these custom Views does not affect the non\-custom (generic) Views.
Continue to use the usual command line arguments to enable / disable those
Views.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-NM" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-NM" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-nm \- list LLVM bitcode and object file's symbol table
.SH SYNOPSIS
@ -192,7 +191,7 @@ Something unrecognizable.
.sp
Because LLVM bitcode files typically contain objects that are not considered to
have addresses until they are linked into an executable image or dynamically
compiled "just\-in\-time", \fBllvm\-nm\fP does not print an address for any
compiled \(dqjust\-in\-time\(dq, \fBllvm\-nm\fP does not print an address for any
symbol in an LLVM bitcode file, even symbols which are defined in the bitcode
file.
.SH OPTIONS
@ -203,6 +202,44 @@ Use BSD output format. Alias for \fB\-\-format=bsd\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-X
Specify the type of XCOFF object file, ELF object file, or IR object file input
from command line or from archive files that llvm\-nm should examine. The
mode must be one of the following:
.INDENT 7.0
.INDENT 3.5
.INDENT 0.0
.INDENT 3.5
.INDENT 0.0
.TP
.B 32
Process only 32\-bit object files.
.TP
.B 64
Process only 64\-bit object files.
.TP
.B 32_64
Process both 32\-bit and 64\-bit object files.
.TP
.B any
Process all the supported object files.
.UNINDENT
.UNINDENT
.UNINDENT
.sp
On AIX OS, the default is to process 32\-bit object files only and to ignore
64\-bit objects. The can be changed by setting the OBJECT_MODE environment
variable. For example, OBJECT_MODE=64 causes \fBllvm\-nm\fP to process
64\-bit objects and ignore 32\-bit objects. The \-X flag overrides the OBJECT_MODE
variable.
.sp
On other operating systems, the default is to process all object files: the
OBJECT_MODE environment variable is not supported.
.UNINDENT
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
.B \-\-debug\-syms, \-a
Show all symbols, even those usually suppressed.
.UNINDENT
@ -223,6 +260,12 @@ Display dynamic symbols instead of normal symbols.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-export\-symbols
Print sorted symbols with their visibility (if applicable), with duplicates
removed.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-extern\-only, \-g
Print only symbols whose definitions are external; that is, accessible from
other files.
@ -230,7 +273,8 @@ other files.
.INDENT 0.0
.TP
.B \-\-format=<format>, \-f
Select an output format; \fIformat\fP may be \fIsysv\fP, \fIposix\fP, \fIdarwin\fP, or \fIbsd\fP\&.
Select an output format; \fIformat\fP may be \fIsysv\fP, \fIposix\fP, \fIdarwin\fP, \fIbsd\fP or
\fIjust\-symbols\fP\&.
The default is \fIbsd\fP\&.
.UNINDENT
.INDENT 0.0
@ -240,13 +284,8 @@ Print a summary of command\-line options and their meanings.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-help\-list
Print an uncategorized summary of command\-line options and their meanings.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-just\-symbol\-name, \-j
Print just the symbol names.
.B \-j
Print just the symbol names. Alias for \fI\-\-format=just\-symbols\(ga\fP\&.
.UNINDENT
.INDENT 0.0
.TP
@ -285,7 +324,7 @@ Use POSIX.2 output format. Alias for \fB\-\-format=posix\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-print\-armap, \-M
.B \-\-print\-armap
Print the archive symbol table, in addition to the symbols.
.UNINDENT
.INDENT 0.0
@ -300,6 +339,11 @@ Show symbol size as well as address (not applicable for Mach\-O).
.UNINDENT
.INDENT 0.0
.TP
.B \-\-quiet
Suppress \(aqno symbols\(aq diagnostic.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-radix=<RADIX>, \-t
Specify the radix of the symbol address(es). Values accepted are \fId\fP (decimal),
\fIx\fP (hexadecimal) and \fIo\fP (octal).
@ -326,14 +370,9 @@ Print only undefined symbols.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-version
Display the version of the \fBllvm\-nm\fP executable. Does not stack with
other commands.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-without\-aliases
Exclude aliases from the output.
.B \-\-version, \-V
Display the version of the \fBllvm\-nm\fP executable, then exit. Does not
stack with other commands.
.UNINDENT
.INDENT 0.0
.TP
@ -369,7 +408,7 @@ Do not add any symbols from the dyldinfo.
.UNINDENT
.INDENT 0.0
.TP
.B \-s=<segment section>
.B \-s <segment> <section>
Dump only symbols from this segment and section name.
.UNINDENT
.INDENT 0.0
@ -377,6 +416,12 @@ Dump only symbols from this segment and section name.
.B \-x
Print symbol entry in hex.
.UNINDENT
.SH XCOFF SPECIFIC OPTIONS
.INDENT 0.0
.TP
.B \-\-no\-rsrc
Exclude resource file symbols (\fB__rsrc\fP) from export symbol list.
.UNINDENT
.SH BUGS
.INDENT 0.0
.INDENT 3.5
@ -397,6 +442,6 @@ Print symbol entry in hex.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-OBJCOPY" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-OBJCOPY" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-objcopy \- object copying and editing tool
.SH SYNOPSIS
@ -40,9 +39,9 @@ llvm-objcopy \- object copying and editing tool
usage, it makes a semantic copy of the input to the output. If any options are
specified, the output may be modified along the way, e.g. by removing sections.
.sp
If no output file is specified, the input file is modified in\-place. If "\-" is
If no output file is specified, the input file is modified in\-place. If \(dq\-\(dq is
specified for the input file, the input is read from the program\(aqs standard
input stream. If "\-" is specified for the output file, the output is written to
input stream. If \(dq\-\(dq is specified for the output file, the output is written to
the standard output stream of the program.
.sp
If the input is an archive, any requested operations will be applied to each
@ -64,7 +63,7 @@ Add a .gnu_debuglink section for \fB<debug\-file>\fP to the output.
.B \-\-add\-section <section=file>
Add a section named \fB<section>\fP with the contents of \fB<file>\fP to the
output. For ELF objects the section will be of type \fISHT_NOTE\fP, if the name
starts with ".note". Otherwise, it will have type \fISHT_PROGBITS\fP\&. Can be
starts with \(dq.note\(dq. Otherwise, it will have type \fISHT_PROGBITS\fP\&. Can be
specified multiple times to add multiple sections.
.sp
For MachO objects, \fB<section>\fP must be formatted as
@ -86,7 +85,7 @@ headers.
.B \-\-discard\-all, \-x
Remove most local symbols from the output. Different file formats may limit
this to a subset of the local symbols. For example, file and section symbols in
ELF objects will not be discarded.
ELF objects will not be discarded. Additionally, remove all debug sections.
.UNINDENT
.INDENT 0.0
.TP
@ -164,7 +163,7 @@ For MachO objects, \fB<section>\fP must be formatted as
.INDENT 0.0
.TP
.B \-\-set\-section\-alignment <section>=<align>
Set the alignment of section \fB<section>\fP to \fI<align>\(ga\fP\&. Can be specified
Set the alignment of section \fB<section>\fP to \fB<align>\fP\&. Can be specified
multiple times to update multiple sections.
.UNINDENT
.INDENT 0.0
@ -283,6 +282,13 @@ relocations. Also remove all debug sections.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-update\-section <name>=<file>
Replace the contents of the section \fB<name>\fP with contents from the file
\fB<file>\fP\&. If the section \fB<name>\fP is part of a segment, the new contents
cannot be larger than the existing section.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-version, \-V
Display the version of the \fBllvm\-objcopy\fP executable.
.UNINDENT
@ -409,36 +415,15 @@ section references. Any invalid sh_link fields will be set to zero.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-build\-id\-link\-dir <dir>
Set the directory used by \fI\%\-\-build\-id\-link\-input\fP and
\fI\%\-\-build\-id\-link\-output\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-build\-id\-link\-input <suffix>
Hard\-link the input to \fB<dir>/xx/xxx<suffix>\fP, where \fB<dir>\fP is the directory
specified by \fI\%\-\-build\-id\-link\-dir\fP\&. The path used is derived from the
hex build ID.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-build\-id\-link\-output <suffix>
Hard\-link the output to \fB<dir>/xx/xxx<suffix>\fP, where \fB<dir>\fP is the directory
specified by \fI\%\-\-build\-id\-link\-dir\fP\&. The path used is derived from the
hex build ID.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-change\-start <incr>, \-\-adjust\-start
Add \fB<incr>\fP to the program\(aqs start address. Can be specified multiple
times, in which case the values will be applied cumulatively.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-compress\-debug\-sections [<style>]
Compress DWARF debug sections in the output, using the specified style.
Supported styles are \fIzlib\-gnu\fP and \fIzlib\fP\&. Defaults to \fIzlib\fP if no style is
specified.
.B \-\-compress\-debug\-sections [<format>]
Compress DWARF debug sections in the output, using the specified format.
Supported formats are \fBzlib\fP and \fBzstd\fP\&. Use \fBzlib\fP if \fB<format>\fP is omitted.
.UNINDENT
.INDENT 0.0
.TP
@ -448,7 +433,7 @@ Decompress any compressed DWARF debug sections in the output.
.INDENT 0.0
.TP
.B \-\-discard\-locals, \-X
Remove local symbols starting with ".L" from the output.
Remove local symbols starting with \(dq.L\(dq from the output.
.UNINDENT
.INDENT 0.0
.TP
@ -493,7 +478,7 @@ Keep symbols of type \fISTT_FILE\fP, even if they would otherwise be stripped.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-keep\-global\-symbol <symbol>
.B \-\-keep\-global\-symbol <symbol>, \-G
Make all symbols local in the output, except for symbols with the name
\fB<symbol>\fP\&. Can be specified multiple times to ignore multiple symbols.
.UNINDENT
@ -596,6 +581,12 @@ supported flags. Can be specified multiple times to rename multiple sections.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-set\-section\-type <section>=<type>
Set the type of section \fB<section>\fP to the integer \fB<type>\fP\&. Can be
specified multiple times to update multiple sections.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-set\-start\-addr <addr>
Set the start address of the output to \fB<addr>\fP\&. Overrides any previously
specified \fI\%\-\-change\-start\fP or \fI\%\-\-adjust\-start\fP options.
@ -651,6 +642,18 @@ a \(aq#\(aq. Can be specified multiple times to read names from multiple files.
.B \-\-weaken
Mark all defined global symbols as weak in the output.
.UNINDENT
.SH MACH-O-SPECIFIC OPTIONS
.INDENT 0.0
.TP
.B \-\-keep\-undefined
Keep undefined symbols, even if they would otherwise be stripped.
.UNINDENT
.SH COFF-SPECIFIC OPTIONS
.INDENT 0.0
.TP
.B \-\-subsystem <name>[:<version>]
Set the PE subsystem, and optionally subsystem version.
.UNINDENT
.SH SUPPORTED FORMATS
.sp
The following values are currently supported by \fBllvm\-objcopy\fP for the
@ -728,7 +731,7 @@ the address of the first loadable section in the output.
Otherwise, it exits with code 0.
.SH BUGS
.sp
To report bugs, please visit <\fI\%https://bugs.llvm.org/\fP>.
To report bugs, please visit <\fI\%https://github.com/llvm/llvm\-project/labels/tools:llvm\-objcopy/strip/\fP>.
.sp
There is a known issue with \fI\%\-\-input\-target\fP and \fI\%\-\-target\fP
causing only \fBbinary\fP and \fBihex\fP formats to have any effect. Other values
@ -740,6 +743,6 @@ format.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-OBJDUMP" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-OBJDUMP" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-objdump \- LLVM's object file dumper
.SH SYNOPSIS
@ -53,7 +52,11 @@ Display the information contained within an archive\(aqs headers.
.INDENT 0.0
.TP
.B \-d, \-\-disassemble
Disassemble all text sections found in the input files.
Disassemble all executable sections found in the input files. On some
architectures (AArch64, PPC64, x86), all known instructions are disassembled by
default. On the others, \fI\%\-\-mcpu\fP or \fI\%\-\-mattr\fP is needed to
enable some instruction sets. Disabled instructions are displayed as
\fB<unknown>\fP\&.
.UNINDENT
.INDENT 0.0
.TP
@ -133,10 +136,12 @@ Display the contents of the dynamic symbol table.
.TP
.B \-u, \-\-unwind\-info
Display the unwind info of the input(s).
.sp
This operation is only currently supported for COFF and Mach\-O object files.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-version
.B \-v, \-\-version
Display the version of the \fBllvm\-objdump\fP executable. Does not stack
with other commands.
.UNINDENT
@ -165,11 +170,32 @@ for a list of available targets.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-build\-id=<string>
Look up the object using the given build ID, specified as a hexadecimal
string. The found object is handled as if it were an input filename.
.UNINDENT
.INDENT 0.0
.TP
.B \-C, \-\-demangle
Demangle symbol names in the output.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-debug\-file\-directory <path>
Provide a path to a directory with a \fI\&.build\-id\fP subdirectory to search for
debug information for stripped binaries. Multiple instances of this argument
are searched in the order given.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-debuginfod, \-\-no\-debuginfod
Whether or not to try debuginfod lookups for debug binaries. Unless specified,
debuginfod is only enabled if libcurl was compiled in (\fBLLVM_ENABLE_CURL\fP)
and at least one server URL was provided by the environment variable
\fBDEBUGINFOD_URLS\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-debug\-vars=<format>
Print the locations (in registers or memory) of source\-level variables
alongside disassembly. \fBformat\fP may be \fBunicode\fP or \fBascii\fP, defaulting
@ -179,7 +205,7 @@ to \fBunicode\fP if omitted.
.TP
.B \-\-debug\-vars\-indent=<width>
Distance to indent the source\-level variable display, relative to the start
of the disassembly. Defaults to 40 characters.
of the disassembly. Defaults to 52 characters.
.UNINDENT
.INDENT 0.0
.TP
@ -196,8 +222,21 @@ When disassembling, display source line numbers. Implies
.INDENT 0.0
.TP
.B \-M, \-\-disassembler\-options=<opt1[,opt2,...]>
Pass target\-specific disassembler options. Currently supported for ARM targets
only. Available options are \fBreg\-names\-std\fP and \fBreg\-names\-raw\fP\&.
Pass target\-specific disassembler options. Available options:
.INDENT 7.0
.IP \(bu 2
\fBreg\-names\-std\fP: ARM only (default). Print in ARM \(aqs instruction set documentation, with r13/r14/r15 replaced by sp/lr/pc.
.IP \(bu 2
\fBreg\-names\-raw\fP: ARM only. Use r followed by the register number.
.IP \(bu 2
\fBno\-aliases\fP: AArch64 and RISC\-V only. Print raw instruction mnemonic instead of pseudo instruction mnemonic.
.IP \(bu 2
\fBnumeric\fP: RISC\-V only. Print raw register names instead of ABI mnemonic. (e.g. print x1 instead of ra)
.IP \(bu 2
\fBatt\fP: x86 only (default). Print in the AT&T syntax.
.IP \(bu 2
\fBintel\fP: x86 only. Print in the intel syntax.
.UNINDENT
.UNINDENT
.INDENT 0.0
.TP
@ -213,8 +252,14 @@ the available attributes.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-no\-leading\-addr
When disassembling, do not print leading addresses.
.B \-\-no\-leading\-addr, \-\-no\-addresses
When disassembling, do not print leading addresses for instructions or inline
relocations.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-no\-print\-imm\-hex
Do not use hex format for immediate values in disassembly output.
.UNINDENT
.INDENT 0.0
.TP
@ -223,14 +268,26 @@ When disassembling, do not print the raw bytes of each instruction.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-offloading
Display the content of the LLVM offloading section.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-prefix=<prefix>
When disassembling with the \fI\%\-\-source\fP option, prepend \fBprefix\fP to
absolute paths.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-prefix\-strip=<level>
When disassembling with the \fI\%\-\-source\fP option, strip out \fBlevel\fP
initial directories from absolute paths. This option has no effect without
\fI\%\-\-prefix\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-print\-imm\-hex
Use hex format when printing immediate values in disassembly output.
Use hex format when printing immediate values in disassembly output (default).
.UNINDENT
.INDENT 0.0
.TP
@ -240,6 +297,12 @@ When disassembling, display source interleaved with the disassembly. Implies
.UNINDENT
.INDENT 0.0
.TP
.B \-\-show\-all\-symbols
Show all symbols during disassembly, even if multiple symbols are defined at
the same location.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-show\-lma
Display the LMA column when dumping ELF section headers. Defaults to off
unless any section has different VMA and LMAs.
@ -269,7 +332,9 @@ When disassembling, symbolize a branch target operand to print a label instead o
.sp
When printing a PC\-relative global symbol reference, print it as an offset from the leading symbol.
.sp
Only works with an X86 linked image.
When a bb\-address\-map section is present (i.e., the object file is built with \fB\-fbasic\-block\-sections=labels\fP), labels are retrieved from that section instead.
.sp
Only works with PowerPC objects or X86 linked images.
.INDENT 7.0
.TP
.B Example:
@ -314,6 +379,7 @@ Ignored for compatibility with GNU objdump.
.INDENT 0.0
.TP
.B \-\-x86\-asm\-syntax=<style>
Deprecated.
When used with \fI\%\-\-disassemble\fP, choose style of code to emit from
X86 backend. Supported values are:
.INDENT 7.0
@ -363,12 +429,6 @@ Display binding info
.UNINDENT
.INDENT 0.0
.TP
.B \-\-cfg
Create a CFG for every symbol in the object file and write it to a graphviz
file.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-data\-in\-code
Display the data in code table.
.UNINDENT
@ -379,6 +439,17 @@ Disassemble just the specified symbol\(aqs instructions.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-chained\-fixups
Print chained fixup information.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-dyld\-info
Print bind and rebase information used by dyld to resolve external
references in a final linked binary.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-dylibs\-used
Display the shared libraries used for linked files.
.UNINDENT
@ -399,6 +470,14 @@ Display exported symbols.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-function\-starts [=<addrs|names|both>]
Print the function starts table for Mach\-O objects. Either \fBaddrs\fP
(default) to print only the addresses of functions, \fBnames\fP to print only
the names of the functions (when available), or \fBboth\fP to print the
names beside the addresses.
.UNINDENT
.INDENT 0.0
.TP
.B \-g
Print line information from debug info if available.
.UNINDENT
@ -465,6 +544,11 @@ Display rebasing information.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-rpaths
Display runtime search paths for the binary.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-universal\-headers
Display universal headers.
.UNINDENT
@ -481,13 +565,14 @@ Add symbol description to disassembly output.
.UNINDENT
.SH BUGS
.sp
To report bugs, please visit <\fI\%https://bugs.llvm.org/\fP>.
To report bugs, please visit <\fI\%https://github.com/llvm/llvm\-project/labels/tools:llvm\-objdump/\fP>.
.SH SEE ALSO
.sp
\fBllvm\-nm(1)\fP, \fBllvm\-readelf(1)\fP, \fBllvm\-readobj(1)\fP
\fBllvm\-nm(1)\fP, \fBllvm\-otool(1)\fP, \fBllvm\-readelf(1)\fP,
\fBllvm\-readobj(1)\fP
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-PDBUTIL" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-PDBUTIL" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-pdbutil \- PDB File forensics and diagnostics
.INDENT 0.0
@ -421,7 +420,7 @@ used for PDB forensics. It serves a role similar to that of Microsoft\(aqs
.INDENT 0.0
.INDENT 3.5
The \fBdump\fP subcommand exposes internal details of the file format. As
such, the reader should be familiar with /PDB/index before using this
such, the reader should be familiar with \fI\%The PDB File Format\fP before using this
command.
.UNINDENT
.UNINDENT
@ -608,7 +607,7 @@ working on support for emitting PDBs would use this heavily, for example, to
compare one PDB against another PDB to ensure byte\-for\-byte compatibility. It
is not enough to simply compare the bytes of an entire file, or an entire stream
because it\(aqs perfectly fine for the same structure to exist at different
locations in two different PDBs, and "finding" the structure is half the battle.
locations in two different PDBs, and \(dqfinding\(dq the structure is half the battle.
.SS Options
.SS MSF File Options
.INDENT 0.0
@ -740,6 +739,6 @@ Write the resulting PDB to the specified file.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-PROFDATA" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-PROFDATA" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-profdata \- Profile data tool
.SH SYNOPSIS
@ -69,18 +68,18 @@ arguments are processed once for each time they are seen.
.SS OPTIONS
.INDENT 0.0
.TP
.B \-help
.B \-\-help
Print a summary of command line options.
.UNINDENT
.INDENT 0.0
.TP
.B \-output=output, \-o=output
.B \-\-output=<output>, \-o
Specify the output file name. \fIOutput\fP cannot be \fB\-\fP as the resulting
indexed profile data can\(aqt be written to standard output.
.UNINDENT
.INDENT 0.0
.TP
.B \-weighted\-input=weight,filename
.B \-\-weighted\-input=<weight,filename>
Specify an input file name along with a weight. The profile counts of the
supplied \fBfilename\fP will be scaled (multiplied) by the supplied
\fBweight\fP, where \fBweight\fP is a decimal integer >= 1.
@ -89,43 +88,43 @@ weight of 1. Examples are shown below.
.UNINDENT
.INDENT 0.0
.TP
.B \-input\-files=path, \-f=path
.B \-\-input\-files=<path>, \-f
Specify a file which contains a list of files to merge. The entries in this
file are newline\-separated. Lines starting with \(aq#\(aq are skipped. Entries may
be of the form <filename> or <weight>,<filename>.
.UNINDENT
.INDENT 0.0
.TP
.B \-remapping\-file=path, \-r=path
.B \-\-remapping\-file=<path>, \-r
Specify a file which contains a remapping from symbol names in the input
profile to the symbol names that should be used in the output profile. The
file should consist of lines of the form \fB<input\-symbol> <output\-symbol>\fP\&.
Blank lines and lines starting with \fB#\fP are skipped.
.sp
The llvm\-cxxmap tool can be used to generate the symbol
The \fI\%llvm\-cxxmap\fP tool can be used to generate the symbol
remapping file.
.UNINDENT
.INDENT 0.0
.TP
.B \-instr (default)
.B \-\-instr (default)
Specify that the input profile is an instrumentation\-based profile.
.UNINDENT
.INDENT 0.0
.TP
.B \-sample
.B \-\-sample
Specify that the input profile is a sample\-based profile.
.sp
The format of the generated file can be generated in one of three ways:
.INDENT 7.0
.TP
.B \-binary (default)
.B \-\-binary (default)
.UNINDENT
.sp
Emit the profile using a binary encoding. For instrumentation\-based profile
the output format is the indexed binary format.
.INDENT 7.0
.TP
.B \-extbinary
.B \-\-extbinary
.UNINDENT
.sp
Emit the profile using an extensible binary encoding. This option can only
@ -134,7 +133,7 @@ more compact with compression enabled and can be loaded faster than the
default binary encoding.
.INDENT 7.0
.TP
.B \-text
.B \-\-text
.UNINDENT
.sp
Emit the profile in text mode. This option can also be used with both
@ -143,27 +142,27 @@ the profile will be dumped in the text format that is parsable by the profile
reader.
.INDENT 7.0
.TP
.B \-gcc
.B \-\-gcc
.UNINDENT
.sp
Emit the profile using GCC\(aqs gcov format (Not yet supported).
.UNINDENT
.INDENT 0.0
.TP
.B \-sparse[=true|false]
.B \-\-sparse[=true|false]
Do not emit function records with 0 execution count. Can only be used in
conjunction with \-instr. Defaults to false, since it can inhibit compiler
optimization during PGO.
.UNINDENT
.INDENT 0.0
.TP
.B \-num\-threads=N, \-j=N
.B \-\-num\-threads=<N>, \-j
Use N threads to perform profile merging. When N=0, llvm\-profdata auto\-detects
an appropriate number of threads to use. This is the default.
.UNINDENT
.INDENT 0.0
.TP
.B \-failure\-mode=[any|all]
.B \-\-failure\-mode=[any|all]
Set the failure mode. There are two options: \(aqany\(aq causes the merge command to
fail if any profiles are invalid, and \(aqall\(aq causes the merge command to fail
only if all profiles are invalid. If \(aqall\(aq is set, information from any
@ -172,58 +171,65 @@ failure mode is \(aqany\(aq.
.UNINDENT
.INDENT 0.0
.TP
.B \-prof\-sym\-list=path
.B \-\-prof\-sym\-list=<path>
Specify a file which contains a list of symbols to generate profile symbol
list in the profile. This option can only be used with sample\-based profile
in extbinary format. The entries in this file are newline\-separated.
.UNINDENT
.INDENT 0.0
.TP
.B \-compress\-all\-sections=[true|false]
.B \-\-compress\-all\-sections=[true|false]
Compress all sections when writing the profile. This option can only be used
with sample\-based profile in extbinary format.
.UNINDENT
.INDENT 0.0
.TP
.B \-use\-md5=[true|false]
.B \-\-use\-md5=[true|false]
Use MD5 to represent string in name table when writing the profile.
This option can only be used with sample\-based profile in extbinary format.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-partial\-profile=[true|false]
.B \-\-gen\-partial\-profile=[true|false]
Mark the profile to be a partial profile which only provides partial profile
coverage for the optimized target. This option can only be used with
sample\-based profile in extbinary format.
.UNINDENT
.INDENT 0.0
.TP
.B \-supplement\-instr\-with\-sample=path_to_sample_profile
.B \-\-supplement\-instr\-with\-sample=<file>
Supplement an instrumentation profile with sample profile. The sample profile
is the input of the flag. Output will be in instrumentation format (only works
with \-instr).
.UNINDENT
.INDENT 0.0
.TP
.B \-zero\-counter\-threshold=threshold_float_number
.B \-\-zero\-counter\-threshold=<float>
For the function which is cold in instr profile but hot in sample profile, if
the ratio of the number of zero counters divided by the the total number of
the ratio of the number of zero counters divided by the total number of
counters is above the threshold, the profile of the function will be regarded
as being harmful for performance and will be dropped.
.UNINDENT
.INDENT 0.0
.TP
.B \-instr\-prof\-cold\-threshold=threshold_int_number
.B \-\-instr\-prof\-cold\-threshold=<int>
User specified cold threshold for instr profile which will override the cold
threshold got from profile summary.
.UNINDENT
.INDENT 0.0
.TP
.B \-suppl\-min\-size\-threshold=threshold_int_number
.B \-\-suppl\-min\-size\-threshold=<int>
If the size of a function is smaller than the threshold, assume it can be
inlined by PGO early inliner and it will not be adjusted based on sample
profile.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-debug\-info=<path>
Specify the executable or \fB\&.dSYM\fP that contains debug info for the raw profile.
When \fB\-debug\-info\-correlate\fP was used for instrumentation, use this option
to correlate the raw profile.
.UNINDENT
.SS EXAMPLES
.SS Basic Usage
.sp
@ -240,13 +246,13 @@ llvm\-profdata merge foo.profdata bar.profdata baz.profdata \-output merged.prof
.UNINDENT
.SS Weighted Input
.sp
The input file \fIfoo.profdata\fP is especially important, multiply its counts by 10:
The input file \fBfoo.profdata\fP is especially important, multiply its counts by 10:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
llvm\-profdata merge \-weighted\-input=10,foo.profdata bar.profdata baz.profdata \-output merged.profdata
llvm\-profdata merge \-\-weighted\-input=10,foo.profdata bar.profdata baz.profdata \-\-output merged.profdata
.ft P
.fi
.UNINDENT
@ -258,7 +264,7 @@ Exactly equivalent to the previous invocation (explicit form; useful for program
.sp
.nf
.ft C
llvm\-profdata merge \-weighted\-input=10,foo.profdata \-weighted\-input=1,bar.profdata \-weighted\-input=1,baz.profdata \-output merged.profdata
llvm\-profdata merge \-\-weighted\-input=10,foo.profdata \-\-weighted\-input=1,bar.profdata \-\-weighted\-input=1,baz.profdata \-\-output merged.profdata
.ft P
.fi
.UNINDENT
@ -278,38 +284,48 @@ input from standard input.
.SS OPTIONS
.INDENT 0.0
.TP
.B \-all\-functions
.B \-\-all\-functions
Print details for every function.
.UNINDENT
.INDENT 0.0
.TP
.B \-counts
.B \-\-binary\-ids
Print embedded binary ids in a profile.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-counts
Print the counter values for the displayed functions.
.UNINDENT
.INDENT 0.0
.TP
.B \-function=string
.B \-\-show\-format=<text|json|yaml>
Emit output in the selected format if supported by the provided profile type.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-function=<string>
Print details for a function if the function\(aqs name contains the given string.
.UNINDENT
.INDENT 0.0
.TP
.B \-help
.B \-\-help
Print a summary of command line options.
.UNINDENT
.INDENT 0.0
.TP
.B \-output=output, \-o=output
.B \-\-output=<output>, \-o
Specify the output file name. If \fIoutput\fP is \fB\-\fP or it isn\(aqt specified,
then the output is sent to standard output.
.UNINDENT
.INDENT 0.0
.TP
.B \-instr (default)
.B \-\-instr (default)
Specify that the input profile is an instrumentation\-based profile.
.UNINDENT
.INDENT 0.0
.TP
.B \-text
.B \-\-text
Instruct the profile dumper to show profile counts in the text format of the
instrumentation\-based profile data representation. By default, the profile
information is dumped in a more human readable form (also in text) with
@ -317,51 +333,69 @@ annotations.
.UNINDENT
.INDENT 0.0
.TP
.B \-topn=n
.B \-\-topn=<n>
Instruct the profile dumper to show the top \fBn\fP functions with the
hottest basic blocks in the summary section. By default, the topn functions
are not dumped.
.UNINDENT
.INDENT 0.0
.TP
.B \-sample
.B \-\-sample
Specify that the input profile is a sample\-based profile.
.UNINDENT
.INDENT 0.0
.TP
.B \-memop\-sizes
.B \-\-memop\-sizes
Show the profiled sizes of the memory intrinsic calls for shown functions.
.UNINDENT
.INDENT 0.0
.TP
.B \-value\-cutoff=n
.B \-\-value\-cutoff=<n>
Show only those functions whose max count values are greater or equal to \fBn\fP\&.
By default, the value\-cutoff is set to 0.
.UNINDENT
.INDENT 0.0
.TP
.B \-list\-below\-cutoff
.B \-\-list\-below\-cutoff
Only output names of functions whose max count value are below the cutoff
value.
.UNINDENT
.INDENT 0.0
.TP
.B \-showcs
.B \-\-profile\-version
Print profile version.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-showcs
Only show context sensitive profile counts. The default is to filter all
context sensitive profile counts.
.UNINDENT
.INDENT 0.0
.TP
.B \-show\-prof\-sym\-list=[true|false]
.B \-\-show\-prof\-sym\-list=[true|false]
Show profile symbol list if it exists in the profile. This option is only
meaningful for sample\-based profile in extbinary format.
.UNINDENT
.INDENT 0.0
.TP
.B \-show\-sec\-info\-only=[true|false]
.B \-\-show\-sec\-info\-only=[true|false]
Show basic information about each section in the profile. This option is
only meaningful for sample\-based profile in extbinary format.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-debug\-info=<path>
Specify the executable or \fB\&.dSYM\fP that contains debug info for the raw profile.
When \fB\-debug\-info\-correlate\fP was used for instrumentation, use this option
to show the correlated functions from the raw profile.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-covered
Show only the functions that have been executed, i.e., functions with non\-zero
counts.
.UNINDENT
.SH OVERLAP
.SS SYNOPSIS
.sp
@ -394,29 +428,29 @@ Here is an example, if \fIbase profile file\fP has counts of {400, 600}, and
.SS OPTIONS
.INDENT 0.0
.TP
.B \-function=string
.B \-\-function=<string>
Print details for a function if the function\(aqs name contains the given string.
.UNINDENT
.INDENT 0.0
.TP
.B \-help
.B \-\-help
Print a summary of command line options.
.UNINDENT
.INDENT 0.0
.TP
.B \-o=output or \-o output
.B \-\-output=<output>, \-o
Specify the output file name. If \fIoutput\fP is \fB\-\fP or it isn\(aqt specified,
then the output is sent to standard output.
.UNINDENT
.INDENT 0.0
.TP
.B \-value\-cutoff=n
.B \-\-value\-cutoff=<n>
Show only those functions whose max count values are greater or equal to \fBn\fP\&.
By default, the value\-cutoff is set to max of unsigned long long.
.UNINDENT
.INDENT 0.0
.TP
.B \-cs
.B \-\-cs
Only show overlap for the context sensitive profile counts. The default is to show
non\-context sensitive profile counts.
.UNINDENT
@ -427,6 +461,6 @@ if it cannot read input files, or if there is a mismatch between their data.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-READELF" "1" "2021-09-22" "12" "LLVM"
.TH "LLVM-READELF" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-readelf \- GNU-style LLVM Object Reader
.SH SYNOPSIS
@ -38,13 +38,14 @@ llvm-readelf \- GNU-style LLVM Object Reader
The \fBllvm\-readelf\fP tool displays low\-level format\-specific information
about one or more object files.
.sp
If \fBinput\fP is "\fB\-\fP", \fBllvm\-readelf\fP reads from standard
If \fBinput\fP is \(dq\fB\-\fP\(dq, \fBllvm\-readelf\fP reads from standard
input. Otherwise, it will read from the specified \fBfilenames\fP\&.
.SH OPTIONS
.INDENT 0.0
.TP
.B \-\-all
Equivalent to specifying all the main display options.
.B \-\-all, \-a
Equivalent to specifying all the main display options relevant to the file
format.
.UNINDENT
.INDENT 0.0
.TP
@ -58,8 +59,9 @@ Display architecture\-specific information, e.g. the ARM attributes section on A
.UNINDENT
.INDENT 0.0
.TP
.B \-\-color
Use colors in the output for warnings and errors.
.B \-\-bb\-addr\-map
Display the contents of the basic block address map section(s), which contain the
address of each function, along with the relative offset of each basic block.
.UNINDENT
.INDENT 0.0
.TP
@ -68,6 +70,11 @@ Display demangled symbol names in the output.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-dependent\-libraries
Display the dependent libraries section.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-dyn\-relocations
Display the dynamic relocation entries.
.UNINDENT
@ -88,7 +95,7 @@ Display the callgraph profile section.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-elf\-hash\-histogram, \-\-histogram, \-I
.B \-\-histogram, \-I
Display a bucket list histogram for dynamic symbol hash tables.
.UNINDENT
.INDENT 0.0
@ -99,13 +106,14 @@ Display the linker options section.
.INDENT 0.0
.TP
.B \-\-elf\-output\-style=<value>
Format ELF information in the specified style. Valid options are \fBLLVM\fP and
\fBGNU\fP\&. \fBLLVM\fP output is an expanded and structured format, whilst \fBGNU\fP
(the default) output mimics the equivalent GNU \fBreadelf\fP output.
Format ELF information in the specified style. Valid options are \fBLLVM\fP,
\fBGNU\fP, and \fBJSON\fP\&. \fBLLVM\fP output is an expanded and structured format.
\fBGNU\fP (the default) output mimics the equivalent GNU \fBreadelf\fP
output. \fBJSON\fP is JSON formatted output intended for machine consumption.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-elf\-section\-groups, \-\-section\-groups, \-g
.B \-\-section\-groups, \-g
Display section groups.
.UNINDENT
.INDENT 0.0
@ -116,7 +124,7 @@ multi\-line format.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-file\-headers, \-h
.B \-\-file\-header, \-h
Display file headers.
.UNINDENT
.INDENT 0.0
@ -137,7 +145,7 @@ Display the hash table for dynamic symbols.
.INDENT 0.0
.TP
.B \-\-headers, \-e
Equivalent to setting: \fI\%\-\-file\-headers\fP, \fI\%\-\-program\-headers\fP,
Equivalent to setting: \fI\%\-\-file\-header\fP, \fI\%\-\-program\-headers\fP,
and \fI\%\-\-sections\fP\&.
.UNINDENT
.INDENT 0.0
@ -147,11 +155,6 @@ Display a summary of command line options.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-help\-list
Display an uncategorized summary of command line options.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-hex\-dump=<section[,section,...]>, \-x
Display the specified section(s) as hexadecimal bytes. \fBsection\fP may be a
section index or section name.
@ -163,11 +166,22 @@ Display the needed libraries.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-no\-demangle
Do not display demangled symbol names in the output. On by default.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-notes, \-n
Display all notes.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-pretty\-print
When used with \fI\%\-\-elf\-output\-style\fP, JSON output will be formatted in
a more readable format.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-program\-headers, \-\-segments, \-l
Display the program headers.
.UNINDENT
@ -235,7 +249,7 @@ section index or section name.
.INDENT 0.0
.TP
.B \-\-symbols, \-\-syms, \-s
Display the symbol table.
Display the symbol table. Also display the dynamic symbol table when using GNU output style for ELF.
.UNINDENT
.INDENT 0.0
.TP
@ -254,6 +268,11 @@ Display version sections.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-wide, \-W
Ignored for GNU readelf compatibility. The output is already similar to when using \-W with GNU readelf.
.UNINDENT
.INDENT 0.0
.TP
.B @<FILE>
Read command\-line options from response file \fI<FILE>\fP\&.
.UNINDENT
@ -267,6 +286,6 @@ exit code if there were any errors.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-READOBJ" "1" "2021-09-22" "12" "LLVM"
.TH "LLVM-READOBJ" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-readobj \- LLVM Object Reader
.SH SYNOPSIS
@ -38,7 +38,7 @@ llvm-readobj \- LLVM Object Reader
The \fBllvm\-readobj\fP tool displays low\-level format\-specific information
about one or more object files.
.sp
If \fBinput\fP is "\fB\-\fP", \fBllvm\-readobj\fP reads from standard
If \fBinput\fP is \(dq\fB\-\fP\(dq, \fBllvm\-readobj\fP reads from standard
input. Otherwise, it will read from the specified \fBfilenames\fP\&.
.SH DIFFERENCES TO LLVM-READELF
.sp
@ -85,24 +85,19 @@ Display the address\-significance table.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-color
Use colors in the output for warnings and errors.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-expand\-relocs
When used with \fI\%\-\-relocations\fP, display each relocation in an expanded
When used with \fI\%\-\-relocs\fP, display each relocation in an expanded
multi\-line format.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-file\-headers, \-h
.B \-\-file\-header, \-h
Display file headers.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-headers, \-e
Equivalent to setting: \fI\%\-\-file\-headers\fP, \fI\%\-\-program\-headers\fP,
Equivalent to setting: \fI\%\-\-file\-header\fP, \fI\%\-\-program\-headers\fP,
and \fI\%\-\-sections\fP\&.
.UNINDENT
.INDENT 0.0
@ -112,11 +107,6 @@ Display a summary of command line options.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-help\-list
Display an uncategorized summary of command line options.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-hex\-dump=<section[,section,...]>, \-x
Display the specified section(s) as hexadecimal bytes. \fBsection\fP may be a
section index or section name.
@ -133,7 +123,7 @@ Display the relocation entries in the file.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-sections, \-\-section\-headers, \-s, \-S
.B \-\-sections, \-\-section\-headers, \-S
Display all sections.
.UNINDENT
.INDENT 0.0
@ -156,6 +146,12 @@ This option has no effect for GNU style output.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-sort\-symbols=<sort_key[,sort_key]>
Specify the keys to sort symbols before displaying symtab.
Valid values for sort_key are \fBname\fP and \fBtype\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-stackmap
Display contents of the stackmap section.
.UNINDENT
@ -167,7 +163,12 @@ section index or section name.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-symbols, \-\-syms, \-t
.B \-\-string\-table
Display contents of the string table.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-symbols, \-\-syms, \-s
Display the symbol table.
.UNINDENT
.INDENT 0.0
@ -195,6 +196,12 @@ Display architecture\-specific information, e.g. the ARM attributes section on A
.UNINDENT
.INDENT 0.0
.TP
.B \-\-bb\-addr\-map
Display the contents of the basic block address map section(s), which contain the
address of each function, along with the relative offset of each basic block.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-demangle, \-C
Display demangled symbol names in the output.
.UNINDENT
@ -225,7 +232,7 @@ Display the callgraph profile section.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-elf\-hash\-histogram, \-\-histogram, \-I
.B \-\-histogram, \-I
Display a bucket list histogram for dynamic symbol hash tables.
.UNINDENT
.INDENT 0.0
@ -236,13 +243,14 @@ Display the linker options section.
.INDENT 0.0
.TP
.B \-\-elf\-output\-style=<value>
Format ELF information in the specified style. Valid options are \fBLLVM\fP and
\fBGNU\fP\&. \fBLLVM\fP output (the default) is an expanded and structured format,
whilst \fBGNU\fP output mimics the equivalent GNU \fBreadelf\fP output.
Format ELF information in the specified style. Valid options are \fBLLVM\fP,
\fBGNU\fP, and \fBJSON\fP\&. \fBLLVM\fP output (the default) is an expanded and
structured format. \fBGNU\fP output mimics the equivalent GNU \fBreadelf\fP
output. \fBJSON\fP is JSON formatted output intended for machine consumption.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-elf\-section\-groups, \-\-section\-groups, \-g
.B \-\-section\-groups, \-g
Display section groups.
.UNINDENT
.INDENT 0.0
@ -267,6 +275,12 @@ Display all notes.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-pretty\-print
When used with \fI\%\-\-elf\-output\-style\fP, JSON output will be formatted in
a more readable format.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-program\-headers, \-\-segments, \-l
Display the program headers.
.UNINDENT
@ -388,6 +402,34 @@ Display the load config.
.B \-\-coff\-resources
Display the .rsrc section.
.UNINDENT
.SH XCOFF SPECIFIC OPTIONS
.sp
The following options are implemented only for the XCOFF file format.
.INDENT 0.0
.TP
.B \-\-auxiliary\-header
Display XCOFF Auxiliary header.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-exception\-section
Display XCOFF exception section entries.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-loader\-section\-header
Display XCOFF loader section header.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-loader\-section\-symbols
Display symbol table of loader section.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-loader\-section\-relocations
Display relocation entries of loader section.
.UNINDENT
.SH EXIT STATUS
.sp
\fBllvm\-readobj\fP returns 0 under normal operation. It returns a non\-zero
@ -398,6 +440,6 @@ exit code if there were any errors.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-SIZE" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-SIZE" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-size \- print size information
.SH SYNOPSIS
@ -40,7 +39,7 @@ llvm-size \- print size information
It is intended to be a drop\-in replacement for GNU\(aqs \fBsize\fP\&.
.sp
The tool prints size information for each \fBinput\fP specified. If no input is
specified, the program prints size information for \fBa.out\fP\&. If "\fB\-\fP" is
specified, the program prints size information for \fBa.out\fP\&. If \(dq\fB\-\fP\(dq is
specified as an input file, \fBllvm\-size\fP reads a file from the standard
input stream. If an input is an archive, size information will be displayed for
all its members.
@ -181,11 +180,6 @@ Display a summary of command line options.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-help\-list
Display an uncategorized summary of command line options.
.UNINDENT
.INDENT 0.0
.TP
.B \-m
Equivalent to \fI\%\-\-format\fP with a value of \fBdarwin\fP\&.
.UNINDENT
@ -266,10 +260,10 @@ Read command\-line options from response file \fB<FILE>\fP\&.
Otherwise, it exits with code 0.
.SH BUGS
.sp
To report bugs, please visit <\fI\%https://bugs.llvm.org/\fP>.
To report bugs, please visit <\fI\%https://github.com/llvm/llvm\-project/labels/tools:llvm\-size/\fP>.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-STRINGS" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-STRINGS" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-strings \- print strings
.SH SYNOPSIS
@ -45,7 +44,7 @@ byte, terminates the current sequence.
\fBllvm\-strings\fP looks for strings in each \fBinput\fP file specified.
Unlike GNU \fBstrings\fP it looks in the entire input file, regardless of
file format, rather than restricting the search to certain sections of object
files. If "\fB\-\fP" is specified as an \fBinput\fP, or no \fBinput\fP is specified,
files. If \(dq\fB\-\fP\(dq is specified as an \fBinput\fP, or no \fBinput\fP is specified,
the program reads from the standard input stream.
.SH EXAMPLE
.INDENT 0.0
@ -83,11 +82,6 @@ Display a summary of command line options.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-help\-list
Display an uncategorized summary of command line options.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-print\-file\-name, \-f
Display the name of the containing file before each string.
.sp
@ -170,10 +164,10 @@ Read command\-line options from response file \fB<FILE>\fP\&.
Otherwise, it exits with code 0.
.SH BUGS
.sp
To report bugs, please visit <\fI\%https://bugs.llvm.org/\fP>.
To report bugs, please visit <\fI\%https://github.com/llvm/llvm\-project/labels/tools:llvm\-strings/\fP>.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-ADDR2LINE" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-ADDR2LINE" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-addr2line \- a drop-in replacement for addr2line
.SH SYNOPSIS
@ -68,6 +67,6 @@ inlined frames for a source code location in an inlined function.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "LLVM-SYMBOLIZER" "1" "2021-06-07" "12" "LLVM"
.TH "LLVM-SYMBOLIZER" "1" "2023-05-24" "16" "LLVM"
.SH NAME
llvm-symbolizer \- convert addresses into source code locations
.SH SYNOPSIS
@ -36,23 +35,28 @@ llvm-symbolizer \- convert addresses into source code locations
\fBllvm\-symbolizer\fP [\fIoptions\fP] [\fIaddresses...\fP]
.SH DESCRIPTION
.sp
\fBllvm\-symbolizer\fP reads object file names and addresses from the
command\-line and prints corresponding source code locations to standard output.
\fBllvm\-symbolizer\fP reads input names and addresses from the command\-line
and prints corresponding source code locations to standard output. It can also
symbolize logs containing \fI\%Symbolizer Markup\fP via
\fI\%\-\-filter\-markup\fP\&.
.sp
If no address is specified on the command\-line, it reads the addresses from
standard input. If no object file is specified on the command\-line, but
addresses are, or if at any time an input value is not recognized, the input is
simply echoed to the output.
standard input. If no input name is specified on the command\-line, but addresses
are, or if at any time an input value is not recognized, the input is simply
echoed to the output.
.sp
A positional argument or standard input value can be preceded by "DATA" or
"CODE" to indicate that the address should be symbolized as data or executable
code respectively. If neither is specified, "CODE" is assumed. DATA is
Input names can be specified together with the addresses either on standard
input or as positional arguments on the command\-line. By default, input names
are interpreted as object file paths. However, prefixing a name with
\fBBUILDID:\fP states that it is a hex build ID rather than a path. This will look
up the corresponding debug binary. For consistency, prefixing a name with
\fBFILE:\fP explicitly states that it is an object file path (the default).
.sp
A positional argument or standard input value can be preceded by \(dqDATA\(dq or
\(dqCODE\(dq to indicate that the address should be symbolized as data or executable
code respectively. If neither is specified, \(dqCODE\(dq is assumed. DATA is
symbolized as address and symbol size rather than line number.
.sp
Object files can be specified together with the addresses either on standard
input or as positional arguments on the command\-line, following any "DATA" or
"CODE" prefix.
.sp
\fBllvm\-symbolizer\fP parses options from the environment variable
\fBLLVM_SYMBOLIZER_OPTS\fP after parsing options from the command line.
\fBLLVM_SYMBOLIZER_OPTS\fP is primarily useful for supplementing the command\-line
@ -69,7 +73,7 @@ printed differently (see \fI\%\-\-demangle\fP).
.nf
.ft C
// test.h
extern "C" inline int foz() {
extern \(dqC\(dq inline int foz() {
return 1234;
}
.ft P
@ -82,7 +86,7 @@ extern "C" inline int foz() {
.nf
.ft C
// test.cpp
#include "test.h"
#include \(dqtest.h\(dq
int bar=42;
int foo() {
@ -162,7 +166,7 @@ Example 3 \- object specified with address:
.sp
.nf
.ft C
$ llvm\-symbolizer "test.elf 0x400490" "inlined.elf 0x400480"
$ llvm\-symbolizer \(dqtest.elf 0x400490\(dq \(dqFILE:inlined.elf 0x400480\(dq
baz()
/tmp/test.cpp:11:0
@ -170,7 +174,7 @@ foo()
/tmp/test.cpp:8:10
$ cat addr2.txt
test.elf 0x4004a0
FILE:test.elf 0x4004a0
inlined.elf 0x400480
$ llvm\-symbolizer < addr2.txt
@ -184,13 +188,13 @@ foo()
.UNINDENT
.UNINDENT
.sp
Example 4 \- CODE and DATA prefixes:
Example 4 \- BUILDID and FILE prefixes:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
$ llvm\-symbolizer \-\-obj=test.elf "CODE 0x400490" "DATA 0x601028"
$ llvm\-symbolizer \(dqFILE:test.elf 0x400490\(dq \(dqDATA BUILDID:123456789abcdef 0x601028\(dq
baz()
/tmp/test.cpp:11:0
@ -198,10 +202,38 @@ bar
6295592 4
$ cat addr3.txt
FILE:test.elf 0x400490
DATA BUILDID:123456789abcdef 0x601028
$ llvm\-symbolizer < addr3.txt
baz()
/tmp/test.cpp:11:0
bar
6295592 4
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Example 5 \- CODE and DATA prefixes:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
$ llvm\-symbolizer \-\-obj=test.elf \(dqCODE 0x400490\(dq \(dqDATA 0x601028\(dq
baz()
/tmp/test.cpp:11:0
bar
6295592 4
$ cat addr4.txt
CODE test.elf 0x4004a0
DATA inlined.elf 0x601028
$ llvm\-symbolizer < addr3.txt
$ llvm\-symbolizer < addr4.txt
main
/tmp/test.cpp:15:0
@ -212,7 +244,7 @@ bar
.UNINDENT
.UNINDENT
.sp
Example 5 \- path\-style options:
Example 6 \- path\-style options:
.sp
This example uses the same source file as above, but the source file\(aqs
full path is /tmp/foo/test.cpp and is compiled as follows. The first case
@ -255,6 +287,34 @@ absolute path.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-build\-id
Look up the object using the given build ID, specified as a hexadecimal
string. Mutually exclusive with \fI\%\-\-obj\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-color [=<always|auto|never>]
Specify whether to use color in \fI\%\-\-filter\-markup\fP mode. Defaults to
\fBauto\fP, which detects whether standard output supports color. Specifying
\fB\-\-color\fP alone is equivalent to \fB\-\-color=always\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-debug\-file\-directory <path>
Provide a path to a directory with a \fI\&.build\-id\fP subdirectory to search for
debug information for stripped binaries. Multiple instances of this argument
are searched in the order given.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-debuginfod, \-\-no\-debuginfod
Whether or not to try debuginfod lookups for debug binaries. Unless specified,
debuginfod is only enabled if libcurl was compiled in (\fBLLVM_ENABLE_CURL\fP)
and at least one server URL was provided by the environment variable
\fBDEBUGINFOD_URLS\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-demangle, \-C
Print demangled function names, if the names are mangled (e.g. the mangled
name \fI_Z3bazv\fP becomes \fIbaz()\fP, whilst the non\-mangled name \fIfoz\fP is printed
@ -275,6 +335,32 @@ it cannot be found relative to the object.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-filter\-markup
Reads from standard input, converts contained
\fI\%Symbolizer Markup\fP into human\-readable form,
and prints the results to standard output. The following markup elements are
not yet supported:
.INDENT 7.0
.IP \(bu 2
\fB{{{hexdict}}}\fP
.IP \(bu 2
\fB{{{dumpfile}}}\fP
.UNINDENT
.sp
The \fB{{{bt}}}\fP backtrace element reports frames using the following syntax:
.sp
\fB#<number>[.<inline>] <address> <function> <file>:<line>:<col> (<module>+<relative address>)\fP
.sp
\fB<inline>\fP provides frame numbers for calls inlined into the caller
coresponding to \fB<number>\fP\&. The inlined call numbers start at 1 and increase
from callee to caller.
.sp
\fB<address>\fP is an address inside the call instruction to the function. The
address may not be the start of the instruction. \fB<relative address>\fP is
the corresponding virtual offset in the \fB<module>\fP loaded at that address.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-functions [=<none|short|linkage>], \-f
Specify the way function names are printed (omit function name, print short
function name, or print full linkage name, respectively). Defaults to
@ -305,11 +391,12 @@ Don\(aqt print demangled function names.
.TP
.B \-\-obj <path>, \-\-exe, \-e
Path to object file to be symbolized. If \fB\-\fP is specified, read the object
directly from the standard input stream.
directly from the standard input stream. Mutually exclusive with
\fI\%\-\-build\-id\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-output\-style <LLVM|GNU>
.B \-\-output\-style <LLVM|GNU|JSON>
Specify the preferred output style. Defaults to \fBLLVM\fP\&. When the output
style is set to \fBGNU\fP, the tool follows the style of GNU\(aqs \fBaddr2line\fP\&.
The differences from the \fBLLVM\fP style are:
@ -320,13 +407,18 @@ Does not print the column of a source code location.
Does not add an empty line after the report for an address.
.IP \(bu 2
Does not replace the name of an inlined function with the name of the
topmost caller when inlined frames are not shown and \fI\%\-\-use\-symbol\-table\fP
is on.
topmost caller when inlined frames are not shown.
.IP \(bu 2
Prints an address\(aqs debug\-data discriminator when it is non\-zero. One way to
produce discriminators is to compile with clang\(aqs \-fdebug\-info\-for\-profiling.
.UNINDENT
.INDENT 7.0
.TP
.B \fBJSON\fP style provides a machine readable output in JSON. If addresses are
supplied via stdin, the output JSON will be a series of individual objects.
Otherwise, all results will be contained in a single array.
.UNINDENT
.INDENT 7.0
.INDENT 3.5
.sp
.nf
@ -349,6 +441,52 @@ foo() at /tmp/test.cpp:6
$ clang \-g \-fdebug\-info\-for\-profiling test.cpp \-o profiling.elf
$ llvm\-symbolizer \-\-output\-style=GNU \-\-obj=profiling.elf 0x401167 \-p \-\-no\-inlines
main at /tmp/test.cpp:15 (discriminator 2)
$ llvm\-symbolizer \-\-output\-style=JSON \-\-obj=inlined.elf 0x4004be 0x400486 \-p
[
{
\(dqAddress\(dq: \(dq0x4004be\(dq,
\(dqModuleName\(dq: \(dqinlined.elf\(dq,
\(dqSymbol\(dq: [
{
\(dqColumn\(dq: 18,
\(dqDiscriminator\(dq: 0,
\(dqFileName\(dq: \(dq/tmp/test.cpp\(dq,
\(dqFunctionName\(dq: \(dqbaz()\(dq,
\(dqLine\(dq: 11,
\(dqStartAddress\(dq: \(dq0x4004be\(dq,
\(dqStartFileName\(dq: \(dq/tmp/test.cpp\(dq,
\(dqStartLine\(dq: 9
},
{
\(dqColumn\(dq: 0,
\(dqDiscriminator\(dq: 0,
\(dqFileName\(dq: \(dq/tmp/test.cpp\(dq,
\(dqFunctionName\(dq: \(dqmain\(dq,
\(dqLine\(dq: 15,
\(dqStartAddress\(dq: \(dq0x4004be\(dq,
\(dqStartFileName\(dq: \(dq/tmp/test.cpp\(dq,
\(dqStartLine\(dq: 14
}
]
},
{
\(dqAddress\(dq: \(dq0x400486\(dq,
\(dqModuleName\(dq: \(dqinlined.elf\(dq,
\(dqSymbol\(dq: [
{
\(dqColumn\(dq: 3,
\(dqDiscriminator\(dq: 0,
\(dqFileName\(dq: \(dq/tmp/test.cpp\(dq,
\(dqFunctionName\(dq: \(dqfoo()\(dq,
\(dqLine\(dq: 6,
\(dqStartAddress\(dq: \(dq0x400486\(dq,
\(dqStartFileName\(dq: \(dq/tmp/test.cpp\(dq,
\(dqStartLine\(dq: 5
}
]
}
]
.ft P
.fi
.UNINDENT
@ -359,6 +497,8 @@ main at /tmp/test.cpp:15 (discriminator 2)
.B \-\-pretty\-print, \-p
Print human readable output. If \fI\%\-\-inlining\fP is specified, the
enclosing scope is prefixed by (inlined by).
For JSON output, the option will cause JSON to be indented and split over
new lines. Otherwise, the JSON output will be printed in a compact form.
.INDENT 7.0
.INDENT 3.5
.sp
@ -405,7 +545,7 @@ Print \fBN\fP lines of source context for each symbolized address.
.sp
.nf
.ft C
$ llvm\-symbolizer \-\-obj=test.elf 0x400490 \-\-print\-source\-context\-lines=2
$ llvm\-symbolizer \-\-obj=test.elf 0x400490 \-\-print\-source\-context\-lines=3
baz()
/tmp/test.cpp:11:0
10 : volatile int k = 42;
@ -425,14 +565,8 @@ the full path, this will be the same as the default.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-use\-symbol\-table
Prefer function names stored in symbol table to function names in debug info
sections. Defaults to true.
.UNINDENT
.INDENT 0.0
.TP
.B \-\-verbose
Print verbose line and column information.
Print verbose address, line and column information.
.INDENT 7.0
.INDENT 3.5
.sp
@ -441,14 +575,18 @@ Print verbose line and column information.
$ llvm\-symbolizer \-\-obj=inlined.elf \-\-verbose 0x4004be
baz()
Filename: /tmp/test.cpp
Function start line: 9
Function start filename: /tmp/test.cpp
Function start line: 9
Function start address: 0x4004b6
Line: 11
Column: 18
main
Filename: /tmp/test.cpp
Function start line: 14
Function start filename: /tmp/test.cpp
Function start line: 14
Function start address: 0x4004b0
Line: 15
Column: 0
Column: 18
.ft P
.fi
.UNINDENT
@ -517,6 +655,6 @@ error.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,6 +1,7 @@
# $FreeBSD$
PROG_CXX= llvm-tblgen
MAN=
SRCDIR= llvm/utils/TableGen
SRCS+= AsmMatcherEmitter.cpp

View File

@ -1,888 +0,0 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
.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]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.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
..
.TH "XXX-TBLGEN" "1" "2021-06-07" "12" "LLVM"
.SH NAME
xxx-tblgen \- Target Description to C++ Code
.SH SYNOPSIS
.sp
\fBxxx\-tblgen\fP [\fIoptions\fP] [\fIfilename\fP]
.SH DESCRIPTION
.sp
\fBxxx\-tblgen\fP is a family of programs that translates target
description (\fB\&.td\fP) files into C++ code and other output formats. Most
users of LLVM will not need to use this program. It is used only for
writing parts of the compiler or LLVM target backends.
.sp
The details of the input and output of \fBxxx\-tblgen\fP is beyond the
scope of this short introduction; please see the TableGen Overview for an introduction and for references to additional
TableGen documents.
.sp
The \fIfilename\fP argument specifies the name of the Target Description (\fB\&.td\fP)
file that TableGen processes.
.SH OPTIONS
.SS General Options
.INDENT 0.0
.TP
.B \-help
Print a description of the command line options.
.UNINDENT
.INDENT 0.0
.TP
.B \-help\-list
Print a description of the command line options in a simple list format.
.UNINDENT
.INDENT 0.0
.TP
.B \-D=macroname
Specify the name of a macro to be defined. The name is defined, but it
has no particular value.
.UNINDENT
.INDENT 0.0
.TP
.B \-d=filename
Specify the name of the dependency filename.
.UNINDENT
.INDENT 0.0
.TP
.B \-debug
Enable debug output.
.UNINDENT
.INDENT 0.0
.TP
.B \-dump\-json
Print a JSON representation of all records, suitable for further
automated processing.
.UNINDENT
.INDENT 0.0
.TP
.B \-I directory
Specify where to find other target description files for inclusion. The
\fBdirectory\fP value should be a full or partial path to a directory that
contains target description files.
.UNINDENT
.INDENT 0.0
.TP
.B \-null\-backend
Parse the source files and build the records, but do not run any
backend. This is useful for timing the frontend.
.UNINDENT
.INDENT 0.0
.TP
.B \-o filename
Specify the output file name. If \fBfilename\fP is \fB\-\fP, then
\fBxxx\-tblgen\fP sends its output to standard output.
.UNINDENT
.INDENT 0.0
.TP
.B \-print\-records
Print all classes and records to standard output (default backend option).
.UNINDENT
.INDENT 0.0
.TP
.B \-print\-detailed\-records
Print a detailed report of all global variables, classes, and records
to standard output.
.UNINDENT
.INDENT 0.0
.TP
.B \-stats
Print a report with any statistics collected by the backend.
.UNINDENT
.INDENT 0.0
.TP
.B \-time\-phases
Time the parser and backend phases and print a report.
.UNINDENT
.INDENT 0.0
.TP
.B \-version
Show the version number of the program.
.UNINDENT
.INDENT 0.0
.TP
.B \-write\-if\-changed
Write the output file only if it is new or has changed.
.UNINDENT
.SS llvm\-tblgen Options
.INDENT 0.0
.TP
.B \-gen\-asm\-matcher
Generate assembly instruction matcher.
.UNINDENT
.INDENT 0.0
.TP
.B \-match\-prefix=prefix
Make \-gen\-asm\-matcher match only instructions with the given \fIprefix\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-asm\-parser
Generate assembly instruction parser.
.UNINDENT
.INDENT 0.0
.TP
.B \-asmparsernum=n
Make \-gen\-asm\-parser emit assembly parser number \fIn\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-asm\-writer
Generate assembly writer.
.UNINDENT
.INDENT 0.0
.TP
.B \-asmwriternum=n
Make \-gen\-asm\-writer emit assembly writer number \fIn\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-attrs
Geneerate attributes.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-automata
Generate generic automata.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-callingconv
Generate calling convention descriptions.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-compress\-inst\-emitter
Generate RISCV compressed instructions.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-ctags
Generate ctags\-compatible index.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-dag\-isel
Generate a DAG (directed acyclic graph) instruction selector.
.UNINDENT
.INDENT 0.0
.TP
.B \-instrument\-coverage
Make \-gen\-dag\-isel generate tables to help identify the patterns matched.
.UNINDENT
.INDENT 0.0
.TP
.B \-omit\-comments
Make \-gen\-dag\-isel omit comments. The default is false.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-dfa\-packetizer
Generate DFA Packetizer for VLIW targets.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-directive\-decl
Generate directive related declaration code (header file).
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-directive\-gen
Generate directive related implementation code part.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-directive\-impl
Generate directive related implementation code.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-disassembler
Generate disassembler.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-emitter
Generate machine code emitter.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-exegesis
Generate llvm\-exegesis tables.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-fast\-isel
Generate a "fast" instruction selector.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-global\-isel
Generate GlobalISel selector.
.UNINDENT
.INDENT 0.0
.TP
.B \-gisel\-coverage\-file=filename
Specify the file from which to retrieve coverage information.
.UNINDENT
.INDENT 0.0
.TP
.B \-instrument\-gisel\-coverage
Make \-gen\-global\-isel generate coverage instrumentation.
.UNINDENT
.INDENT 0.0
.TP
.B \-optimize\-match\-table
Make \-gen\-global\-isel generate an optimized version of the match table.
.UNINDENT
.INDENT 0.0
.TP
.B \-warn\-on\-skipped\-patterns
Make \-gen\-global\-isel explain why a pattern was skipped for inclusion.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-global\-isel\-combiner
Generate GlobalISel combiner.
.UNINDENT
.INDENT 0.0
.TP
.B \-combiners=list
Make \-gen\-global\-isel\-combiner emit the specified combiners.
.UNINDENT
.INDENT 0.0
.TP
.B \-gicombiner\-show\-expansions
Make \-gen\-global\-isel\-combiner use C++ comments to indicate occurences
of code expansion.
.UNINDENT
.INDENT 0.0
.TP
.B \-gicombiner\-stop\-after\-build
Make \-gen\-global\-isel\-combiner stop processing after building the match tree.
.UNINDENT
.INDENT 0.0
.TP
.B \-gicombiner\-stop\-after\-parse
Make \-gen\-global\-isel\-combiner stop processing after parsing rules
and dump state.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-instr\-info
Generate instruction descriptions.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-instr\-docs
Generate instruction documentation.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-intrinsic\-enums
Generate intrinsic enums.
.UNINDENT
.INDENT 0.0
.TP
.B \-intrinsic\-prefix=prefix
Make \-gen\-intrinsic\-enums generate intrinsics with this target \fIprefix\fP\&.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-intrinsic\-impl
Generate intrinsic information.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-opt\-parser\-defs
Generate options definitions.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-opt\-rst
Generate option RST.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-pseudo\-lowering
Generate pseudo instruction lowering.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-register\-bank
Generate register bank descriptions.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-register\-info
Generate registers and register classes info.
.UNINDENT
.INDENT 0.0
.TP
.B \-register\-info\-debug
Make \-gen\-register\-info dump register information for debugging.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-searchable\-tables
Generate generic searchable tables. See TableGen BackEnds
for a detailed description.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-subtarget
Generate subtarget enumerations.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-x86\-EVEX2VEX\-tables
Generate X86 EVEX to VEX compress tables.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-x86\-fold\-tables
Generate X86 fold tables.
.UNINDENT
.INDENT 0.0
.TP
.B \-long\-string\-literals
When emitting large string tables, prefer string literals over
comma\-separated char literals. This can be a readability and
compile\-time performance win, but upsets some compilers.
.UNINDENT
.INDENT 0.0
.TP
.B \-print\-enums
Print enumeration values for a class.
.UNINDENT
.INDENT 0.0
.TP
.B \-class=classname
Make \-print\-enums print the enumeration list for the specified class.
.UNINDENT
.INDENT 0.0
.TP
.B \-print\-sets
Print expanded sets for testing DAG exprs.
.UNINDENT
.SS clang\-tblgen Options
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-classes
Generate Clang attribute clases.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-parser\-string\-switches
Generate all parser\-related attribute string switches.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-subject\-match\-rules\-parser\-string\-switches
Generate all parser\-related attribute subject match rule string switches.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-impl
Generate Clang attribute implementations.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-list"
Generate a Clang attribute list.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-subject\-match\-rule\-list
Generate a Clang attribute subject match rule list.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-pch\-read
Generate Clang PCH attribute reader.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-pch\-write
Generate Clang PCH attribute writer.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-has\-attribute\-impl
Generate a Clang attribute spelling list.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-spelling\-index
Generate a Clang attribute spelling index.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-ast\-visitor
Generate a recursive AST visitor for Clang attributes.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-template\-instantiate
Generate a Clang template instantiate code.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-parsed\-attr\-list
Generate a Clang parsed attribute list.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-parsed\-attr\-impl
Generate the Clang parsed attribute helpers.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-parsed\-attr\-kinds
Generate a Clang parsed attribute kinds.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-text\-node\-dump
Generate Clang attribute text node dumper.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-attr\-node\-traverse
Generate Clang attribute traverser.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-diags\-defs
Generate Clang diagnostics definitions.
.UNINDENT
.INDENT 0.0
.TP
.B \-clang\-component component
Only use warnings from specified component.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-diag\-groups
Generate Clang diagnostic groups.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-diags\-index\-name
Generate Clang diagnostic name index.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-basic\-reader
Generate Clang BasicReader classes.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-basic\-writer
Generate Clang BasicWriter classes.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-comment\-nodes
Generate Clang AST comment nodes.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-decl\-nodes
Generate Clang AST declaration nodes.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-stmt\-nodes
Generate Clang AST statement nodes.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-type\-nodes
Generate Clang AST type nodes.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-type\-reader
Generate Clang AbstractTypeReader class.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-type\-writer
Generate Clang AbstractTypeWriter class.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-opcodes
Generate Clang constexpr interpreter opcodes.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-sa\-checkers
Generate Clang static analyzer checkers.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-comment\-html\-tags
Generate efficient matchers for HTML tag names that are used in
documentation comments.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-comment\-html\-tags\-properties
Generate efficient matchers for HTML tag properties.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-comment\-html\-named\-character\-references
Generate function to translate named character references to UTF\-8 sequences.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-comment\-command\-info
Generate command properties for commands that are used in documentation comments.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-comment\-command\-list
Generate list of commands that are used in documentation comments.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-opencl\-builtins
Generate OpenCL builtin declaration handlers.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-neon
Generate \fBarm_neon.h\fP for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-fp16
Generate \fBarm_fp16.h\fP for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-bf16
Generate \fBarm_bf16.h\fP for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-neon\-sema
Generate ARM NEON sema support for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-neon\-test
Generate ARM NEON tests for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-sve\-header
Generate \fBarm_sve.h\fP for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-sve\-builtins
Generate \fBarm_sve_builtins.inc\fP for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-sve\-builtin\-codegen
Generate \fBarm_sve_builtin_cg_map.inc\fP for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-sve\-typeflags
Generate \fBarm_sve_typeflags.inc\fP for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-sve\-sema\-rangechecks
Generate \fBarm_sve_sema_rangechecks.inc\fP for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-mve\-header
Generate \fBarm_mve.h\fP for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-mve\-builtin\-def
Generate ARM MVE builtin definitions for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-mve\-builtin\-sema
Generate ARM MVE builtin sema checks for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-mve\-builtin\-codegen
Generate ARM MVE builtin code\-generator for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-mve\-builtin\-aliases
Generate list of valid ARM MVE builtin aliases for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-cde\-header
Generate \fBarm_cde.h\fP for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-cde\-builtin\-def
Generate ARM CDE builtin definitions for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-cde\-builtin\-sema
Generate ARM CDE builtin sema checks for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-cde\-builtin\-codegen
Generate ARM CDE builtin code\-generator for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-arm\-cde\-builtin\-aliases
Generate list of valid ARM CDE builtin aliases for Clang.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-attr\-docs
Generate attribute documentation.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-diag\-docs
Generate diagnostic documentation.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-opt\-docs
Generate option documentation.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-data\-collectors
Generate data collectors for AST nodes.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-clang\-test\-pragma\-attribute\-supported\-attributes
Generate a list of attributes supported by \fB#pragma\fP Clang attribute for
testing purposes.
.UNINDENT
.SS mlir\-tblgen Options
.INDENT 0.0
.TP
.B \-gen\-avail\-interface\-decls
Generate availability interface declarations.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-avail\-interface\-defs
Generate op interface definitions.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-dialect\-doc
Generate dialect documentation.
.UNINDENT
.INDENT 0.0
.TP
.B \-dialect
The dialect to generate.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-directive\-decl
Generate declarations for directives (OpenMP, etc.).
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-enum\-decls
Generate enum utility declarations.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-enum\-defs
Generate enum utility definitions.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-enum\-from\-llvmir\-conversions
Generate conversions of EnumAttrs from LLVM IR.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-enum\-to\-llvmir\-conversions
Generate conversions of EnumAttrs to LLVM IR.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-llvmir\-conversions
Generate LLVM IR conversions.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-llvmir\-intrinsics
Generate LLVM IR intrinsics.
.UNINDENT
.INDENT 0.0
.TP
.B \-llvmir\-intrinsics\-filter
Only keep the intrinsics with the specified substring in their record name.
.UNINDENT
.INDENT 0.0
.TP
.B \-dialect\-opclass\-base
The base class for the ops in the dialect we are to emit.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-op\-decls
Generate operation declarations.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-op\-defs
Generate operation definitions.
.UNINDENT
.INDENT 0.0
.TP
.B \-asmformat\-error\-is\-fatal
Emit a fatal error if format parsing fails.
.UNINDENT
.INDENT 0.0
.TP
.B \-op\-exclude\-regex
Regular expression of name of ops to exclude (no filter if empty).
.UNINDENT
.INDENT 0.0
.TP
.B \-op\-include\-regex
Regular expression of name of ops to include (no filter if empty).
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-op\-doc
Generate operation documentation.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-pass\-decls
Generate operation documentation.
.UNINDENT
.INDENT 0.0
.TP
.B \-name namestring
The name of this group of passes.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-pass\-doc
Generate pass documentation.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-rewriters
Generate pattern rewriters.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-spirv\-avail\-impls
Generate SPIR\-V operation utility definitions.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-spirv\-capability\-implication
Generate utility function to return implied capabilities for a given capability.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-spirv\-enum\-avail\-decls
Generate SPIR\-V enum availability declarations.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-spirv\-enum\-avail\-defs
Generate SPIR\-V enum availability definitions.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-spirv\-op\-utils
Generate SPIR\-V operation utility definitions.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-spirv\-serialization
Generate SPIR\-V (de)serialization utilities and functions.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-struct\-attr\-decls
Generate struct utility declarations.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-struct\-attr\-defs
Generate struct utility definitions.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-typedef\-decls
Generate TypeDef declarations.
.UNINDENT
.INDENT 0.0
.TP
.B \-gen\-typedef\-defs
Generate TypeDef definitions.
.UNINDENT
.INDENT 0.0
.TP
.B \-typedefs\-dialect name
Generate types for this dialect.
.UNINDENT
.SH EXIT STATUS
.sp
If \fBxxx\-tblgen\fP succeeds, it will exit with 0. Otherwise, if an error
occurs, it will exit with a non\-zero value.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
.\" Generated by docutils manpage writer.
.

View File

@ -1,4 +1,3 @@
.\" $FreeBSD$
.\" Man page generated from reStructuredText.
.
.
@ -28,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "OPT" "1" "2021-06-07" "12" "LLVM"
.TH "OPT" "1" "2023-05-24" "16" "LLVM"
.SH NAME
opt \- LLVM optimizer
.SH SYNOPSIS
@ -36,25 +35,14 @@ opt \- LLVM optimizer
\fBopt\fP [\fIoptions\fP] [\fIfilename\fP]
.SH DESCRIPTION
.sp
The \fBopt\fP command is the modular LLVM optimizer and analyzer. It
takes LLVM source files as input, runs the specified optimizations or analyses
on it, and then outputs the optimized file or the analysis results. The
function of \fBopt\fP depends on whether the \fI\-analyze\fP option is
given.
The \fBopt\fP command is the modular LLVM optimizer and analyzer. It takes
LLVM source files as input, runs the specified optimizations or analyses on it,
and then outputs the optimized file. The optimizations available via
\fBopt\fP depend upon what libraries were linked into it as well as any
additional libraries that have been loaded with the \fI\%\-load\fP option. Use
the \fI\%\-help\fP option to determine what optimizations you can use.
.sp
When \fI\-analyze\fP is specified, \fBopt\fP performs various analyses
of the input source. It will usually print the results on standard output, but
in a few cases, it will print output to standard error or generate a file with
the analysis output, which is usually done when the output is meant for another
program.
.sp
While \fI\-analyze\fP is \fInot\fP given, \fBopt\fP attempts to produce an
optimized output file. The optimizations available via \fBopt\fP depend
upon what libraries were linked into it as well as any additional libraries
that have been loaded with the \fI\%\-load\fP option. Use the \fI\%\-help\fP
option to determine what optimizations you can use.
.sp
If \fBfilename\fP is omitted from the command line or is "\fB\-\fP", \fBopt\fP
If \fBfilename\fP is omitted from the command line or is \(dq\fB\-\fP\(dq, \fBopt\fP
reads its input from standard input. Inputs can be in either the LLVM assembly
language format (\fB\&.ll\fP) or the LLVM bitcode format (\fB\&.bc\fP).
.sp
@ -93,17 +81,6 @@ order in which they are executed (within pass constraints).
.UNINDENT
.INDENT 0.0
.TP
.B \-disable\-inlining
This option simply removes the inlining pass from the standard list.
.UNINDENT
.INDENT 0.0
.TP
.B \-disable\-opt
This option is only meaningful when \fI\-std\-link\-opts\fP is given. It
disables most passes.
.UNINDENT
.INDENT 0.0
.TP
.B \-strip\-debug
This option causes opt to strip debug information from the module before
applying other optimizations. It is essentially the same as \fI\-strip\fP
@ -155,8 +132,8 @@ opt \-load=plugin.so \-help
.UNINDENT
.INDENT 0.0
.TP
.B \-p
Print module after each transformation.
.B \-print\-passes
Print all available passes and exit.
.UNINDENT
.SH EXIT STATUS
.sp
@ -165,6 +142,6 @@ occurs, it will exit with a non\-zero value.
.SH AUTHOR
Maintained by the LLVM Team (https://llvm.org/).
.SH COPYRIGHT
2003-2021, LLVM Project
2003-2023, LLVM Project
.\" Generated by docutils manpage writer.
.