git: a324c34037ef - main - Merge llvm-project release/16.x llvmorg-16.0.4-0-gae42196bc493

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Thu, 22 Jun 2023 21:11:23 UTC
The branch main has been updated by dim:

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

commit a324c34037ef2e1101962fca4ad0c021253288e1
Merge: cbe9438cfe07 791701a7dc62
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2023-05-22 17:29:55 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-06-22 18:22:43 +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

 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 --cc lib/clang/include/VCSVersion.inc
index 466b5ce7ecfd,000000000000..514717a358fc
mode 100644,000000..100644
--- a/lib/clang/include/VCSVersion.inc
+++ b/lib/clang/include/VCSVersion.inc
@@@ -1,10 -1,0 +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 --cc lib/clang/include/clang/Basic/Version.inc
index 13d7baf64730,000000000000..301f49bfd08c
mode 100644,000000..100644
--- a/lib/clang/include/clang/Basic/Version.inc
+++ b/lib/clang/include/clang/Basic/Version.inc
@@@ -1,10 -1,0 +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 --cc lib/clang/include/lld/Common/Version.inc
index 8f4dd4a4b559,000000000000..61598755e168
mode 100644,000000..100644
--- a/lib/clang/include/lld/Common/Version.inc
+++ b/lib/clang/include/lld/Common/Version.inc
@@@ -1,4 -1,0 +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 --cc lib/clang/include/lldb/Version/Version.inc
index 4434036b81e2,000000000000..cdc1a2c63f72
mode 100644,000000..100644
--- a/lib/clang/include/lldb/Version/Version.inc
+++ b/lib/clang/include/lldb/Version/Version.inc
@@@ -1,6 -1,0 +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 --cc lib/clang/include/llvm/Config/config.h
index 57914743328d,000000000000..105378ec0dcd
mode 100644,000000..100644
--- a/lib/clang/include/llvm/Config/config.h
+++ b/lib/clang/include/llvm/Config/config.h
@@@ -1,380 -1,0 +1,380 @@@
 +/* $FreeBSD$ */
 +#ifndef CONFIG_H
 +#define CONFIG_H
 +
 +// Include this header only under the llvm source tree.
 +// This is a private header.
 +
 +/* Exported configuration */
 +#include "llvm/Config/llvm-config.h"
 +
 +/* Bug report URL. */
 +#define BUG_REPORT_URL "https://bugs.freebsd.org/submit/"
 +
 +/* Define to 1 to enable backtraces, and to 0 otherwise. */
 +#define ENABLE_BACKTRACES 1
 +
 +/* Define to 1 to enable crash overrides, and to 0 otherwise. */
 +#define ENABLE_CRASH_OVERRIDES 1
 +
 +/* Define to 1 to enable crash memory dumps, and to 0 otherwise. */
 +#define LLVM_ENABLE_CRASH_DUMPS 0
 +
 +/* Define to 1 to prefer forward slashes on Windows, and to 0 prefer
 +   backslashes. */
 +#define LLVM_WINDOWS_PREFER_FORWARD_SLASH 0
 +
 +/* Define to 1 if you have the `backtrace' function. */
 +#define HAVE_BACKTRACE TRUE
 +
 +#define BACKTRACE_HEADER <execinfo.h>
 +
 +/* Define to 1 if you have the <CrashReporterClient.h> header file. */
 +/* #undef HAVE_CRASHREPORTERCLIENT_H */
 +
 +/* can use __crashreporter_info__ */
 +#if defined(__APPLE__)
 +#define HAVE_CRASHREPORTER_INFO 1
 +#else
 +#define HAVE_CRASHREPORTER_INFO 0
 +#endif
 +
 +/* Define to 1 if you have the declaration of `arc4random', and to 0 if you
 +   don't. */
 +#define HAVE_DECL_ARC4RANDOM 1
 +
 +/* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you
 +   don't. */
 +#define HAVE_DECL_FE_ALL_EXCEPT 1
 +
 +/* Define to 1 if you have the declaration of `FE_INEXACT', and to 0 if you
 +   don't. */
 +#define HAVE_DECL_FE_INEXACT 1
 +
 +/* Define to 1 if you have the declaration of `strerror_s', and to 0 if you
 +   don't. */
 +#define HAVE_DECL_STRERROR_S 0
 +
 +/* Define to 1 if you have the <dlfcn.h> header file. */
 +#define HAVE_DLFCN_H 1
 +
 +/* Define if dlopen() is available on this platform. */
 +#define HAVE_DLOPEN 1
 +
 +/* Define if dladdr() is available on this platform. */
 +#define HAVE_DLADDR 1
 +
 +#if !defined(__arm__) || defined(__USING_SJLJ_EXCEPTIONS__) || defined(__ARM_DWARF_EH__)
 +/* Define to 1 if we can register EH frames on this platform. */
 +#define HAVE_REGISTER_FRAME 1
 +
 +/* Define to 1 if we can deregister EH frames on this platform. */
 +#define HAVE_DEREGISTER_FRAME 1
 +#endif // !arm || USING_SJLJ_EXCEPTIONS || ARM_DWARF_EH_
 +
 +/* Define if __unw_add_dynamic_fde() is available on this platform. */
 +/* #undef HAVE_UNW_ADD_DYNAMIC_FDE */
 +
 +/* Define to 1 if you have the <errno.h> header file. */
 +#define HAVE_ERRNO_H 1
 +
 +/* Define to 1 if you have the <fcntl.h> header file. */
 +#define HAVE_FCNTL_H 1
 +
 +/* Define to 1 if you have the <fenv.h> header file. */
 +#define HAVE_FENV_H 1
 +
 +/* Define if libffi is available on this platform. */
 +/* #undef HAVE_FFI_CALL */
 +
 +/* Define to 1 if you have the <ffi/ffi.h> header file. */
 +/* #undef HAVE_FFI_FFI_H */
 +
 +/* Define to 1 if you have the <ffi.h> header file. */
 +/* #undef HAVE_FFI_H */
 +
 +/* Define to 1 if you have the `futimens' function. */
 +#define HAVE_FUTIMENS 1
 +
 +/* Define to 1 if you have the `futimes' function. */
 +#define HAVE_FUTIMES 1
 +
 +/* Define to 1 if you have the `getpagesize' function. */
 +#define HAVE_GETPAGESIZE 1
 +
 +/* Define to 1 if you have the `getrlimit' function. */
 +#define HAVE_GETRLIMIT 1
 +
 +/* Define to 1 if you have the `getrusage' function. */
 +#define HAVE_GETRUSAGE 1
 +
 +/* Define to 1 if you have the `isatty' function. */
 +#define HAVE_ISATTY 1
 +
 +/* Define to 1 if you have the `edit' library (-ledit). */
 +#define HAVE_LIBEDIT TRUE
 +
 +/* Define to 1 if you have the `pfm' library (-lpfm). */
 +/* #undef HAVE_LIBPFM */
 +
 +/* Define to 1 if the `perf_branch_entry' struct has field cycles. */
 +/* #undef LIBPFM_HAS_FIELD_CYCLES */
 +
 +/* Define to 1 if you have the `psapi' library (-lpsapi). */
 +/* #undef HAVE_LIBPSAPI */
 +
 +/* Define to 1 if you have the `pthread' library (-lpthread). */
 +#define HAVE_LIBPTHREAD 1
 +
 +/* Define to 1 if you have the `pthread_getname_np' function. */
 +#define HAVE_PTHREAD_GETNAME_NP 1
 +
 +/* Define to 1 if you have the `pthread_setname_np' function. */
 +#define HAVE_PTHREAD_SETNAME_NP 1
 +
 +/* Define to 1 if you have the <link.h> header file. */
 +#if __has_include(<link.h>)
 +#define HAVE_LINK_H 1
 +#else
 +#define HAVE_LINK_H 0
 +#endif
 +
 +/* Define to 1 if you have the <mach/mach.h> header file. */
 +#if __has_include(<mach/mach.h>)
 +#define HAVE_MACH_MACH_H 1
 +#endif
 +
 +/* Define to 1 if you have the `mallctl' function. */
 +#if defined(__FreeBSD__)
 +#define HAVE_MALLCTL 1
 +#endif
 +
 +/* Define to 1 if you have the `mallinfo' function. */
 +#if defined(__linux__)
 +#define HAVE_MALLINFO 1
 +#endif
 +
 +/* Define to 1 if you have the `mallinfo2' function. */
 +/* #undef HAVE_MALLINFO2 */
 +
 +/* Define to 1 if you have the <malloc/malloc.h> header file. */
 +#if __has_include(<malloc/malloc.h>)
 +#define HAVE_MALLOC_MALLOC_H 1
 +#endif
 +
 +/* Define to 1 if you have the `malloc_zone_statistics' function. */
 +#if defined(__APPLE__)
 +#define HAVE_MALLOC_ZONE_STATISTICS 1
 +#endif
 +
 +/* Define to 1 if you have the `posix_spawn' function. */
 +#define HAVE_POSIX_SPAWN 1
 +
 +/* Define to 1 if you have the `pread' function. */
 +#define HAVE_PREAD 1
 +
 +/* Define to 1 if you have the <pthread.h> header file. */
 +#define HAVE_PTHREAD_H 1
 +
 +/* Have pthread_mutex_lock */
 +#define HAVE_PTHREAD_MUTEX_LOCK 1
 +
 +/* Have pthread_rwlock_init */
 +#define HAVE_PTHREAD_RWLOCK_INIT 1
 +
 +/* Define to 1 if you have the `sbrk' function. */
 +#define HAVE_SBRK 1
 +
 +/* Define to 1 if you have the `setenv' function. */
 +#define HAVE_SETENV 1
 +
 +/* Define to 1 if you have the `setrlimit' function. */
 +#define HAVE_SETRLIMIT 1
 +
 +/* Define to 1 if you have the `sigaltstack' function. */
 +#define HAVE_SIGALTSTACK 1
 +
 +/* Define to 1 if you have the <signal.h> header file. */
 +#define HAVE_SIGNAL_H 1
 +
 +/* Define to 1 if you have the `strerror' function. */
 +#define HAVE_STRERROR 1
 +
 +/* Define to 1 if you have the `strerror_r' function. */
 +#define HAVE_STRERROR_R 1
 +
 +/* Define to 1 if you have the `sysconf' function. */
 +#define HAVE_SYSCONF 1
 +
 +/* Define to 1 if you have the <sys/ioctl.h> header file. */
 +#define HAVE_SYS_IOCTL_H 1
 +
 +/* Define to 1 if you have the <sys/mman.h> header file. */
 +#define HAVE_SYS_MMAN_H 1
 +
 +/* Define to 1 if you have the <sys/param.h> header file. */
 +#define HAVE_SYS_PARAM_H 1
 +
 +/* Define to 1 if you have the <sys/resource.h> header file. */
 +#define HAVE_SYS_RESOURCE_H 1
 +
 +/* Define to 1 if you have the <sys/stat.h> header file. */
 +#define HAVE_SYS_STAT_H 1
 +
 +/* Define to 1 if you have the <sys/time.h> header file. */
 +#define HAVE_SYS_TIME_H 1
 +
 +/* Define to 1 if stat struct has st_mtimespec member .*/
 +#if !defined(__linux__)
 +#define HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC 1
 +#endif
 +
 +/* Define to 1 if stat struct has st_mtim member. */
 +#if !defined(__APPLE__)
 +#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
 +#endif
 +
 +/* Define to 1 if you have the <sys/types.h> header file. */
 +#define HAVE_SYS_TYPES_H 1
 +
 +/* Define if the setupterm() function is supported this platform. */
 +#if defined(__FreeBSD__)
 +/*
 + * This is only needed for terminalHasColors(). When disabled LLVM falls back
 + * to checking a list of TERM prefixes which is sufficient for a bootstrap tool.
 + */
 +#define LLVM_ENABLE_TERMINFO TRUE
 +#endif
 +
 +/* Define to 1 if you have the <termios.h> header file. */
 +#define HAVE_TERMIOS_H 1
 +
 +/* Define to 1 if you have the <unistd.h> header file. */
 +#define HAVE_UNISTD_H 1
 +
 +/* Define to 1 if you have the <valgrind/valgrind.h> header file. */
 +/* #undef HAVE_VALGRIND_VALGRIND_H */
 +
 +/* Have host's _alloca */
 +/* #undef HAVE__ALLOCA */
 +
 +/* Define to 1 if you have the `_chsize_s' function. */
 +/* #undef HAVE__CHSIZE_S */
 +
 +/* Define to 1 if you have the `_Unwind_Backtrace' function. */
 +#define HAVE__UNWIND_BACKTRACE 1
 +
 +/* Have host's __alloca */
 +/* #undef HAVE___ALLOCA */
 +
 +/* Have host's __ashldi3 */
 +/* #undef HAVE___ASHLDI3 */
 +
 +/* Have host's __ashrdi3 */
 +/* #undef HAVE___ASHRDI3 */
 +
 +/* Have host's __chkstk */
 +/* #undef HAVE___CHKSTK */
 +
 +/* Have host's __chkstk_ms */
 +/* #undef HAVE___CHKSTK_MS */
 +
 +/* Have host's __cmpdi2 */
 +/* #undef HAVE___CMPDI2 */
 +
 +/* Have host's __divdi3 */
 +/* #undef HAVE___DIVDI3 */
 +
 +/* Have host's __fixdfdi */
 +/* #undef HAVE___FIXDFDI */
 +
 +/* Have host's __fixsfdi */
 +/* #undef HAVE___FIXSFDI */
 +
 +/* Have host's __floatdidf */
 +/* #undef HAVE___FLOATDIDF */
 +
 +/* Have host's __lshrdi3 */
 +/* #undef HAVE___LSHRDI3 */
 +
 +/* Have host's __main */
 +/* #undef HAVE___MAIN */
 +
 +/* Have host's __moddi3 */
 +/* #undef HAVE___MODDI3 */
 +
 +/* Have host's __udivdi3 */
 +/* #undef HAVE___UDIVDI3 */
 +
 +/* Have host's __umoddi3 */
 +/* #undef HAVE___UMODDI3 */
 +
 +/* Have host's ___chkstk */
 +/* #undef HAVE____CHKSTK */
 +
 +/* Have host's ___chkstk_ms */
 +/* #undef HAVE____CHKSTK_MS */
 +
 +/* Linker version detected at compile time. */
 +/* #undef HOST_LINK_VERSION */
 +
 +/* Define if overriding target triple is enabled */
 +/* #undef LLVM_TARGET_TRIPLE_ENV */
 +
 +/* Whether tools show host and target info when invoked with --version */
 +#define LLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO 1
 +
 +/* Define if libxml2 is supported on this platform. */
 +/* #undef LLVM_ENABLE_LIBXML2 */
 +
 +/* Define to the extension used for shared libraries, say, ".so". */
 +#if defined(__APPLE__)
 +#define LTDL_SHLIB_EXT ".dylib"
 +#else
 +#define LTDL_SHLIB_EXT ".so"
 +#endif
 +
 +/* Define to the extension used for plugin libraries, say, ".so". */
 +#if defined(__APPLE__)
 +#define LLVM_PLUGIN_EXT ".dylib"
 +#else
 +#define LLVM_PLUGIN_EXT ".so"
 +#endif
 +
 +/* Define to the address where bug reports for this package should be sent. */
 +#define PACKAGE_BUGREPORT "https://bugs.freebsd.org/submit/"
 +
 +/* Define to the full name of this package. */
 +#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 */
 +
 +/* Define to a function implementing stricmp */
 +/* #undef stricmp */
 +
 +/* Define to a function implementing strdup */
 +/* #undef strdup */
 +
 +/* Whether GlobalISel rule coverage is being collected */
 +#define LLVM_GISEL_COV_ENABLED 0
 +
 +/* Define to the default GlobalISel coverage file prefix */
 +/* #undef LLVM_GISEL_COV_PREFIX */
 +
 +/* Whether Timers signpost passes in Xcode Instruments */
 +#if defined(__APPLE__)
 +#define LLVM_SUPPORT_XCODE_SIGNPOSTS 1
 +#else
 +#define LLVM_SUPPORT_XCODE_SIGNPOSTS 0
 +#endif
 +
 +/* #undef HAVE_PROC_PID_RUSAGE */
 +
 +#endif
diff --cc lib/clang/include/llvm/Config/llvm-config.h
index 3932cfc4d1c3,000000000000..956e14142365
mode 100644,000000..100644
--- a/lib/clang/include/llvm/Config/llvm-config.h
+++ b/lib/clang/include/llvm/Config/llvm-config.h
@@@ -1,132 -1,0 +1,132 @@@
 +/* $FreeBSD$ */
 +/*===------- llvm/Config/llvm-config.h - llvm configuration -------*- C -*-===*/
 +/*                                                                            */
 +/* Part of the LLVM Project, under the Apache License v2.0 with LLVM          */
 +/* Exceptions.                                                                */
 +/* See https://llvm.org/LICENSE.txt for license information.                  */
 +/* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    */
 +/*                                                                            */
 +/*===----------------------------------------------------------------------===*/
 +
 +/* This file enumerates variables from the LLVM configuration so that they
 +   can be in exported headers and won't override package specific directives.
 +   This is a C header that can be included in the llvm-c headers. */
 +
 +#ifndef LLVM_CONFIG_H
 +#define LLVM_CONFIG_H
 +
 +/* Define if LLVM_ENABLE_DUMP is enabled */
 +/* #undef LLVM_ENABLE_DUMP */
 +
 +/* Target triple LLVM will generate code for by default */
 +/* Doesn't use `cmakedefine` because it is allowed to be empty. */
 +/* #undef LLVM_DEFAULT_TARGET_TRIPLE */
 +
 +/* Define if threads enabled */
 +#define LLVM_ENABLE_THREADS 1
 +
 +/* Has gcc/MSVC atomic intrinsics */
 +#define LLVM_HAS_ATOMICS 1
 +
 +/* Host triple LLVM will be executed on */
 +/* #undef LLVM_HOST_TRIPLE */
 +
 +/* LLVM architecture name for the native architecture, if available */
 +/* #undef LLVM_NATIVE_ARCH */
 +
 +/* LLVM name for the native AsmParser init function, if available */
 +/* #undef LLVM_NATIVE_ASMPARSER */
 +
 +/* LLVM name for the native AsmPrinter init function, if available */
 +/* #undef LLVM_NATIVE_ASMPRINTER */
 +
 +/* LLVM name for the native Disassembler init function, if available */
 +/* #undef LLVM_NATIVE_DISASSEMBLER */
 +
 +/* LLVM name for the native Target init function, if available */
 +/* #undef LLVM_NATIVE_TARGET */
 +
 +/* LLVM name for the native TargetInfo init function, if available */
 +/* #undef LLVM_NATIVE_TARGETINFO */
 +
 +/* LLVM name for the native target MC init function, if available */
 +/* #undef LLVM_NATIVE_TARGETMC */
 +
 +/* LLVM name for the native target MCA init function, if available */
 +/* #undef LLVM_NATIVE_TARGETMCA */
 +
 +/* Define if this is Unixish platform */
 +#define LLVM_ON_UNIX 1
 +
 +/* Define if we have the Intel JIT API runtime support library */
 +#define LLVM_USE_INTEL_JITEVENTS 0
 +
 +/* Define if we have the oprofile JIT-support library */
 +#define LLVM_USE_OPROFILE 0
 +
 +/* Define if we have the perf JIT-support library */
 +#define LLVM_USE_PERF 0
 +
 +/* Major version of the LLVM API */
 +#define LLVM_VERSION_MAJOR 16
 +
 +/* Minor version of the LLVM API */
 +#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()
 + */
 +#define LLVM_FORCE_ENABLE_STATS 0
 +
 +/* Define if we have z3 and want to build it */
 +/* #undef LLVM_WITH_Z3 */
 +
 +/* Define if we have curl and want to use it */
 +/* #undef LLVM_ENABLE_CURL */
 +
 +/* Define if we have cpp-httplib and want to use it */
 +/* #undef LLVM_ENABLE_HTTPLIB */
 +
 +/* Define if zlib compression is available */
 +#define LLVM_ENABLE_ZLIB 1
 +
 +/* Define if zstd compression is available */
 +#define LLVM_ENABLE_ZSTD 1
 +
 +/* Define if LLVM is using tflite instead of libtensorflow */
 +/* #undef LLVM_HAVE_TFLITE */
 +
 +/* Define to 1 if you have the <sysexits.h> header file. */
 +#define HAVE_SYSEXITS_H 1
 +
 +/* Define if the xar_open() function is supported on this platform. */
 +#if defined(__APPLE__)
 +#define LLVM_HAVE_LIBXAR 1
 +#endif
 +
 +/* Define if building libLLVM shared library */
 +/* #undef LLVM_BUILD_LLVM_DYLIB */
 +
 +/* Define if building LLVM with BUILD_SHARED_LIBS */
 +/* #undef LLVM_BUILD_SHARED_LIBS */
 +
 +/* Define if building LLVM with LLVM_FORCE_USE_OLD_TOOLCHAIN_LIBS */
 +/* #undef LLVM_FORCE_USE_OLD_TOOLCHAIN */
 +
 +/* Define if llvm_unreachable should be optimized with undefined behavior
 + * in non assert builds */
 +#define LLVM_UNREACHABLE_OPTIMIZE 1
 +
 +/* Define to 1 if you have the DIA SDK installed, and to 0 if you don't. */
 +#define LLVM_ENABLE_DIA_SDK 0
 +
 +/* Define if plugins enabled */
 +/* #undef LLVM_ENABLE_PLUGINS */
 +
 +#endif
diff --cc lib/clang/include/llvm/Support/VCSRevision.h
index 4fa56888d33c,000000000000..ca9915b70f68
mode 100644,000000..100644
--- a/lib/clang/include/llvm/Support/VCSRevision.h
+++ b/lib/clang/include/llvm/Support/VCSRevision.h
@@@ -1,3 -1,0 +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 --cc usr.bin/clang/bugpoint/bugpoint.1
index 97b227ea82d1,000000000000..efbecd28e178
mode 100644,000000..100644
--- a/usr.bin/clang/bugpoint/bugpoint.1
+++ b/usr.bin/clang/bugpoint/bugpoint.1
@@@ -1,309 -1,0 +1,308 @@@
- .\" $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 "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
 +.sp
 +\fBbugpoint\fP [\fIoptions\fP] [\fIinput LLVM ll/bc files\fP] [\fILLVM passes\fP] \fB\-\-args\fP
 +\fIprogram arguments\fP
 +.SH DESCRIPTION
 +.sp
 +\fBbugpoint\fP narrows down the source of problems in LLVM tools and passes.  It
 +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
 +\fB\-\-additional\-so\fP \fIlibrary\fP
 +.INDENT 0.0
 +.INDENT 3.5
 +Load the dynamic shared object \fIlibrary\fP into the test program whenever it is
 +run.  This is useful if you are debugging programs which depend on non\-LLVM
 +libraries (such as the X or curses libraries) to run.
 +.UNINDENT
 +.UNINDENT
 +.sp
 +\fB\-\-append\-exit\-code\fP=\fI{true,false}\fP
 +.INDENT 0.0
 +.INDENT 3.5
 +Append the test programs exit code to the output file so that a change in exit
 +code is considered a test failure. Defaults to false.
 +.UNINDENT
 +.UNINDENT
 +.sp
 +\fB\-\-args\fP \fIprogram args\fP
 +.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
 +.nf
 +.ft C
 +bugpoint [bugpoint args] \-\-args \-\- [program args]
 +.ft P
 +.fi
 +.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
 +.sp
 +\fB\-\-tool\-args\fP \fItool args\fP
 +.INDENT 0.0
 +.INDENT 3.5
 +Pass all arguments specified after \fB\-\-tool\-args\fP to the LLVM tool under test
 +(\fBllc\fP, \fBlli\fP, etc.) whenever it runs.  You should use this option in the
 +following way:
 +.INDENT 0.0
 +.INDENT 3.5
 +.sp
 +.nf
 +.ft C
 +bugpoint [bugpoint args] \-\-tool\-args \-\- [tool args]
 +.ft P
 +.fi
 +.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
 +.sp
 +\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
 +.sp
 +\fB\-\-gcc\-tool\-args\fP \fIgcc tool args\fP
 +.INDENT 0.0
 +.INDENT 3.5
 +Pass all arguments specified after \fB\-\-gcc\-tool\-args\fP to the invocation of
 +\fBgcc\fP\&.
 +.UNINDENT
 +.UNINDENT
 +.sp
 +\fB\-\-opt\-args\fP \fIopt args\fP
 +.INDENT 0.0
 +.INDENT 3.5
 +Pass all arguments specified after \fB\-\-opt\-args\fP to the invocation of \fBopt\fP\&.
 +.UNINDENT
 +.UNINDENT
 +.sp
 +\fB\-\-disable\-{dce,simplifycfg}\fP
 +.INDENT 0.0
 +.INDENT 3.5
 +Do not run the specified passes to clean up and reduce the size of the test
 +program. By default, \fBbugpoint\fP uses these passes internally when attempting to
 +reduce test programs.  If you\(aqre trying to find a bug in one of these passes,
 +\fBbugpoint\fP may crash.
 +.UNINDENT
 +.UNINDENT
 +.sp
 +\fB\-\-enable\-valgrind\fP
 +.INDENT 0.0
 +.INDENT 3.5
 +Use valgrind to find faults in the optimization phase. This will allow
 +bugpoint to find otherwise asymptomatic problems caused by memory
 +mis\-management.
 +.UNINDENT
 +.UNINDENT
 +.sp
 +\fB\-find\-bugs\fP
 +.INDENT 0.0
 +.INDENT 3.5
 +Continually randomize the specified passes and run them on the test program
 +until a bug is found or the user kills \fBbugpoint\fP\&.
 +.UNINDENT
 +.UNINDENT
 +.sp
 +\fB\-help\fP
 +.INDENT 0.0
 +.INDENT 3.5
 +Print a summary of command line options.
 +.UNINDENT
 +.UNINDENT
 +.sp
 +\fB\-\-input\fP \fIfilename\fP
 +.INDENT 0.0
 +.INDENT 3.5
 +Open \fIfilename\fP and redirect the standard input of the test program, whenever
 +it runs, to come from that file.
 +.UNINDENT
 +.UNINDENT
 +.sp
 +\fB\-\-load\fP \fIplugin\fP
 +.INDENT 0.0
 +.INDENT 3.5
 +Load the dynamic object \fIplugin\fP into \fBbugpoint\fP itself.  This object should
 +register new optimization passes.  Once loaded, the object will add new command
 +line options to enable various optimizations.  To see the new complete list of
 +optimizations, use the \fB\-help\fP and \fB\-\-load\fP options together; for example:
 +.INDENT 0.0
 +.INDENT 3.5
 +.sp
 +.nf
 +.ft C
 +bugpoint \-\-load myNewPass.so \-help
 +.ft P
 +.fi
 +.UNINDENT
 +.UNINDENT
 +.UNINDENT
 +.UNINDENT
 +.sp
 +\fB\-\-mlimit\fP \fImegabytes\fP
 +.INDENT 0.0
 +.INDENT 3.5
 +Specifies an upper limit on memory usage of the optimization and codegen. Set
 +to zero to disable the limit.
 +.UNINDENT
 +.UNINDENT
 +.sp
 +\fB\-\-output\fP \fIfilename\fP
 +.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
 +\fB\-\-run\-{int,jit,llc,custom}\fP
 +.INDENT 0.0
 +.INDENT 3.5
 +Whenever the test program is compiled, \fBbugpoint\fP should generate code for it
 +using the specified code generator.  These options allow you to choose the
 +interpreter, the JIT compiler, the static native code compiler, or a
 +custom command (see \fB\-\-exec\-command\fP) respectively.
 +.UNINDENT
 +.UNINDENT
 +.sp
 +\fB\-\-safe\-{llc,custom}\fP
 +.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
 +\fB\-\-exec\-command\fP \fIcommand\fP
 +.INDENT 0.0
 +.INDENT 3.5
 +This option defines the command to use with the \fB\-\-run\-custom\fP and
 +\fB\-\-safe\-custom\fP options to execute the bitcode testcase. This can
 +be useful for cross\-compilation.
 +.UNINDENT
 +.UNINDENT
 +.sp
 +\fB\-\-compile\-command\fP \fIcommand\fP
 +.INDENT 0.0
 +.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
 +generate a reduced unit test, you may add CHECK directives to the
 +testcase and pass the name of an executable compile\-command script in this form:
 +.INDENT 0.0
 +.INDENT 3.5
 +.sp
 +.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
 +.sp
 +\fB\-\-safe\-path\fP \fIpath\fP
 +.INDENT 0.0
 +.INDENT 3.5
 +This option defines the path to the command to execute with the
 +\fB\-\-safe\-{int,jit,llc,custom}\fP
 +option.
 +.UNINDENT
 +.UNINDENT
 +.sp
 +\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
 +well. Defaults to false.
*** 11307 LINES SKIPPED ***