git: f204dc707e8f - stable/12 - Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp release/11.x llvmorg-11.0.1-rc2-0-g43ff75f2c3f (aka 11.0.1 rc2).

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Wed, 22 Dec 2021 10:06:33 UTC
The branch stable/12 has been updated by dim:

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

commit f204dc707e8fe90eb619d9c8bb1798339c8aeeb9
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2021-01-03 12:54:24 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2021-12-22 10:01:28 +0000

    Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp
    release/11.x llvmorg-11.0.1-rc2-0-g43ff75f2c3f (aka 11.0.1 rc2).
    
    MFC after:      4 weeks
    X-MFC-With:     r364284
    
    (cherry picked from commit eaeb601bd6a77b1f1c0889df45693d8c602e4863)
---
 ObsoleteFiles.inc                                  | 265 ++++++++++
 .../clang/include/clang/AST/DeclTemplate.h         |   0
 .../llvm-project/clang/include/clang/Basic/Attr.td |   2 +-
 .../clang/include/clang/Basic/AttrDocs.td          |  26 +
 .../clang/include/clang/Basic/Builtins.def         |  26 +-
 .../clang/include/clang/Basic/Builtins.h           |   7 +
 .../include/clang/Basic/DiagnosticDriverKinds.td   |   2 +-
 .../clang/include/clang/Format/Format.h            |   0
 .../Tooling/Refactoring/Extract/SourceExtraction.h |   0
 .../llvm-project/clang/lib/AST/DeclTemplate.cpp    |   0
 .../llvm-project/clang/lib/CodeGen/CGBuiltin.cpp   |   6 +-
 .../llvm-project/clang/lib/CodeGen/CGObjCGNU.cpp   |  13 -
 .../llvm-project/clang/lib/CodeGen/TargetInfo.cpp  |  16 +-
 .../clang/lib/Driver/ToolChains/Cuda.cpp           | 113 ++++-
 .../clang/lib/Driver/ToolChains/Cuda.h             |   3 -
 .../llvm-project/clang/lib/Format/FormatToken.h    |   6 -
 .../clang/lib/Format/UnwrappedLineParser.cpp       |   2 -
 .../clang/lib/Format/WhitespaceManager.cpp         |  10 +-
 .../lib/Headers/__clang_cuda_complex_builtins.h    |   6 +-
 .../clang/lib/Headers/cuda_wrappers/new            |   8 +
 .../clang/lib/Headers/openmp_wrappers/complex      |   2 +
 .../clang/lib/Headers/openmp_wrappers/complex.h    |   2 +
 .../llvm-project/clang/lib/Sema/SemaChecking.cpp   |   5 -
 .../llvm-project/clang/lib/Sema/SemaConcept.cpp    |   0
 contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp   |  24 +-
 .../llvm-project/clang/lib/Sema/SemaDeclAttr.cpp   |   6 +-
 .../llvm-project/clang/lib/Sema/SemaTemplate.cpp   |   3 +-
 .../clang/lib/Sema/SemaTemplateInstantiateDecl.cpp |  13 +-
 .../llvm-project/clang/lib/Sema/UsedDeclVisitor.h  |  11 +-
 .../clang/lib/StaticAnalyzer/Checkers/Yaml.h       |   0
 .../sanitizer_common_interceptors_ioctl.inc        |   0
 contrib/llvm-project/lld/COFF/DebugTypes.cpp       |   5 +-
 contrib/llvm-project/lld/ELF/LinkerScript.cpp      |   7 +-
 .../lldb/include/lldb/Core/ModuleList.h            |  19 +-
 .../lldb/include/lldb/Target/Platform.h            |   9 +-
 .../llvm-project/lldb/source/Core/ModuleList.cpp   |  39 +-
 .../Plugins/Process/minidump/ProcessMinidump.cpp   | 152 +++++-
 .../Plugins/Process/minidump/ProcessMinidump.h     |   4 +
 .../llvm-project/lldb/source/Target/Platform.cpp   |  43 +-
 contrib/llvm-project/lldb/source/Target/Target.cpp |  98 +++-
 .../llvm/include/llvm/ADT/ImmutableMap.h           |   2 +-
 .../llvm/include/llvm/BinaryFormat/ELF.h           |   6 +
 .../llvm/Transforms/IPO/DeadArgumentElimination.h  |   1 +
 .../lib/DebugInfo/DWARF/DWARFDebugArangeSet.cpp    |  13 +-
 .../llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp    |   8 +-
 .../ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp    |  19 +-
 contrib/llvm-project/llvm/lib/IR/ConstantFold.cpp  |   2 +-
 .../llvm-project/llvm/lib/MC/MCObjectFileInfo.cpp  |   2 +
 .../llvm/lib/MC/MCParser/ELFAsmParser.cpp          |   7 +-
 .../llvm/lib/MCA/HardwareUnits/LSUnit.cpp          |   2 +
 contrib/llvm-project/llvm/lib/Support/Host.cpp     |   5 +-
 .../llvm-project/llvm/lib/Support/Windows/Path.inc |  21 +-
 .../llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp  |  15 +
 .../Target/AArch64/AArch64CallingConvention.cpp    |   9 +
 .../lib/Target/AArch64/AArch64ISelLowering.cpp     |  17 +-
 .../Target/AArch64/AsmParser/AArch64AsmParser.cpp  |  30 ++
 .../AArch64/GISel/AArch64InstructionSelector.cpp   | 134 ++---
 .../Target/AArch64/GISel/AArch64LegalizerInfo.cpp  |  38 +-
 .../AArch64/GISel/AArch64RegisterBankInfo.cpp      |   1 +
 .../AArch64/MCTargetDesc/AArch64ELFStreamer.cpp    |   8 +
 .../AArch64/MCTargetDesc/AArch64TargetStreamer.h   |   4 +
 .../llvm/lib/Target/AMDGPU/SIPreEmitPeephole.cpp   |  24 +-
 .../llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp        |   4 +-
 .../llvm/lib/Target/Sparc/LeonFeatures.td          |   0
 .../llvm/lib/Target/Sparc/LeonPasses.cpp           |   0
 .../llvm/lib/Target/Sparc/LeonPasses.h             |   0
 .../llvm/lib/Target/Sparc/SparcAsmPrinter.cpp      |   2 +-
 .../llvm/lib/Target/Sparc/SparcSchedule.td         |   0
 .../lib/Target/WebAssembly/WebAssemblyFastISel.cpp |  17 +-
 .../lib/Target/WebAssembly/WebAssemblyInstrInfo.td |   4 +-
 .../Target/WebAssembly/WebAssemblyRegisterInfo.cpp |  10 +-
 .../llvm/lib/Target/X86/X86EvexToVex.cpp           |   0
 .../llvm/lib/Target/X86/X86FrameLowering.cpp       | 222 +++++++-
 .../llvm/lib/Target/X86/X86FrameLowering.h         |   8 +-
 .../llvm/lib/Target/X86/X86ISelLowering.cpp        |  29 +-
 .../llvm/lib/Target/X86/X86SchedBroadwell.td       |   0
 .../llvm/lib/Target/X86/X86SchedSkylakeServer.td   |   0
 .../lib/Transforms/IPO/DeadArgumentElimination.cpp |  29 +-
 .../Transforms/InstCombine/InstCombineSelect.cpp   |  20 +-
 .../Instrumentation/AddressSanitizer.cpp           |  20 +-
 etc/mtree/BSD.debug.dist                           |   2 +-
 etc/mtree/BSD.usr.dist                             |   2 +-
 lib/clang/headers/Makefile                         |   2 +-
 lib/clang/include/VCSVersion.inc                   |   8 +-
 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/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/Makefile.inc                       |   2 +-
 tools/build/mk/OptionalObsoleteFiles.inc           | 562 ++++++++++-----------
 92 files changed, 1570 insertions(+), 714 deletions(-)

diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc
index 562f91bcdf19..9deb2ab6b882 100644
--- a/ObsoleteFiles.inc
+++ b/ObsoleteFiles.inc
@@ -38,6 +38,271 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20211214: new clang import which bumps version from 11.0.0 to 11.0.1.
+OLD_FILES+=usr/lib/clang/11.0.0/include/cuda_wrappers/algorithm
+OLD_FILES+=usr/lib/clang/11.0.0/include/cuda_wrappers/complex
+OLD_FILES+=usr/lib/clang/11.0.0/include/cuda_wrappers/new
+OLD_DIRS+=usr/lib/clang/11.0.0/include/cuda_wrappers
+OLD_FILES+=usr/lib/clang/11.0.0/include/fuzzer/FuzzedDataProvider.h
+OLD_DIRS+=usr/lib/clang/11.0.0/include/fuzzer
+OLD_FILES+=usr/lib/clang/11.0.0/include/openmp_wrappers/__clang_openmp_device_functions.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/openmp_wrappers/cmath
+OLD_FILES+=usr/lib/clang/11.0.0/include/openmp_wrappers/complex
+OLD_FILES+=usr/lib/clang/11.0.0/include/openmp_wrappers/complex.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/openmp_wrappers/math.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/openmp_wrappers/new
+OLD_DIRS+=usr/lib/clang/11.0.0/include/openmp_wrappers
+OLD_FILES+=usr/lib/clang/11.0.0/include/ppc_wrappers/emmintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/ppc_wrappers/mm_malloc.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/ppc_wrappers/mmintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/ppc_wrappers/pmmintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/ppc_wrappers/smmintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/ppc_wrappers/tmmintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/ppc_wrappers/xmmintrin.h
+OLD_DIRS+=usr/lib/clang/11.0.0/include/ppc_wrappers
+OLD_FILES+=usr/lib/clang/11.0.0/include/profile/InstrProfData.inc
+OLD_DIRS+=usr/lib/clang/11.0.0/include/profile
+OLD_FILES+=usr/lib/clang/11.0.0/include/sanitizer/allocator_interface.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/sanitizer/asan_interface.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/sanitizer/common_interface_defs.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/sanitizer/coverage_interface.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/sanitizer/dfsan_interface.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/sanitizer/hwasan_interface.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/sanitizer/linux_syscall_hooks.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/sanitizer/lsan_interface.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/sanitizer/msan_interface.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/sanitizer/netbsd_syscall_hooks.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/sanitizer/scudo_interface.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/sanitizer/tsan_interface.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/sanitizer/tsan_interface_atomic.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/sanitizer/ubsan_interface.h
+OLD_DIRS+=usr/lib/clang/11.0.0/include/sanitizer
+OLD_FILES+=usr/lib/clang/11.0.0/include/xray/xray_interface.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/xray/xray_log_interface.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/xray/xray_records.h
+OLD_DIRS+=usr/lib/clang/11.0.0/include/xray
+OLD_FILES+=usr/lib/clang/11.0.0/include/__clang_cuda_builtin_vars.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/__clang_cuda_cmath.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/__clang_cuda_complex_builtins.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/__clang_cuda_device_functions.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/__clang_cuda_intrinsics.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/__clang_cuda_libdevice_declares.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/__clang_cuda_math.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/__clang_cuda_math_forward_declares.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/__clang_cuda_runtime_wrapper.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/__clang_hip_libdevice_declares.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/__clang_hip_math.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/__clang_hip_runtime_wrapper.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/__stddef_max_align_t.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/__wmmintrin_aes.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/__wmmintrin_pclmul.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/adxintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/altivec.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/ammintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/amxintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/arm64intr.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/arm_acle.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/arm_bf16.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/arm_cde.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/arm_cmse.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/arm_fp16.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/arm_mve.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/arm_neon.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/arm_sve.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/armintr.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx2intrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512bf16intrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512bitalgintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512bwintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512cdintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512dqintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512erintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512fintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512ifmaintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512ifmavlintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512pfintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512vbmi2intrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512vbmiintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512vbmivlintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512vlbf16intrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512vlbitalgintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512vlbwintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512vlcdintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512vldqintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512vlintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512vlvbmi2intrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512vlvnniintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512vlvp2intersectintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512vnniintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512vp2intersectintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512vpopcntdqintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avx512vpopcntdqvlintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/avxintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/bmi2intrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/bmiintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/cet.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/cetintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/cldemoteintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/clflushoptintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/clwbintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/clzerointrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/cpuid.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/emmintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/enqcmdintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/f16cintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/fma4intrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/fmaintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/fxsrintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/gfniintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/htmintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/htmxlintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/ia32intrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/immintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/invpcidintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/lwpintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/lzcntintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/mm3dnow.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/mm_malloc.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/mmintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/module.modulemap
+OLD_FILES+=usr/lib/clang/11.0.0/include/movdirintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/msa.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/mwaitxintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/nmmintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/opencl-c-base.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/opencl-c.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/pconfigintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/pkuintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/pmmintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/popcntintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/prfchwintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/ptwriteintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/rdseedintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/rtmintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/s390intrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/serializeintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/sgxintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/shaintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/smmintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/tbmintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/tmmintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/tsxldtrkintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/vadefs.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/vaesintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/vecintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/vpclmulqdqintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/waitpkgintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/wasm_simd128.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/wbnoinvdintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/wmmintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/x86intrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/xmmintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/xopintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/xsavecintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/xsaveintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/xsaveoptintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/xsavesintrin.h
+OLD_FILES+=usr/lib/clang/11.0.0/include/xtestintrin.h
+OLD_DIRS+=usr/lib/clang/11.0.0/include
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan-aarch64.so
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan-arm.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan-arm.so
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan-armhf.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan-armhf.so
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan-i386.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan-i386.so
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan-preinit-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan-preinit-arm.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan-preinit-armhf.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan-preinit-i386.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan-preinit-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan-x86_64.so
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan_cxx-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan_cxx-arm.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan_cxx-armhf.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan_cxx-i386.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.asan_cxx-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.cfi-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.cfi-arm.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.cfi-armhf.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.cfi-i386.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.cfi-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.cfi_diag-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.cfi_diag-arm.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.cfi_diag-armhf.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.cfi_diag-i386.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.cfi_diag-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.dd-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.dd-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.fuzzer-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.fuzzer-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.fuzzer_no_main-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.fuzzer_no_main-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.msan-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.msan-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.msan_cxx-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.msan_cxx-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.profile-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.profile-arm.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.profile-armhf.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.profile-i386.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.profile-powerpc.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.profile-powerpc64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.profile-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.safestack-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.safestack-i386.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.safestack-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.stats-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.stats-arm.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.stats-armhf.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.stats-i386.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.stats-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.stats_client-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.stats_client-arm.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.stats_client-armhf.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.stats_client-i386.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.stats_client-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.tsan-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.tsan-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.tsan_cxx-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.ubsan_minimal-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.ubsan_minimal-arm.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.ubsan_minimal-armhf.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.ubsan_minimal-i386.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.ubsan_standalone-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.ubsan_standalone-arm.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.ubsan_standalone-armhf.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.ubsan_standalone-i386.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-armhf.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.xray-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.xray-arm.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.xray-armhf.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.xray-basic-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.xray-basic-arm.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.xray-basic-armhf.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.xray-basic-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.xray-fdr-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.xray-fdr-arm.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.xray-fdr-armhf.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.xray-fdr-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.xray-profiling-aarch64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.xray-profiling-arm.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.xray-profiling-armhf.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.xray-profiling-x86_64.a
+OLD_FILES+=usr/lib/clang/11.0.0/lib/freebsd/libclang_rt.xray-x86_64.a
+OLD_DIRS+=usr/lib/clang/11.0.0/lib/freebsd
+OLD_DIRS+=usr/lib/clang/11.0.0/lib
+OLD_DIRS+=usr/lib/clang/11.0.0
+
 # 20211214: new clang import which bumps version from 10.0.1 to 11.0.0.
 OLD_FILES+=usr/lib/clang/10.0.1/include/cuda_wrappers/algorithm
 OLD_FILES+=usr/lib/clang/10.0.1/include/cuda_wrappers/complex
diff --git a/contrib/llvm-project/clang/include/clang/AST/DeclTemplate.h b/contrib/llvm-project/clang/include/clang/AST/DeclTemplate.h
old mode 100644
new mode 100755
diff --git a/contrib/llvm-project/clang/include/clang/Basic/Attr.td b/contrib/llvm-project/clang/include/clang/Basic/Attr.td
index dad15bc5b2d9..60eaee7839e2 100644
--- a/contrib/llvm-project/clang/include/clang/Basic/Attr.td
+++ b/contrib/llvm-project/clang/include/clang/Basic/Attr.td
@@ -2115,7 +2115,7 @@ def InitPriority : InheritableAttr {
   let Spellings = [GCC<"init_priority", /*AllowInC*/0>];
   let Args = [UnsignedArgument<"Priority">];
   let Subjects = SubjectList<[Var], ErrorDiag>;
-  let Documentation = [Undocumented];
+  let Documentation = [InitPriorityDocs];
 }
 
 def Section : InheritableAttr {
diff --git a/contrib/llvm-project/clang/include/clang/Basic/AttrDocs.td b/contrib/llvm-project/clang/include/clang/Basic/AttrDocs.td
index 3cba3a3d96f9..833127ed44eb 100644
--- a/contrib/llvm-project/clang/include/clang/Basic/AttrDocs.td
+++ b/contrib/llvm-project/clang/include/clang/Basic/AttrDocs.td
@@ -57,6 +57,32 @@ global variable or function should be in after translation.
   let Heading = "section, __declspec(allocate)";
 }
 
+def InitPriorityDocs : Documentation {
+  let Category = DocCatVariable;
+  let Content = [{
+In C++, the order in which global variables are initialized across translation
+units is unspecified, unlike the ordering within a single translation unit. The
+``init_priority`` attribute allows you to specify a relative ordering for the
+initialization of objects declared at namespace scope in C++. The priority is
+given as an integer constant expression between 101 and 65535 (inclusive).
+Priorities outside of that range are reserved for use by the implementation. A
+lower value indicates a higher priority of initialization. Note that only the
+relative ordering of values is important. For example:
+
+.. code-block:: c++
+
+  struct SomeType { SomeType(); };
+  __attribute__((init_priority(200))) SomeType Obj1;
+  __attribute__((init_priority(101))) SomeType Obj2;
+
+``Obj1`` will be initialized *before* ``Obj2`` despite the usual order of
+initialization being the opposite.
+
+This attribute is only supported for C++ and Objective-C++ and is ignored in
+other language modes.
+  }];
+}
+
 def InitSegDocs : Documentation {
   let Category = DocCatVariable;
   let Content = [{
diff --git a/contrib/llvm-project/clang/include/clang/Basic/Builtins.def b/contrib/llvm-project/clang/include/clang/Basic/Builtins.def
index 01c28ebab763..5463b7dfc18c 100644
--- a/contrib/llvm-project/clang/include/clang/Basic/Builtins.def
+++ b/contrib/llvm-project/clang/include/clang/Basic/Builtins.def
@@ -75,6 +75,9 @@
 //  U -> pure
 //  c -> const
 //  t -> signature is meaningless, use custom typechecking
+//  T -> type is not important to semantic analysis and codegen; recognize as
+//       builtin even if type doesn't match signature, and don't warn if we
+//       can't be sure the type is right
 //  F -> this is a libc/libm function with a '__builtin_' prefix added.
 //  f -> this is a libc/libm function without the '__builtin_' prefix. It can
 //       be followed by ':headername:' to state which header this function
@@ -893,7 +896,7 @@ LANGBUILTIN(__va_start,       "vc**.", "nt", ALL_MS_LANGUAGES)
 LANGBUILTIN(__fastfail, "vUi",    "nr", ALL_MS_LANGUAGES)
 
 // Microsoft library builtins.
-LIBBUILTIN(_setjmpex, "iJ", "fj",   "setjmpex.h", ALL_MS_LANGUAGES)
+LIBBUILTIN(_setjmpex, "iJ", "fjT", "setjmpex.h", ALL_MS_LANGUAGES)
 
 // C99 library functions
 // C99 stdarg.h
@@ -987,8 +990,8 @@ LIBBUILTIN(wmemmove,"w*w*wC*z", "f", "wchar.h", ALL_LANGUAGES)
 // In some systems setjmp is a macro that expands to _setjmp. We undefine
 // it here to avoid having two identical LIBBUILTIN entries.
 #undef setjmp
-LIBBUILTIN(setjmp, "iJ",          "fj",    "setjmp.h", ALL_LANGUAGES)
-LIBBUILTIN(longjmp, "vJi",        "fr",    "setjmp.h", ALL_LANGUAGES)
+LIBBUILTIN(setjmp, "iJ",          "fjT",   "setjmp.h", ALL_LANGUAGES)
+LIBBUILTIN(longjmp, "vJi",        "frT",   "setjmp.h", ALL_LANGUAGES)
 
 // Non-C library functions, active in GNU mode only.
 // Functions with (returns_twice) attribute (marked as "j") are still active in
@@ -1015,21 +1018,22 @@ LIBBUILTIN(strcasecmp, "icC*cC*", "f",     "strings.h", ALL_GNU_LANGUAGES)
 LIBBUILTIN(strncasecmp, "icC*cC*z", "f",   "strings.h", ALL_GNU_LANGUAGES)
 // POSIX unistd.h
 LIBBUILTIN(_exit, "vi",           "fr",    "unistd.h", ALL_GNU_LANGUAGES)
-LIBBUILTIN(vfork, "p",            "fj",    "unistd.h", ALL_LANGUAGES)
+LIBBUILTIN(vfork, "p",            "fjT",   "unistd.h", ALL_LANGUAGES)
 // POSIX pthread.h
 // FIXME: Should specify argument types.
 LIBBUILTIN(pthread_create, "",  "fC<2,3>", "pthread.h", ALL_GNU_LANGUAGES)
 
 // POSIX setjmp.h
 
-LIBBUILTIN(_setjmp, "iJ",         "fj",   "setjmp.h", ALL_LANGUAGES)
-LIBBUILTIN(__sigsetjmp, "iSJi",   "fj",   "setjmp.h", ALL_LANGUAGES)
-LIBBUILTIN(sigsetjmp, "iSJi",     "fj",   "setjmp.h", ALL_LANGUAGES)
-LIBBUILTIN(savectx, "iJ",         "fj",   "setjmp.h", ALL_LANGUAGES)
-LIBBUILTIN(getcontext, "iK*",     "fj",   "setjmp.h", ALL_LANGUAGES)
+// FIXME: MinGW _setjmp has an additional void* parameter.
+LIBBUILTIN(_setjmp, "iJ",         "fjT",   "setjmp.h", ALL_LANGUAGES)
+LIBBUILTIN(__sigsetjmp, "iSJi",   "fjT",   "setjmp.h", ALL_LANGUAGES)
+LIBBUILTIN(sigsetjmp, "iSJi",     "fjT",   "setjmp.h", ALL_LANGUAGES)
+LIBBUILTIN(savectx, "iJ",         "fjT",   "setjmp.h", ALL_LANGUAGES)
+LIBBUILTIN(getcontext, "iK*",     "fjT",   "setjmp.h", ALL_LANGUAGES)
 
-LIBBUILTIN(_longjmp, "vJi",       "fr",    "setjmp.h", ALL_GNU_LANGUAGES)
-LIBBUILTIN(siglongjmp, "vSJi",    "fr",    "setjmp.h", ALL_GNU_LANGUAGES)
+LIBBUILTIN(_longjmp, "vJi",       "frT",   "setjmp.h", ALL_GNU_LANGUAGES)
+LIBBUILTIN(siglongjmp, "vSJi",    "frT",   "setjmp.h", ALL_GNU_LANGUAGES)
 // non-standard but very common
 LIBBUILTIN(strlcpy, "zc*cC*z",    "f",     "string.h", ALL_GNU_LANGUAGES)
 LIBBUILTIN(strlcat, "zc*cC*z",    "f",     "string.h", ALL_GNU_LANGUAGES)
diff --git a/contrib/llvm-project/clang/include/clang/Basic/Builtins.h b/contrib/llvm-project/clang/include/clang/Basic/Builtins.h
index e4ed482d9068..15bfcf797917 100644
--- a/contrib/llvm-project/clang/include/clang/Basic/Builtins.h
+++ b/contrib/llvm-project/clang/include/clang/Basic/Builtins.h
@@ -158,6 +158,13 @@ public:
     return strchr(getRecord(ID).Attributes, 't') != nullptr;
   }
 
+  /// Determines whether a declaration of this builtin should be recognized
+  /// even if the type doesn't match the specified signature.
+  bool allowTypeMismatch(unsigned ID) const {
+    return strchr(getRecord(ID).Attributes, 'T') != nullptr ||
+           hasCustomTypechecking(ID);
+  }
+
   /// Determines whether this builtin has a result or any arguments which
   /// are pointer types.
   bool hasPtrArgsOrResult(unsigned ID) const {
diff --git a/contrib/llvm-project/clang/include/clang/Basic/DiagnosticDriverKinds.td b/contrib/llvm-project/clang/include/clang/Basic/DiagnosticDriverKinds.td
index 558639ecad6a..acdad15cdf6c 100644
--- a/contrib/llvm-project/clang/include/clang/Basic/DiagnosticDriverKinds.td
+++ b/contrib/llvm-project/clang/include/clang/Basic/DiagnosticDriverKinds.td
@@ -69,7 +69,7 @@ def err_drv_cuda_version_unsupported : Error<
   "install, pass a different GPU arch with --cuda-gpu-arch, or pass "
   "--no-cuda-version-check.">;
 def warn_drv_unknown_cuda_version: Warning<
-  "Unknown CUDA version %0. Assuming the latest supported version %1">,
+  "Unknown CUDA version. %0 Assuming the latest supported version %1">,
   InGroup<CudaUnknownVersion>;
 def err_drv_cuda_host_arch : Error<"unsupported architecture '%0' for host compilation.">;
 def err_drv_mix_cuda_hip : Error<"Mixed Cuda and HIP compilation is not supported.">;
diff --git a/contrib/llvm-project/clang/include/clang/Format/Format.h b/contrib/llvm-project/clang/include/clang/Format/Format.h
old mode 100644
new mode 100755
diff --git a/contrib/llvm-project/clang/include/clang/Tooling/Refactoring/Extract/SourceExtraction.h b/contrib/llvm-project/clang/include/clang/Tooling/Refactoring/Extract/SourceExtraction.h
old mode 100755
new mode 100644
diff --git a/contrib/llvm-project/clang/lib/AST/DeclTemplate.cpp b/contrib/llvm-project/clang/lib/AST/DeclTemplate.cpp
old mode 100644
new mode 100755
diff --git a/contrib/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp b/contrib/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp
index 8994b939093e..6b93f1b60af5 100644
--- a/contrib/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp
+++ b/contrib/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp
@@ -3754,11 +3754,13 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID,
   case Builtin::BI_abnormal_termination:
     return RValue::get(EmitSEHAbnormalTermination());
   case Builtin::BI_setjmpex:
-    if (getTarget().getTriple().isOSMSVCRT())
+    if (getTarget().getTriple().isOSMSVCRT() && E->getNumArgs() == 1 &&
+        E->getArg(0)->getType()->isPointerType())
       return EmitMSVCRTSetJmp(*this, MSVCSetJmpKind::_setjmpex, E);
     break;
   case Builtin::BI_setjmp:
-    if (getTarget().getTriple().isOSMSVCRT()) {
+    if (getTarget().getTriple().isOSMSVCRT() && E->getNumArgs() == 1 &&
+        E->getArg(0)->getType()->isPointerType()) {
       if (getTarget().getTriple().getArch() == llvm::Triple::x86)
         return EmitMSVCRTSetJmp(*this, MSVCSetJmpKind::_setjmp3, E);
       else if (getTarget().getTriple().getArch() == llvm::Triple::aarch64)
diff --git a/contrib/llvm-project/clang/lib/CodeGen/CGObjCGNU.cpp b/contrib/llvm-project/clang/lib/CodeGen/CGObjCGNU.cpp
index bb9c494ae68e..c64faf4c0af7 100644
--- a/contrib/llvm-project/clang/lib/CodeGen/CGObjCGNU.cpp
+++ b/contrib/llvm-project/clang/lib/CodeGen/CGObjCGNU.cpp
@@ -3511,19 +3511,6 @@ void CGObjCGNU::GenerateClass(const ObjCImplementationDecl *OID) {
   ClassMethods.insert(ClassMethods.begin(), OID->classmeth_begin(),
       OID->classmeth_end());
 
-  // Collect the same information about synthesized properties, which don't
-  // show up in the instance method lists.
-  for (auto *propertyImpl : OID->property_impls())
-    if (propertyImpl->getPropertyImplementation() ==
-        ObjCPropertyImplDecl::Synthesize) {
-      auto addPropertyMethod = [&](const ObjCMethodDecl *accessor) {
-        if (accessor)
-          InstanceMethods.push_back(accessor);
-      };
-      addPropertyMethod(propertyImpl->getGetterMethodDecl());
-      addPropertyMethod(propertyImpl->getSetterMethodDecl());
-    }
-
   llvm::Constant *Properties = GeneratePropertyList(OID, ClassDecl);
 
   // Collect the names of referenced protocols
diff --git a/contrib/llvm-project/clang/lib/CodeGen/TargetInfo.cpp b/contrib/llvm-project/clang/lib/CodeGen/TargetInfo.cpp
index 9cd63ebe29ee..a061651d8b21 100644
--- a/contrib/llvm-project/clang/lib/CodeGen/TargetInfo.cpp
+++ b/contrib/llvm-project/clang/lib/CodeGen/TargetInfo.cpp
@@ -5471,6 +5471,11 @@ private:
 
   Address EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,
                     QualType Ty) const override {
+    llvm::Type *BaseTy = CGF.ConvertType(Ty);
+    if (isa<llvm::ScalableVectorType>(BaseTy))
+      llvm::report_fatal_error("Passing SVE types to variadic functions is "
+                               "currently not supported");
+
     return Kind == Win64 ? EmitMSVAArg(CGF, VAListAddr, Ty)
                          : isDarwinPCS() ? EmitDarwinVAArg(VAListAddr, Ty, CGF)
                                          : EmitAAPCSVAArg(VAListAddr, Ty, CGF);
@@ -10390,7 +10395,6 @@ bool RISCVABIInfo::detectFPCCEligibleStructHelper(QualType Ty, CharUnits CurOff,
       return false;
     Field1Ty = CGT.ConvertType(EltTy);
     Field1Off = CurOff;
-    assert(CurOff.isZero() && "Unexpected offset for first field");
     Field2Ty = Field1Ty;
     Field2Off = Field1Off + getContext().getTypeSizeInChars(EltTy);
     return true;
@@ -10485,7 +10489,7 @@ bool RISCVABIInfo::detectFPCCEligibleStruct(QualType Ty, llvm::Type *&Field1Ty,
     NeededArgFPRs++;
   else if (Field2Ty)
     NeededArgGPRs++;
-  return IsCandidate;
+  return true;
 }
 
 // Call getCoerceAndExpand for the two-element flattened struct described by
@@ -10511,15 +10515,15 @@ ABIArgInfo RISCVABIInfo::coerceAndExpandFPCCEligibleStruct(
 
   CharUnits Field2Align =
       CharUnits::fromQuantity(getDataLayout().getABITypeAlignment(Field2Ty));
-  CharUnits Field1Size =
+  CharUnits Field1End = Field1Off +
       CharUnits::fromQuantity(getDataLayout().getTypeStoreSize(Field1Ty));
-  CharUnits Field2OffNoPadNoPack = Field1Size.alignTo(Field2Align);
+  CharUnits Field2OffNoPadNoPack = Field1End.alignTo(Field2Align);
 
   CharUnits Padding = CharUnits::Zero();
   if (Field2Off > Field2OffNoPadNoPack)
     Padding = Field2Off - Field2OffNoPadNoPack;
-  else if (Field2Off != Field2Align && Field2Off > Field1Size)
-    Padding = Field2Off - Field1Size;
+  else if (Field2Off != Field2Align && Field2Off > Field1End)
+    Padding = Field2Off - Field1End;
 
   bool IsPacked = !Field2Off.isMultipleOf(Field2Align);
 
diff --git a/contrib/llvm-project/clang/lib/Driver/ToolChains/Cuda.cpp b/contrib/llvm-project/clang/lib/Driver/ToolChains/Cuda.cpp
index 110a0bca9bc1..ffc606dd554b 100644
--- a/contrib/llvm-project/clang/lib/Driver/ToolChains/Cuda.cpp
+++ b/contrib/llvm-project/clang/lib/Driver/ToolChains/Cuda.cpp
@@ -16,6 +16,7 @@
 #include "clang/Driver/Driver.h"
 #include "clang/Driver/DriverDiagnostic.h"
 #include "clang/Driver/Options.h"
+#include "llvm/ADT/Optional.h"
 #include "llvm/Option/ArgList.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/Host.h"
@@ -32,30 +33,81 @@ using namespace clang::driver::tools;
 using namespace clang;
 using namespace llvm::opt;
 
+namespace {
+struct CudaVersionInfo {
+  std::string DetectedVersion;
+  CudaVersion Version;
+};
 // Parses the contents of version.txt in an CUDA installation.  It should
 // contain one line of the from e.g. "CUDA Version 7.5.2".
-void CudaInstallationDetector::ParseCudaVersionFile(llvm::StringRef V) {
-  Version = CudaVersion::UNKNOWN;
+CudaVersionInfo parseCudaVersionFile(llvm::StringRef V) {
+  V = V.trim();
   if (!V.startswith("CUDA Version "))
-    return;
+    return {V.str(), CudaVersion::UNKNOWN};
   V = V.substr(strlen("CUDA Version "));
   SmallVector<StringRef,4> VersionParts;
   V.split(VersionParts, '.');
-  if (VersionParts.size() < 2)
-    return;
-  DetectedVersion = join_items(".", VersionParts[0], VersionParts[1]);
-  Version = CudaStringToVersion(DetectedVersion);
-  if (Version != CudaVersion::UNKNOWN) {
-    // TODO(tra): remove the warning once we have all features of 10.2 and 11.0
-    // implemented.
-    DetectedVersionIsNotSupported = Version > CudaVersion::LATEST_SUPPORTED;
-    return;
-  }
+  return {"version.txt: " + V.str() + ".",
+          VersionParts.size() < 2
+              ? CudaVersion::UNKNOWN
+              : CudaStringToVersion(
+                    join_items(".", VersionParts[0], VersionParts[1]))};
+}
 
-  Version = CudaVersion::LATEST_SUPPORTED;
-  DetectedVersionIsNotSupported = true;
+CudaVersion getCudaVersion(uint32_t raw_version) {
+  if (raw_version < 7050)
+    return CudaVersion::CUDA_70;
+  if (raw_version < 8000)
+    return CudaVersion::CUDA_75;
+  if (raw_version < 9000)
+    return CudaVersion::CUDA_80;
+  if (raw_version < 9010)
+    return CudaVersion::CUDA_90;
+  if (raw_version < 9020)
+    return CudaVersion::CUDA_91;
+  if (raw_version < 10000)
+    return CudaVersion::CUDA_92;
+  if (raw_version < 10010)
+    return CudaVersion::CUDA_100;
+  if (raw_version < 10020)
+    return CudaVersion::CUDA_101;
+  if (raw_version < 11000)
+    return CudaVersion::CUDA_102;
+  if (raw_version < 11010)
+    return CudaVersion::CUDA_110;
+  return CudaVersion::LATEST;
 }
 
+CudaVersionInfo parseCudaHFile(llvm::StringRef Input) {
+  // Helper lambda which skips the words if the line starts with them or returns
+  // None otherwise.
+  auto StartsWithWords =
+      [](llvm::StringRef Line,
+         const SmallVector<StringRef, 3> words) -> llvm::Optional<StringRef> {
+    for (StringRef word : words) {
+      if (!Line.consume_front(word))
+        return {};
+      Line = Line.ltrim();
+    }
+    return Line;
+  };
+
+  Input = Input.ltrim();
+  while (!Input.empty()) {
+    if (auto Line =
+            StartsWithWords(Input.ltrim(), {"#", "define", "CUDA_VERSION"})) {
+      uint32_t RawVersion;
+      Line->consumeInteger(10, RawVersion);
+      return {"cuda.h: CUDA_VERSION=" + Twine(RawVersion).str() + ".",
+              getCudaVersion(RawVersion)};
+    }
+    // Find next non-empty line.
+    Input = Input.drop_front(Input.find_first_of("\n\r")).ltrim();
+  }
+  return {"cuda.h: CUDA_VERSION not found.", CudaVersion::UNKNOWN};
+}
+} // namespace
+
 void CudaInstallationDetector::WarnIfUnsupportedVersion() {
   if (DetectedVersionIsNotSupported)
     D.Diag(diag::warn_drv_unknown_cuda_version)
@@ -152,16 +204,31 @@ CudaInstallationDetector::CudaInstallationDetector(
     else
       continue;
 
-    llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> VersionFile =
-        FS.getBufferForFile(InstallPath + "/version.txt");
-    if (!VersionFile) {
-      // CUDA 7.0 doesn't have a version.txt, so guess that's our version if
-      // version.txt isn't present.
-      Version = CudaVersion::CUDA_70;
-    } else {
-      ParseCudaVersionFile((*VersionFile)->getBuffer());
+    CudaVersionInfo VersionInfo = {"", CudaVersion::UNKNOWN};
+    if (auto VersionFile = FS.getBufferForFile(InstallPath + "/version.txt"))
+      VersionInfo = parseCudaVersionFile((*VersionFile)->getBuffer());
+    // If version file didn't give us the version, try to find it in cuda.h
+    if (VersionInfo.Version == CudaVersion::UNKNOWN)
+      if (auto CudaHFile = FS.getBufferForFile(InstallPath + "/include/cuda.h"))
+        VersionInfo = parseCudaHFile((*CudaHFile)->getBuffer());
+    // As the last resort, make an educated guess between CUDA-7.0, (which had
+    // no version.txt file and had old-style libdevice bitcode ) and an unknown
+    // recent CUDA version (no version.txt, new style bitcode).
+    if (VersionInfo.Version == CudaVersion::UNKNOWN) {
+      VersionInfo.Version = (FS.exists(LibDevicePath + "/libdevice.10.bc"))
+                                ? Version = CudaVersion::LATEST
+                                : Version = CudaVersion::CUDA_70;
+      VersionInfo.DetectedVersion =
+          "No version found in version.txt or cuda.h.";
     }
 
+    Version = VersionInfo.Version;
+    DetectedVersion = VersionInfo.DetectedVersion;
+
+    // TODO(tra): remove the warning once we have all features of 10.2
+    // and 11.0 implemented.
+    DetectedVersionIsNotSupported = Version > CudaVersion::LATEST_SUPPORTED;
+
     if (Version >= CudaVersion::CUDA_90) {
       // CUDA-9+ uses single libdevice file for all GPU variants.
       std::string FilePath = LibDevicePath + "/libdevice.10.bc";
diff --git a/contrib/llvm-project/clang/lib/Driver/ToolChains/Cuda.h b/contrib/llvm-project/clang/lib/Driver/ToolChains/Cuda.h
index 873eb7338a30..bbf272c468a5 100644
--- a/contrib/llvm-project/clang/lib/Driver/ToolChains/Cuda.h
+++ b/contrib/llvm-project/clang/lib/Driver/ToolChains/Cuda.h
@@ -78,9 +78,6 @@ public:
     return LibDeviceMap.lookup(Gpu);
   }
   void WarnIfUnsupportedVersion();
-
-private:
-  void ParseCudaVersionFile(llvm::StringRef V);
 };
 
 namespace tools {
diff --git a/contrib/llvm-project/clang/lib/Format/FormatToken.h b/contrib/llvm-project/clang/lib/Format/FormatToken.h
index d4287f53fde3..b132a3e84da5 100644
--- a/contrib/llvm-project/clang/lib/Format/FormatToken.h
+++ b/contrib/llvm-project/clang/lib/Format/FormatToken.h
@@ -183,12 +183,6 @@ struct FormatToken {
   /// before the token.
   bool MustBreakBefore = false;
 
-  /// Whether to not align across this token
-  ///
-  /// This happens for example when a preprocessor directive ended directly
-  /// before the token, but very rarely otherwise.
-  bool MustBreakAlignBefore = false;
-
   /// The raw text of the token.
   ///
   /// Contains the raw token text without leading whitespace and without leading
diff --git a/contrib/llvm-project/clang/lib/Format/UnwrappedLineParser.cpp b/contrib/llvm-project/clang/lib/Format/UnwrappedLineParser.cpp
index a37386425aae..ea8a41cfba82 100644
--- a/contrib/llvm-project/clang/lib/Format/UnwrappedLineParser.cpp
+++ b/contrib/llvm-project/clang/lib/Format/UnwrappedLineParser.cpp
@@ -3037,7 +3037,6 @@ void UnwrappedLineParser::readToken(int LevelDifference) {
       }
       FormatTok = Tokens->getNextToken();
       FormatTok->MustBreakBefore = true;
-      FormatTok->MustBreakAlignBefore = true;
     }
 
     if (!PPStack.empty() && (PPStack.back().Kind == PP_Unreachable) &&
@@ -3062,7 +3061,6 @@ void UnwrappedLineParser::pushToken(FormatToken *Tok) {
   Line->Tokens.push_back(UnwrappedLineNode(Tok));
   if (MustBreakBeforeNextToken) {
     Line->Tokens.back().Tok->MustBreakBefore = true;
-    Line->Tokens.back().Tok->MustBreakAlignBefore = true;
     MustBreakBeforeNextToken = false;
   }
 }
diff --git a/contrib/llvm-project/clang/lib/Format/WhitespaceManager.cpp b/contrib/llvm-project/clang/lib/Format/WhitespaceManager.cpp
index 32e0b685ea0f..3a265bd09168 100644
--- a/contrib/llvm-project/clang/lib/Format/WhitespaceManager.cpp
+++ b/contrib/llvm-project/clang/lib/Format/WhitespaceManager.cpp
@@ -411,11 +411,9 @@ static unsigned AlignTokens(const FormatStyle &Style, F &&Matches,
     if (Changes[i].NewlinesBefore != 0) {
       CommasBeforeMatch = 0;
       EndOfSequence = i;
-      // If there is a blank line, there is a forced-align-break (eg,
-      // preprocessor), or if the last line didn't contain any matching token,
-      // the sequence ends here.
-      if (Changes[i].NewlinesBefore > 1 ||
-          Changes[i].Tok->MustBreakAlignBefore || !FoundMatchOnLine)
+      // If there is a blank line, or if the last line didn't contain any
+      // matching token, the sequence ends here.
+      if (Changes[i].NewlinesBefore > 1 || !FoundMatchOnLine)
         AlignCurrentSequence();
 
       FoundMatchOnLine = false;
@@ -726,8 +724,6 @@ void WhitespaceManager::alignTrailingComments() {
     if (Changes[i].StartOfBlockComment)
       continue;
     Newlines += Changes[i].NewlinesBefore;
-    if (Changes[i].Tok->MustBreakAlignBefore)
-      BreakBeforeNext = true;
     if (!Changes[i].IsTrailingComment)
       continue;
 
diff --git a/contrib/llvm-project/clang/lib/Headers/__clang_cuda_complex_builtins.h b/contrib/llvm-project/clang/lib/Headers/__clang_cuda_complex_builtins.h
index 8c10ff6b461f..d924487ab285 100644
--- a/contrib/llvm-project/clang/lib/Headers/__clang_cuda_complex_builtins.h
+++ b/contrib/llvm-project/clang/lib/Headers/__clang_cuda_complex_builtins.h
@@ -16,7 +16,7 @@
 // to work with CUDA and OpenMP target offloading [in C and C++ mode].)
 
 #pragma push_macro("__DEVICE__")
-#ifdef _OPENMP
+#ifdef __OPENMP_NVPTX__
 #pragma omp declare target
 #define __DEVICE__ __attribute__((noinline, nothrow, cold, weak))
 #else
@@ -26,7 +26,7 @@
 // To make the algorithms available for C and C++ in CUDA and OpenMP we select
 // different but equivalent function versions. TODO: For OpenMP we currently
 // select the native builtins as the overload support for templates is lacking.
-#if !defined(_OPENMP)
+#if !defined(__OPENMP_NVPTX__)
 #define _ISNANd std::isnan
 #define _ISNANf std::isnan
 #define _ISINFd std::isinf
@@ -250,7 +250,7 @@ __DEVICE__ float _Complex __divsc3(float __a, float __b, float __c, float __d) {
 #undef _LOGBd
 #undef _LOGBf
 
-#ifdef _OPENMP
+#ifdef __OPENMP_NVPTX__
 #pragma omp end declare target
 #endif
 
diff --git a/contrib/llvm-project/clang/lib/Headers/cuda_wrappers/new b/contrib/llvm-project/clang/lib/Headers/cuda_wrappers/new
index f49811c5a57c..7f255314056a 100644
--- a/contrib/llvm-project/clang/lib/Headers/cuda_wrappers/new
+++ b/contrib/llvm-project/clang/lib/Headers/cuda_wrappers/new
@@ -26,6 +26,13 @@
 
 #include_next <new>
 
+#if !defined(__device__)
+// The header has been included too early from the standard C++ library
+// and CUDA-specific macros are not available yet.
+// Undo the include guard and try again later.
+#undef __CLANG_CUDA_WRAPPERS_NEW
+#else
+
 #pragma push_macro("CUDA_NOEXCEPT")
 #if __cplusplus >= 201103L
 #define CUDA_NOEXCEPT noexcept
@@ -95,4 +102,5 @@ __device__ inline void operator delete[](void *, void *) CUDA_NOEXCEPT {}
 
 #pragma pop_macro("CUDA_NOEXCEPT")
 
+#endif // __device__
 #endif // include guard
diff --git a/contrib/llvm-project/clang/lib/Headers/openmp_wrappers/complex b/contrib/llvm-project/clang/lib/Headers/openmp_wrappers/complex
index 1ed0b14879ef..d8dcd41670ee 100644
--- a/contrib/llvm-project/clang/lib/Headers/openmp_wrappers/complex
+++ b/contrib/llvm-project/clang/lib/Headers/openmp_wrappers/complex
@@ -18,7 +18,9 @@
 #include <cmath>
 
 #define __CUDA__
+#define __OPENMP_NVPTX__
 #include <__clang_cuda_complex_builtins.h>
+#undef __OPENMP_NVPTX__
 #endif
 
 // Grab the host header too.
diff --git a/contrib/llvm-project/clang/lib/Headers/openmp_wrappers/complex.h b/contrib/llvm-project/clang/lib/Headers/openmp_wrappers/complex.h
index 829c7a785725..00d278548f82 100644
--- a/contrib/llvm-project/clang/lib/Headers/openmp_wrappers/complex.h
+++ b/contrib/llvm-project/clang/lib/Headers/openmp_wrappers/complex.h
@@ -18,7 +18,9 @@
 #include <math.h>
 
 #define __CUDA__
+#define __OPENMP_NVPTX__
 #include <__clang_cuda_complex_builtins.h>
+#undef __OPENMP_NVPTX__
 #endif
 
 // Grab the host header too.
diff --git a/contrib/llvm-project/clang/lib/Sema/SemaChecking.cpp b/contrib/llvm-project/clang/lib/Sema/SemaChecking.cpp
index b00d2ff5f1d5..1bf04d9cb4f2 100644
--- a/contrib/llvm-project/clang/lib/Sema/SemaChecking.cpp
+++ b/contrib/llvm-project/clang/lib/Sema/SemaChecking.cpp
@@ -1573,11 +1573,6 @@ Sema::CheckBuiltinFunctionCall(FunctionDecl *FDecl, unsigned BuiltinID,
     if (SemaBuiltinSetjmp(TheCall))
       return ExprError();
     break;
-  case Builtin::BI_setjmp:
-  case Builtin::BI_setjmpex:
-    if (checkArgCount(*this, TheCall, 1))
-      return true;
-    break;
   case Builtin::BI__builtin_classify_type:
     if (checkArgCount(*this, TheCall, 1)) return true;
     TheCall->setType(Context.IntTy);
diff --git a/contrib/llvm-project/clang/lib/Sema/SemaConcept.cpp b/contrib/llvm-project/clang/lib/Sema/SemaConcept.cpp
old mode 100644
new mode 100755
diff --git a/contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp b/contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp
index 2703d9876f85..5b0417fa8859 100644
--- a/contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp
+++ b/contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp
@@ -2107,7 +2107,8 @@ NamedDecl *Sema::LazilyCreateBuiltin(IdentifierInfo *II, unsigned ID,
 
     // If we have a builtin without an associated type we should not emit a
     // warning when we were not able to find a type for it.
-    if (Error == ASTContext::GE_Missing_type)
+    if (Error == ASTContext::GE_Missing_type ||
+        Context.BuiltinInfo.allowTypeMismatch(ID))
       return nullptr;
 
     // If we could not find a type for setjmp it is because the jmp_buf type was
*** 3019 LINES SKIPPED ***