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).
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
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 ***