Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Jul 2023 18:27:08 GMT
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 2e0c78c9c134 - stable/13 - Merge llvm-project release/16.x llvmorg-16.0.4-0-gae42196bc493
Message-ID:  <202307231827.36NIR8iR058769@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by dim:

URL: https://cgit.FreeBSD.org/src/commit/?id=2e0c78c9c134db4facda3abd297597e64f28fda7

commit 2e0c78c9c134db4facda3abd297597e64f28fda7
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2023-05-22 17:29:55 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-07-23 17:38:10 +0000

    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
    
    (cherry picked from commit a324c34037ef2e1101962fca4ad0c021253288e1)
---
 contrib/llvm-project/clang/lib/AST/TypePrinter.cpp |   2 +-
 .../clang/lib/Driver/ToolChains/Clang.cpp          |   2 +-
 .../clang/lib/Driver/ToolChains/MSVC.cpp           |   2 +-
 contrib/llvm-project/clang/lib/Sema/SemaInit.cpp   |  16 +-
 contrib/llvm-project/libcxx/include/__config       |   2 +-
 .../lib/CodeGen/SelectionDAG/TargetLowering.cpp    |   9 +-
 .../lib/Target/SystemZ/SystemZISelLowering.cpp     |   6 +-
 .../llvm/lib/Target/X86/X86FrameLowering.cpp       |  14 +-
 lib/clang/include/VCSVersion.inc                   |   6 +-
 lib/clang/include/clang/Basic/Version.inc          |   6 +-
 lib/clang/include/lld/Common/Version.inc           |   2 +-
 lib/clang/include/lldb/Version/Version.inc         |   6 +-
 lib/clang/include/llvm/Config/config.h             |   4 +-
 lib/clang/include/llvm/Config/llvm-config.h        |   4 +-
 lib/clang/include/llvm/Support/VCSRevision.h       |   2 +-
 usr.bin/clang/bugpoint/bugpoint.1                  |  39 +-
 usr.bin/clang/clang/clang.1                        | 116 ++-
 usr.bin/clang/llc/llc.1                            |  15 +-
 usr.bin/clang/lli/lli.1                            |  11 +-
 usr.bin/clang/llvm-ar/llvm-ar.1                    |  73 +-
 usr.bin/clang/llvm-ar/llvm-ranlib.1                |  11 +-
 usr.bin/clang/llvm-as/llvm-as.1                    |   5 +-
 usr.bin/clang/llvm-bcanalyzer/llvm-bcanalyzer.1    |  25 +-
 usr.bin/clang/llvm-cov/llvm-cov.1                  | 143 +++-
 usr.bin/clang/llvm-cxxfilt/llvm-cxxfilt.1          |  10 +-
 usr.bin/clang/llvm-diff/llvm-diff.1                |   5 +-
 usr.bin/clang/llvm-dis/llvm-dis.1                  |   5 +-
 usr.bin/clang/llvm-dwarfdump/llvm-dwarfdump.1      |  19 +-
 usr.bin/clang/llvm-dwarfutil/llvm-dwarfutil.1      |  10 +-
 usr.bin/clang/llvm-extract/llvm-extract.1          |   7 +-
 usr.bin/clang/llvm-link/llvm-link.1                |   7 +-
 usr.bin/clang/llvm-mca/llvm-mca.1                  | 326 +++++++-
 usr.bin/clang/llvm-nm/llvm-nm.1                    |  89 ++-
 usr.bin/clang/llvm-objcopy/llvm-objcopy.1          |  73 +-
 usr.bin/clang/llvm-objdump/llvm-objdump.1          | 125 ++-
 usr.bin/clang/llvm-pdbutil/llvm-pdbutil.1          |   9 +-
 usr.bin/clang/llvm-profdata/llvm-profdata.1        | 134 ++--
 usr.bin/clang/llvm-readobj/llvm-readelf.1          |  59 +-
 usr.bin/clang/llvm-readobj/llvm-readobj.1          |  88 +-
 usr.bin/clang/llvm-size/llvm-size.1                |  14 +-
 usr.bin/clang/llvm-strings/llvm-strings.1          |  14 +-
 usr.bin/clang/llvm-symbolizer/llvm-addr2line.1     |   5 +-
 usr.bin/clang/llvm-symbolizer/llvm-symbolizer.1    | 214 ++++-
 usr.bin/clang/llvm-tblgen/Makefile                 |   1 +
 usr.bin/clang/llvm-tblgen/llvm-tblgen.1            | 888 ---------------------
 usr.bin/clang/opt/opt.1                            |  45 +-
 46 files changed, 1266 insertions(+), 1402 deletions(-)

diff --git a/contrib/llvm-project/clang/lib/AST/TypePrinter.cpp b/contrib/llvm-project/clang/lib/AST/TypePrinter.cpp
index 5c2464904485..2d06faeca182 100644
--- a/contrib/llvm-project/clang/lib/AST/TypePrinter.cpp
+++ b/contrib/llvm-project/clang/lib/AST/TypePrinter.cpp
@@ -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,
diff --git a/contrib/llvm-project/clang/lib/Driver/ToolChains/Clang.cpp b/contrib/llvm-project/clang/lib/Driver/ToolChains/Clang.cpp
index ec6860113b7e..238507e06335 100644
--- a/contrib/llvm-project/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/contrib/llvm-project/clang/lib/Driver/ToolChains/Clang.cpp
@@ -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-".
diff --git a/contrib/llvm-project/clang/lib/Driver/ToolChains/MSVC.cpp b/contrib/llvm-project/clang/lib/Driver/ToolChains/MSVC.cpp
index 8ad67ca3e13f..b8aa21b7a766 100644
--- a/contrib/llvm-project/clang/lib/Driver/ToolChains/MSVC.cpp
+++ b/contrib/llvm-project/clang/lib/Driver/ToolChains/MSVC.cpp
@@ -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")) {
diff --git a/contrib/llvm-project/clang/lib/Sema/SemaInit.cpp b/contrib/llvm-project/clang/lib/Sema/SemaInit.cpp
index 99801a88e3ed..44adb167dcc0 100644
--- a/contrib/llvm-project/clang/lib/Sema/SemaInit.cpp
+++ b/contrib/llvm-project/clang/lib/Sema/SemaInit.cpp
@@ -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:
diff --git a/contrib/llvm-project/libcxx/include/__config b/contrib/llvm-project/libcxx/include/__config
index 36bdbd8680db..9009b9014abb 100644
--- a/contrib/llvm-project/libcxx/include/__config
+++ b/contrib/llvm-project/libcxx/include/__config
@@ -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)
diff --git a/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
index 8d4c8802f71c..3de4efb5ba22 100644
--- a/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+++ b/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
@@ -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));
         }
diff --git a/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp b/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
index 5dca792dc89a..0b3059df124e 100644
--- a/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
+++ b/contrib/llvm-project/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
@@ -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.
diff --git a/contrib/llvm-project/llvm/lib/Target/X86/X86FrameLowering.cpp b/contrib/llvm-project/llvm/lib/Target/X86/X86FrameLowering.cpp
index 1606413c382b..df9aaddd5729 100644
--- a/contrib/llvm-project/llvm/lib/Target/X86/X86FrameLowering.cpp
+++ b/contrib/llvm-project/llvm/lib/Target/X86/X86FrameLowering.cpp
@@ -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
diff --git a/lib/clang/include/VCSVersion.inc b/lib/clang/include/VCSVersion.inc
index 466b5ce7ecfd..514717a358fc 100644
--- a/lib/clang/include/VCSVersion.inc
+++ b/lib/clang/include/VCSVersion.inc
@@ -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"
diff --git a/lib/clang/include/clang/Basic/Version.inc b/lib/clang/include/clang/Basic/Version.inc
index 13d7baf64730..301f49bfd08c 100644
--- a/lib/clang/include/clang/Basic/Version.inc
+++ b/lib/clang/include/clang/Basic/Version.inc
@@ -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 "
diff --git a/lib/clang/include/lld/Common/Version.inc b/lib/clang/include/lld/Common/Version.inc
index 8f4dd4a4b559..61598755e168 100644
--- a/lib/clang/include/lld/Common/Version.inc
+++ b/lib/clang/include/lld/Common/Version.inc
@@ -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) ")"
diff --git a/lib/clang/include/lldb/Version/Version.inc b/lib/clang/include/lldb/Version/Version.inc
index 4434036b81e2..cdc1a2c63f72 100644
--- a/lib/clang/include/lldb/Version/Version.inc
+++ b/lib/clang/include/lldb/Version/Version.inc
@@ -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 */
diff --git a/lib/clang/include/llvm/Config/config.h b/lib/clang/include/llvm/Config/config.h
index 57914743328d..105378ec0dcd 100644
--- a/lib/clang/include/llvm/Config/config.h
+++ b/lib/clang/include/llvm/Config/config.h
@@ -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 */
diff --git a/lib/clang/include/llvm/Config/llvm-config.h b/lib/clang/include/llvm/Config/llvm-config.h
index 3932cfc4d1c3..956e14142365 100644
--- a/lib/clang/include/llvm/Config/llvm-config.h
+++ b/lib/clang/include/llvm/Config/llvm-config.h
@@ -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()
diff --git a/lib/clang/include/llvm/Support/VCSRevision.h b/lib/clang/include/llvm/Support/VCSRevision.h
index 4fa56888d33c..ca9915b70f68 100644
--- a/lib/clang/include/llvm/Support/VCSRevision.h
+++ b/lib/clang/include/llvm/Support/VCSRevision.h
@@ -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"
diff --git a/usr.bin/clang/bugpoint/bugpoint.1 b/usr.bin/clang/bugpoint/bugpoint.1
index 97b227ea82d1..efbecd28e178 100644
--- a/usr.bin/clang/bugpoint/bugpoint.1
+++ b/usr.bin/clang/bugpoint/bugpoint.1
@@ -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.
 .
diff --git a/usr.bin/clang/clang/clang.1 b/usr.bin/clang/clang/clang.1
index 10e78ebe16df..8099bd228799 100644
--- a/usr.bin/clang/clang/clang.1
+++ b/usr.bin/clang/clang/clang.1
@@ -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.
 .
diff --git a/usr.bin/clang/llc/llc.1 b/usr.bin/clang/llc/llc.1
index 0fb50f43ed9d..1dfef564fcd6 100644
--- a/usr.bin/clang/llc/llc.1
+++ b/usr.bin/clang/llc/llc.1
@@ -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.
 .
diff --git a/usr.bin/clang/lli/lli.1 b/usr.bin/clang/lli/lli.1
index 6684ab4411b8..b82e6a903a1d 100644
--- a/usr.bin/clang/lli/lli.1
+++ b/usr.bin/clang/lli/lli.1
@@ -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.
 .
diff --git a/usr.bin/clang/llvm-ar/llvm-ar.1 b/usr.bin/clang/llvm-ar/llvm-ar.1
index d386e6bcc6fa..9f2be0c401cc 100644
--- a/usr.bin/clang/llvm-ar/llvm-ar.1
+++ b/usr.bin/clang/llvm-ar/llvm-ar.1
@@ -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.
 .
diff --git a/usr.bin/clang/llvm-ar/llvm-ranlib.1 b/usr.bin/clang/llvm-ar/llvm-ranlib.1
index 3fd6e6618dd1..36c715546faa 100644
*** 4099 LINES SKIPPED ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202307231827.36NIR8iR058769>