From nobody Sun Jul 23 18:27:01 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4R8BbB4BSDz4p6BP; Sun, 23 Jul 2023 18:27:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4R8BbB3Gt1z3RJp; Sun, 23 Jul 2023 18:27:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1690136822; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NKpURGIuAXxMROmHZVjpgQIUAcrJsFMdF6QT2b1oZ9c=; b=sFyioUC2tAGLKGPik+dmF7XJPpbdV/34lXUkmn2MySsAUCjCHGY/7graZbOvFrAuV+IPPM OUN8BGg8b4/XnGt3SMnAtawOomxxgPfnTfetLhqe664GEFtCHGbgEwoNlkCAnIU829AuX/ M39vmiPy/KBJq9s0gO0tzzn16S2K9WGpCblpqqdhoF0XMGAvPijBNcNNFu5v/pIn4CJY6A 0tKBVJBQ7ip4t9pjIZUP5iUHb6OcfLitAkuR2hO6NjQRdYKPqzAC5QXqGYBlU4YXBmEcuK VTLBJ9Ao1crKTt8uec5rREPqes2ujmQtNOV6W9Y/tr7S7sj1FaoRpNlxYrHLsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1690136822; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NKpURGIuAXxMROmHZVjpgQIUAcrJsFMdF6QT2b1oZ9c=; b=Ajhbnid5ndnXmuAUYo8Ir7IcPsclbVv9WpL494OBqvDDeHPrSapkn8khwYz2u5QoxFhV25 BLq2b5G47cc/0PN2jjGk6TdX1tMJ6fR4XTEy80PELU9t0fgBIgn87iv7nBq6S+Qy0wQMvJ tGeP4UBbzin8x75YPasZdYyp30UminAYTWja2dNgY7XtfX9PdtJYvZSFC3Up/nKunqLrbW CBtWdwXNFJTXvMMM+lN3rZzSvW7IFUcQsI4nAEibMHC3FSDBiwB5O5gyjI9Y/7mtlG24u9 8HY1G6tnXeGBFTZva6UaW5r032Sdjo+ZaAeDCeaplnd+YFIeRhiwDoUGovqalg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1690136822; a=rsa-sha256; cv=none; b=O6kT1xXzK51GNRvHnwlGluHXWy9kYfb/Yfk6OfB7+0ROE7zA888RaUfTwccC1oO3DuZ/uZ WQAsB+bSDvEqRD+Yw3PWYfax6ss9l6yaJ3S4Lvd7blHHYpVDST5TUhDxzypIjdV1zrArCe rYboiAewU6NWnH2l6RmgbLr231bSZnhCxQWbP+Av9TIkYVOTJ7ZG3Bq1/S7z+QqslY3lx6 H0IVLIJzLnsbHdjQAOifVsKK8dh/6HmQSVYJ8yiEzeaQe9IHPpXrhAQOTHn9KItvjs69GN mSMWAAmMwM1XaBizcpbQL8vTOw1ozY4Z6fojbIea80u258KIxfI64b5s2D9Duw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4R8BbB2HcjzmKp; Sun, 23 Jul 2023 18:27:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 36NIR2cj058644; Sun, 23 Jul 2023 18:27:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 36NIR1w8058643; Sun, 23 Jul 2023 18:27:01 GMT (envelope-from git) Date: Sun, 23 Jul 2023 18:27:01 GMT Message-Id: <202307231827.36NIR1w8058643@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: 49071a9c083d - stable/13 - Merge llvm-project release/16.x llvmorg-16.0.1-0-gcd89023f7979 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 49071a9c083dd7841f8cdf5a1f7023a945262e2d Auto-Submitted: auto-generated The branch stable/13 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=49071a9c083dd7841f8cdf5a1f7023a945262e2d commit 49071a9c083dd7841f8cdf5a1f7023a945262e2d Author: Dimitry Andric AuthorDate: 2023-04-17 17:14:23 +0000 Commit: Dimitry Andric CommitDate: 2023-07-23 17:38:08 +0000 Merge llvm-project release/16.x llvmorg-16.0.1-0-gcd89023f7979 This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-16.0.1-0-gcd89023f7979 (aka 16.0.1 release). PR: 271047 MFC after: 1 month (cherry picked from commit 1ac55f4cb0001fed92329746c730aa9a947c09a5) --- contrib/llvm-project/clang/include/clang-c/Index.h | 2 +- .../include/clang/Basic/DiagnosticParseKinds.td | 7 +- .../include/clang/Basic/DiagnosticSemaKinds.td | 5 +- .../clang/include/clang/Basic/arm_sve.td | 41 +- .../clang/include/clang/Basic/riscv_vector.td | 102 +- .../clang/include/clang/Driver/Options.td | 2 + .../clang/include/clang/Format/Format.h | 39 +- .../clang/include/clang/Lex/Preprocessor.h | 184 +- .../clang/include/clang/Sema/DeclSpec.h | 10 +- .../llvm-project/clang/include/clang/Sema/Sema.h | 38 +- .../clang/include/clang/Sema/SemaInternal.h | 4 +- .../StaticAnalyzer/Core/PathSensitive/SMTConv.h | 4 +- .../include/clang/Support/RISCVVIntrinsicUtils.h | 46 +- .../DependencyScanning/DependencyScanningService.h | 6 +- .../DependencyScanning/DependencyScanningTool.h | 27 +- .../DependencyScanning/DependencyScanningWorker.h | 6 +- .../DependencyScanning/ModuleDepCollector.h | 29 +- .../llvm-project/clang/lib/AST/ExprConstant.cpp | 2 +- contrib/llvm-project/clang/lib/AST/Type.cpp | 12 +- .../clang/lib/Basic/Targets/AArch64.cpp | 6 +- .../llvm-project/clang/lib/Basic/Targets/ARM.cpp | 3 +- contrib/llvm-project/clang/lib/Basic/Targets/PPC.h | 8 +- .../llvm-project/clang/lib/Basic/Targets/RISCV.cpp | 4 +- .../llvm-project/clang/lib/Basic/Targets/X86.cpp | 8 +- contrib/llvm-project/clang/lib/CodeGen/CGCXXABI.h | 5 +- contrib/llvm-project/clang/lib/CodeGen/CGCall.cpp | 4 +- .../llvm-project/clang/lib/CodeGen/CGExprCXX.cpp | 11 +- .../clang/lib/CodeGen/MicrosoftCXXABI.cpp | 21 +- .../llvm-project/clang/lib/CodeGen/TargetInfo.cpp | 98 +- contrib/llvm-project/clang/lib/Driver/Driver.cpp | 4 +- .../clang/lib/Driver/SanitizerArgs.cpp | 4 +- .../clang/lib/Driver/ToolChains/Arch/PPC.cpp | 93 +- .../clang/lib/Driver/ToolChains/Arch/PPC.h | 2 + .../clang/lib/Driver/ToolChains/Clang.cpp | 11 +- .../clang/lib/Driver/ToolChains/Cuda.cpp | 15 +- .../clang/lib/Driver/ToolChains/FreeBSD.cpp | 71 +- .../clang/lib/Driver/ToolChains/FreeBSD.h | 14 +- .../clang/lib/Driver/ToolChains/Fuchsia.cpp | 2 +- .../clang/lib/Driver/ToolChains/MinGW.cpp | 10 + contrib/llvm-project/clang/lib/Format/Format.cpp | 8 +- .../lib/Format/IntegerLiteralSeparatorFixer.cpp | 56 +- .../lib/Format/IntegerLiteralSeparatorFixer.h | 3 +- .../clang/lib/Format/QualifierAlignmentFixer.cpp | 5 +- .../clang/lib/Format/TokenAnnotator.cpp | 3 + .../clang/lib/Format/UnwrappedLineParser.cpp | 31 +- .../clang/lib/Frontend/CompilerInstance.cpp | 9 +- contrib/llvm-project/clang/lib/Headers/immintrin.h | 4 +- contrib/llvm-project/clang/lib/Headers/smmintrin.h | 2 +- .../clang/lib/Lex/PPMacroExpansion.cpp | 37 +- .../llvm-project/clang/lib/Lex/Preprocessor.cpp | 44 +- contrib/llvm-project/clang/lib/Lex/TokenLexer.cpp | 12 +- contrib/llvm-project/clang/lib/Parse/ParseDecl.cpp | 11 +- .../llvm-project/clang/lib/Parse/ParseDeclCXX.cpp | 5 +- contrib/llvm-project/clang/lib/Parse/ParseExpr.cpp | 8 - contrib/llvm-project/clang/lib/Sema/SemaAttr.cpp | 17 - .../llvm-project/clang/lib/Sema/SemaConcept.cpp | 27 +- .../llvm-project/clang/lib/Sema/SemaCoroutine.cpp | 4 +- contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp | 34 +- .../llvm-project/clang/lib/Sema/SemaDeclCXX.cpp | 3 +- .../llvm-project/clang/lib/Sema/SemaExprCXX.cpp | 10 +- contrib/llvm-project/clang/lib/Sema/SemaModule.cpp | 13 +- .../clang/lib/Sema/SemaRISCVVectorLookup.cpp | 5 +- .../llvm-project/clang/lib/Sema/SemaTemplate.cpp | 11 +- .../clang/lib/Sema/SemaTemplateDeduction.cpp | 7 +- .../clang/lib/Sema/SemaTemplateVariadic.cpp | 234 ++- contrib/llvm-project/clang/lib/Sema/SemaType.cpp | 6 - .../llvm-project/clang/lib/Sema/TreeTransform.h | 3 +- .../Checkers/ReturnPointerRangeChecker.cpp | 4 + .../clang/lib/StaticAnalyzer/Core/BugReporter.cpp | 2 +- .../StaticAnalyzer/Core/RangeConstraintManager.cpp | 13 +- .../clang/lib/StaticAnalyzer/Core/RegionStore.cpp | 8 +- .../clang/lib/Support/RISCVVIntrinsicUtils.cpp | 90 +- .../DependencyScanning/DependencyScanningTool.cpp | 150 +- .../DependencyScanningWorker.cpp | 4 +- .../DependencyScanning/ModuleDepCollector.cpp | 33 +- .../clang/utils/TableGen/RISCVVEmitter.cpp | 5 +- .../compiler-rt/lib/builtins/cpu_model.c | 3 + .../sanitizer_common/sanitizer_linux_libcdep.cpp | 1 + .../sanitizer_common/sanitizer_symbolizer_win.cpp | 2 - .../include/__algorithm/ranges_binary_search.h | 4 +- .../llvm-project/libcxx/include/__algorithm/sort.h | 578 ++---- contrib/llvm-project/libcxx/include/__config | 38 +- .../libcxx/include/__expected/expected.h | 7 +- .../libcxx/include/__format/concepts.h | 5 +- .../libcxx/include/__format/format_functions.h | 8 +- .../include/__format/formatter_floating_point.h | 3 +- .../libcxx/include/__functional/function.h | 38 +- .../libcxx/include/__functional/hash.h | 4 + .../libcxx/include/__memory/construct_at.h | 10 + .../libcxx/include/__memory/shared_ptr.h | 218 ++- .../include/__memory/uninitialized_algorithms.h | 34 +- .../__memory_resource/polymorphic_allocator.h | 2 +- .../libcxx/include/__ranges/elements_view.h | 118 +- .../libcxx/include/__ranges/filter_view.h | 50 +- .../libcxx/include/__ranges/iota_view.h | 432 ++--- .../libcxx/include/__ranges/istream_view.h | 26 +- .../libcxx/include/__ranges/join_view.h | 96 +- .../libcxx/include/__ranges/split_view.h | 52 +- .../libcxx/include/__ranges/take_while_view.h | 30 +- .../libcxx/include/__ranges/transform_view.h | 127 +- .../libcxx/include/__type_traits/add_pointer.h | 4 +- .../libcxx/include/__type_traits/remove_pointer.h | 4 +- .../libcxx/include/__utility/exception_guard.h | 47 +- contrib/llvm-project/libcxx/include/any | 10 +- .../libcxx/include/module.modulemap.in | 16 +- .../llvm-project/libcxx/include/source_location | 6 +- contrib/llvm-project/libcxx/include/version | 4 +- .../libunwind/include/libunwind.modulemap | 3 + contrib/llvm-project/libunwind/include/unwind.h | 4 +- .../libunwind/src/DwarfInstructions.hpp | 3 +- .../libunwind/src/UnwindRegistersRestore.S | 18 + .../libunwind/src/UnwindRegistersSave.S | 11 + contrib/llvm-project/lld/COFF/MinGW.cpp | 3 + contrib/llvm-project/lld/ELF/Arch/RISCV.cpp | 6 +- contrib/llvm-project/lld/ELF/ICF.cpp | 10 +- contrib/llvm-project/lld/ELF/Relocations.cpp | 10 +- contrib/llvm-project/lld/ELF/SymbolTable.cpp | 4 +- contrib/llvm-project/lld/docs/ReleaseNotes.rst | 17 + .../Plugins/Language/CPlusPlus/Coroutines.cpp | 164 +- .../source/Plugins/Language/CPlusPlus/Coroutines.h | 7 +- .../Plugins/ObjectFile/ELF/ObjectFileELF.cpp | 143 +- .../NativeRegisterContextFreeBSD_mips64.cpp | 4 +- .../NativeRegisterContextFreeBSD_powerpc.cpp | 4 +- .../llvm/include/llvm/Analysis/ScalarEvolution.h | 11 +- .../llvm/DebugInfo/LogicalView/Core/LVElement.h | 1 - .../llvm/DebugInfo/LogicalView/Core/LVStringPool.h | 7 - .../llvm/DebugInfo/LogicalView/Core/LVSupport.h | 4 + .../llvm/include/llvm/Debuginfod/Debuginfod.h | 6 +- .../llvm/include/llvm/IR/IntrinsicsAArch64.td | 31 + .../llvm/ProfileData/Coverage/CoverageMapping.h | 16 +- .../ProfileData/Coverage/CoverageMappingReader.h | 3 +- .../llvm/include/llvm/Support/ExitCodes.h | 6 +- .../llvm/include/llvm/Support/RISCVISAInfo.h | 6 + .../llvm/include/llvm/Support/Signals.h | 11 +- .../include/llvm/TargetParser/RISCVTargetParser.h | 5 + .../llvm/include/llvm/TargetParser/Triple.h | 8 + .../llvm/include/llvm/Transforms/IPO/OpenMPOpt.h | 12 + .../llvm/lib/Analysis/LazyValueInfo.cpp | 13 +- .../llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 2 + .../llvm-project/llvm/lib/CodeGen/IfConversion.cpp | 9 + .../llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp | 13 +- .../llvm/lib/CodeGen/TargetLoweringBase.cpp | 4 +- .../lib/DebugInfo/LogicalView/Core/LVSupport.cpp | 6 + .../llvm/lib/DebugInfo/Symbolize/Symbolize.cpp | 27 +- .../llvm/lib/Debuginfod/Debuginfod.cpp | 19 +- .../lib/ExecutionEngine/JITLink/ELF_aarch64.cpp | 1 + .../llvm/lib/ExecutionEngine/Orc/Layer.cpp | 4 + contrib/llvm-project/llvm/lib/IR/AutoUpgrade.cpp | 35 + contrib/llvm-project/llvm/lib/IR/Verifier.cpp | 6 - .../llvm-project/llvm/lib/Object/ELFObjectFile.cpp | 7 +- .../llvm/lib/Passes/PassBuilderPipelines.cpp | 14 +- .../llvm-project/llvm/lib/Passes/PassRegistry.def | 1 + .../lib/ProfileData/Coverage/CoverageMapping.cpp | 110 +- .../ProfileData/Coverage/CoverageMappingReader.cpp | 19 +- .../lib/Support/BLAKE3/blake3_avx2_x86-64_unix.S | 2 + .../BLAKE3/blake3_avx2_x86-64_windows_gnu.S | 2 + .../BLAKE3/blake3_avx2_x86-64_windows_msvc.asm | 12 +- .../lib/Support/BLAKE3/blake3_avx512_x86-64_unix.S | 2 + .../BLAKE3/blake3_avx512_x86-64_windows_gnu.S | 2 + .../BLAKE3/blake3_avx512_x86-64_windows_msvc.asm | 36 +- .../llvm/lib/Support/BLAKE3/blake3_impl.h | 10 +- .../lib/Support/BLAKE3/blake3_sse2_x86-64_unix.S | 2 + .../BLAKE3/blake3_sse2_x86-64_windows_gnu.S | 2 + .../BLAKE3/blake3_sse2_x86-64_windows_msvc.asm | 36 +- .../lib/Support/BLAKE3/blake3_sse41_x86-64_unix.S | 2 + .../BLAKE3/blake3_sse41_x86-64_windows_gnu.S | 2 + .../BLAKE3/blake3_sse41_x86-64_windows_msvc.asm | 36 +- .../llvm/lib/Support/BLAKE3/llvm_blake3_prefix.h | 41 + contrib/llvm-project/llvm/lib/Support/Parallel.cpp | 8 +- .../llvm-project/llvm/lib/Support/RISCVISAInfo.cpp | 63 + .../llvm-project/llvm/lib/Support/Windows/Path.inc | 2 - .../llvm/lib/Support/Windows/Signals.inc | 23 +- contrib/llvm-project/llvm/lib/Support/Z3Solver.cpp | 2 +- .../llvm-project/llvm/lib/Support/raw_ostream.cpp | 12 +- .../llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td | 14 +- .../llvm/lib/Target/AArch64/SVEInstrFormats.td | 52 +- .../llvm/lib/Target/ARM/ARMFrameLowering.cpp | 28 + .../llvm-project/llvm/lib/Target/BPF/BTFDebug.cpp | 46 +- .../llvm-project/llvm/lib/Target/BPF/BTFDebug.h | 3 + .../Target/Hexagon/AsmParser/HexagonAsmParser.cpp | 2 +- .../llvm/lib/Target/PowerPC/PPCTargetMachine.cpp | 3 +- .../Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp | 10 + .../llvm/lib/Target/RISCV/RISCVISelLowering.cpp | 22 + .../llvm/lib/Target/RISCV/RISCVISelLowering.h | 4 + .../llvm/lib/Target/RISCV/RISCVSExtWRemoval.cpp | 5 +- .../llvm/lib/Target/RISCV/RISCVSubtarget.cpp | 3 + .../llvm/lib/Target/RISCV/RISCVSubtarget.h | 2 + .../Target/Sparc/MCTargetDesc/SparcInstPrinter.cpp | 2 + .../llvm/lib/Target/Sparc/SparcInstrInfo.cpp | 121 +- .../llvm/lib/Target/Sparc/SparcInstrInfo.h | 9 + .../llvm/lib/Target/Sparc/SparcInstrInfo.td | 9 +- .../llvm/lib/Target/Sparc/SparcTargetMachine.cpp | 7 + contrib/llvm-project/llvm/lib/Target/X86/X86.td | 3 +- .../llvm/lib/Target/X86/X86CallingConv.td | 4 +- .../llvm/lib/Target/X86/X86ISelDAGToDAG.cpp | 5 +- .../llvm/lib/Target/X86/X86ISelLowering.cpp | 101 +- .../llvm/lib/Target/X86/X86ISelLowering.h | 6 + .../llvm/lib/Target/X86/X86InstrCompiler.td | 6 +- .../llvm/lib/Target/X86/X86InstrFPStack.td | 15 + .../llvm/lib/Target/X86/X86InstrSSE.td | 17 + .../llvm/lib/Target/X86/X86PfmCounters.td | 15 +- .../llvm/lib/Target/X86/X86ScheduleZnver4.td | 1957 ++++++++++++++++++++ .../llvm/lib/TargetParser/ARMTargetParser.cpp | 2 +- .../llvm/lib/TargetParser/RISCVTargetParser.cpp | 6 + .../llvm/lib/Transforms/IPO/Attributor.cpp | 22 +- .../lib/Transforms/IPO/AttributorAttributes.cpp | 32 +- .../llvm/lib/Transforms/IPO/OpenMPOpt.cpp | 79 +- .../Transforms/InstCombine/InstCombineCompares.cpp | 16 +- .../llvm/lib/Transforms/Utils/Local.cpp | 3 +- .../lib/Transforms/Vectorize/LoopVectorize.cpp | 15 +- .../llvm/tools/llvm-cov/CodeCoverage.cpp | 32 +- .../llvm/tools/llvm-objdump/ObjdumpOpts.td | 4 +- .../llvm/tools/llvm-objdump/llvm-objdump.cpp | 4 +- .../llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp | 8 +- contrib/llvm-project/openmp/runtime/src/kmp_os.h | 2 +- .../openmp/runtime/src/kmp_runtime.cpp | 6 +- .../openmp/runtime/src/kmp_safe_c_api.h | 2 + .../llvm-project/openmp/runtime/src/kmp_str.cpp | 8 +- .../llvm-project/openmp/runtime/src/z_Linux_asm.S | 5 +- lib/clang/include/VCSVersion.inc | 6 +- lib/clang/include/clang/Basic/Version.inc | 6 +- lib/clang/include/lld/Common/Version.inc | 2 +- lib/clang/include/lldb/Version/Version.inc | 6 +- lib/clang/include/llvm/Config/config.h | 9 +- lib/clang/include/llvm/Config/llvm-config.h | 4 +- lib/clang/include/llvm/Support/VCSRevision.h | 2 +- usr.bin/clang/llvm-cov/Makefile | 1 + 227 files changed, 5335 insertions(+), 2401 deletions(-) diff --git a/contrib/llvm-project/clang/include/clang-c/Index.h b/contrib/llvm-project/clang/include/clang-c/Index.h index fd758ddde085..a3e54285f89f 100644 --- a/contrib/llvm-project/clang/include/clang-c/Index.h +++ b/contrib/llvm-project/clang/include/clang-c/Index.h @@ -34,7 +34,7 @@ * compatible, thus CINDEX_VERSION_MAJOR is expected to remain stable. */ #define CINDEX_VERSION_MAJOR 0 -#define CINDEX_VERSION_MINOR 62 +#define CINDEX_VERSION_MINOR 63 #define CINDEX_VERSION_ENCODE(major, minor) (((major)*10000) + ((minor)*1)) diff --git a/contrib/llvm-project/clang/include/clang/Basic/DiagnosticParseKinds.td b/contrib/llvm-project/clang/include/clang/Basic/DiagnosticParseKinds.td index c367a34b762b..e99beb3a7636 100644 --- a/contrib/llvm-project/clang/include/clang/Basic/DiagnosticParseKinds.td +++ b/contrib/llvm-project/clang/include/clang/Basic/DiagnosticParseKinds.td @@ -1052,7 +1052,7 @@ def err_lambda_template_parameter_list_empty : Error< // C++2b static lambdas def err_static_lambda: ExtWarn< "static lambdas are a C++2b extension">, InGroup; -def warn_cxx20_compat_static_lambda: ExtWarn< +def warn_cxx20_compat_static_lambda : Warning< "static lambdas are incompatible with C++ standards before C++2b">, InGroup, DefaultIgnore; def err_static_mutable_lambda : Error< @@ -1607,11 +1607,6 @@ def err_import_in_wrong_fragment : Error< def err_export_empty : Error<"export declaration cannot be empty">; } -def ext_offsetof_member_designator : Extension< - "using %select{a member access expression|an array subscript expression}0 " - "within '%select{__builtin_offsetof|offsetof}1' is a Clang extension">, - InGroup; - let CategoryName = "Generics Issue" in { def err_objc_expected_type_parameter : Error< diff --git a/contrib/llvm-project/clang/include/clang/Basic/DiagnosticSemaKinds.td b/contrib/llvm-project/clang/include/clang/Basic/DiagnosticSemaKinds.td index de56e3e1566b..bfe582d8252f 100644 --- a/contrib/llvm-project/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/contrib/llvm-project/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -9138,8 +9138,9 @@ def err_operator_overload_static : Error< def err_operator_overload_default_arg : Error< "parameter of overloaded %0 cannot have a default argument">; -def ext_subscript_overload : ExtWarn< - "overloaded %0 with %select{no|a defaulted|more than one}1 parameter is a C++2b extension">, InGroup, DefaultIgnore; +def ext_subscript_overload : Warning< + "overloaded %0 with %select{no|a defaulted|more than one}1 parameter is a " + "C++2b extension">, InGroup, DefaultIgnore; def error_subscript_overload : Error< "overloaded %0 cannot have %select{no|a defaulted|more than one}1 parameter before C++2b">; diff --git a/contrib/llvm-project/clang/include/clang/Basic/arm_sve.td b/contrib/llvm-project/clang/include/clang/Basic/arm_sve.td index e910036117b7..e547bbd34b5e 100644 --- a/contrib/llvm-project/clang/include/clang/Basic/arm_sve.td +++ b/contrib/llvm-project/clang/include/clang/Basic/arm_sve.td @@ -1249,16 +1249,37 @@ def SVZIP1_BF16 : SInst<"svzip1[_{d}]", "ddd", "b", MergeNone, "aarch64_sve def SVZIP2_BF16 : SInst<"svzip2[_{d}]", "ddd", "b", MergeNone, "aarch64_sve_zip2">; } -def SVREV_B : SInst<"svrev_{d}", "PP", "PcPsPiPl", MergeNone, "aarch64_sve_rev">; -def SVSEL_B : SInst<"svsel[_b]", "PPPP", "Pc", MergeNone, "aarch64_sve_sel">; -def SVTRN1_B : SInst<"svtrn1_{d}", "PPP", "PcPsPiPl", MergeNone, "aarch64_sve_trn1">; -def SVTRN2_B : SInst<"svtrn2_{d}", "PPP", "PcPsPiPl", MergeNone, "aarch64_sve_trn2">; -def SVPUNPKHI : SInst<"svunpkhi[_b]", "PP", "Pc", MergeNone, "aarch64_sve_punpkhi">; -def SVPUNPKLO : SInst<"svunpklo[_b]", "PP", "Pc", MergeNone, "aarch64_sve_punpklo">; -def SVUZP1_B : SInst<"svuzp1_{d}", "PPP", "PcPsPiPl", MergeNone, "aarch64_sve_uzp1">; -def SVUZP2_B : SInst<"svuzp2_{d}", "PPP", "PcPsPiPl", MergeNone, "aarch64_sve_uzp2">; -def SVZIP1_B : SInst<"svzip1_{d}", "PPP", "PcPsPiPl", MergeNone, "aarch64_sve_zip1">; -def SVZIP2_B : SInst<"svzip2_{d}", "PPP", "PcPsPiPl", MergeNone, "aarch64_sve_zip2">; +def SVREV_B8 : SInst<"svrev_b8", "PP", "Pc", MergeNone, "aarch64_sve_rev">; +def SVREV_B16 : SInst<"svrev_b16", "PP", "Pc", MergeNone, "aarch64_sve_rev_b16", [IsOverloadNone]>; +def SVREV_B32 : SInst<"svrev_b32", "PP", "Pc", MergeNone, "aarch64_sve_rev_b32", [IsOverloadNone]>; +def SVREV_B64 : SInst<"svrev_b64", "PP", "Pc", MergeNone, "aarch64_sve_rev_b64", [IsOverloadNone]>; +def SVSEL_B : SInst<"svsel[_b]", "PPPP", "Pc", MergeNone, "aarch64_sve_sel">; +def SVTRN1_B8 : SInst<"svtrn1_b8", "PPP", "Pc", MergeNone, "aarch64_sve_trn1">; +def SVTRN1_B16 : SInst<"svtrn1_b16", "PPP", "Pc", MergeNone, "aarch64_sve_trn1_b16", [IsOverloadNone]>; +def SVTRN1_B32 : SInst<"svtrn1_b32", "PPP", "Pc", MergeNone, "aarch64_sve_trn1_b32", [IsOverloadNone]>; +def SVTRN1_B64 : SInst<"svtrn1_b64", "PPP", "Pc", MergeNone, "aarch64_sve_trn1_b64", [IsOverloadNone]>; +def SVTRN2_B8 : SInst<"svtrn2_b8", "PPP", "Pc", MergeNone, "aarch64_sve_trn2">; +def SVTRN2_B16 : SInst<"svtrn2_b16", "PPP", "Pc", MergeNone, "aarch64_sve_trn2_b16", [IsOverloadNone]>; +def SVTRN2_B32 : SInst<"svtrn2_b32", "PPP", "Pc", MergeNone, "aarch64_sve_trn2_b32", [IsOverloadNone]>; +def SVTRN2_B64 : SInst<"svtrn2_b64", "PPP", "Pc", MergeNone, "aarch64_sve_trn2_b64", [IsOverloadNone]>; +def SVPUNPKHI : SInst<"svunpkhi[_b]", "PP", "Pc", MergeNone, "aarch64_sve_punpkhi">; +def SVPUNPKLO : SInst<"svunpklo[_b]", "PP", "Pc", MergeNone, "aarch64_sve_punpklo">; +def SVUZP1_B8 : SInst<"svuzp1_b8", "PPP", "Pc", MergeNone, "aarch64_sve_uzp1">; +def SVUZP1_B16 : SInst<"svuzp1_b16", "PPP", "Pc", MergeNone, "aarch64_sve_uzp1_b16", [IsOverloadNone]>; +def SVUZP1_B32 : SInst<"svuzp1_b32", "PPP", "Pc", MergeNone, "aarch64_sve_uzp1_b32", [IsOverloadNone]>; +def SVUZP1_B64 : SInst<"svuzp1_b64", "PPP", "Pc", MergeNone, "aarch64_sve_uzp1_b64", [IsOverloadNone]>; +def SVUZP2_B8 : SInst<"svuzp2_b8", "PPP", "Pc", MergeNone, "aarch64_sve_uzp2">; +def SVUZP2_B16 : SInst<"svuzp2_b16", "PPP", "Pc", MergeNone, "aarch64_sve_uzp2_b16", [IsOverloadNone]>; +def SVUZP2_B32 : SInst<"svuzp2_b32", "PPP", "Pc", MergeNone, "aarch64_sve_uzp2_b32", [IsOverloadNone]>; +def SVUZP2_B64 : SInst<"svuzp2_b64", "PPP", "Pc", MergeNone, "aarch64_sve_uzp2_b64", [IsOverloadNone]>; +def SVZIP1_B8 : SInst<"svzip1_b8", "PPP", "Pc", MergeNone, "aarch64_sve_zip1">; +def SVZIP1_B16 : SInst<"svzip1_b16", "PPP", "Pc", MergeNone, "aarch64_sve_zip1_b16", [IsOverloadNone]>; +def SVZIP1_B32 : SInst<"svzip1_b32", "PPP", "Pc", MergeNone, "aarch64_sve_zip1_b32", [IsOverloadNone]>; +def SVZIP1_B64 : SInst<"svzip1_b64", "PPP", "Pc", MergeNone, "aarch64_sve_zip1_b64", [IsOverloadNone]>; +def SVZIP2_B : SInst<"svzip2_b8", "PPP", "Pc", MergeNone, "aarch64_sve_zip2">; +def SVZIP2_B16 : SInst<"svzip2_b16", "PPP", "Pc", MergeNone, "aarch64_sve_zip2_b16", [IsOverloadNone]>; +def SVZIP2_B32 : SInst<"svzip2_b32", "PPP", "Pc", MergeNone, "aarch64_sve_zip2_b32", [IsOverloadNone]>; +def SVZIP2_B64 : SInst<"svzip2_b64", "PPP", "Pc", MergeNone, "aarch64_sve_zip2_b64", [IsOverloadNone]>; //////////////////////////////////////////////////////////////////////////////// // Predicate creation diff --git a/contrib/llvm-project/clang/include/clang/Basic/riscv_vector.td b/contrib/llvm-project/clang/include/clang/Basic/riscv_vector.td index c63cba9aa459..b23e26ecaa57 100644 --- a/contrib/llvm-project/clang/include/clang/Basic/riscv_vector.td +++ b/contrib/llvm-project/clang/include/clang/Basic/riscv_vector.td @@ -1539,7 +1539,7 @@ enum RVV_CSR { }; static __inline__ __attribute__((__always_inline__, __nodebug__)) -unsigned long vread_csr(enum RVV_CSR __csr) { +unsigned long __riscv_vread_csr(enum RVV_CSR __csr) { unsigned long __rv = 0; switch (__csr) { case RVV_VSTART: @@ -1559,7 +1559,7 @@ unsigned long vread_csr(enum RVV_CSR __csr) { } static __inline__ __attribute__((__always_inline__, __nodebug__)) -void vwrite_csr(enum RVV_CSR __csr, unsigned long __value) { +void __riscv_vwrite_csr(enum RVV_CSR __csr, unsigned long __value) { switch (__csr) { case RVV_VSTART: __asm__ __volatile__ ("csrw\tvstart, %z0" : : "rJ"(__value) : "memory"); @@ -1580,7 +1580,7 @@ def vread_vwrite_csr: RVVHeader; let HeaderCode = [{ -#define vlenb() __builtin_rvv_vlenb() +#define __riscv_vlenb() __builtin_rvv_vlenb() }] in def vlenb_macro: RVVHeader; @@ -1611,62 +1611,62 @@ let HasBuiltinAlias = false, HasVL = false, HasMasked = false, // and LMUL. let HeaderCode = [{ -#define vsetvl_e8mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 6) -#define vsetvl_e8mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 7) -#define vsetvl_e8m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 0) -#define vsetvl_e8m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 1) -#define vsetvl_e8m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 2) -#define vsetvl_e8m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 3) - -#define vsetvl_e16mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 7) -#define vsetvl_e16m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 0) -#define vsetvl_e16m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 1) -#define vsetvl_e16m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 2) -#define vsetvl_e16m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 3) - -#define vsetvl_e32m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 0) -#define vsetvl_e32m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 1) -#define vsetvl_e32m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 2) -#define vsetvl_e32m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 3) +#define __riscv_vsetvl_e8mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 6) +#define __riscv_vsetvl_e8mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 7) +#define __riscv_vsetvl_e8m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 0) +#define __riscv_vsetvl_e8m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 1) +#define __riscv_vsetvl_e8m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 2) +#define __riscv_vsetvl_e8m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 3) + +#define __riscv_vsetvl_e16mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 7) +#define __riscv_vsetvl_e16m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 0) +#define __riscv_vsetvl_e16m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 1) +#define __riscv_vsetvl_e16m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 2) +#define __riscv_vsetvl_e16m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 3) + +#define __riscv_vsetvl_e32m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 0) +#define __riscv_vsetvl_e32m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 1) +#define __riscv_vsetvl_e32m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 2) +#define __riscv_vsetvl_e32m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 3) #if __riscv_v_elen >= 64 -#define vsetvl_e8mf8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 5) -#define vsetvl_e16mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 6) -#define vsetvl_e32mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 7) - -#define vsetvl_e64m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 0) -#define vsetvl_e64m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 1) -#define vsetvl_e64m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 2) -#define vsetvl_e64m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 3) +#define __riscv_vsetvl_e8mf8(avl) __builtin_rvv_vsetvli((size_t)(avl), 0, 5) +#define __riscv_vsetvl_e16mf4(avl) __builtin_rvv_vsetvli((size_t)(avl), 1, 6) +#define __riscv_vsetvl_e32mf2(avl) __builtin_rvv_vsetvli((size_t)(avl), 2, 7) + +#define __riscv_vsetvl_e64m1(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 0) +#define __riscv_vsetvl_e64m2(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 1) +#define __riscv_vsetvl_e64m4(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 2) +#define __riscv_vsetvl_e64m8(avl) __builtin_rvv_vsetvli((size_t)(avl), 3, 3) #endif -#define vsetvlmax_e8mf4() __builtin_rvv_vsetvlimax(0, 6) -#define vsetvlmax_e8mf2() __builtin_rvv_vsetvlimax(0, 7) -#define vsetvlmax_e8m1() __builtin_rvv_vsetvlimax(0, 0) -#define vsetvlmax_e8m2() __builtin_rvv_vsetvlimax(0, 1) -#define vsetvlmax_e8m4() __builtin_rvv_vsetvlimax(0, 2) -#define vsetvlmax_e8m8() __builtin_rvv_vsetvlimax(0, 3) +#define __riscv_vsetvlmax_e8mf4() __builtin_rvv_vsetvlimax(0, 6) +#define __riscv_vsetvlmax_e8mf2() __builtin_rvv_vsetvlimax(0, 7) +#define __riscv_vsetvlmax_e8m1() __builtin_rvv_vsetvlimax(0, 0) +#define __riscv_vsetvlmax_e8m2() __builtin_rvv_vsetvlimax(0, 1) +#define __riscv_vsetvlmax_e8m4() __builtin_rvv_vsetvlimax(0, 2) +#define __riscv_vsetvlmax_e8m8() __builtin_rvv_vsetvlimax(0, 3) -#define vsetvlmax_e16mf2() __builtin_rvv_vsetvlimax(1, 7) -#define vsetvlmax_e16m1() __builtin_rvv_vsetvlimax(1, 0) -#define vsetvlmax_e16m2() __builtin_rvv_vsetvlimax(1, 1) -#define vsetvlmax_e16m4() __builtin_rvv_vsetvlimax(1, 2) -#define vsetvlmax_e16m8() __builtin_rvv_vsetvlimax(1, 3) +#define __riscv_vsetvlmax_e16mf2() __builtin_rvv_vsetvlimax(1, 7) +#define __riscv_vsetvlmax_e16m1() __builtin_rvv_vsetvlimax(1, 0) +#define __riscv_vsetvlmax_e16m2() __builtin_rvv_vsetvlimax(1, 1) +#define __riscv_vsetvlmax_e16m4() __builtin_rvv_vsetvlimax(1, 2) +#define __riscv_vsetvlmax_e16m8() __builtin_rvv_vsetvlimax(1, 3) -#define vsetvlmax_e32m1() __builtin_rvv_vsetvlimax(2, 0) -#define vsetvlmax_e32m2() __builtin_rvv_vsetvlimax(2, 1) -#define vsetvlmax_e32m4() __builtin_rvv_vsetvlimax(2, 2) -#define vsetvlmax_e32m8() __builtin_rvv_vsetvlimax(2, 3) +#define __riscv_vsetvlmax_e32m1() __builtin_rvv_vsetvlimax(2, 0) +#define __riscv_vsetvlmax_e32m2() __builtin_rvv_vsetvlimax(2, 1) +#define __riscv_vsetvlmax_e32m4() __builtin_rvv_vsetvlimax(2, 2) +#define __riscv_vsetvlmax_e32m8() __builtin_rvv_vsetvlimax(2, 3) #if __riscv_v_elen >= 64 -#define vsetvlmax_e8mf8() __builtin_rvv_vsetvlimax(0, 5) -#define vsetvlmax_e16mf4() __builtin_rvv_vsetvlimax(1, 6) -#define vsetvlmax_e32mf2() __builtin_rvv_vsetvlimax(2, 7) - -#define vsetvlmax_e64m1() __builtin_rvv_vsetvlimax(3, 0) -#define vsetvlmax_e64m2() __builtin_rvv_vsetvlimax(3, 1) -#define vsetvlmax_e64m4() __builtin_rvv_vsetvlimax(3, 2) -#define vsetvlmax_e64m8() __builtin_rvv_vsetvlimax(3, 3) +#define __riscv_vsetvlmax_e8mf8() __builtin_rvv_vsetvlimax(0, 5) +#define __riscv_vsetvlmax_e16mf4() __builtin_rvv_vsetvlimax(1, 6) +#define __riscv_vsetvlmax_e32mf2() __builtin_rvv_vsetvlimax(2, 7) + +#define __riscv_vsetvlmax_e64m1() __builtin_rvv_vsetvlimax(3, 0) +#define __riscv_vsetvlmax_e64m2() __builtin_rvv_vsetvlimax(3, 1) +#define __riscv_vsetvlmax_e64m4() __builtin_rvv_vsetvlimax(3, 2) +#define __riscv_vsetvlmax_e64m8() __builtin_rvv_vsetvlimax(3, 3) #endif }] in diff --git a/contrib/llvm-project/clang/include/clang/Driver/Options.td b/contrib/llvm-project/clang/include/clang/Driver/Options.td index 23752823e88f..652c15afcce8 100644 --- a/contrib/llvm-project/clang/include/clang/Driver/Options.td +++ b/contrib/llvm-project/clang/include/clang/Driver/Options.td @@ -4559,6 +4559,8 @@ def mnvs : Flag<["-"], "mnvs">, Group, Flags<[CC1Option]>, HelpText<"Enable generation of new-value stores">; def mno_nvs : Flag<["-"], "mno-nvs">, Group, Flags<[CC1Option]>, HelpText<"Disable generation of new-value stores">; +def mcabac: Flag<["-"], "mcabac">, Group, + HelpText<"Enable CABAC instructions">; // SPARC feature flags def mfpu : Flag<["-"], "mfpu">, Group; diff --git a/contrib/llvm-project/clang/include/clang/Format/Format.h b/contrib/llvm-project/clang/include/clang/Format/Format.h index 72efd3be1cc7..7a313460d888 100755 --- a/contrib/llvm-project/clang/include/clang/Format/Format.h +++ b/contrib/llvm-project/clang/include/clang/Format/Format.h @@ -2500,6 +2500,10 @@ struct FormatStyle { /// Decimal: 3 /// Hex: -1 /// \endcode + /// + /// You can also specify a minimum number of digits (``BinaryMinDigits``, + /// ``DecimalMinDigits``, and ``HexMinDigits``) the integer literal must + /// have in order for the separators to be inserted. struct IntegerLiteralSeparatorStyle { /// Format separators in binary literals. /// \code{.text} @@ -2509,6 +2513,14 @@ struct FormatStyle { /// /* 4: */ b = 0b1001'1110'1101; /// \endcode int8_t Binary; + /// Format separators in binary literals with a minimum number of digits. + /// \code{.text} + /// // Binary: 3 + /// // BinaryMinDigits: 7 + /// b1 = 0b101101; + /// b2 = 0b1'101'101; + /// \endcode + int8_t BinaryMinDigits; /// Format separators in decimal literals. /// \code{.text} /// /* -1: */ d = 18446744073709550592ull; @@ -2516,6 +2528,14 @@ struct FormatStyle { /// /* 3: */ d = 18'446'744'073'709'550'592ull; /// \endcode int8_t Decimal; + /// Format separators in decimal literals with a minimum number of digits. + /// \code{.text} + /// // Decimal: 3 + /// // DecimalMinDigits: 5 + /// d1 = 2023; + /// d2 = 10'000; + /// \endcode + int8_t DecimalMinDigits; /// Format separators in hexadecimal literals. /// \code{.text} /// /* -1: */ h = 0xDEADBEEFDEADBEEFuz; @@ -2523,6 +2543,20 @@ struct FormatStyle { /// /* 2: */ h = 0xDE'AD'BE'EF'DE'AD'BE'EFuz; /// \endcode int8_t Hex; + /// Format separators in hexadecimal literals with a minimum number of + /// digits. + /// \code{.text} + /// // Hex: 2 + /// // HexMinDigits: 6 + /// h1 = 0xABCDE; + /// h2 = 0xAB'CD'EF; + /// \endcode + int8_t HexMinDigits; + bool operator==(const IntegerLiteralSeparatorStyle &R) const { + return Binary == R.Binary && BinaryMinDigits == R.BinaryMinDigits && + Decimal == R.Decimal && DecimalMinDigits == R.DecimalMinDigits && + Hex == R.Hex && HexMinDigits == R.HexMinDigits; + } }; /// Format integer literal separators (``'`` for C++ and ``_`` for C#, Java, @@ -4212,10 +4246,7 @@ struct FormatStyle { IndentWrappedFunctionNames == R.IndentWrappedFunctionNames && InsertBraces == R.InsertBraces && InsertNewlineAtEOF == R.InsertNewlineAtEOF && - IntegerLiteralSeparator.Binary == R.IntegerLiteralSeparator.Binary && - IntegerLiteralSeparator.Decimal == - R.IntegerLiteralSeparator.Decimal && - IntegerLiteralSeparator.Hex == R.IntegerLiteralSeparator.Hex && + IntegerLiteralSeparator == R.IntegerLiteralSeparator && JavaImportGroups == R.JavaImportGroups && JavaScriptQuotes == R.JavaScriptQuotes && JavaScriptWrapImports == R.JavaScriptWrapImports && diff --git a/contrib/llvm-project/clang/include/clang/Lex/Preprocessor.h b/contrib/llvm-project/clang/include/clang/Lex/Preprocessor.h index f383a2e5b530..322626802eab 100644 --- a/contrib/llvm-project/clang/include/clang/Lex/Preprocessor.h +++ b/contrib/llvm-project/clang/include/clang/Lex/Preprocessor.h @@ -193,11 +193,6 @@ class Preprocessor { LangOptions::FPEvalMethodKind CurrentFPEvalMethod = LangOptions::FPEvalMethodKind::FEM_UnsetOnCommandLine; - // Keeps the value of the last evaluation method before a - // `pragma float_control (precise,off) is applied. - LangOptions::FPEvalMethodKind LastFPEvalMethod = - LangOptions::FPEvalMethodKind::FEM_UnsetOnCommandLine; - // The most recent pragma location where the floating point evaluation // method was modified. This is used to determine whether the // 'pragma clang fp eval_method' was used whithin the current scope. @@ -313,6 +308,9 @@ private: /// The import path for named module that we're currently processing. SmallVector, 2> NamedModuleImportPath; + /// Whether the import is an `@import` or a standard c++ modules import. + bool IsAtImport = false; + /// Whether the last token we lexed was an '@'. bool LastTokenWasAt = false; @@ -456,6 +454,144 @@ private: TrackGMF TrackGMFState = TrackGMF::BeforeGMFIntroducer; + /// Track the status of the c++20 module decl. + /// + /// module-declaration: + /// 'export'[opt] 'module' module-name module-partition[opt] + /// attribute-specifier-seq[opt] ';' + /// + /// module-name: + /// module-name-qualifier[opt] identifier + /// + /// module-partition: + /// ':' module-name-qualifier[opt] identifier + /// + /// module-name-qualifier: + /// identifier '.' + /// module-name-qualifier identifier '.' + /// + /// Transition state: + /// + /// NotAModuleDecl --- export ---> FoundExport + /// NotAModuleDecl --- module ---> ImplementationCandidate + /// FoundExport --- module ---> InterfaceCandidate + /// ImplementationCandidate --- Identifier ---> ImplementationCandidate + /// ImplementationCandidate --- period ---> ImplementationCandidate + /// ImplementationCandidate --- colon ---> ImplementationCandidate + /// InterfaceCandidate --- Identifier ---> InterfaceCandidate + /// InterfaceCandidate --- period ---> InterfaceCandidate + /// InterfaceCandidate --- colon ---> InterfaceCandidate + /// ImplementationCandidate --- Semi ---> NamedModuleImplementation + /// NamedModuleInterface --- Semi ---> NamedModuleInterface + /// NamedModuleImplementation --- Anything ---> NamedModuleImplementation + /// NamedModuleInterface --- Anything ---> NamedModuleInterface + /// + /// FIXME: We haven't handle attribute-specifier-seq here. It may not be bad + /// soon since we don't support any module attributes yet. + class ModuleDeclSeq { + enum ModuleDeclState : int { + NotAModuleDecl, + FoundExport, + InterfaceCandidate, + ImplementationCandidate, + NamedModuleInterface, + NamedModuleImplementation, + }; + + public: + ModuleDeclSeq() : State(NotAModuleDecl) {} + + void handleExport() { + if (State == NotAModuleDecl) + State = FoundExport; + else if (!isNamedModule()) + reset(); + } + + void handleModule() { + if (State == FoundExport) + State = InterfaceCandidate; + else if (State == NotAModuleDecl) + State = ImplementationCandidate; + else if (!isNamedModule()) + reset(); + } + + void handleIdentifier(IdentifierInfo *Identifier) { + if (isModuleCandidate() && Identifier) + Name += Identifier->getName().str(); + else if (!isNamedModule()) + reset(); + } + + void handleColon() { + if (isModuleCandidate()) + Name += ":"; + else if (!isNamedModule()) + reset(); + } + + void handlePeriod() { + if (isModuleCandidate()) + Name += "."; + else if (!isNamedModule()) + reset(); + } + + void handleSemi() { + if (!Name.empty() && isModuleCandidate()) { + if (State == InterfaceCandidate) + State = NamedModuleInterface; + else if (State == ImplementationCandidate) + State = NamedModuleImplementation; + else + llvm_unreachable("Unimaged ModuleDeclState."); + } else if (!isNamedModule()) + reset(); + } + + void handleMisc() { + if (!isNamedModule()) + reset(); + } + + bool isModuleCandidate() const { + return State == InterfaceCandidate || State == ImplementationCandidate; + } + + bool isNamedModule() const { + return State == NamedModuleInterface || + State == NamedModuleImplementation; + } + + bool isNamedInterface() const { return State == NamedModuleInterface; } + + bool isImplementationUnit() const { + return State == NamedModuleImplementation && !getName().contains(':'); + } + + StringRef getName() const { + assert(isNamedModule() && "Can't get name from a non named module"); + return Name; + } + + StringRef getPrimaryName() const { + assert(isNamedModule() && "Can't get name from a non named module"); + return getName().split(':').first; + } + + void reset() { + Name.clear(); + State = NotAModuleDecl; + } + + private: + ModuleDeclState State; + std::string Name; + }; + + ModuleDeclSeq ModuleDeclState; + /// Whether the module import expects an identifier next. Otherwise, /// it expects a '.' or ';'. bool ModuleImportExpectsIdentifier = false; @@ -2194,14 +2330,6 @@ public: return LastFPEvalPragmaLocation; } - LangOptions::FPEvalMethodKind getLastFPEvalMethod() const { - return LastFPEvalMethod; - } - - void setLastFPEvalMethod(LangOptions::FPEvalMethodKind Val) { - LastFPEvalMethod = Val; - } - void setCurrentFPEvalMethod(SourceLocation PragmaLoc, LangOptions::FPEvalMethodKind Val) { assert(Val != LangOptions::FEM_UnsetOnCommandLine && @@ -2225,6 +2353,36 @@ public: /// Retrieves the module whose implementation we're current compiling, if any. Module *getCurrentModuleImplementation(); + /// If we are preprocessing a named module. + bool isInNamedModule() const { return ModuleDeclState.isNamedModule(); } + + /// If we are proprocessing a named interface unit. + /// Note that a module implementation partition is not considered as an + /// named interface unit here although it is importable + /// to ease the parsing. + bool isInNamedInterfaceUnit() const { + return ModuleDeclState.isNamedInterface(); + } + + /// Get the named module name we're preprocessing. + /// Requires we're preprocessing a named module. + StringRef getNamedModuleName() const { return ModuleDeclState.getName(); } + + /// If we are implementing an implementation module unit. + /// Note that the module implementation partition is not considered as an + /// implementation unit. + bool isInImplementationUnit() const { + return ModuleDeclState.isImplementationUnit(); + } + + /// If we're importing a standard C++20 Named Modules. + bool isInImportingCXXNamedModules() const { + // NamedModuleImportPath will be non-empty only if we're importing + // Standard C++ named modules. + return !NamedModuleImportPath.empty() && getLangOpts().CPlusPlusModules && + !IsAtImport; + } + /// Allocate a new MacroInfo object with the provided SourceLocation. MacroInfo *AllocateMacroInfo(SourceLocation L); diff --git a/contrib/llvm-project/clang/include/clang/Sema/DeclSpec.h b/contrib/llvm-project/clang/include/clang/Sema/DeclSpec.h index a95fe5686009..69fe2c541607 100644 --- a/contrib/llvm-project/clang/include/clang/Sema/DeclSpec.h +++ b/contrib/llvm-project/clang/include/clang/Sema/DeclSpec.h @@ -506,16 +506,8 @@ public: assert(isTypeRep((TST) TypeSpecType) && "DeclSpec does not store a type"); return TypeRep; } - // Returns the underlying decl, if any. Decl *getRepAsDecl() const { - auto *D = getRepAsFoundDecl(); - if (const auto *Using = dyn_cast_or_null(D)) - return Using->getTargetDecl(); - return D; - } - // Returns the originally found decl, if any. - Decl *getRepAsFoundDecl() const { - assert(isDeclRep((TST)TypeSpecType) && "DeclSpec does not store a decl"); + assert(isDeclRep((TST) TypeSpecType) && "DeclSpec does not store a decl"); return DeclRep; } Expr *getRepAsExpr() const { diff --git a/contrib/llvm-project/clang/include/clang/Sema/Sema.h b/contrib/llvm-project/clang/include/clang/Sema/Sema.h index 9ab4146aaefe..e57955f16bdd 100644 --- a/contrib/llvm-project/clang/include/clang/Sema/Sema.h +++ b/contrib/llvm-project/clang/include/clang/Sema/Sema.h @@ -238,11 +238,9 @@ namespace threadSafety { // FIXME: No way to easily map from TemplateTypeParmTypes to // TemplateTypeParmDecls, so we have this horrible PointerUnion. -using UnexpandedParameterPack = std::pair< - llvm::PointerUnion< - const TemplateTypeParmType *, const SubstTemplateTypeParmPackType *, - const SubstNonTypeTemplateParmPackExpr *, const NamedDecl *>, - SourceLocation>; +typedef std::pair, + SourceLocation> + UnexpandedParameterPack; /// Describes whether we've seen any nullability information for the given /// file. @@ -3330,9 +3328,7 @@ public: SourceLocation ScopedEnumKWLoc, bool ScopedEnumUsesClassTag, TypeResult UnderlyingType, bool IsTypeSpecifier, bool IsTemplateParamOrArg, - OffsetOfKind OOK, - UsingShadowDecl*& FoundUsingShadow, - SkipBodyInfo *SkipBody = nullptr); + OffsetOfKind OOK, SkipBodyInfo *SkipBody = nullptr); DeclResult ActOnTemplatedFriendTag(Scope *S, SourceLocation FriendLoc, unsigned TagSpec, SourceLocation TagLoc, @@ -7284,24 +7280,34 @@ private: private: // The current stack of constraint satisfactions, so we can exit-early. - llvm::SmallVector SatisfactionStack; + using SatisfactionStackEntryTy = + std::pair; + llvm::SmallVector + SatisfactionStack; public: - void PushSatisfactionStackEntry(const llvm::FoldingSetNodeID &ID) { - SatisfactionStack.push_back(ID); + void PushSatisfactionStackEntry(const NamedDecl *D, + const llvm::FoldingSetNodeID &ID) { + const NamedDecl *Can = cast(D->getCanonicalDecl()); + SatisfactionStack.emplace_back(Can, ID); } void PopSatisfactionStackEntry() { SatisfactionStack.pop_back(); } - bool SatisfactionStackContains(const llvm::FoldingSetNodeID &ID) const { - return llvm::find(SatisfactionStack, ID) != SatisfactionStack.end(); + bool SatisfactionStackContains(const NamedDecl *D, + const llvm::FoldingSetNodeID &ID) const { + const NamedDecl *Can = cast(D->getCanonicalDecl()); + return llvm::find(SatisfactionStack, + SatisfactionStackEntryTy{Can, ID}) != + SatisfactionStack.end(); } // Resets the current SatisfactionStack for cases where we are instantiating // constraints as a 'side effect' of normal instantiation in a way that is not // indicative of recursive definition. class SatisfactionStackResetRAII { - llvm::SmallVector BackupSatisfactionStack; + llvm::SmallVector + BackupSatisfactionStack; Sema &SemaRef; public: @@ -7314,8 +7320,8 @@ public: } }; - void - SwapSatisfactionStack(llvm::SmallVectorImpl &NewSS) { + void SwapSatisfactionStack( + llvm::SmallVectorImpl &NewSS) { SatisfactionStack.swap(NewSS); } diff --git a/contrib/llvm-project/clang/include/clang/Sema/SemaInternal.h b/contrib/llvm-project/clang/include/clang/Sema/SemaInternal.h index 4eca50919dc7..842eec099540 100644 --- a/contrib/llvm-project/clang/include/clang/Sema/SemaInternal.h +++ b/contrib/llvm-project/clang/include/clang/Sema/SemaInternal.h @@ -62,7 +62,7 @@ inline InheritableAttr *getDLLAttr(Decl *D) { } /// Retrieve the depth and index of a template parameter. -inline std::pair getDepthAndIndex(const NamedDecl *ND) { +inline std::pair getDepthAndIndex(NamedDecl *ND) { if (const auto *TTP = dyn_cast(ND)) return std::make_pair(TTP->getDepth(), TTP->getIndex()); @@ -79,7 +79,7 @@ getDepthAndIndex(UnexpandedParameterPack UPP) { if (const auto *TTP = UPP.first.dyn_cast()) return std::make_pair(TTP->getDepth(), TTP->getIndex()); - return getDepthAndIndex(UPP.first.get()); + return getDepthAndIndex(UPP.first.get()); } class TypoCorrectionConsumer : public VisibleDeclConsumer { diff --git a/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h b/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h index ea05b9f8ee3f..fcc9c02999b3 100644 --- a/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h +++ b/contrib/llvm-project/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h @@ -454,7 +454,9 @@ public: llvm::SMTExprRef OperandExp = getSymExpr(Solver, Ctx, USE->getOperand(), &OperandTy, hasComparison); llvm::SMTExprRef UnaryExp = - fromUnOp(Solver, USE->getOpcode(), OperandExp); + OperandTy->isRealFloatingType() + ? fromFloatUnOp(Solver, USE->getOpcode(), OperandExp) + : fromUnOp(Solver, USE->getOpcode(), OperandExp); // Currently, without the `support-symbolic-integer-casts=true` option, // we do not emit `SymbolCast`s for implicit casts. diff --git a/contrib/llvm-project/clang/include/clang/Support/RISCVVIntrinsicUtils.h b/contrib/llvm-project/clang/include/clang/Support/RISCVVIntrinsicUtils.h index fc53d70019c5..bf31dced98b2 100644 --- a/contrib/llvm-project/clang/include/clang/Support/RISCVVIntrinsicUtils.h +++ b/contrib/llvm-project/clang/include/clang/Support/RISCVVIntrinsicUtils.h @@ -92,25 +92,24 @@ enum class TypeModifier : uint8_t { LLVM_MARK_AS_BITMASK_ENUM(LMUL1), }; -struct Policy { - bool IsUnspecified = false; +class Policy { +public: enum PolicyType { Undisturbed, Agnostic, }; - PolicyType TailPolicy = Agnostic; - PolicyType MaskPolicy = Agnostic; - bool HasTailPolicy, HasMaskPolicy; - Policy(bool HasTailPolicy, bool HasMaskPolicy) - : IsUnspecified(true), HasTailPolicy(HasTailPolicy), - HasMaskPolicy(HasMaskPolicy) {} - Policy(PolicyType TailPolicy, bool HasTailPolicy, bool HasMaskPolicy) - : TailPolicy(TailPolicy), HasTailPolicy(HasTailPolicy), - HasMaskPolicy(HasMaskPolicy) {} - Policy(PolicyType TailPolicy, PolicyType MaskPolicy, bool HasTailPolicy, - bool HasMaskPolicy) - : TailPolicy(TailPolicy), MaskPolicy(MaskPolicy), - HasTailPolicy(HasTailPolicy), HasMaskPolicy(HasMaskPolicy) {} + +private: + // The default assumption for an RVV instruction is TAMA, as an undisturbed + // policy generally will affect the performance of an out-of-order core. + const PolicyType TailPolicy = Agnostic; + const PolicyType MaskPolicy = Agnostic; *** 12885 LINES SKIPPED ***