Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Jun 2022 20:45:39 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: 862668c4874d - stable/13 - Merge llvm-project release/14.x llvmorg-14.0.5-0-gc12386ae247c
Message-ID:  <202206152045.25FKjd1b003879@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=862668c4874d8ffb8d74108a55719670c8b923b6

commit 862668c4874d8ffb8d74108a55719670c8b923b6
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2022-06-12 18:51:09 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2022-06-15 20:45:08 +0000

    Merge llvm-project release/14.x llvmorg-14.0.5-0-gc12386ae247c
    
    This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
    openmp to llvmorg-14.0.5-0-gc12386ae247c, aka 14.0.5 release.
    
    PR:             261742
    MFC after:      3 days
    
    (cherry picked from commit 56f451bb3b99a72f73d6771b98825a0b00784e7b)
---
 ObsoleteFiles.inc                                  | 312 +++++++++++
 .../llvm-project/clang/lib/Basic/Targets/AVR.cpp   |  40 +-
 contrib/llvm-project/clang/lib/Basic/Targets/AVR.h |  12 +-
 .../llvm-project/clang/lib/CodeGen/TargetInfo.cpp  | 100 +++-
 .../clang/lib/Format/BreakableToken.cpp            |  19 +-
 .../clang/lib/Format/WhitespaceManager.cpp         |   1 +
 .../clang/lib/Headers/__clang_cuda_intrinsics.h    |   2 +-
 contrib/llvm-project/clang/lib/Sema/SemaOpenMP.cpp |   4 +-
 .../StaticAnalyzer/Checkers/CastValueChecker.cpp   |   8 +-
 .../llvm/include/llvm/Support/Base64.h             |   1 +
 .../llvm/include/llvm/Support/Signals.h            |   1 +
 .../AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp   |   2 +
 .../llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp |   3 +-
 .../llvm/lib/Target/Mips/MipsISelLowering.cpp      |  22 +-
 .../llvm/lib/Target/Mips/MipsISelLowering.h        |   7 +
 .../llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp    |  32 ++
 .../lib/Transforms/Scalar/LoopIdiomRecognize.cpp   |  29 +-
 .../llvm/lib/Transforms/Utils/Local.cpp            |   2 +-
 etc/mtree/BSD.debug.dist                           |   2 +-
 etc/mtree/BSD.usr.dist                             |   2 +-
 lib/clang/headers/Makefile                         |   2 +-
 lib/clang/include/VCSVersion.inc                   |   6 +-
 lib/clang/include/clang/Basic/Version.inc          |   6 +-
 lib/clang/include/clang/Config/config.h            |   2 +-
 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 +-
 lib/libclang_rt/compiler-rt-vars.mk                |   2 +-
 tools/build/mk/OptionalObsoleteFiles.inc           | 618 ++++++++++-----------
 31 files changed, 848 insertions(+), 407 deletions(-)

diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc
index 12864a13f153..4fa4f9d203e1 100644
--- a/ObsoleteFiles.inc
+++ b/ObsoleteFiles.inc
@@ -36,6 +36,318 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20220615: new clang import which bumps version from 14.0.4 to 14.0.5
+OLD_FILES+=usr/lib/clang/14.0.4/include/cuda_wrappers/algorithm
+OLD_FILES+=usr/lib/clang/14.0.4/include/cuda_wrappers/complex
+OLD_FILES+=usr/lib/clang/14.0.4/include/cuda_wrappers/new
+OLD_DIRS+=usr/lib/clang/14.0.4/include/cuda_wrappers
+OLD_FILES+=usr/lib/clang/14.0.4/include/fuzzer/FuzzedDataProvider.h
+OLD_DIRS+=usr/lib/clang/14.0.4/include/fuzzer
+OLD_FILES+=usr/lib/clang/14.0.4/include/openmp_wrappers/__clang_openmp_device_functions.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/openmp_wrappers/cmath
+OLD_FILES+=usr/lib/clang/14.0.4/include/openmp_wrappers/complex
+OLD_FILES+=usr/lib/clang/14.0.4/include/openmp_wrappers/complex.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/openmp_wrappers/complex_cmath.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/openmp_wrappers/math.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/openmp_wrappers/new
+OLD_DIRS+=usr/lib/clang/14.0.4/include/openmp_wrappers
+OLD_FILES+=usr/lib/clang/14.0.4/include/ppc_wrappers/emmintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/ppc_wrappers/mm_malloc.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/ppc_wrappers/mmintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/ppc_wrappers/pmmintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/ppc_wrappers/smmintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/ppc_wrappers/tmmintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/ppc_wrappers/xmmintrin.h
+OLD_DIRS+=usr/lib/clang/14.0.4/include/ppc_wrappers
+OLD_FILES+=usr/lib/clang/14.0.4/include/profile/InstrProfData.inc
+OLD_FILES+=usr/lib/clang/14.0.4/include/profile/MemProfData.inc
+OLD_DIRS+=usr/lib/clang/14.0.4/include/profile
+OLD_FILES+=usr/lib/clang/14.0.4/include/sanitizer/allocator_interface.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/sanitizer/asan_interface.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/sanitizer/common_interface_defs.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/sanitizer/coverage_interface.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/sanitizer/dfsan_interface.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/sanitizer/hwasan_interface.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/sanitizer/linux_syscall_hooks.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/sanitizer/lsan_interface.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/sanitizer/memprof_interface.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/sanitizer/msan_interface.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/sanitizer/netbsd_syscall_hooks.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/sanitizer/scudo_interface.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/sanitizer/tsan_interface.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/sanitizer/tsan_interface_atomic.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/sanitizer/ubsan_interface.h
+OLD_DIRS+=usr/lib/clang/14.0.4/include/sanitizer
+OLD_FILES+=usr/lib/clang/14.0.4/include/xray/xray_interface.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/xray/xray_log_interface.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/xray/xray_records.h
+OLD_DIRS+=usr/lib/clang/14.0.4/include/xray
+OLD_FILES+=usr/lib/clang/14.0.4/include/__clang_cuda_builtin_vars.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/__clang_cuda_cmath.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/__clang_cuda_complex_builtins.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/__clang_cuda_device_functions.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/__clang_cuda_intrinsics.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/__clang_cuda_libdevice_declares.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/__clang_cuda_math.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/__clang_cuda_math_forward_declares.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/__clang_cuda_runtime_wrapper.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/__clang_cuda_texture_intrinsics.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/__clang_hip_cmath.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/__clang_hip_libdevice_declares.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/__clang_hip_math.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/__clang_hip_runtime_wrapper.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/__stddef_max_align_t.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/__wmmintrin_aes.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/__wmmintrin_pclmul.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/adxintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/altivec.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/ammintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/amxintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/arm64intr.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/arm_acle.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/arm_bf16.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/arm_cde.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/arm_cmse.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/arm_fp16.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/arm_mve.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/arm_neon.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/arm_neon_sve_bridge.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/arm_sve.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/armintr.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx2intrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512bf16intrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512bitalgintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512bwintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512cdintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512dqintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512erintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512fintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512fp16intrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512ifmaintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512ifmavlintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512pfintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vbmi2intrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vbmiintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vbmivlintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vlbf16intrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vlbitalgintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vlbwintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vlcdintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vldqintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vlfp16intrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vlintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vlvbmi2intrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vlvnniintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vlvp2intersectintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vnniintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vp2intersectintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vpopcntdqintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avx512vpopcntdqvlintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avxintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/avxvnniintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/bmi2intrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/bmiintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/builtins.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/cet.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/cetintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/cldemoteintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/clflushoptintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/clwbintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/clzerointrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/cpuid.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/crc32intrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/emmintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/enqcmdintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/f16cintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/float.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/fma4intrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/fmaintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/fxsrintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/gfniintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/hexagon_circ_brev_intrinsics.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/hexagon_protos.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/hexagon_types.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/hresetintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/htmintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/htmxlintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/hvx_hexagon_protos.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/ia32intrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/immintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/intrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/inttypes.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/invpcidintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/iso646.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/keylockerintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/limits.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/lwpintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/lzcntintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/mm3dnow.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/mm_malloc.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/mmintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/module.modulemap
+OLD_FILES+=usr/lib/clang/14.0.4/include/movdirintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/msa.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/mwaitxintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/nmmintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/omp-tools.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/omp.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/ompt.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/opencl-c-base.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/opencl-c.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/pconfigintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/pkuintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/pmmintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/popcntintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/prfchwintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/ptwriteintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/rdseedintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/riscv_vector.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/rtmintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/s390intrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/serializeintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/sgxintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/shaintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/smmintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/stdalign.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/stdarg.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/stdatomic.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/stdbool.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/stddef.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/stdint.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/stdnoreturn.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/tbmintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/tgmath.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/tmmintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/tsxldtrkintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/uintrintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/unwind.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/vadefs.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/vaesintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/varargs.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/vecintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/vpclmulqdqintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/waitpkgintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/wasm_simd128.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/wbnoinvdintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/wmmintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/x86gprintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/x86intrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/xmmintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/xopintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/xsavecintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/xsaveintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/xsaveoptintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/xsavesintrin.h
+OLD_FILES+=usr/lib/clang/14.0.4/include/xtestintrin.h
+OLD_DIRS+=usr/lib/clang/14.0.4/include
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan-aarch64.so
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan-arm.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan-arm.so
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan-armhf.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan-armhf.so
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan-i386.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan-i386.so
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan-preinit-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan-preinit-arm.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan-preinit-armhf.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan-preinit-i386.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan-preinit-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan-x86_64.so
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan_cxx-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan_cxx-arm.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan_cxx-armhf.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan_cxx-i386.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan_cxx-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan_static-i386.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.asan_static-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.cfi-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.cfi-arm.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.cfi-armhf.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.cfi-i386.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.cfi-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.cfi_diag-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.cfi_diag-arm.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.cfi_diag-armhf.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.cfi_diag-i386.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.cfi_diag-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.dd-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.dd-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.fuzzer-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.fuzzer-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.fuzzer_interceptors-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.fuzzer_no_main-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.fuzzer_no_main-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.msan-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.msan-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.msan_cxx-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.msan_cxx-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.profile-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.profile-arm.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.profile-armhf.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.profile-i386.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.profile-powerpc.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.profile-powerpc64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.profile-powerpc64le.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.profile-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.safestack-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.safestack-i386.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.safestack-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.stats-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.stats-arm.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.stats-armhf.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.stats-i386.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.stats-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.stats_client-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.stats_client-arm.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.stats_client-armhf.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.stats_client-i386.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.stats_client-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.tsan-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.tsan-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.tsan_cxx-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.ubsan_minimal-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.ubsan_minimal-arm.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.ubsan_minimal-armhf.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.ubsan_minimal-i386.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.ubsan_standalone-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.ubsan_standalone-arm.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.ubsan_standalone-armhf.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.ubsan_standalone-i386.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.ubsan_standalone_cxx-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.ubsan_standalone_cxx-armhf.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.xray-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.xray-arm.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.xray-armhf.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.xray-basic-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.xray-basic-arm.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.xray-basic-armhf.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.xray-basic-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.xray-fdr-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.xray-fdr-arm.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.xray-fdr-armhf.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.xray-fdr-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.xray-profiling-aarch64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.xray-profiling-arm.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.xray-profiling-armhf.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.xray-profiling-x86_64.a
+OLD_FILES+=usr/lib/clang/14.0.4/lib/freebsd/libclang_rt.xray-x86_64.a
+OLD_DIRS+=usr/lib/clang/14.0.4/lib/freebsd
+OLD_DIRS+=usr/lib/clang/14.0.4/lib/share
+OLD_DIRS+=usr/lib/clang/14.0.4/lib
+OLD_FILES+=usr/lib/clang/14.0.4/share/asan_ignorelist.txt
+OLD_FILES+=usr/lib/clang/14.0.4/share/cfi_ignorelist.txt
+OLD_FILES+=usr/lib/clang/14.0.4/share/msan_ignorelist.txt
+OLD_DIRS+=usr/lib/clang/14.0.4/share
+OLD_DIRS+=usr/lib/clang/14.0.4
+
 # 20220609: new clang import which bumps version from 14.0.3 to 14.0.4
 OLD_FILES+=usr/lib/clang/14.0.3/include/cuda_wrappers/algorithm
 OLD_FILES+=usr/lib/clang/14.0.3/include/cuda_wrappers/complex
diff --git a/contrib/llvm-project/clang/lib/Basic/Targets/AVR.cpp b/contrib/llvm-project/clang/lib/Basic/Targets/AVR.cpp
index 6266ed72cd5c..93ed0671119f 100644
--- a/contrib/llvm-project/clang/lib/Basic/Targets/AVR.cpp
+++ b/contrib/llvm-project/clang/lib/Basic/Targets/AVR.cpp
@@ -24,7 +24,8 @@ namespace targets {
 struct LLVM_LIBRARY_VISIBILITY MCUInfo {
   const char *Name;
   const char *DefineName;
-  const int NumFlashBanks; // -1 means the device does not support LPM/ELPM.
+  const int NumFlashBanks; // Set to 0 for the devices do not support LPM/ELPM.
+  bool IsTiny; // Set to true for the devices belong to the avrtiny family.
 };
 
 // This list should be kept up-to-date with AVRDevices.td in LLVM.
@@ -267,14 +268,14 @@ static MCUInfo AVRMcus[] = {
     {"atxmega128a1", "__AVR_ATxmega128A1__", 2},
     {"atxmega128a1u", "__AVR_ATxmega128A1U__", 2},
     {"atxmega128a4u", "__AVR_ATxmega128A4U__", 2},
-    {"attiny4", "__AVR_ATtiny4__", 0},
-    {"attiny5", "__AVR_ATtiny5__", 0},
-    {"attiny9", "__AVR_ATtiny9__", 0},
-    {"attiny10", "__AVR_ATtiny10__", 0},
-    {"attiny20", "__AVR_ATtiny20__", 0},
-    {"attiny40", "__AVR_ATtiny40__", 0},
-    {"attiny102", "__AVR_ATtiny102__", 0},
-    {"attiny104", "__AVR_ATtiny104__", 0},
+    {"attiny4", "__AVR_ATtiny4__", 0, true},
+    {"attiny5", "__AVR_ATtiny5__", 0, true},
+    {"attiny9", "__AVR_ATtiny9__", 0, true},
+    {"attiny10", "__AVR_ATtiny10__", 0, true},
+    {"attiny20", "__AVR_ATtiny20__", 0, true},
+    {"attiny40", "__AVR_ATtiny40__", 0, true},
+    {"attiny102", "__AVR_ATtiny102__", 0, true},
+    {"attiny104", "__AVR_ATtiny104__", 0, true},
     {"attiny202", "__AVR_ATtiny202__", 1},
     {"attiny402", "__AVR_ATtiny402__", 1},
     {"attiny204", "__AVR_ATtiny204__", 1},
@@ -325,6 +326,27 @@ void AVRTargetInfo::fillValidCPUList(SmallVectorImpl<StringRef> &Values) const {
     Values.push_back(Info.Name);
 }
 
+bool AVRTargetInfo::setCPU(const std::string &Name) {
+  // Set the ABI and CPU fields if parameter Name is a family name.
+  if (llvm::is_contained(ValidFamilyNames, Name)) {
+    CPU = Name;
+    ABI = Name == "avrtiny" ? "avrtiny" : "avr";
+    return true;
+  }
+
+  // Set the ABI field if parameter Name is a device name.
+  auto It = llvm::find_if(
+      AVRMcus, [&](const MCUInfo &Info) { return Info.Name == Name; });
+  if (It != std::end(AVRMcus)) {
+    CPU = Name;
+    ABI = It->IsTiny ? "avrtiny" : "avr";
+    return true;
+  }
+
+  // Parameter Name is neither valid family name nor valid device name.
+  return false;
+}
+
 void AVRTargetInfo::getTargetDefines(const LangOptions &Opts,
                                      MacroBuilder &Builder) const {
   Builder.defineMacro("AVR");
diff --git a/contrib/llvm-project/clang/lib/Basic/Targets/AVR.h b/contrib/llvm-project/clang/lib/Basic/Targets/AVR.h
index a281e2c2cd74..74b012a0923b 100644
--- a/contrib/llvm-project/clang/lib/Basic/Targets/AVR.h
+++ b/contrib/llvm-project/clang/lib/Basic/Targets/AVR.h
@@ -74,8 +74,7 @@ public:
     static const char *const GCCRegNames[] = {
         "r0",  "r1",  "r2",  "r3",  "r4",  "r5",  "r6",  "r7",  "r8",  "r9",
         "r10", "r11", "r12", "r13", "r14", "r15", "r16", "r17", "r18", "r19",
-        "r20", "r21", "r22", "r23", "r24", "r25", "X",   "Y",   "Z",   "SP"
-    };
+        "r20", "r21", "r22", "r23", "r24", "r25", "X",   "Y",   "Z",   "SP"};
     return llvm::makeArrayRef(GCCRegNames);
   }
 
@@ -169,15 +168,12 @@ public:
 
   bool isValidCPUName(StringRef Name) const override;
   void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override;
-  bool setCPU(const std::string &Name) override {
-    bool isValid = isValidCPUName(Name);
-    if (isValid)
-      CPU = Name;
-    return isValid;
-  }
+  bool setCPU(const std::string &Name) override;
+  StringRef getABI() const override { return ABI; }
 
 protected:
   std::string CPU;
+  StringRef ABI;
 };
 
 } // namespace targets
diff --git a/contrib/llvm-project/clang/lib/CodeGen/TargetInfo.cpp b/contrib/llvm-project/clang/lib/CodeGen/TargetInfo.cpp
index 9af3004ebcc5..d83bc9e529a6 100644
--- a/contrib/llvm-project/clang/lib/CodeGen/TargetInfo.cpp
+++ b/contrib/llvm-project/clang/lib/CodeGen/TargetInfo.cpp
@@ -19,9 +19,9 @@
 #include "CodeGenFunction.h"
 #include "clang/AST/Attr.h"
 #include "clang/AST/RecordLayout.h"
+#include "clang/Basic/Builtins.h"
 #include "clang/Basic/CodeGenOptions.h"
 #include "clang/Basic/DiagnosticFrontend.h"
-#include "clang/Basic/Builtins.h"
 #include "clang/CodeGen/CGFunctionInfo.h"
 #include "clang/CodeGen/SwiftCallingConv.h"
 #include "llvm/ADT/SmallBitVector.h"
@@ -33,6 +33,7 @@
 #include "llvm/IR/IntrinsicsNVPTX.h"
 #include "llvm/IR/IntrinsicsS390.h"
 #include "llvm/IR/Type.h"
+#include "llvm/Support/MathExtras.h"
 #include "llvm/Support/raw_ostream.h"
 #include <algorithm> // std::sort
 
@@ -8272,32 +8273,93 @@ void M68kTargetCodeGenInfo::setTargetAttributes(
 
 namespace {
 class AVRABIInfo : public DefaultABIInfo {
+private:
+  // The total amount of registers can be used to pass parameters. It is 18 on
+  // AVR, or 6 on AVRTiny.
+  const unsigned ParamRegs;
+  // The total amount of registers can be used to pass return value. It is 8 on
+  // AVR, or 4 on AVRTiny.
+  const unsigned RetRegs;
+
 public:
-  AVRABIInfo(CodeGenTypes &CGT) : DefaultABIInfo(CGT) {}
+  AVRABIInfo(CodeGenTypes &CGT, unsigned NPR, unsigned NRR)
+      : DefaultABIInfo(CGT), ParamRegs(NPR), RetRegs(NRR) {}
+
+  ABIArgInfo classifyReturnType(QualType Ty, bool &LargeRet) const {
+    if (isAggregateTypeForABI(Ty)) {
+      // On AVR, a return struct with size less than or equals to 8 bytes is
+      // returned directly via registers R18-R25. On AVRTiny, a return struct
+      // with size less than or equals to 4 bytes is returned directly via
+      // registers R22-R25.
+      if (getContext().getTypeSize(Ty) <= RetRegs * 8)
+        return ABIArgInfo::getDirect();
+      // A return struct with larger size is returned via a stack
+      // slot, along with a pointer to it as the function's implicit argument.
+      LargeRet = true;
+      return getNaturalAlignIndirect(Ty);
+    }
+    // Otherwise we follow the default way which is compatible.
+    return DefaultABIInfo::classifyReturnType(Ty);
+  }
 
-  ABIArgInfo classifyReturnType(QualType Ty) const {
-    // A return struct with size less than or equal to 8 bytes is returned
-    // directly via registers R18-R25.
-    if (isAggregateTypeForABI(Ty) && getContext().getTypeSize(Ty) <= 64)
+  ABIArgInfo classifyArgumentType(QualType Ty, unsigned &NumRegs) const {
+    unsigned TySize = getContext().getTypeSize(Ty);
+
+    // An int8 type argument always costs two registers like an int16.
+    if (TySize == 8 && NumRegs >= 2) {
+      NumRegs -= 2;
+      return ABIArgInfo::getExtend(Ty);
+    }
+
+    // If the argument size is an odd number of bytes, round up the size
+    // to the next even number.
+    TySize = llvm::alignTo(TySize, 16);
+
+    // Any type including an array/struct type can be passed in rgisters,
+    // if there are enough registers left.
+    if (TySize <= NumRegs * 8) {
+      NumRegs -= TySize / 8;
       return ABIArgInfo::getDirect();
-    else
-      return DefaultABIInfo::classifyReturnType(Ty);
+    }
+
+    // An argument is passed either completely in registers or completely in
+    // memory. Since there are not enough registers left, current argument
+    // and all other unprocessed arguments should be passed in memory.
+    // However we still need to return `ABIArgInfo::getDirect()` other than
+    // `ABIInfo::getNaturalAlignIndirect(Ty)`, otherwise an extra stack slot
+    // will be allocated, so the stack frame layout will be incompatible with
+    // avr-gcc.
+    NumRegs = 0;
+    return ABIArgInfo::getDirect();
   }
 
-  // Just copy the original implementation of DefaultABIInfo::computeInfo(),
-  // since DefaultABIInfo::classify{Return,Argument}Type() are not virtual.
   void computeInfo(CGFunctionInfo &FI) const override {
+    // Decide the return type.
+    bool LargeRet = false;
     if (!getCXXABI().classifyReturnType(FI))
-      FI.getReturnInfo() = classifyReturnType(FI.getReturnType());
+      FI.getReturnInfo() = classifyReturnType(FI.getReturnType(), LargeRet);
+
+    // Decide each argument type. The total number of registers can be used for
+    // arguments depends on several factors:
+    // 1. Arguments of varargs functions are passed on the stack. This applies
+    //    even to the named arguments. So no register can be used.
+    // 2. Total 18 registers can be used on avr and 6 ones on avrtiny.
+    // 3. If the return type is a struct with too large size, two registers
+    //    (out of 18/6) will be cost as an implicit pointer argument.
+    unsigned NumRegs = ParamRegs;
+    if (FI.isVariadic())
+      NumRegs = 0;
+    else if (LargeRet)
+      NumRegs -= 2;
     for (auto &I : FI.arguments())
-      I.info = classifyArgumentType(I.type);
+      I.info = classifyArgumentType(I.type, NumRegs);
   }
 };
 
 class AVRTargetCodeGenInfo : public TargetCodeGenInfo {
 public:
-  AVRTargetCodeGenInfo(CodeGenTypes &CGT)
-      : TargetCodeGenInfo(std::make_unique<AVRABIInfo>(CGT)) {}
+  AVRTargetCodeGenInfo(CodeGenTypes &CGT, unsigned NPR, unsigned NRR)
+      : TargetCodeGenInfo(std::make_unique<AVRABIInfo>(CGT, NPR, NRR)) {}
 
   LangAS getGlobalVarAddressSpace(CodeGenModule &CGM,
                                   const VarDecl *D) const override {
@@ -11270,8 +11332,14 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
   case llvm::Triple::mips64el:
     return SetCGInfo(new MIPSTargetCodeGenInfo(Types, false));
 
-  case llvm::Triple::avr:
-    return SetCGInfo(new AVRTargetCodeGenInfo(Types));
+  case llvm::Triple::avr: {
+    // For passing parameters, R8~R25 are used on avr, and R18~R25 are used
+    // on avrtiny. For passing return value, R18~R25 are used on avr, and
+    // R22~R25 are used on avrtiny.
+    unsigned NPR = getTarget().getABI() == "avrtiny" ? 6 : 18;
+    unsigned NRR = getTarget().getABI() == "avrtiny" ? 4 : 8;
+    return SetCGInfo(new AVRTargetCodeGenInfo(Types, NPR, NRR));
+  }
 
   case llvm::Triple::aarch64:
   case llvm::Triple::aarch64_32:
diff --git a/contrib/llvm-project/clang/lib/Format/BreakableToken.cpp b/contrib/llvm-project/clang/lib/Format/BreakableToken.cpp
index f68d802c1f95..1ffaa7f6f45b 100644
--- a/contrib/llvm-project/clang/lib/Format/BreakableToken.cpp
+++ b/contrib/llvm-project/clang/lib/Format/BreakableToken.cpp
@@ -753,6 +753,7 @@ BreakableLineCommentSection::BreakableLineCommentSection(
   assert(Tok.is(TT_LineComment) &&
          "line comment section must start with a line comment");
   FormatToken *LineTok = nullptr;
+  const int Minimum = Style.SpacesInLineCommentPrefix.Minimum;
   // How many spaces we changed in the first line of the section, this will be
   // applied in all following lines
   int FirstLineSpaceChange = 0;
@@ -775,7 +776,7 @@ BreakableLineCommentSection::BreakableLineCommentSection(
       Lines[i] = Lines[i].ltrim(Blanks);
       StringRef IndentPrefix = getLineCommentIndentPrefix(Lines[i], Style);
       OriginalPrefix[i] = IndentPrefix;
-      const unsigned SpacesInPrefix = llvm::count(IndentPrefix, ' ');
+      const int SpacesInPrefix = llvm::count(IndentPrefix, ' ');
 
       // On the first line of the comment section we calculate how many spaces
       // are to be added or removed, all lines after that just get only the
@@ -784,12 +785,11 @@ BreakableLineCommentSection::BreakableLineCommentSection(
       // e.g. from "///" to "//".
       if (i == 0 || OriginalPrefix[i].rtrim(Blanks) !=
                         OriginalPrefix[i - 1].rtrim(Blanks)) {
-        if (SpacesInPrefix < Style.SpacesInLineCommentPrefix.Minimum &&
-            Lines[i].size() > IndentPrefix.size() &&
+        if (SpacesInPrefix < Minimum && Lines[i].size() > IndentPrefix.size() &&
             isAlphanumeric(Lines[i][IndentPrefix.size()])) {
-          FirstLineSpaceChange =
-              Style.SpacesInLineCommentPrefix.Minimum - SpacesInPrefix;
-        } else if (SpacesInPrefix > Style.SpacesInLineCommentPrefix.Maximum) {
+          FirstLineSpaceChange = Minimum - SpacesInPrefix;
+        } else if (static_cast<unsigned>(SpacesInPrefix) >
+                   Style.SpacesInLineCommentPrefix.Maximum) {
           FirstLineSpaceChange =
               Style.SpacesInLineCommentPrefix.Maximum - SpacesInPrefix;
         } else {
@@ -800,10 +800,9 @@ BreakableLineCommentSection::BreakableLineCommentSection(
       if (Lines[i].size() != IndentPrefix.size()) {
         PrefixSpaceChange[i] = FirstLineSpaceChange;
 
-        if (SpacesInPrefix + PrefixSpaceChange[i] <
-            Style.SpacesInLineCommentPrefix.Minimum) {
-          PrefixSpaceChange[i] += Style.SpacesInLineCommentPrefix.Minimum -
-                                  (SpacesInPrefix + PrefixSpaceChange[i]);
+        if (SpacesInPrefix + PrefixSpaceChange[i] < Minimum) {
+          PrefixSpaceChange[i] +=
+              Minimum - (SpacesInPrefix + PrefixSpaceChange[i]);
         }
 
         assert(Lines[i].size() > IndentPrefix.size());
diff --git a/contrib/llvm-project/clang/lib/Format/WhitespaceManager.cpp b/contrib/llvm-project/clang/lib/Format/WhitespaceManager.cpp
index 4c130abd83c3..f5a0b9963b5d 100644
--- a/contrib/llvm-project/clang/lib/Format/WhitespaceManager.cpp
+++ b/contrib/llvm-project/clang/lib/Format/WhitespaceManager.cpp
@@ -414,6 +414,7 @@ AlignTokenSequence(const FormatStyle &Style, unsigned Start, unsigned End,
            --Previous) {
         Changes[Previous + 1].Spaces -= Shift;
         Changes[Previous].Spaces += Shift;
+        Changes[Previous].StartOfTokenColumn += Shift;
       }
     }
   }
diff --git a/contrib/llvm-project/clang/lib/Headers/__clang_cuda_intrinsics.h b/contrib/llvm-project/clang/lib/Headers/__clang_cuda_intrinsics.h
index e0875bbcbf4a..3d2f5f40a435 100644
--- a/contrib/llvm-project/clang/lib/Headers/__clang_cuda_intrinsics.h
+++ b/contrib/llvm-project/clang/lib/Headers/__clang_cuda_intrinsics.h
@@ -509,7 +509,7 @@ __device__ inline void *__nv_cvta_constant_to_generic_impl(size_t __ptr) {
 __device__ inline void *__nv_cvta_local_to_generic_impl(size_t __ptr) {
   return (void *)(void __attribute__((address_space(5))) *)__ptr;
 }
-__device__ inline uint32_t __nvvm_get_smem_pointer(void *__ptr) {
+__device__ inline cuuint32_t __nvvm_get_smem_pointer(void *__ptr) {
   return __nv_cvta_generic_to_shared_impl(__ptr);
 }
 } // extern "C"
diff --git a/contrib/llvm-project/clang/lib/Sema/SemaOpenMP.cpp b/contrib/llvm-project/clang/lib/Sema/SemaOpenMP.cpp
index a500ad4f0220..32e90ced7b29 100644
--- a/contrib/llvm-project/clang/lib/Sema/SemaOpenMP.cpp
+++ b/contrib/llvm-project/clang/lib/Sema/SemaOpenMP.cpp
@@ -13314,11 +13314,11 @@ StmtResult Sema::ActOnOpenMPUnrollDirective(ArrayRef<OMPClause *> Clauses,
   if (!EndOfTile.isUsable())
     return StmtError();
   ExprResult InnerCond1 = BuildBinOp(CurScope, LoopHelper.Cond->getExprLoc(),
-                                     BO_LE, MakeInnerRef(), EndOfTile.get());
+                                     BO_LT, MakeInnerRef(), EndOfTile.get());
   if (!InnerCond1.isUsable())
     return StmtError();
   ExprResult InnerCond2 =
-      BuildBinOp(CurScope, LoopHelper.Cond->getExprLoc(), BO_LE, MakeInnerRef(),
+      BuildBinOp(CurScope, LoopHelper.Cond->getExprLoc(), BO_LT, MakeInnerRef(),
                  MakeNumIterations());
   if (!InnerCond2.isUsable())
     return StmtError();
diff --git a/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp b/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp
index 4235c0c13821..945590d0ba8c 100644
--- a/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp
+++ b/contrib/llvm-project/clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp
@@ -108,7 +108,7 @@ static const NoteTag *getNoteTag(CheckerContext &C,
                                  bool CastSucceeds, bool IsKnownCast) {
   std::string CastToName =
       CastInfo ? CastInfo->to()->getAsCXXRecordDecl()->getNameAsString()
-               : CastToTy->getPointeeCXXRecordDecl()->getNameAsString();
+               : CastToTy.getAsString();
   Object = Object->IgnoreParenImpCasts();
 
   return C.getNoteTag(
@@ -163,9 +163,9 @@ static const NoteTag *getNoteTag(CheckerContext &C,
         bool First = true;
         for (QualType CastToTy: CastToTyVec) {
           std::string CastToName =
-            CastToTy->getAsCXXRecordDecl() ?
-            CastToTy->getAsCXXRecordDecl()->getNameAsString() :
-            CastToTy->getPointeeCXXRecordDecl()->getNameAsString();
+              CastToTy->getAsCXXRecordDecl()
+                  ? CastToTy->getAsCXXRecordDecl()->getNameAsString()
+                  : CastToTy.getAsString();
           Out << ' ' << ((CastToTyVec.size() == 1) ? "not" :
                          (First ? "neither" : "nor")) << " a '" << CastToName
               << '\'';
diff --git a/contrib/llvm-project/llvm/include/llvm/Support/Base64.h b/contrib/llvm-project/llvm/include/llvm/Support/Base64.h
index 62064a35aa34..da4ae1688574 100644
--- a/contrib/llvm-project/llvm/include/llvm/Support/Base64.h
+++ b/contrib/llvm-project/llvm/include/llvm/Support/Base64.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_SUPPORT_BASE64_H
 #define LLVM_SUPPORT_BASE64_H
 
+#include <cstdint>
 #include <string>
 
 namespace llvm {
diff --git a/contrib/llvm-project/llvm/include/llvm/Support/Signals.h b/contrib/llvm-project/llvm/include/llvm/Support/Signals.h
index 44f5a750ff5c..937e0572d4a7 100644
--- a/contrib/llvm-project/llvm/include/llvm/Support/Signals.h
+++ b/contrib/llvm-project/llvm/include/llvm/Support/Signals.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_SUPPORT_SIGNALS_H
 #define LLVM_SUPPORT_SIGNALS_H
 
+#include <cstdint>
 #include <string>
 
 namespace llvm {
diff --git a/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp b/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
index c1186ae804d2..72e4ffd1311b 100644
--- a/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
+++ b/contrib/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
@@ -52,6 +52,8 @@ static MCSubtargetInfo *
 createAArch64MCSubtargetInfo(const Triple &TT, StringRef CPU, StringRef FS) {
   if (CPU.empty()) {
     CPU = "generic";
+    if (FS.empty())
+      FS = "+v8a";
 
     if (TT.isArm64e())
       CPU = "apple-a12";
diff --git a/contrib/llvm-project/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp b/contrib/llvm-project/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
index d9d563ead260..02ea0cc23a8c 100644
--- a/contrib/llvm-project/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
+++ b/contrib/llvm-project/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
@@ -1290,7 +1290,8 @@ InstructionCost ARMTTIImpl::getShuffleCost(TTI::ShuffleKind Kind,
 
     if (!Mask.empty()) {
       std::pair<InstructionCost, MVT> LT = TLI->getTypeLegalizationCost(DL, Tp);
-      if (Mask.size() <= LT.second.getVectorNumElements() &&
+      if (LT.second.isVector() &&
+          Mask.size() <= LT.second.getVectorNumElements() &&
           (isVREVMask(Mask, LT.second, 16) || isVREVMask(Mask, LT.second, 32) ||
            isVREVMask(Mask, LT.second, 64)))
         return ST->getMVEVectorCostFactor(TTI::TCK_RecipThroughput) * LT.first;
diff --git a/contrib/llvm-project/llvm/lib/Target/Mips/MipsISelLowering.cpp b/contrib/llvm-project/llvm/lib/Target/Mips/MipsISelLowering.cpp
index 8534a0ad886e..c2f6f5e13160 100644
--- a/contrib/llvm-project/llvm/lib/Target/Mips/MipsISelLowering.cpp
+++ b/contrib/llvm-project/llvm/lib/Target/Mips/MipsISelLowering.cpp
@@ -192,6 +192,7 @@ const char *MipsTargetLowering::getTargetNodeName(unsigned Opcode) const {
   case MipsISD::Ret:               return "MipsISD::Ret";
   case MipsISD::ERet:              return "MipsISD::ERet";
   case MipsISD::EH_RETURN:         return "MipsISD::EH_RETURN";
+  case MipsISD::FAbs:              return "MipsISD::FAbs";
   case MipsISD::FMS:               return "MipsISD::FMS";
   case MipsISD::FPBrcond:          return "MipsISD::FPBrcond";
   case MipsISD::FPCmp:             return "MipsISD::FPCmp";
@@ -353,15 +354,12 @@ MipsTargetLowering::MipsTargetLowering(const MipsTargetMachine &TM,
   setOperationAction(ISD::SETCC,              MVT::f32,   Custom);
   setOperationAction(ISD::SETCC,              MVT::f64,   Custom);
   setOperationAction(ISD::BRCOND,             MVT::Other, Custom);
+  setOperationAction(ISD::FABS,               MVT::f32,   Custom);
+  setOperationAction(ISD::FABS,               MVT::f64,   Custom);
   setOperationAction(ISD::FCOPYSIGN,          MVT::f32,   Custom);
   setOperationAction(ISD::FCOPYSIGN,          MVT::f64,   Custom);
   setOperationAction(ISD::FP_TO_SINT,         MVT::i32,   Custom);
 
-  if (!(TM.Options.NoNaNsFPMath || Subtarget.inAbs2008Mode())) {
-    setOperationAction(ISD::FABS, MVT::f32, Custom);
-    setOperationAction(ISD::FABS, MVT::f64, Custom);
-  }
-
   if (Subtarget.isGP64bit()) {
     setOperationAction(ISD::GlobalAddress,      MVT::i64,   Custom);
     setOperationAction(ISD::BlockAddress,       MVT::i64,   Custom);
@@ -2421,11 +2419,14 @@ MipsTargetLowering::lowerFCOPYSIGN(SDValue Op, SelectionDAG &DAG) const {
   return lowerFCOPYSIGN32(Op, DAG, Subtarget.hasExtractInsert());
 }
 
-static SDValue lowerFABS32(SDValue Op, SelectionDAG &DAG,
-                           bool HasExtractInsert) {
+SDValue MipsTargetLowering::lowerFABS32(SDValue Op, SelectionDAG &DAG,
+                                        bool HasExtractInsert) const {
   SDLoc DL(Op);
   SDValue Res, Const1 = DAG.getConstant(1, DL, MVT::i32);
 
+  if (DAG.getTarget().Options.NoNaNsFPMath || Subtarget.inAbs2008Mode())
+    return DAG.getNode(MipsISD::FAbs, DL, Op.getValueType(), Op.getOperand(0));
+
   // If operand is of type f64, extract the upper 32-bit. Otherwise, bitcast it
   // to i32.
   SDValue X = (Op.getValueType() == MVT::f32)
@@ -2458,11 +2459,14 @@ static SDValue lowerFABS32(SDValue Op, SelectionDAG &DAG,
   return DAG.getNode(MipsISD::BuildPairF64, DL, MVT::f64, LowX, Res);
 }
 
-static SDValue lowerFABS64(SDValue Op, SelectionDAG &DAG,
-                           bool HasExtractInsert) {
+SDValue MipsTargetLowering::lowerFABS64(SDValue Op, SelectionDAG &DAG,
+                                        bool HasExtractInsert) const {
   SDLoc DL(Op);
   SDValue Res, Const1 = DAG.getConstant(1, DL, MVT::i32);
 
+  if (DAG.getTarget().Options.NoNaNsFPMath || Subtarget.inAbs2008Mode())
+    return DAG.getNode(MipsISD::FAbs, DL, Op.getValueType(), Op.getOperand(0));
+
   // Bitcast to integer node.
   SDValue X = DAG.getNode(ISD::BITCAST, DL, MVT::i64, Op.getOperand(0));
 
diff --git a/contrib/llvm-project/llvm/lib/Target/Mips/MipsISelLowering.h b/contrib/llvm-project/llvm/lib/Target/Mips/MipsISelLowering.h
index 3905a18895de..66207193c8b3 100644
--- a/contrib/llvm-project/llvm/lib/Target/Mips/MipsISelLowering.h
+++ b/contrib/llvm-project/llvm/lib/Target/Mips/MipsISelLowering.h
@@ -99,6 +99,9 @@ class TargetRegisterClass;
       // Floating Point Compare
       FPCmp,
 
+      // Floating point Abs
+      FAbs,
+
       // Floating point select
       FSELECT,
 
@@ -540,6 +543,10 @@ class TargetRegisterClass;
     SDValue lowerVAARG(SDValue Op, SelectionDAG &DAG) const;
     SDValue lowerFCOPYSIGN(SDValue Op, SelectionDAG &DAG) const;
     SDValue lowerFABS(SDValue Op, SelectionDAG &DAG) const;
+    SDValue lowerFABS32(SDValue Op, SelectionDAG &DAG,
+                        bool HasExtractInsert) const;
+    SDValue lowerFABS64(SDValue Op, SelectionDAG &DAG,
+                        bool HasExtractInsert) const;
     SDValue lowerFRAMEADDR(SDValue Op, SelectionDAG &DAG) const;
     SDValue lowerRETURNADDR(SDValue Op, SelectionDAG &DAG) const;
     SDValue lowerEH_RETURN(SDValue Op, SelectionDAG &DAG) const;
diff --git a/contrib/llvm-project/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp b/contrib/llvm-project/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
index 03a545605fe1..ae92604d47ba 100644
--- a/contrib/llvm-project/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
+++ b/contrib/llvm-project/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
@@ -956,6 +956,38 @@ bool MipsSEDAGToDAGISel::trySelect(SDNode *Node) {
     break;
   }
 
+  case MipsISD::FAbs: {
+    MVT ResTy = Node->getSimpleValueType(0);
+    assert((ResTy == MVT::f64 || ResTy == MVT::f32) &&
+           "Unsupported float type!");
+    unsigned Opc = 0;
+    if (ResTy == MVT::f64)
+      Opc = (Subtarget->isFP64bit() ? Mips::FABS_D64 : Mips::FABS_D32);
+    else
+      Opc = Mips::FABS_S;
+
+    if (Subtarget->inMicroMipsMode()) {
+      switch (Opc) {
+      case Mips::FABS_D64:
+        Opc = Mips::FABS_D64_MM;
+        break;
+      case Mips::FABS_D32:
+        Opc = Mips::FABS_D32_MM;
+        break;
+      case Mips::FABS_S:
+        Opc = Mips::FABS_S_MM;
+        break;
+      default:
+        llvm_unreachable("Unknown opcode for MIPS floating point abs!");
+      }
+    }
+
+    ReplaceNode(Node,
+                CurDAG->getMachineNode(Opc, DL, ResTy, Node->getOperand(0)));
+
+    return true;
+  }
+
   // Manually match MipsISD::Ins nodes to get the correct instruction. It has
   // to be done in this fashion so that we respect the differences between
   // dins and dinsm, as the difference is that the size operand has the range
diff --git a/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp b/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
index 318c4c06f0f7..2635d0a213ff 100644
--- a/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
+++ b/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
@@ -1173,6 +1173,8 @@ bool LoopIdiomRecognize::processLoopStridedStore(
   CallInst *NewCall;
   if (SplatValue) {
     AAMDNodes AATags = TheStore->getAAMetadata();
+    for (Instruction *Store : Stores)
+      AATags = AATags.merge(Store->getAAMetadata());
     if (auto CI = dyn_cast<ConstantInt>(NumBytes))
       AATags = AATags.extendTo(CI->getZExtValue());
     else
@@ -1420,26 +1422,19 @@ bool LoopIdiomRecognize::processLoopStoreOfLoopLoad(
 
   // If the store is a memcpy instruction, we must check if it will write to
   // the load memory locations. So remove it from the ignored stores.
-  if (IsMemCpy)
-    IgnoredInsts.erase(TheStore);
   MemmoveVerifier Verifier(*LoadBasePtr, *StoreBasePtr, *DL);
+  if (IsMemCpy && !Verifier.IsSameObject)
+    IgnoredInsts.erase(TheStore);
   if (mayLoopAccessLocation(LoadBasePtr, ModRefInfo::Mod, CurLoop, BECount,
                             StoreSizeSCEV, *AA, IgnoredInsts)) {
-    if (!IsMemCpy) {
-      ORE.emit([&]() {
-        return OptimizationRemarkMissed(DEBUG_TYPE, "LoopMayAccessLoad",
-                                        TheLoad)
-               << ore::NV("Inst", InstRemark) << " in "
-               << ore::NV("Function", TheStore->getFunction())
-               << " function will not be hoisted: "
-               << ore::NV("Reason", "The loop may access load location");
-      });
-      return Changed;
-    }
-    // At this point loop may access load only for memcpy in same underlying
-    // object. If that's not the case bail out.
-    if (!Verifier.IsSameObject)
-      return Changed;
+    ORE.emit([&]() {
+      return OptimizationRemarkMissed(DEBUG_TYPE, "LoopMayAccessLoad", TheLoad)
+             << ore::NV("Inst", InstRemark) << " in "
+             << ore::NV("Function", TheStore->getFunction())
+             << " function will not be hoisted: "
+             << ore::NV("Reason", "The loop may access load location");
+    });
+    return Changed;
   }
 
   bool UseMemMove = IsMemCpy ? Verifier.IsSameObject : LoopAccessStore;
diff --git a/contrib/llvm-project/llvm/lib/Transforms/Utils/Local.cpp b/contrib/llvm-project/llvm/lib/Transforms/Utils/Local.cpp
index 9a10535c9310..1c350a2585d0 100644
--- a/contrib/llvm-project/llvm/lib/Transforms/Utils/Local.cpp
+++ b/contrib/llvm-project/llvm/lib/Transforms/Utils/Local.cpp
@@ -2350,7 +2350,7 @@ static bool markAliveBlocks(Function &F,
         changeToUnreachable(II, false, DTU);
         Changed = true;
       } else if (II->doesNotThrow() && canSimplifyInvokeNoUnwind(&F)) {
-        if (II->use_empty() && II->onlyReadsMemory()) {
+        if (II->use_empty() && !II->mayHaveSideEffects()) {
           // jump to the normal destination branch.
           BasicBlock *NormalDestBB = II->getNormalDest();
*** 794 LINES SKIPPED ***



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