Date: Sat, 20 Apr 2024 10:32:16 GMT From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: cdc20ff6a7f1 - stable/14 - Merge llvm-project main llvmorg-18-init-16595-g7c00a5be5cde Message-ID: <202404201032.43KAWGnm009607@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch stable/14 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=cdc20ff6a7f12464aed70d9b6e67ea07da9f0399 commit cdc20ff6a7f12464aed70d9b6e67ea07da9f0399 Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2024-01-09 20:00:28 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2024-04-19 21:14:10 +0000 Merge llvm-project main llvmorg-18-init-16595-g7c00a5be5cde This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvm-project main llvmorg-18-init-16595-g7c00a5be5cde. PR: 276104 MFC after: 1 month (cherry picked from commit 1db9f3b21e39176dd5b67cf8ac378633b172463e) --- .../llvm-project/clang/include/clang/AST/Attr.h | 1 + .../llvm-project/clang/include/clang/AST/DeclCXX.h | 8 + .../clang/include/clang/AST/TextNodeDumper.h | 2 + .../llvm-project/clang/include/clang/AST/Type.h | 2 + .../clang/Analysis/Analyses/UnsafeBufferUsage.h | 2 +- .../Analysis/Analyses/UnsafeBufferUsageGadgets.def | 1 + .../clang/include/clang/Analysis/CFG.h | 4 +- .../llvm-project/clang/include/clang/Basic/Attr.td | 23 + .../clang/include/clang/Basic/AttrDocs.td | 35 +- .../clang/include/clang/Basic/CodeGenOptions.def | 1 + .../include/clang/Basic/DiagnosticCommonKinds.td | 3 + .../include/clang/Basic/DiagnosticDriverKinds.td | 3 + .../include/clang/Basic/DiagnosticParseKinds.td | 2 + .../include/clang/Basic/DiagnosticSemaKinds.td | 14 +- .../clang/include/clang/Basic/ObjCRuntime.h | 28 +- .../clang/include/clang/Basic/OpenACCKinds.h | 39 +- .../clang/include/clang/Basic/arm_sve.td | 115 ++- .../clang/include/clang/Basic/arm_sve_sme_incl.td | 1 + .../include/clang/Basic/riscv_sifive_vector.td | 10 +- .../clang/include/clang/Driver/Options.td | 12 +- .../llvm-project/clang/include/clang/Sema/Sema.h | 15 +- .../clang/include/clang/Sema/Template.h | 1 + contrib/llvm-project/clang/lib/AST/ASTContext.cpp | 23 +- contrib/llvm-project/clang/lib/AST/ASTImporter.cpp | 39 +- .../clang/lib/AST/ASTStructuralEquivalence.cpp | 13 +- .../clang/lib/AST/ComputeDependence.cpp | 2 + contrib/llvm-project/clang/lib/AST/Decl.cpp | 2 +- contrib/llvm-project/clang/lib/AST/DeclBase.cpp | 50 +- .../llvm-project/clang/lib/AST/FormatString.cpp | 1 - .../llvm-project/clang/lib/AST/Interp/Interp.cpp | 4 +- contrib/llvm-project/clang/lib/AST/Interp/Interp.h | 6 - .../llvm-project/clang/lib/AST/TextNodeDumper.cpp | 10 + contrib/llvm-project/clang/lib/AST/Type.cpp | 7 + .../clang/lib/Analysis/PathDiagnostic.cpp | 7 +- .../clang/lib/Analysis/UnsafeBufferUsage.cpp | 38 +- .../llvm-project/clang/lib/Basic/Targets/ARM.cpp | 64 ++ contrib/llvm-project/clang/lib/Basic/Targets/ARM.h | 13 + contrib/llvm-project/clang/lib/Basic/Targets/AVR.h | 4 +- .../llvm-project/clang/lib/Basic/Targets/RISCV.cpp | 23 +- .../llvm-project/clang/lib/Basic/Targets/X86.cpp | 3 + contrib/llvm-project/clang/lib/CodeGen/CGClass.cpp | 6 +- .../clang/lib/CodeGen/CGExprScalar.cpp | 61 +- .../llvm-project/clang/lib/CodeGen/CGObjCGNU.cpp | 2 + contrib/llvm-project/clang/lib/CodeGen/CGStmt.cpp | 14 +- .../clang/lib/CodeGen/CodeGenFunction.cpp | 98 +- .../clang/lib/CodeGen/CodeGenFunction.h | 58 +- .../clang/lib/CodeGen/CodeGenModule.cpp | 4 + .../llvm-project/clang/lib/CodeGen/CodeGenPGO.cpp | 263 ++++- .../llvm-project/clang/lib/CodeGen/CodeGenPGO.h | 14 +- .../clang/lib/CodeGen/CoverageMappingGen.cpp | 405 +++++++- .../clang/lib/CodeGen/CoverageMappingGen.h | 12 +- .../llvm-project/clang/lib/CodeGen/Targets/X86.cpp | 3 + contrib/llvm-project/clang/lib/Driver/Driver.cpp | 11 + .../clang/lib/Driver/ToolChains/Arch/Mips.cpp | 8 +- .../clang/lib/Driver/ToolChains/Arch/RISCV.cpp | 6 +- .../clang/lib/Driver/ToolChains/BareMetal.cpp | 5 +- .../clang/lib/Driver/ToolChains/Clang.cpp | 11 + .../clang/lib/Driver/ToolChains/Gnu.cpp | 9 + .../clang/lib/Driver/ToolChains/MinGW.cpp | 25 +- .../clang/lib/Format/TokenAnnotator.cpp | 8 + contrib/llvm-project/clang/lib/Headers/arm_acle.h | 59 ++ .../clang/lib/Headers/llvm_libc_wrappers/stdio.h | 34 +- contrib/llvm-project/clang/lib/Lex/ModuleMap.cpp | 4 +- contrib/llvm-project/clang/lib/Parse/ParseDecl.cpp | 3 +- .../llvm-project/clang/lib/Parse/ParseDeclCXX.cpp | 2 + .../llvm-project/clang/lib/Parse/ParseOpenACC.cpp | 129 ++- .../clang/lib/Sema/AnalysisBasedWarnings.cpp | 16 +- .../llvm-project/clang/lib/Sema/SemaChecking.cpp | 23 +- .../llvm-project/clang/lib/Sema/SemaConcept.cpp | 17 +- contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp | 94 +- .../llvm-project/clang/lib/Sema/SemaDeclAttr.cpp | 19 + contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp | 44 +- contrib/llvm-project/clang/lib/Sema/SemaInit.cpp | 55 +- contrib/llvm-project/clang/lib/Sema/SemaOpenMP.cpp | 56 +- .../llvm-project/clang/lib/Sema/SemaOverload.cpp | 90 +- .../clang/lib/Sema/SemaTemplateDeduction.cpp | 11 + .../clang/lib/Sema/SemaTemplateInstantiate.cpp | 79 +- .../llvm-project/clang/lib/Sema/TreeTransform.h | 78 +- .../Checkers/StdLibraryFunctionsChecker.cpp | 20 +- .../lib/StaticAnalyzer/Checkers/StreamChecker.cpp | 1 + contrib/llvm-project/clang/lib/Tooling/Tooling.cpp | 8 +- .../clang/utils/TableGen/ClangASTNodesEmitter.cpp | 103 +- .../clang/utils/TableGen/SveEmitter.cpp | 3 + .../llvm-project/clang/utils/TableGen/TableGen.cpp | 3 +- .../clang/utils/TableGen/TableGenBackends.h | 10 +- .../compiler-rt/lib/asan/asan_suppressions.cpp | 7 +- .../compiler-rt/lib/hwasan/hwasan_report.cpp | 6 +- .../compiler-rt/lib/lsan/lsan_common.cpp | 7 +- contrib/llvm-project/compiler-rt/lib/msan/msan.h | 34 +- .../compiler-rt/lib/msan/msan_allocator.cpp | 40 +- .../compiler-rt/lib/msan/msan_new_delete.cpp | 26 +- .../compiler-rt/lib/orc/executor_symbol_def.h | 151 +++ .../orc/tests/unit/executor_symbol_def_test.cpp | 19 + .../unit/simple_packed_serialization_test.cpp | 20 +- .../tests/unit/simple_packed_serialization_utils.h | 34 + .../lib/sanitizer_common/sanitizer_common.h | 3 + .../sanitizer_platform_interceptors.h | 3 +- .../sanitizer_stacktrace_libcdep.cpp | 12 +- .../lib/sanitizer_common/sanitizer_symbolizer.h | 20 + .../sanitizer_symbolizer_report.cpp | 25 +- .../compiler-rt/lib/tsan/rtl/tsan_report.cpp | 26 +- .../compiler-rt/lib/ubsan/ubsan_diag.cpp | 2 +- .../compiler-rt/lib/ubsan/ubsan_diag.h | 20 - .../libcxx/include/__algorithm/pop_heap.h | 3 +- .../libcxx/include/__algorithm/sift_down.h | 2 +- .../llvm-project/libcxx/include/__algorithm/sort.h | 4 +- .../libcxx/include/__charconv/to_chars_base_10.h | 6 +- .../libcxx/include/__charconv/to_chars_integral.h | 2 +- .../libcxx/include/__charconv/traits.h | 4 +- .../include/__chrono/parser_std_format_spec.h | 7 +- contrib/llvm-project/libcxx/include/__config | 7 + .../include/__filesystem/directory_iterator.h | 3 +- .../libcxx/include/__filesystem/path_iterator.h | 4 +- .../llvm-project/libcxx/include/__format/buffer.h | 12 +- .../libcxx/include/__format/format_arg.h | 2 +- .../libcxx/include/__format/format_arg_store.h | 8 +- .../libcxx/include/__format/formatter_bool.h | 2 +- .../include/__format/formatter_floating_point.h | 55 +- .../libcxx/include/__format/formatter_integral.h | 16 +- .../libcxx/include/__format/formatter_output.h | 6 +- .../libcxx/include/__format/formatter_string.h | 5 +- .../include/__format/parser_std_format_spec.h | 7 +- .../libcxx/include/__format/range_formatter.h | 5 +- .../llvm-project/libcxx/include/__format/unicode.h | 14 +- .../libcxx/include/__format/write_escaped.h | 2 +- contrib/llvm-project/libcxx/include/__hash_table | 5 +- .../libcxx/include/__iterator/advance.h | 13 +- .../llvm-project/libcxx/include/__iterator/next.h | 6 +- .../llvm-project/libcxx/include/__iterator/prev.h | 6 +- .../__random/negative_binomial_distribution.h | 7 +- .../libcxx/include/__ranges/chunk_by_view.h | 20 +- .../libcxx/include/__ranges/drop_while_view.h | 3 +- .../libcxx/include/__ranges/filter_view.h | 3 +- .../llvm-project/libcxx/include/__thread/thread.h | 2 +- .../libcxx/include/__utility/exception_guard.h | 2 +- .../libcxx/include/__utility/unreachable.h | 2 +- contrib/llvm-project/libcxx/include/fstream | 50 + contrib/llvm-project/libcxx/include/print | 8 +- contrib/llvm-project/libcxx/include/regex | 23 +- contrib/llvm-project/libcxx/include/set | 32 +- contrib/llvm-project/libcxx/include/span | 18 + contrib/llvm-project/libcxx/include/sstream | 6 +- contrib/llvm-project/libcxx/include/tuple | 32 +- contrib/llvm-project/libcxx/include/version | 4 +- contrib/llvm-project/libcxx/src/filesystem/error.h | 2 +- .../libcxx/src/filesystem/format_string.h | 2 +- .../libcxx/src/filesystem/posix_compat.h | 6 +- contrib/llvm-project/libcxx/src/fstream.cpp | 37 + .../libcxx/src/include/to_chars_floating_point.h | 20 +- .../llvm-project/libcxx/src/memory_resource.cpp | 2 +- contrib/llvm-project/libcxx/src/strstream.cpp | 2 +- contrib/llvm-project/libcxx/src/system_error.cpp | 2 +- .../llvm-project/libunwind/src/UnwindCursor.hpp | 77 +- contrib/llvm-project/lld/COFF/Config.h | 4 +- contrib/llvm-project/lld/ELF/Arch/AArch64.cpp | 3 +- contrib/llvm-project/lld/ELF/Arch/RISCV.cpp | 42 + contrib/llvm-project/lld/ELF/Arch/X86_64.cpp | 2 + contrib/llvm-project/lld/ELF/InputSection.cpp | 11 +- contrib/llvm-project/lld/ELF/LinkerScript.cpp | 4 + contrib/llvm-project/lld/ELF/Relocations.cpp | 6 +- contrib/llvm-project/lld/ELF/ScriptParser.cpp | 27 +- contrib/llvm-project/lld/ELF/SyntheticSections.cpp | 24 +- contrib/llvm-project/lld/ELF/SyntheticSections.h | 6 +- contrib/llvm-project/lld/ELF/Target.h | 10 + contrib/llvm-project/lld/ELF/Writer.cpp | 21 +- contrib/llvm-project/lld/ELF/Writer.h | 1 + .../lldb/include/lldb/API/SBBreakpoint.h | 2 + .../include/lldb/Breakpoint/BreakpointIDList.h | 6 +- .../lldb/include/lldb/Symbol/CompileUnit.h | 23 +- .../lldb/include/lldb/Symbol/SymbolFile.h | 2 +- .../lldb/include/lldb/Symbol/SymbolFileOnDemand.h | 2 +- .../lldb/include/lldb/Utility/FileSpecList.h | 106 +- .../lldb/include/lldb/Utility/StructuredData.h | 28 +- .../llvm-project/lldb/source/API/SBCompileUnit.cpp | 2 +- .../lldb/source/Breakpoint/BreakpointIDList.cpp | 21 +- .../Breakpoint/BreakpointResolverAddress.cpp | 12 +- .../source/Breakpoint/BreakpointResolverName.cpp | 8 +- .../source/Commands/CommandObjectBreakpoint.cpp | 4 +- .../lldb/source/Commands/CommandObjectSource.cpp | 2 +- .../llvm-project/lldb/source/Core/ModuleList.cpp | 2 +- .../ExpressionParser/Clang/ClangUserExpression.cpp | 12 +- .../Clang/CppModuleConfiguration.cpp | 6 +- .../TSan/InstrumentationRuntimeTSan.cpp | 5 +- .../source/Plugins/JITLoader/GDB/JITLoaderGDB.cpp | 2 +- .../SymbolFile/Breakpad/SymbolFileBreakpad.cpp | 5 +- .../SymbolFile/Breakpad/SymbolFileBreakpad.h | 3 +- .../source/Plugins/SymbolFile/CTF/SymbolFileCTF.h | 2 +- .../SymbolFile/DWARF/DWARFASTParserClang.cpp | 34 +- .../Plugins/SymbolFile/DWARF/DWARFASTParserClang.h | 1 + .../source/Plugins/SymbolFile/DWARF/DWARFIndex.cpp | 20 + .../source/Plugins/SymbolFile/DWARF/DWARFIndex.h | 14 + .../SymbolFile/DWARF/DebugNamesDWARFIndex.cpp | 2 +- .../SymbolFile/DWARF/DebugNamesDWARFIndex.h | 2 +- .../Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp | 116 ++- .../Plugins/SymbolFile/DWARF/SymbolFileDWARF.h | 9 +- .../SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp | 4 +- .../SymbolFile/DWARF/SymbolFileDWARFDebugMap.h | 2 +- .../Plugins/SymbolFile/JSON/SymbolFileJSON.h | 2 +- .../SymbolFile/NativePDB/SymbolFileNativePDB.cpp | 7 +- .../SymbolFile/NativePDB/SymbolFileNativePDB.h | 2 +- .../Plugins/SymbolFile/PDB/SymbolFilePDB.cpp | 2 +- .../source/Plugins/SymbolFile/PDB/SymbolFilePDB.h | 2 +- .../Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp | 2 +- .../Plugins/SymbolFile/Symtab/SymbolFileSymtab.h | 2 +- .../lldb/source/Symbol/CompileUnit.cpp | 13 +- .../lldb/source/Symbol/SymbolFileOnDemand.cpp | 2 +- .../lldb/source/Target/DynamicRegisterInfo.cpp | 15 +- .../lldb/source/Utility/FileSpecList.cpp | 58 +- .../llvm/include/llvm/Analysis/AliasSetTracker.h | 1 + .../llvm/include/llvm/Analysis/AssumptionCache.h | 2 + .../include/llvm/Analysis/BlockFrequencyInfo.h | 2 + .../include/llvm/Analysis/BranchProbabilityInfo.h | 2 + .../llvm/include/llvm/Analysis/CFGSCCPrinter.h | 1 + .../llvm/include/llvm/Analysis/CallGraph.h | 4 + .../llvm/include/llvm/Analysis/CallPrinter.h | 2 + .../llvm/include/llvm/Analysis/CostModel.h | 2 + .../llvm/include/llvm/Analysis/CycleAnalysis.h | 2 + .../llvm-project/llvm/include/llvm/Analysis/DDG.h | 1 + .../llvm/include/llvm/Analysis/DDGPrinter.h | 1 + .../llvm/include/llvm/Analysis/Delinearization.h | 1 + .../llvm/include/llvm/Analysis/DemandedBits.h | 2 + .../include/llvm/Analysis/DependenceAnalysis.h | 2 + .../llvm/include/llvm/Analysis/DominanceFrontier.h | 2 + .../llvm/Analysis/FunctionPropertiesAnalysis.h | 2 + .../include/llvm/Analysis/IRSimilarityIdentifier.h | 1 + .../llvm/include/llvm/Analysis/InlineAdvisor.h | 3 +- .../llvm/include/llvm/Analysis/InlineCost.h | 1 + .../llvm/Analysis/InlineSizeEstimatorAnalysis.h | 2 + .../llvm/include/llvm/Analysis/LazyCallGraph.h | 4 + .../llvm/include/llvm/Analysis/LazyValueInfo.h | 2 + .../llvm/include/llvm/Analysis/LoopCacheAnalysis.h | 2 + .../llvm/include/llvm/Analysis/LoopInfo.h | 2 + .../llvm/include/llvm/Analysis/LoopNestAnalysis.h | 2 + .../llvm/include/llvm/Analysis/MemDerefPrinter.h | 1 + .../llvm/include/llvm/Analysis/MemoryBuiltins.h | 165 ++-- .../llvm/include/llvm/Analysis/MemorySSA.h | 5 + .../include/llvm/Analysis/ModuleDebugInfoPrinter.h | 1 + .../llvm/include/llvm/Analysis/MustExecute.h | 2 + .../llvm/include/llvm/Analysis/PhiValues.h | 1 + .../llvm/include/llvm/Analysis/PostDominators.h | 2 + .../include/llvm/Analysis/ProfileSummaryInfo.h | 1 + .../llvm/include/llvm/Analysis/RegionInfo.h | 3 + .../llvm/include/llvm/Analysis/ScalarEvolution.h | 3 + .../llvm/include/llvm/Analysis/StackLifetime.h | 1 + .../include/llvm/Analysis/StackSafetyAnalysis.h | 2 + .../llvm/include/llvm/Analysis/StructuralHash.h | 2 + .../include/llvm/Analysis/TargetTransformInfo.h | 8 + .../llvm/Analysis/TargetTransformInfoImpl.h | 4 +- .../include/llvm/Analysis/UniformityAnalysis.h | 2 + .../llvm/include/llvm/Analysis/ValueTracking.h | 9 +- .../llvm/include/llvm/Analysis/VecFuncs.def | 36 + .../llvm/include/llvm/BinaryFormat/ELF.h | 1 + .../llvm/BinaryFormat/ELFRelocs/LoongArch.def | 23 + .../llvm/include/llvm/Bitstream/BitstreamWriter.h | 6 +- .../llvm/include/llvm/CodeGen/AccelTable.h | 15 +- .../llvm/CodeGen/BasicBlockSectionsProfileReader.h | 83 +- .../llvm/include/llvm/CodeGen/CodeGenPassBuilder.h | 25 +- .../llvm/include/llvm/CodeGen/CodeGenPrepare.h | 35 + .../llvm/include/llvm/CodeGen/FastISel.h | 14 + .../llvm/include/llvm/CodeGen/GCMetadata.h | 11 + .../include/llvm/CodeGen/GlobalISel/IRTranslator.h | 4 + .../GlobalISel/LegalizationArtifactCombiner.h | 21 +- .../llvm/CodeGen/GlobalISel/LegalizerHelper.h | 18 +- .../llvm/CodeGen/GlobalISel/LegalizerInfo.h | 10 +- .../include/llvm/CodeGen/MachinePassRegistry.def | 9 +- .../llvm/CodeGen/NonRelocatableStringpool.h | 3 +- .../llvm/include/llvm/CodeGen/Passes.h | 4 +- .../llvm/include/llvm/CodeGen/RuntimeLibcalls.h | 6 + .../llvm/include/llvm/CodeGen/SelectionDAGNodes.h | 20 +- .../include/llvm/CodeGen/ShadowStackGCLowering.h | 24 + .../llvm/include/llvm/CodeGen/StackProtector.h | 93 +- .../include/llvm/CodeGen/SwitchLoweringUtils.h | 16 + .../AddressesMap.h | 10 +- .../llvm/DWARFLinker/{ => Classic}/DWARFLinker.h | 216 +--- .../{ => Classic}/DWARFLinkerCompileUnit.h | 12 +- .../{ => Classic}/DWARFLinkerDeclContext.h | 12 +- .../llvm/DWARFLinker/{ => Classic}/DWARFStreamer.h | 28 +- .../DWARFFile.h | 17 +- .../include/llvm/DWARFLinker/DWARFLinkerBase.h | 100 ++ .../Parallel}/DWARFLinker.h | 108 +- .../StringPool.h | 25 +- .../include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h | 9 +- .../llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h | 6 +- .../llvm/include/llvm/Demangle/Demangle.h | 5 +- .../llvm/include/llvm/Demangle/ItaniumDemangle.h | 22 +- .../include/llvm/ExecutionEngine/JITLink/JITLink.h | 5 + .../llvm/include/llvm/ExecutionEngine/Orc/Core.h | 10 +- .../Orc/EPCDynamicLibrarySearchGenerator.h | 23 +- .../ExecutionEngine/Orc/EPCGenericDylibManager.h | 7 +- .../llvm/ExecutionEngine/Orc/ExecutionUtils.h | 20 +- .../ExecutionEngine/Orc/Shared/ExecutorSymbolDef.h | 58 ++ .../llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h | 3 +- .../Orc/Shared/TargetProcessControlTypes.h | 3 +- .../Orc/TargetProcess/JITLoaderGDB.h | 26 + .../Orc/TargetProcess/SimpleExecutorDylibManager.h | 5 +- .../llvm-project/llvm/include/llvm/IR/Dominators.h | 3 + .../include/llvm/IR/GetElementPtrTypeIterator.h | 57 +- .../llvm/include/llvm/IR/IntrinsicsAMDGPU.td | 7 +- .../llvm/include/llvm/IR/IntrinsicsSPIRV.td | 1 + .../llvm/include/llvm/IR/PatternMatch.h | 2 +- .../llvm/include/llvm/IR/SafepointIRVerifier.h | 2 + .../llvm/include/llvm/InitializePasses.h | 4 +- contrib/llvm-project/llvm/include/llvm/LTO/LTO.h | 4 +- .../llvm-project/llvm/include/llvm/LinkAllPasses.h | 2 +- .../llvm/include/llvm/MC/MCAsmBackend.h | 6 +- .../llvm/include/llvm/Object/ELFObjectFile.h | 36 + .../llvm/include/llvm/Object/ELFTypes.h | 3 + .../llvm/include/llvm/Object/ObjectFile.h | 1 + .../include/llvm/Passes/StandardInstrumentations.h | 2 +- .../llvm/include/llvm/Support/RISCVISAInfo.h | 6 +- .../llvm/Target/GlobalISel/SelectionDAGCompat.td | 1 + .../include/llvm/Target/TargetInstrPredicate.td | 6 + .../llvm/include/llvm/Target/TargetMachine.h | 4 +- .../llvm/include/llvm/Target/TargetSchedule.td | 113 +++ .../llvm/include/llvm/Target/TargetSelectionDAG.td | 13 + .../llvm/TargetParser/AArch64TargetParser.h | 7 +- .../llvm/include/llvm/TargetParser/Triple.h | 6 + .../llvm/Transforms/Scalar/IVUsersPrinter.h | 1 + .../Transforms/Scalar/LoopAccessAnalysisPrinter.h | 1 + .../include/llvm/Transforms/Utils/PredicateInfo.h | 2 + .../llvm/lib/Analysis/AssumptionCache.cpp | 13 +- .../llvm/lib/Analysis/BasicAliasAnalysis.cpp | 61 +- .../llvm/lib/Analysis/ConstraintSystem.cpp | 4 +- .../llvm-project/llvm/lib/Analysis/InlineCost.cpp | 2 +- .../llvm/lib/Analysis/InstructionSimplify.cpp | 14 +- contrib/llvm-project/llvm/lib/Analysis/Local.cpp | 2 +- .../llvm/lib/Analysis/LoopAccessAnalysis.cpp | 5 +- .../llvm-project/llvm/lib/Analysis/LoopInfo.cpp | 4 +- .../llvm/lib/Analysis/MemoryBuiltins.cpp | 308 +++--- .../llvm/lib/Analysis/MemorySSAUpdater.cpp | 17 +- .../llvm/lib/Analysis/TargetTransformInfo.cpp | 9 + .../llvm/lib/Analysis/VFABIDemangling.cpp | 9 +- .../llvm/lib/Analysis/ValueTracking.cpp | 11 +- .../lib/BinaryFormat/AMDGPUMetadataVerifier.cpp | 1 + .../llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp | 67 +- .../llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 80 +- .../llvm/lib/CodeGen/BasicBlockPathCloning.cpp | 11 +- .../llvm/lib/CodeGen/BasicBlockSections.cpp | 8 +- .../CodeGen/BasicBlockSectionsProfileReader.cpp | 52 +- contrib/llvm-project/llvm/lib/CodeGen/CodeGen.cpp | 2 +- .../llvm/lib/CodeGen/CodeGenPrepare.cpp | 127 ++- .../llvm/lib/CodeGen/GCRootLowering.cpp | 33 +- .../llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp | 81 +- .../lib/CodeGen/GlobalISel/LegalizerHelper.cpp | 312 +++++- .../llvm/lib/CodeGen/NonRelocatableStringpool.cpp | 3 - .../llvm/lib/CodeGen/ReplaceWithVeclib.cpp | 160 +-- .../llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp | 10 +- .../llvm/lib/CodeGen/SelectionDAG/FastISel.cpp | 329 ++++--- .../llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp | 4 +- .../llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 26 +- .../CodeGen/SelectionDAG/LegalizeFloatTypes.cpp | 48 +- .../CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp | 17 +- .../llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h | 2 + .../CodeGen/SelectionDAG/LegalizeVectorTypes.cpp | 10 +- .../llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 14 +- .../SelectionDAG/SelectionDAGAddressAnalysis.cpp | 19 +- .../CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 117 +-- .../lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h | 6 - .../CodeGen/SelectionDAG/SelectionDAGDumper.cpp | 5 +- .../lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | 19 +- .../lib/CodeGen/SelectionDAG/TargetLowering.cpp | 72 +- .../llvm/lib/CodeGen/ShadowStackGCLowering.cpp | 97 +- .../llvm/lib/CodeGen/StackProtector.cpp | 154 ++- .../llvm/lib/CodeGen/SwitchLoweringUtils.cpp | 81 ++ .../llvm/lib/CodeGen/TargetLoweringBase.cpp | 40 +- .../llvm/lib/CodeGen/TargetPassConfig.cpp | 4 +- .../lib/DWARFLinker/{ => Classic}/DWARFLinker.cpp | 66 +- .../{ => Classic}/DWARFLinkerCompileUnit.cpp | 7 +- .../{ => Classic}/DWARFLinkerDeclContext.cpp | 7 +- .../DWARFLinker/{ => Classic}/DWARFStreamer.cpp | 36 +- .../Parallel}/AcceleratorRecordsSaver.cpp | 8 +- .../Parallel}/AcceleratorRecordsSaver.h | 14 +- .../Parallel}/ArrayList.h | 18 +- .../Parallel}/DIEAttributeCloner.cpp | 8 +- .../Parallel}/DIEAttributeCloner.h | 14 +- .../Parallel}/DIEGenerator.h | 14 +- .../Parallel}/DWARFEmitterImpl.cpp | 10 +- .../Parallel}/DWARFEmitterImpl.h | 16 +- .../Parallel}/DWARFLinker.cpp | 12 +- .../Parallel}/DWARFLinkerCompileUnit.cpp | 5 +- .../Parallel}/DWARFLinkerCompileUnit.h | 16 +- .../Parallel}/DWARFLinkerGlobalData.h | 24 +- .../Parallel}/DWARFLinkerImpl.cpp | 207 ++-- .../Parallel}/DWARFLinkerImpl.h | 20 +- .../Parallel}/DWARFLinkerTypeUnit.cpp | 7 +- .../Parallel}/DWARFLinkerTypeUnit.h | 14 +- .../Parallel}/DWARFLinkerUnit.cpp | 8 +- .../Parallel}/DWARFLinkerUnit.h | 18 +- .../Parallel}/DebugLineSectionEmitter.h | 31 +- .../Parallel}/DependencyTracker.cpp | 8 +- .../Parallel}/DependencyTracker.h | 14 +- .../Parallel}/IndexedValuesMap.h | 14 +- .../Parallel}/OutputSections.cpp | 27 +- .../Parallel}/OutputSections.h | 34 +- .../StringEntryToDwarfStringPoolEntryMap.h | 16 +- .../Parallel}/SyntheticTypeNameBuilder.cpp | 8 +- .../Parallel}/SyntheticTypeNameBuilder.h | 14 +- .../Parallel}/TypePool.h | 35 +- .../Parallel}/Utils.h | 14 +- .../StringPool.cpp => DWARFLinker/Utils.cpp} | 4 +- .../llvm/lib/DWARFLinkerParallel/DWARFFile.cpp | 17 - .../llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp | 9 +- .../llvm-project/llvm/lib/Demangle/Demangle.cpp | 5 +- .../llvm/lib/Demangle/ItaniumDemangle.cpp | 4 +- .../lib/ExecutionEngine/Interpreter/Execution.cpp | 2 +- .../llvm/lib/ExecutionEngine/JITLink/JITLink.cpp | 35 + .../lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp | 14 + .../Orc/EPCDebugObjectRegistrar.cpp | 3 +- .../Orc/EPCDynamicLibrarySearchGenerator.cpp | 16 +- .../ExecutionEngine/Orc/EPCGenericDylibManager.cpp | 10 +- .../lib/ExecutionEngine/Orc/ExecutionUtils.cpp | 12 +- .../ExecutionEngine/Orc/ExecutorProcessControl.cpp | 6 +- .../ExecutionEngine/Orc/LookupAndRecordAddrs.cpp | 2 +- .../llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp | 2 + .../lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp | 14 +- .../Orc/TargetProcess/JITLoaderGDB.cpp | 23 - .../TargetProcess/SimpleExecutorDylibManager.cpp | 9 +- contrib/llvm-project/llvm/lib/IR/AsmWriter.cpp | 13 +- contrib/llvm-project/llvm/lib/IR/AutoUpgrade.cpp | 499 +++++----- contrib/llvm-project/llvm/lib/IR/DataLayout.cpp | 5 +- contrib/llvm-project/llvm/lib/IR/Operator.cpp | 12 +- contrib/llvm-project/llvm/lib/IR/Value.cpp | 2 +- contrib/llvm-project/llvm/lib/LTO/LTO.cpp | 36 +- contrib/llvm-project/llvm/lib/MC/MCAssembler.cpp | 6 +- contrib/llvm-project/llvm/lib/MC/MCExpr.cpp | 6 + contrib/llvm-project/llvm/lib/Object/ELF.cpp | 7 +- .../llvm-project/llvm/lib/Object/ELFObjectFile.cpp | 2 +- .../llvm-project/llvm/lib/Object/ObjectFile.cpp | 11 +- .../llvm/lib/Object/WasmObjectFile.cpp | 1 + .../llvm-project/llvm/lib/Passes/PassBuilder.cpp | 9 +- .../llvm-project/llvm/lib/Passes/PassRegistry.def | 6 + .../llvm/lib/Passes/StandardInstrumentations.cpp | 52 +- .../llvm/lib/ProfileData/InstrProf.cpp | 27 +- .../llvm-project/llvm/lib/Support/CommandLine.cpp | 9 +- .../llvm-project/llvm/lib/Support/RISCVISAInfo.cpp | 41 +- .../llvm-project/llvm/lib/Target/AArch64/AArch64.h | 1 + .../llvm/lib/Target/AArch64/AArch64.td | 2 +- .../llvm/lib/Target/AArch64/AArch64FastISel.cpp | 19 +- .../lib/Target/AArch64/AArch64ISelDAGToDAG.cpp | 6 +- .../lib/Target/AArch64/AArch64ISelLowering.cpp | 15 +- .../llvm/lib/Target/AArch64/AArch64InstrFormats.td | 1 + .../Target/AArch64/AArch64LoopIdiomTransform.cpp | 828 ++++++++++++++++ .../lib/Target/AArch64/AArch64LoopIdiomTransform.h | 25 + .../llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td | 2 +- .../llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td | 5 +- .../lib/Target/AArch64/AArch64SelectionDAGInfo.cpp | 2 +- .../lib/Target/AArch64/AArch64TargetMachine.cpp | 11 + .../llvm/lib/Target/AArch64/AArch64TargetMachine.h | 4 + .../Target/AArch64/AArch64TargetTransformInfo.h | 2 + .../Target/AArch64/GISel/AArch64LegalizerInfo.cpp | 59 +- .../Target/AArch64/GISel/AArch64LegalizerInfo.h | 4 +- .../llvm/lib/Target/AArch64/SVEInstrFormats.td | 12 + .../llvm-project/llvm/lib/Target/AMDGPU/AMDGPU.td | 10 +- .../llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td | 26 +- .../llvm/lib/Target/AMDGPU/AMDGPUCombine.td | 9 +- .../Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp | 10 +- .../llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp | 23 +- .../llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h | 14 +- .../llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp | 58 +- .../Target/AMDGPU/AMDGPUInstructionSelector.cpp | 8 +- .../llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp | 29 +- .../llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h | 4 +- .../llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp | 32 +- .../lib/Target/AMDGPU/AMDGPUMachineFunction.cpp | 39 +- .../llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.h | 7 + .../Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp | 34 + .../lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp | 168 +++- .../lib/Target/AMDGPU/AMDGPURegisterBankInfo.h | 5 + .../llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp | 3 +- .../llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h | 3 +- .../Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp | 37 +- .../llvm/lib/Target/AMDGPU/BUFInstructions.td | 10 +- .../llvm/lib/Target/AMDGPU/DSDIRInstructions.td | 192 ++++ .../llvm/lib/Target/AMDGPU/DSInstructions.td | 1 - .../AMDGPU/Disassembler/AMDGPUDisassembler.cpp | 6 + .../llvm/lib/Target/AMDGPU/EXPInstructions.td | 1 + .../llvm/lib/Target/AMDGPU/FLATInstructions.td | 46 +- .../llvm/lib/Target/AMDGPU/GCNSubtarget.h | 9 +- .../llvm/lib/Target/AMDGPU/LDSDIRInstructions.td | 116 --- .../AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp | 139 ++- .../Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h | 10 +- .../AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp | 19 +- .../llvm/lib/Target/AMDGPU/R600ISelLowering.cpp | 8 +- .../llvm/lib/Target/AMDGPU/SIFoldOperands.cpp | 148 ++- .../llvm/lib/Target/AMDGPU/SIISelLowering.cpp | 287 +++++- .../llvm/lib/Target/AMDGPU/SIISelLowering.h | 2 + .../llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp | 10 + .../llvm/lib/Target/AMDGPU/SIInstrFormats.td | 2 +- .../llvm/lib/Target/AMDGPU/SIInstrInfo.cpp | 210 +++- .../llvm/lib/Target/AMDGPU/SIInstrInfo.h | 6 + .../llvm/lib/Target/AMDGPU/SIInstrInfo.td | 19 +- .../llvm/lib/Target/AMDGPU/SIInstructions.td | 174 +++- .../llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp | 70 +- .../llvm/lib/Target/AMDGPU/SIRegisterInfo.td | 8 +- .../llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp | 4 +- .../llvm/lib/Target/AMDGPU/SMInstructions.td | 44 +- .../llvm/lib/Target/AMDGPU/SOPInstructions.td | 52 +- .../lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp | 106 +- .../llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h | 11 +- .../llvm/lib/Target/AMDGPU/VOP2Instructions.td | 2 +- .../llvm/lib/Target/AMDGPU/VOP3PInstructions.td | 18 +- .../llvm/lib/Target/ARC/ARCISelDAGToDAG.cpp | 2 +- .../llvm/lib/Target/ARC/ARCISelLowering.cpp | 2 + .../llvm/lib/Target/ARC/ARCTargetMachine.cpp | 7 + .../llvm/lib/Target/ARM/ARMFastISel.cpp | 2 +- .../llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp | 24 +- .../llvm/lib/Target/ARM/ARMISelLowering.cpp | 19 +- .../llvm/lib/Target/ARM/ARMLegalizerInfo.cpp | 10 +- .../llvm/lib/Target/ARM/ARMLegalizerInfo.h | 4 +- .../llvm/lib/Target/AVR/AVRISelLowering.cpp | 4 +- .../llvm/lib/Target/BPF/BPFISelLowering.cpp | 1 + .../llvm/lib/Target/BPF/BPFTargetMachine.cpp | 5 +- .../llvm/lib/Target/BPF/BPFTargetMachine.h | 3 +- .../llvm/lib/Target/DirectX/DXILResourceAnalysis.h | 1 + .../lib/Target/DirectX/DirectXTargetMachine.cpp | 3 +- .../llvm/lib/Target/DirectX/DirectXTargetMachine.h | 3 +- .../lib/Target/Hexagon/HexagonISelDAGToDAG.cpp | 2 +- .../lib/Target/Hexagon/HexagonISelLoweringHVX.cpp | 6 +- .../lib/Target/Hexagon/HexagonTargetMachine.cpp | 3 +- .../llvm/lib/Target/Hexagon/HexagonTargetMachine.h | 3 +- .../llvm/lib/Target/Lanai/LanaiISelLowering.cpp | 2 + .../llvm/lib/Target/Lanai/LanaiTargetMachine.cpp | 7 + .../LoongArch/AsmParser/LoongArchAsmParser.cpp | 61 ++ .../LoongArch/LoongArchExpandPseudoInsts.cpp | 521 +++++----- .../lib/Target/LoongArch/LoongArchISelLowering.cpp | 65 +- .../lib/Target/LoongArch/LoongArchISelLowering.h | 7 +- .../lib/Target/LoongArch/LoongArchInstrInfo.td | 106 +- .../lib/Target/LoongArch/LoongArchMCInstLower.cpp | 3 + .../lib/Target/LoongArch/LoongArchRegisterInfo.cpp | 23 + .../lib/Target/LoongArch/LoongArchRegisterInfo.h | 1 + .../Target/LoongArch/LoongArchTargetMachine.cpp | 4 +- .../LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp | 69 +- .../LoongArch/MCTargetDesc/LoongArchAsmBackend.h | 3 + .../LoongArch/MCTargetDesc/LoongArchBaseInfo.h | 1 + .../MCTargetDesc/LoongArchELFObjectWriter.cpp | 2 + .../LoongArch/MCTargetDesc/LoongArchFixupKinds.h | 5 +- .../MCTargetDesc/LoongArchMCCodeEmitter.cpp | 3 + .../LoongArch/MCTargetDesc/LoongArchMCExpr.cpp | 3 + .../LoongArch/MCTargetDesc/LoongArchMCExpr.h | 1 + .../llvm/lib/Target/M68k/GISel/M68kLegalizerInfo.h | 1 - .../llvm/lib/Target/M68k/M68kISelLowering.cpp | 4 +- .../llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp | 4 +- .../llvm/lib/Target/MSP430/MSP430ISelLowering.cpp | 7 +- .../llvm/lib/Target/MSP430/MSP430TargetMachine.cpp | 7 + .../llvm/lib/Target/Mips/MipsFastISel.cpp | 2 +- .../llvm/lib/Target/Mips/MipsISelLowering.cpp | 3 +- .../llvm/lib/Target/Mips/MipsLegalizerInfo.cpp | 5 +- .../llvm/lib/Target/Mips/MipsLegalizerInfo.h | 3 +- .../llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp | 2 +- .../llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp | 8 +- .../llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp | 3 +- .../llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp | 3 +- .../llvm/lib/Target/NVPTX/NVPTXTargetMachine.h | 3 +- .../lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp | 34 - .../llvm/lib/Target/PowerPC/PPCFastISel.cpp | 2 +- .../llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp | 13 +- .../llvm/lib/Target/PowerPC/PPCISelLowering.cpp | 16 +- .../llvm/lib/Target/PowerPC/PPCRegisterInfo.td | 9 +- .../lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp | 9 +- .../lib/Target/RISCV/GISel/RISCVCallLowering.cpp | 2 +- .../lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp | 7 +- .../lib/Target/RISCV/GISel/RISCVLegalizerInfo.h | 4 +- .../lib/Target/RISCV/MCA/RISCVCustomBehaviour.cpp | 33 +- .../Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp | 9 +- .../Target/RISCV/MCTargetDesc/RISCVAsmBackend.h | 4 +- .../lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h | 1 - .../lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp | 2 - .../llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp | 3 - .../lib/Target/RISCV/RISCVExpandPseudoInsts.cpp | 10 +- .../llvm/lib/Target/RISCV/RISCVFeatures.td | 6 + .../Target/RISCV/RISCVGatherScatterLowering.cpp | 2 +- .../llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp | 10 +- .../llvm/lib/Target/RISCV/RISCVISelLowering.cpp | 375 +++---- .../llvm/lib/Target/RISCV/RISCVISelLowering.h | 13 +- .../llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp | 5 + .../llvm/lib/Target/RISCV/RISCVInstrInfo.cpp | 7 +- .../llvm/lib/Target/RISCV/RISCVInstrInfo.td | 54 +- .../llvm/lib/Target/RISCV/RISCVInstrInfoA.td | 12 +- .../llvm/lib/Target/RISCV/RISCVInstrInfoD.td | 2 + .../lib/Target/RISCV/RISCVInstrInfoVPseudos.td | 2 + .../lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td | 16 + .../lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td | 122 +-- .../llvm/lib/Target/RISCV/RISCVInstrInfoZa.td | 44 + .../llvm/lib/Target/RISCV/RISCVOptWInstrs.cpp | 6 +- .../llvm/lib/Target/RISCV/RISCVProcessors.td | 3 +- .../llvm/lib/Target/RISCV/RISCVRegisterInfo.td | 2 +- .../llvm/lib/Target/RISCV/RISCVSubtarget.h | 7 + .../lib/Target/RISCV/RISCVTargetTransformInfo.cpp | 114 ++- .../lib/Target/RISCV/RISCVTargetTransformInfo.h | 3 + .../llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp | 7 +- .../llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp | 125 ++- .../llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.cpp | 5 +- .../llvm/lib/Target/SPIRV/SPIRVLegalizerInfo.h | 3 +- .../llvm/lib/Target/SPIRV/SPIRVPreLegalizer.cpp | 59 +- .../llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp | 14 + .../llvm/lib/Target/SPIRV/SPIRVUtils.cpp | 4 +- .../llvm/lib/Target/SPIRV/SPIRVUtils.h | 2 +- .../lib/Target/SystemZ/SystemZISelDAGToDAG.cpp | 8 +- .../lib/Target/SystemZ/SystemZISelLowering.cpp | 27 +- .../lib/Target/WebAssembly/WebAssemblyFastISel.cpp | 2 +- .../Target/WebAssembly/WebAssemblyISelLowering.cpp | 7 +- .../llvm/lib/Target/X86/GISel/X86LegalizerInfo.h | 1 - .../llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h | 16 - .../Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp | 3 + contrib/llvm-project/llvm/lib/Target/X86/X86.h | 8 +- .../X86/{X86EvexToVex.cpp => X86CompressEVEX.cpp} | 168 ++-- .../llvm/lib/Target/X86/X86DomainReassignment.cpp | 67 +- .../llvm/lib/Target/X86/X86FastISel.cpp | 12 +- .../llvm/lib/Target/X86/X86FlagsCopyLowering.cpp | 1 - .../llvm/lib/Target/X86/X86ISelDAGToDAG.cpp | 2 +- .../llvm/lib/Target/X86/X86ISelLowering.cpp | 122 ++- .../llvm/lib/Target/X86/X86ISelLowering.h | 10 - .../llvm/lib/Target/X86/X86ISelLoweringCall.cpp | 37 +- .../llvm/lib/Target/X86/X86InstrAVX512.td | 248 ++--- .../llvm/lib/Target/X86/X86InstrArithmetic.td | 1030 ++++++++++++-------- .../llvm/lib/Target/X86/X86InstrFormats.td | 6 - .../llvm/lib/Target/X86/X86InstrInfo.h | 4 +- .../llvm/lib/Target/X86/X86InstrMisc.td | 120 +-- .../llvm/lib/Target/X86/X86InstrPredicates.td | 33 + .../llvm/lib/Target/X86/X86InstrShiftRotate.td | 2 +- .../llvm/lib/Target/X86/X86InstrSystem.td | 13 +- .../llvm/lib/Target/X86/X86InstrUtils.td | 10 +- .../llvm/lib/Target/X86/X86MCInstLower.cpp | 7 +- .../llvm/lib/Target/X86/X86TargetMachine.cpp | 4 +- .../llvm/lib/Target/X86/X86TargetTransformInfo.cpp | 1 + .../llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp | 2 +- .../llvm-project/llvm/lib/TargetParser/Host.cpp | 3 +- .../llvm-project/llvm/lib/TargetParser/Triple.cpp | 7 +- .../llvm/lib/Transforms/Coroutines/CoroFrame.cpp | 12 +- .../lib/Transforms/IPO/AttributorAttributes.cpp | 6 +- .../Transforms/InstCombine/InstCombineAddSub.cpp | 7 - .../Transforms/InstCombine/InstCombineCalls.cpp | 62 +- .../Transforms/InstCombine/InstCombineCompares.cpp | 68 +- .../Transforms/InstCombine/InstCombineInternal.h | 23 +- .../InstCombine/InstCombineMulDivRem.cpp | 7 - .../InstCombine/InstructionCombining.cpp | 135 ++- .../Instrumentation/AddressSanitizer.cpp | 50 +- .../Transforms/Instrumentation/BoundsChecking.cpp | 8 +- .../Transforms/Instrumentation/InstrProfiling.cpp | 10 +- .../Instrumentation/PGOInstrumentation.cpp | 51 +- .../Transforms/Scalar/ConstraintElimination.cpp | 91 +- .../Scalar/CorrelatedValuePropagation.cpp | 51 +- .../llvm/lib/Transforms/Scalar/SROA.cpp | 6 +- .../Scalar/SeparateConstOffsetFromGEP.cpp | 6 +- .../Scalar/StraightLineStrengthReduce.cpp | 2 +- .../lib/Transforms/Utils/InjectTLIMappings.cpp | 46 +- .../llvm/lib/Transforms/Utils/SCCPSolver.cpp | 10 +- .../llvm/lib/Transforms/Utils/SimplifyCFG.cpp | 35 +- .../llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp | 20 +- .../Transforms/Vectorize/LoadStoreVectorizer.cpp | 2 +- .../Vectorize/LoopVectorizationPlanner.h | 27 +- .../lib/Transforms/Vectorize/LoopVectorize.cpp | 481 ++++----- .../lib/Transforms/Vectorize/SLPVectorizer.cpp | 24 +- .../lib/Transforms/Vectorize/VPRecipeBuilder.h | 7 +- .../llvm/lib/Transforms/Vectorize/VPlan.cpp | 1 + .../llvm/lib/Transforms/Vectorize/VPlan.h | 34 +- .../llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp | 88 +- .../lib/Transforms/Vectorize/VPlanTransforms.cpp | 23 +- .../llvm-project/llvm/tools/lli/ExecutionUtils.cpp | 32 +- .../llvm/tools/lli/ForwardingMemoryManager.h | 9 +- contrib/llvm-project/llvm/tools/lli/lli.cpp | 9 +- .../llvm-project/llvm/tools/llvm-cxxfilt/Opts.td | 2 + .../llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp | 10 +- .../llvm/tools/llvm-dwarfutil/DebugInfoLinker.cpp | 32 +- .../llvm/tools/llvm-profdata/llvm-profdata.cpp | 23 +- .../llvm/tools/llvm-readobj/ELFDumper.cpp | 1 + contrib/llvm-project/llvm/tools/opt/opt.cpp | 2 +- .../utils/TableGen/GlobalISelCombinerEmitter.cpp | 16 +- .../TableGen/MacroFusionPredicatorEmitter.cpp | 236 +++++ .../llvm/utils/TableGen/PredicateExpander.cpp | 8 + .../llvm/utils/TableGen/PredicateExpander.h | 1 + .../TableGen/X86CompressEVEXTablesEmitter.cpp | 206 ++++ .../utils/TableGen/X86EVEX2VEXTablesEmitter.cpp | 210 ---- .../llvm/utils/TableGen/X86FoldTablesEmitter.cpp | 6 +- .../utils/TableGen/X86ManualCompressEVEXTables.def | 331 +++++++ contrib/llvm-project/openmp/runtime/src/kmp.h | 7 + .../openmp/runtime/src/kmp_config.h.cmake | 2 +- .../openmp/runtime/src/kmp_ftn_entry.h | 2 +- .../llvm-project/openmp/runtime/src/kmp_global.cpp | 2 +- .../openmp/runtime/src/kmp_gsupport.cpp | 3 +- contrib/llvm-project/openmp/runtime/src/kmp_os.h | 9 +- .../llvm-project/openmp/runtime/src/kmp_platform.h | 32 +- .../openmp/runtime/src/kmp_runtime.cpp | 8 +- .../openmp/runtime/src/kmp_settings.cpp | 4 +- .../openmp/runtime/src/kmp_wrapper_getpid.h | 5 + .../openmp/runtime/src/z_Linux_util.cpp | 21 +- lib/clang/include/VCSVersion.inc | 6 +- lib/clang/include/lld/Common/Version.inc | 2 +- lib/clang/include/llvm/Support/VCSRevision.h | 2 +- lib/clang/libllvm/Makefile | 7 +- usr.bin/clang/llvm-tblgen/Makefile | 3 +- 691 files changed, 13954 insertions(+), 6431 deletions(-) diff --git a/contrib/llvm-project/clang/include/clang/AST/Attr.h b/contrib/llvm-project/clang/include/clang/AST/Attr.h index 1b831c9511e2..8e9b7ad8b468 100644 --- a/contrib/llvm-project/clang/include/clang/AST/Attr.h +++ b/contrib/llvm-project/clang/include/clang/AST/Attr.h @@ -25,6 +25,7 @@ #include "clang/Basic/Sanitizers.h" #include "clang/Basic/SourceLocation.h" #include "llvm/Frontend/HLSL/HLSLResource.h" +#include "llvm/Support/CodeGen.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/VersionTuple.h" #include "llvm/Support/raw_ostream.h" diff --git a/contrib/llvm-project/clang/include/clang/AST/DeclCXX.h b/contrib/llvm-project/clang/include/clang/AST/DeclCXX.h index 432293583576..984a4d8bab5e 100644 --- a/contrib/llvm-project/clang/include/clang/AST/DeclCXX.h +++ b/contrib/llvm-project/clang/include/clang/AST/DeclCXX.h @@ -2044,6 +2044,14 @@ public: // Implement isa/cast/dyncast/etc. static bool classof(const Decl *D) { return classofKind(D->getKind()); } static bool classofKind(Kind K) { return K == RequiresExprBody; } + + static DeclContext *castToDeclContext(const RequiresExprBodyDecl *D) { + return static_cast<DeclContext *>(const_cast<RequiresExprBodyDecl *>(D)); + } + + static RequiresExprBodyDecl *castFromDeclContext(const DeclContext *DC) { + return static_cast<RequiresExprBodyDecl *>(const_cast<DeclContext *>(DC)); + } }; /// Represents a static or instance method of a struct/union/class. diff --git a/contrib/llvm-project/clang/include/clang/AST/TextNodeDumper.h b/contrib/llvm-project/clang/include/clang/AST/TextNodeDumper.h index 2f4ed082a0c7..732749ad305e 100644 --- a/contrib/llvm-project/clang/include/clang/AST/TextNodeDumper.h +++ b/contrib/llvm-project/clang/include/clang/AST/TextNodeDumper.h @@ -252,6 +252,8 @@ public: void VisitGotoStmt(const GotoStmt *Node); void VisitCaseStmt(const CaseStmt *Node); void VisitReturnStmt(const ReturnStmt *Node); + void VisitCoawaitExpr(const CoawaitExpr *Node); + void VisitCoreturnStmt(const CoreturnStmt *Node); void VisitCompoundStmt(const CompoundStmt *Node); void VisitConstantExpr(const ConstantExpr *Node); void VisitCallExpr(const CallExpr *Node); diff --git a/contrib/llvm-project/clang/include/clang/AST/Type.h b/contrib/llvm-project/clang/include/clang/AST/Type.h index 1afa69367286..9e9f896ebef7 100644 --- a/contrib/llvm-project/clang/include/clang/AST/Type.h +++ b/contrib/llvm-project/clang/include/clang/AST/Type.h @@ -4224,6 +4224,8 @@ public: ExceptionSpecInfo() = default; ExceptionSpecInfo(ExceptionSpecificationType EST) : Type(EST) {} + + void instantiate(); }; /// Extra information about a function prototype. ExtProtoInfo is not diff --git a/contrib/llvm-project/clang/include/clang/Analysis/Analyses/UnsafeBufferUsage.h b/contrib/llvm-project/clang/include/clang/Analysis/Analyses/UnsafeBufferUsage.h index 8a2d56668e32..b28f2c6b99c5 100644 --- a/contrib/llvm-project/clang/include/clang/Analysis/Analyses/UnsafeBufferUsage.h +++ b/contrib/llvm-project/clang/include/clang/Analysis/Analyses/UnsafeBufferUsage.h @@ -66,7 +66,7 @@ public: /// Invoked when an unsafe operation over raw pointers is found. virtual void handleUnsafeOperation(const Stmt *Operation, - bool IsRelatedToDecl) = 0; + bool IsRelatedToDecl, ASTContext &Ctx) = 0; /// Invoked when a fix is suggested against a variable. This function groups /// all variables that must be fixed together (i.e their types must be changed diff --git a/contrib/llvm-project/clang/include/clang/Analysis/Analyses/UnsafeBufferUsageGadgets.def b/contrib/llvm-project/clang/include/clang/Analysis/Analyses/UnsafeBufferUsageGadgets.def index 757ee452ced7..c97661688365 100644 --- a/contrib/llvm-project/clang/include/clang/Analysis/Analyses/UnsafeBufferUsageGadgets.def +++ b/contrib/llvm-project/clang/include/clang/Analysis/Analyses/UnsafeBufferUsageGadgets.def @@ -30,6 +30,7 @@ WARNING_GADGET(Decrement) WARNING_GADGET(ArraySubscript) WARNING_GADGET(PointerArithmetic) WARNING_GADGET(UnsafeBufferUsageAttr) +WARNING_GADGET(DataInvocation) FIXABLE_GADGET(ULCArraySubscript) // `DRE[any]` in an Unspecified Lvalue Context FIXABLE_GADGET(DerefSimplePtrArithFixable) FIXABLE_GADGET(PointerDereference) diff --git a/contrib/llvm-project/clang/include/clang/Analysis/CFG.h b/contrib/llvm-project/clang/include/clang/Analysis/CFG.h index 67383bb316d3..9f776ca6cc26 100644 --- a/contrib/llvm-project/clang/include/clang/Analysis/CFG.h +++ b/contrib/llvm-project/clang/include/clang/Analysis/CFG.h @@ -1215,7 +1215,9 @@ public: //===--------------------------------------------------------------------===// class BuildOptions { - std::bitset<Stmt::lastStmtConstant> alwaysAddMask; + // Stmt::lastStmtConstant has the same value as the last Stmt kind, + // so make sure we add one to account for this! + std::bitset<Stmt::lastStmtConstant + 1> alwaysAddMask; public: using ForcedBlkExprs = llvm::DenseMap<const Stmt *, const CFGBlock *>; diff --git a/contrib/llvm-project/clang/include/clang/Basic/Attr.td b/contrib/llvm-project/clang/include/clang/Basic/Attr.td index db17211747b1..d5eabaad4889 100644 --- a/contrib/llvm-project/clang/include/clang/Basic/Attr.td +++ b/contrib/llvm-project/clang/include/clang/Basic/Attr.td @@ -143,6 +143,11 @@ def ExternalGlobalVar : SubsetSubject<Var, !S->isLocalExternDecl()}], "external global variables">; +def NonTLSGlobalVar : SubsetSubject<Var, + [{S->hasGlobalStorage() && + S->getTLSKind() == 0}], + "non-TLS global variables">; + def InlineFunction : SubsetSubject<Function, [{S->isInlineSpecified()}], "inline functions">; @@ -431,6 +436,7 @@ def TargetAArch64 : TargetArch<["aarch64", "aarch64_be", "aarch64_32"]>; def TargetAnyArm : TargetArch<!listconcat(TargetARM.Arches, TargetAArch64.Arches)>; def TargetAVR : TargetArch<["avr"]>; def TargetBPF : TargetArch<["bpfel", "bpfeb"]>; +def TargetLoongArch : TargetArch<["loongarch32", "loongarch64"]>; def TargetMips32 : TargetArch<["mips", "mipsel"]>; def TargetAnyMips : TargetArch<["mips", "mipsel", "mips64", "mips64el"]>; def TargetMSP430 : TargetArch<["msp430"]>; @@ -1121,6 +1127,14 @@ def CoroLifetimeBound : InheritableAttr { let SimpleHandler = 1; } +def CoroDisableLifetimeBound : InheritableAttr { + let Spellings = [Clang<"coro_disable_lifetimebound">]; + let Subjects = SubjectList<[Function]>; + let LangOpts = [CPlusPlus]; + let Documentation = [CoroLifetimeBoundDoc]; + let SimpleHandler = 1; +} + // OSObject-based attributes. def OSConsumed : InheritableParamAttr { let Spellings = [Clang<"os_consumed">]; @@ -2730,6 +2744,15 @@ def PragmaClangTextSection : InheritableAttr { let Documentation = [InternalOnly]; } +def CodeModel : InheritableAttr, TargetSpecificAttr<TargetLoongArch> { + let Spellings = [GCC<"model">]; + let Args = [EnumArgument<"Model", "llvm::CodeModel::Model", + ["normal", "medium", "extreme"], ["Small", "Medium", "Large"], + /*opt=*/0, /*fake=*/0, /*isExternalType=*/1>]; + let Subjects = SubjectList<[NonTLSGlobalVar], ErrorDiag>; + let Documentation = [CodeModelDocs]; +} + def Sentinel : InheritableAttr { let Spellings = [GCC<"sentinel">]; let Args = [DefaultIntArgument<"Sentinel", 0>, diff --git a/contrib/llvm-project/clang/include/clang/Basic/AttrDocs.td b/contrib/llvm-project/clang/include/clang/Basic/AttrDocs.td index 98a7ecc7fd7d..5416a0cbdd07 100644 --- a/contrib/llvm-project/clang/include/clang/Basic/AttrDocs.td +++ b/contrib/llvm-project/clang/include/clang/Basic/AttrDocs.td @@ -57,6 +57,15 @@ global variable or function should be in after translation. let Heading = "section, __declspec(allocate)"; } +def CodeModelDocs : Documentation { + let Category = DocCatVariable; + let Content = [{ +The ``model`` attribute allows overriding the translation unit's +code model (specified by ``-mcmodel``) for a specific global variable. + }]; + let Heading = "model"; +} + def UsedDocs : Documentation { let Category = DocCatFunction; let Content = [{ @@ -7671,9 +7680,12 @@ The ``[[clang::coro_lifetimebound]]`` is a class attribute which can be applied to a coroutine return type (`CRT`_) (i.e. it should also be annotated with ``[[clang::coro_return_type]]``). -All parameters of a function are considered to be lifetime bound. See `documentation`_ -of ``[[clang::lifetimebound]]`` for more details. -if the function returns a coroutine return type (CRT) annotated with ``[[clang::coro_lifetimebound]]``. +All parameters of a function are considered to be lifetime bound if the function returns a +coroutine return type (CRT) annotated with ``[[clang::coro_lifetimebound]]``. +This lifetime bound analysis can be disabled for a coroutine wrapper or a coroutine by annotating the function +with ``[[clang::coro_disable_lifetimebound]]`` function attribute . +See `documentation`_ of ``[[clang::lifetimebound]]`` for details about lifetime bound analysis. + Reference parameters of a coroutine are susceptible to capturing references to temporaries or local variables. @@ -7703,7 +7715,7 @@ Both coroutines and coroutine wrappers are part of this analysis. }; Task<int> coro(const int& a) { co_return a + 1; } - Task<int> [[clang::coro_wrapper]] coro_wrapper(const int& a, const int& b) { + [[clang::coro_wrapper]] Task<int> coro_wrapper(const int& a, const int& b) { return a > b ? coro(a) : coro(b); } Task<int> temporary_reference() { @@ -7718,6 +7730,21 @@ Both coroutines and coroutine wrappers are part of this analysis. return coro(a); // warning: returning address of stack variable `a`. } +This analysis can be disabled for all calls to a particular function by annotating the function +with function attribute ``[[clang::coro_disable_lifetimebound]]``. +For example, this could be useful for coroutine wrappers which accept reference parameters +but do not pass them to the underlying coroutine or pass them by value. + +.. code-block:: c++ + + Task<int> coro(int a) { co_return a + 1; } + [[clang::coro_wrapper, clang::coro_disable_lifetimebound]] Task<int> coro_wrapper(const int& a) { + return coro(a + 1); + } + void use() { + auto task = coro_wrapper(1); // use of temporary is fine as the argument is not lifetime bound. + } + .. _`documentation`: https://clang.llvm.org/docs/AttributeReference.html#lifetimebound .. _`CRT`: https://clang.llvm.org/docs/AttributeReference.html#coro-return-type }]; diff --git a/contrib/llvm-project/clang/include/clang/Basic/CodeGenOptions.def b/contrib/llvm-project/clang/include/clang/Basic/CodeGenOptions.def index 0acb5ae134ea..2c4fb6745bc1 100644 --- a/contrib/llvm-project/clang/include/clang/Basic/CodeGenOptions.def +++ b/contrib/llvm-project/clang/include/clang/Basic/CodeGenOptions.def @@ -209,6 +209,7 @@ CODEGENOPT(CoverageMapping , 1, 0) ///< Generate coverage mapping regions to ///< enable code coverage analysis. CODEGENOPT(DumpCoverageMapping , 1, 0) ///< Dump the generated coverage mapping ///< regions. +CODEGENOPT(MCDCCoverage , 1, 0) ///< Enable MC/DC code coverage criteria. /// If -fpcc-struct-return or -freg-struct-return is specified. ENUM_CODEGENOPT(StructReturnConvention, StructReturnConventionKind, 2, SRCK_Default) diff --git a/contrib/llvm-project/clang/include/clang/Basic/DiagnosticCommonKinds.td b/contrib/llvm-project/clang/include/clang/Basic/DiagnosticCommonKinds.td index 65a33f61a694..72952b08c04a 100644 --- a/contrib/llvm-project/clang/include/clang/Basic/DiagnosticCommonKinds.td +++ b/contrib/llvm-project/clang/include/clang/Basic/DiagnosticCommonKinds.td @@ -349,6 +349,9 @@ def warn_invalid_feature_combination : Warning< def warn_target_unrecognized_env : Warning< "mismatch between architecture and environment in target triple '%0'; did you mean '%1'?">, InGroup<InvalidCommandLineArgument>; +def warn_knl_knm_isa_support_removed : Warning< + "KNL, KNM related Intel Xeon Phi CPU's specific ISA's supports will be removed in LLVM 19.">, + InGroup<DiagGroup<"knl-knm-isa-support-removed">>; // Source manager def err_cannot_open_file : Error<"cannot open file '%0': %1">, DefaultFatal; diff --git a/contrib/llvm-project/clang/include/clang/Basic/DiagnosticDriverKinds.td b/contrib/llvm-project/clang/include/clang/Basic/DiagnosticDriverKinds.td index 676f1a62b49d..0a8a77fadbeb 100644 --- a/contrib/llvm-project/clang/include/clang/Basic/DiagnosticDriverKinds.td +++ b/contrib/llvm-project/clang/include/clang/Basic/DiagnosticDriverKinds.td @@ -786,4 +786,7 @@ def warn_android_unversioned_fallback : Warning< " directories will not be used in Clang 19. Provide a versioned directory" " for the target version or lower instead.">, InGroup<DiagGroup<"android-unversioned-fallback">>; + +def err_drv_triple_version_invalid : Error< + "version '%0' in target triple '%1' is invalid">; } diff --git a/contrib/llvm-project/clang/include/clang/Basic/DiagnosticParseKinds.td b/contrib/llvm-project/clang/include/clang/Basic/DiagnosticParseKinds.td index e4b1069cde18..088f8b74983c 100644 --- a/contrib/llvm-project/clang/include/clang/Basic/DiagnosticParseKinds.td +++ b/contrib/llvm-project/clang/include/clang/Basic/DiagnosticParseKinds.td @@ -1364,6 +1364,8 @@ def err_acc_invalid_clause : Error<"invalid OpenACC clause %0">; def err_acc_missing_directive : Error<"expected OpenACC directive">; def err_acc_invalid_open_paren : Error<"expected clause-list or newline in OpenACC directive">; +def err_acc_invalid_default_clause_kind + : Error<"invalid value for 'default' clause; expected 'present' or 'none'">; // OpenMP support. def warn_pragma_omp_ignored : Warning< diff --git a/contrib/llvm-project/clang/include/clang/Basic/DiagnosticSemaKinds.td b/contrib/llvm-project/clang/include/clang/Basic/DiagnosticSemaKinds.td index cb68ded1f38c..e81d1a4fc288 100644 --- a/contrib/llvm-project/clang/include/clang/Basic/DiagnosticSemaKinds.td *** 39310 LINES SKIPPED ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202404201032.43KAWGnm009607>