git: 574b7079b967 - stable/13 - Merge llvm-project main llvmorg-14-init-11187-g222442ec2d71
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 04 Jun 2022 12:00:58 UTC
The branch stable/13 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=574b7079b96703a748f89ef5adb7dc3e26b8f7fc commit 574b7079b96703a748f89ef5adb7dc3e26b8f7fc Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2021-12-02 21:49:08 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2022-06-04 11:59:04 +0000 Merge llvm-project main llvmorg-14-init-11187-g222442ec2d71 This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp to llvmorg-14-init-11187-g222442ec2d71. PR: 261742 MFC after: 2 weeks (cherry picked from commit 4824e7fd18a1223177218d4aec1b3c6c5c4a444e) --- contrib/llvm-project/FREEBSD-Xlist | 2 + .../llvm-project/clang/include/clang/AST/Decl.h | 7 +- .../clang/include/clang/AST/DeclBase.h | 6 +- .../llvm-project/clang/include/clang/AST/Expr.h | 4 + .../clang/include/clang/AST/GlobalDecl.h | 9 +- .../clang/include/clang/ASTMatchers/ASTMatchers.h | 7 +- .../clang/include/clang/Analysis/CFG.h | 2 +- .../Analysis/FlowSensitive/DataflowAnalysis.h | 134 + .../Analysis/FlowSensitive/DataflowEnvironment.h | 27 + .../clang/Analysis/FlowSensitive/DataflowLattice.h | 29 + .../FlowSensitive/TypeErasedDataflowAnalysis.h | 95 + .../llvm-project/clang/include/clang/Basic/Attr.td | 34 + .../clang/include/clang/Basic/AttrDocs.td | 34 + .../clang/include/clang/Basic/Builtins.def | 13 + .../clang/include/clang/Basic/BuiltinsPPC.def | 7 + .../include/clang/Basic/DiagnosticDriverKinds.td | 8 + .../clang/include/clang/Basic/DiagnosticGroups.td | 14 +- .../clang/include/clang/Basic/DiagnosticIDs.h | 2 +- .../include/clang/Basic/DiagnosticParseKinds.td | 3 + .../include/clang/Basic/DiagnosticSemaKinds.td | 42 +- .../clang/include/clang/Basic/SyncScope.h | 73 +- .../clang/include/clang/Driver/Options.td | 28 +- .../include/clang/Frontend/PrecompiledPreamble.h | 4 +- .../llvm-project/clang/include/clang/Sema/Sema.h | 29 +- .../DependencyScanningFilesystem.h | 16 +- contrib/llvm-project/clang/lib/AST/ASTContext.cpp | 9 + .../clang/lib/AST/ASTStructuralEquivalence.cpp | 42 + contrib/llvm-project/clang/lib/AST/Decl.cpp | 6 + contrib/llvm-project/clang/lib/AST/DeclBase.cpp | 4 +- contrib/llvm-project/clang/lib/AST/Expr.cpp | 12 +- .../llvm-project/clang/lib/AST/ExprConstant.cpp | 2 +- .../llvm-project/clang/lib/AST/MicrosoftMangle.cpp | 103 +- contrib/llvm-project/clang/lib/AST/StmtPrinter.cpp | 3 +- .../FlowSensitive/TypeErasedDataflowAnalysis.cpp | 35 + .../clang/lib/Basic/Targets/AArch64.cpp | 4 +- .../llvm-project/clang/lib/Basic/Targets/ARM.cpp | 32 + contrib/llvm-project/clang/lib/Basic/Targets/ARM.h | 3 + .../clang/lib/Basic/Targets/OSTargets.cpp | 14 +- .../llvm-project/clang/lib/Basic/Targets/SPIR.h | 38 +- .../llvm-project/clang/lib/Basic/Targets/X86.cpp | 14 +- .../llvm-project/clang/lib/CodeGen/BackendUtil.cpp | 20 +- .../llvm-project/clang/lib/CodeGen/CGAtomic.cpp | 46 + .../llvm-project/clang/lib/CodeGen/CGBuiltin.cpp | 3 +- .../clang/lib/CodeGen/CGStmtOpenMP.cpp | 3 + .../clang/lib/CodeGen/CodeGenModule.cpp | 132 +- .../llvm-project/clang/lib/CodeGen/CodeGenModule.h | 1 + .../llvm-project/clang/lib/CodeGen/TargetInfo.cpp | 34 +- contrib/llvm-project/clang/lib/Driver/Driver.cpp | 7 +- .../clang/lib/Driver/ToolChains/Clang.cpp | 121 +- .../clang/lib/Driver/ToolChains/Cuda.cpp | 2 +- .../clang/lib/Driver/ToolChains/Flang.cpp | 3 +- .../clang/lib/Driver/ToolChains/FreeBSD.cpp | 3 +- .../clang/lib/Driver/ToolChains/Linux.cpp | 3 + .../clang/lib/Driver/ToolChains/PPCFreeBSD.cpp | 28 + .../clang/lib/Driver/ToolChains/PPCFreeBSD.h | 33 + .../clang/lib/Driver/ToolChains/PS4CPU.h | 1 + .../clang/lib/Format/ContinuationIndenter.cpp | 13 +- contrib/llvm-project/clang/lib/Format/Format.cpp | 13 +- .../llvm-project/clang/lib/Format/FormatToken.h | 1 + .../clang/lib/Format/FormatTokenLexer.cpp | 49 +- .../clang/lib/Format/SortJavaScriptImports.cpp | 4 +- .../clang/lib/Format/TokenAnalyzer.cpp | 8 +- .../clang/lib/Format/TokenAnnotator.cpp | 80 +- .../clang/lib/Format/UnwrappedLineFormatter.cpp | 23 +- .../clang/lib/Format/UnwrappedLineParser.cpp | 159 +- .../clang/lib/Format/UnwrappedLineParser.h | 1 + .../clang/lib/Format/WhitespaceManager.cpp | 13 +- .../clang/lib/Frontend/InitPreprocessor.cpp | 5 + .../clang/lib/Frontend/PrecompiledPreamble.cpp | 5 +- .../lib/Frontend/Rewrite/RewriteModernObjC.cpp | 2 +- .../clang/lib/Frontend/Rewrite/RewriteObjC.cpp | 2 +- contrib/llvm-project/clang/lib/Headers/altivec.h | 60 + .../clang/lib/Headers/ppc_wrappers/emmintrin.h | 5 +- .../clang/lib/Headers/ppc_wrappers/mm_malloc.h | 2 +- .../clang/lib/Headers/ppc_wrappers/mmintrin.h | 5 +- .../clang/lib/Headers/ppc_wrappers/pmmintrin.h | 5 +- .../clang/lib/Headers/ppc_wrappers/smmintrin.h | 5 +- .../clang/lib/Headers/ppc_wrappers/tmmintrin.h | 5 +- .../clang/lib/Headers/ppc_wrappers/xmmintrin.h | 5 +- contrib/llvm-project/clang/lib/Headers/stdatomic.h | 6 +- contrib/llvm-project/clang/lib/Parse/ParseDecl.cpp | 14 +- contrib/llvm-project/clang/lib/Parse/ParseStmt.cpp | 3 + .../clang/lib/Sema/AnalysisBasedWarnings.cpp | 2 +- .../llvm-project/clang/lib/Sema/SemaChecking.cpp | 36 +- contrib/llvm-project/clang/lib/Sema/SemaDecl.cpp | 118 +- .../llvm-project/clang/lib/Sema/SemaDeclAttr.cpp | 161 +- contrib/llvm-project/clang/lib/Sema/SemaExpr.cpp | 15 + .../llvm-project/clang/lib/Sema/SemaExprCXX.cpp | 5 +- contrib/llvm-project/clang/lib/Sema/SemaStmt.cpp | 9 +- .../clang/lib/StaticAnalyzer/Core/CoreEngine.cpp | 4 +- .../StaticAnalyzer/Core/RangeConstraintManager.cpp | 39 +- .../lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp | 62 +- .../StaticAnalyzer/Frontend/AnalysisConsumer.cpp | 26 +- .../DependencyScanningFilesystem.cpp | 59 +- .../DependencyScanningWorker.cpp | 21 +- .../clang/utils/TableGen/ASTTableGen.cpp | 2 +- .../compiler-rt/include/profile/MemProfData.inc | 61 + .../compiler-rt/lib/asan/asan_interceptors.cpp | 35 +- .../compiler-rt/lib/asan/asan_report.cpp | 4 + .../llvm-project/compiler-rt/lib/asan/asan_rtl.cpp | 8 +- contrib/llvm-project/compiler-rt/lib/cfi/cfi.cpp | 4 +- .../compiler-rt/lib/memprof/memprof_allocator.cpp | 5 +- .../lib/memprof/memprof_interceptors.cpp | 4 - .../compiler-rt/lib/memprof/memprof_rawprofile.cpp | 69 +- .../compiler-rt/lib/memprof/memprof_rawprofile.h | 11 +- .../compiler-rt/lib/memprof/tests/rawprofile.cpp | 17 +- .../compiler-rt/lib/profile/InstrProfilingMerge.c | 3 +- .../lib/sanitizer_common/sanitizer_allocator.cpp | 72 +- .../sanitizer_allocator_internal.h | 2 + .../lib/sanitizer_common/sanitizer_common.h | 4 + .../sanitizer_common_interceptors.inc | 11 +- .../lib/sanitizer_common/sanitizer_dense_map.h | 53 +- .../sanitizer_common/sanitizer_dense_map_info.h | 140 +- .../lib/sanitizer_common/sanitizer_fuchsia.cpp | 9 + .../lib/sanitizer_common/sanitizer_leb128.h | 87 + .../lib/sanitizer_common/sanitizer_linux.cpp | 5 +- .../lib/sanitizer_common/sanitizer_mac.cpp | 40 +- .../lib/sanitizer_common/sanitizer_stack_store.cpp | 221 +- .../lib/sanitizer_common/sanitizer_stack_store.h | 92 +- .../lib/sanitizer_common/sanitizer_stackdepot.cpp | 16 +- .../lib/sanitizer_common/sanitizer_stacktrace.h | 2 +- .../lib/sanitizer_common/sanitizer_win.cpp | 5 + .../compiler-rt/lib/tsan/rtl/tsan_defs.h | 1 + .../lib/tsan/rtl/tsan_interceptors_posix.cpp | 47 +- .../compiler-rt/lib/tsan/rtl/tsan_mman.cpp | 32 +- .../compiler-rt/lib/tsan/rtl/tsan_mman.h | 2 + .../compiler-rt/lib/tsan/rtl/tsan_platform_mac.cpp | 143 +- .../compiler-rt/lib/tsan/rtl/tsan_rtl.cpp | 56 +- .../compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp | 2 +- contrib/llvm-project/libcxx/CREDITS.TXT | 4 + .../llvm-project/libcxx/include/__bit/byteswap.h | 55 + .../libcxx/include/__bsd_locale_fallbacks.h | 6 +- .../libcxx/include/__compare/partial_order.h | 71 + .../libcxx/include/__compare/strong_order.h | 136 + .../libcxx/include/__compare/weak_order.h | 100 + contrib/llvm-project/libcxx/include/__config | 35 +- .../libcxx/include/__iterator/reverse_iterator.h | 12 + .../libcxx/include/__iterator/wrap_iter.h | 86 +- .../libcxx/include/__memory/allocator_traits.h | 8 - .../libcxx/include/__memory/unique_ptr.h | 14 +- .../libcxx/include/__numeric/accumulate.h | 52 + .../libcxx/include/__numeric/adjacent_difference.h | 72 + .../libcxx/include/__numeric/exclusive_scan.h | 53 + .../libcxx/include/__numeric/gcd_lcm.h | 96 + .../libcxx/include/__numeric/inclusive_scan.h | 60 + .../libcxx/include/__numeric/inner_product.h | 53 + .../llvm-project/libcxx/include/__numeric/iota.h | 32 + .../libcxx/include/__numeric/midpoint.h | 85 + .../libcxx/include/__numeric/partial_sum.h | 70 + .../llvm-project/libcxx/include/__numeric/reduce.h | 47 + .../include/__numeric/transform_exclusive_scan.h | 49 + .../include/__numeric/transform_inclusive_scan.h | 58 + .../libcxx/include/__numeric/transform_reduce.h | 54 + .../include/__random/bernoulli_distribution.h | 143 + .../include/__random/binomial_distribution.h | 225 + .../libcxx/include/__random/cauchy_distribution.h | 162 + .../include/__random/chi_squared_distribution.h | 144 + .../include/__random/default_random_engine.h | 25 + .../libcxx/include/__random/discard_block_engine.h | 203 + .../include/__random/discrete_distribution.h | 260 + .../include/__random/exponential_distribution.h | 155 + .../include/__random/extreme_value_distribution.h | 161 + .../include/__random/fisher_f_distribution.h | 160 + .../libcxx/include/__random/gamma_distribution.h | 213 + .../libcxx/include/__random/generate_canonical.h | 53 + .../include/__random/geometric_distribution.h | 141 + .../include/__random/independent_bits_engine.h | 271 + .../libcxx/include/__random/is_seed_sequence.h | 31 + .../llvm-project/libcxx/include/__random/knuth_b.h | 26 + .../include/__random/linear_congruential_engine.h | 398 ++ .../llvm-project/libcxx/include/__random/log2.h | 74 + .../include/__random/lognormal_distribution.h | 163 + .../include/__random/mersenne_twister_engine.h | 534 ++ .../__random/negative_binomial_distribution.h | 176 + .../libcxx/include/__random/normal_distribution.h | 208 + .../__random/piecewise_constant_distribution.h | 356 ++ .../__random/piecewise_linear_distribution.h | 372 ++ .../libcxx/include/__random/poisson_distribution.h | 276 + .../libcxx/include/__random/random_device.h | 71 + .../llvm-project/libcxx/include/__random/ranlux.h | 31 + .../libcxx/include/__random/seed_seq.h | 150 + .../libcxx/include/__random/shuffle_order_engine.h | 283 ++ .../include/__random/student_t_distribution.h | 153 + .../include/__random/subtract_with_carry_engine.h | 352 ++ .../include/__random/uniform_int_distribution.h | 38 +- .../__random/uniform_random_bit_generator.h | 45 + .../include/__random/uniform_real_distribution.h | 160 + .../libcxx/include/__random/weibull_distribution.h | 155 + .../libcxx/include/__ranges/concepts.h | 2 +- .../libcxx/include/__utility/priority_tag.h | 26 + contrib/llvm-project/libcxx/include/bit | 13 +- contrib/llvm-project/libcxx/include/compare | 21 +- contrib/llvm-project/libcxx/include/deque | 59 +- contrib/llvm-project/libcxx/include/filesystem | 18 +- contrib/llvm-project/libcxx/include/format | 127 +- contrib/llvm-project/libcxx/include/forward_list | 29 +- contrib/llvm-project/libcxx/include/list | 50 +- .../llvm-project/libcxx/include/module.modulemap | 57 +- contrib/llvm-project/libcxx/include/numeric | 489 +- contrib/llvm-project/libcxx/include/random | 5364 +------------------- contrib/llvm-project/libcxx/include/ranges | 2 +- contrib/llvm-project/libcxx/include/string_view | 63 +- contrib/llvm-project/libcxx/include/type_traits | 4 +- contrib/llvm-project/libcxx/include/utility | 1 + contrib/llvm-project/libcxx/include/vector | 62 +- contrib/llvm-project/libcxx/include/version | 6 +- .../libcxx/src/filesystem/filesystem_common.h | 10 +- .../llvm-project/libunwind/src/Unwind-EHABI.cpp | 29 +- contrib/llvm-project/lld/COFF/Chunks.cpp | 3 +- contrib/llvm-project/lld/COFF/Writer.cpp | 6 + contrib/llvm-project/lld/ELF/AArch64ErrataFix.cpp | 4 +- contrib/llvm-project/lld/ELF/ARMErrataFix.cpp | 4 +- contrib/llvm-project/lld/ELF/Arch/ARM.cpp | 202 +- contrib/llvm-project/lld/ELF/Arch/Hexagon.cpp | 2 +- contrib/llvm-project/lld/ELF/Arch/RISCV.cpp | 2 +- contrib/llvm-project/lld/ELF/Arch/X86.cpp | 9 +- contrib/llvm-project/lld/ELF/Arch/X86_64.cpp | 60 +- contrib/llvm-project/lld/ELF/Config.h | 19 +- contrib/llvm-project/lld/ELF/Driver.cpp | 45 +- contrib/llvm-project/lld/ELF/ICF.cpp | 8 +- contrib/llvm-project/lld/ELF/InputFiles.cpp | 56 +- contrib/llvm-project/lld/ELF/InputFiles.h | 28 +- contrib/llvm-project/lld/ELF/InputSection.cpp | 4 +- contrib/llvm-project/lld/ELF/InputSection.h | 16 +- contrib/llvm-project/lld/ELF/LTO.cpp | 2 +- contrib/llvm-project/lld/ELF/LinkerScript.cpp | 301 +- contrib/llvm-project/lld/ELF/LinkerScript.h | 59 +- contrib/llvm-project/lld/ELF/MapFile.cpp | 96 +- contrib/llvm-project/lld/ELF/MapFile.h | 3 +- contrib/llvm-project/lld/ELF/Options.td | 30 +- contrib/llvm-project/lld/ELF/OutputSections.cpp | 48 +- contrib/llvm-project/lld/ELF/OutputSections.h | 7 +- contrib/llvm-project/lld/ELF/Relocations.cpp | 72 +- contrib/llvm-project/lld/ELF/ScriptParser.cpp | 70 +- contrib/llvm-project/lld/ELF/SymbolTable.cpp | 2 +- contrib/llvm-project/lld/ELF/Symbols.cpp | 41 +- contrib/llvm-project/lld/ELF/Symbols.h | 6 +- contrib/llvm-project/lld/ELF/SyntheticSections.cpp | 156 +- contrib/llvm-project/lld/ELF/SyntheticSections.h | 15 +- contrib/llvm-project/lld/ELF/Thunks.cpp | 64 +- contrib/llvm-project/lld/ELF/Writer.cpp | 244 +- contrib/llvm-project/lld/ELF/Writer.h | 1 - contrib/llvm-project/lld/MachO/InputSection.cpp | 7 +- contrib/llvm-project/lld/MachO/Symbols.h | 7 +- .../llvm-project/lld/MachO/SyntheticSections.cpp | 22 +- .../llvm-project/lld/MachO/UnwindInfoSection.cpp | 5 +- contrib/llvm-project/lld/docs/ReleaseNotes.rst | 5 + contrib/llvm-project/lld/docs/ld.lld.1 | 18 +- .../lldb/bindings/interface/SBDebugger.i | 3 + .../lldb/bindings/interface/SBTarget.i | 3 + .../llvm-project/lldb/bindings/interface/SBValue.i | 3 + .../lldb/bindings/python/python-swigsafecast.swig | 58 +- .../lldb/bindings/python/python-wrapper.swig | 299 +- .../llvm-project/lldb/bindings/python/python.swig | 1 + .../lldb/include/lldb/API/SBDebugger.h | 2 + .../llvm-project/lldb/include/lldb/API/SBTarget.h | 5 + .../llvm-project/lldb/include/lldb/API/SBValue.h | 6 + .../llvm-project/lldb/include/lldb/Core/Debugger.h | 8 +- .../include/lldb/Interpreter/OptionGroupFormat.h | 9 +- .../lldb/include/lldb/Symbol/ObjectFile.h | 28 +- .../llvm-project/lldb/include/lldb/Symbol/Symtab.h | 9 +- .../lldb/include/lldb/Target/Platform.h | 24 +- .../lldb/include/lldb/Target/Process.h | 38 +- .../llvm-project/lldb/source/API/SBDebugger.cpp | 62 +- contrib/llvm-project/lldb/source/API/SBTarget.cpp | 11 + contrib/llvm-project/lldb/source/API/SBValue.cpp | 13 + .../lldb/source/Commands/CommandObjectMemory.cpp | 17 +- contrib/llvm-project/lldb/source/Core/Debugger.cpp | 89 + contrib/llvm-project/lldb/source/Core/Module.cpp | 11 +- .../lldb/source/Interpreter/CommandObject.cpp | 3 + .../lldb/source/Interpreter/OptionGroupFormat.cpp | 40 +- .../ExpressionParser/Clang/ClangUserExpression.cpp | 2 +- .../Clang/CppModuleConfiguration.cpp | 63 +- .../Clang/CppModuleConfiguration.h | 13 +- .../Language/CPlusPlus/CPlusPlusLanguage.cpp | 22 +- .../Plugins/Language/CPlusPlus/GenericBitset.cpp | 3 +- .../Plugins/Language/CPlusPlus/LibCxxOptional.cpp | 2 +- .../Language/CPlusPlus/LibCxxUnorderedMap.cpp | 13 +- .../ObjectFile/Breakpad/ObjectFileBreakpad.cpp | 7 +- .../ObjectFile/Breakpad/ObjectFileBreakpad.h | 2 +- .../Plugins/ObjectFile/ELF/ObjectFileELF.cpp | 244 +- .../source/Plugins/ObjectFile/ELF/ObjectFileELF.h | 11 +- .../Plugins/ObjectFile/JIT/ObjectFileJIT.cpp | 21 +- .../source/Plugins/ObjectFile/JIT/ObjectFileJIT.h | 2 +- .../source/Plugins/ObjectFile/PDB/ObjectFilePDB.h | 2 +- .../Plugins/ObjectFile/wasm/ObjectFileWasm.cpp | 2 +- .../Plugins/ObjectFile/wasm/ObjectFileWasm.h | 2 +- .../Plugins/Platform/QemuUser/PlatformQemuUser.cpp | 148 + .../Plugins/Platform/QemuUser/PlatformQemuUser.h | 57 + .../QemuUser/PlatformQemuUserProperties.td | 12 + .../Plugins/Process/elf-core/ProcessElfCore.cpp | 4 +- .../Plugins/Process/elf-core/ProcessElfCore.h | 8 +- .../Process/gdb-remote/GDBRemoteCommunication.cpp | 96 +- .../Process/gdb-remote/GDBRemoteCommunication.h | 23 - .../gdb-remote/GDBRemoteCommunicationClient.cpp | 13 +- .../gdb-remote/GDBRemoteCommunicationServer.cpp | 6 +- .../gdb-remote/GDBRemoteCommunicationServer.h | 4 - .../GDBRemoteCommunicationServerLLGS.cpp | 12 - .../gdb-remote/GDBRemoteCommunicationServerLLGS.h | 1 - .../Process/gdb-remote/ProcessGDBRemote.cpp | 62 +- .../Plugins/Process/gdb-remote/ProcessGDBRemote.h | 10 +- .../Plugins/Process/minidump/ProcessMinidump.cpp | 6 +- .../Plugins/Process/minidump/ProcessMinidump.h | 6 +- .../Plugins/Process/scripted/ScriptedProcess.cpp | 4 +- .../Plugins/Process/scripted/ScriptedProcess.h | 6 +- .../ScriptInterpreter/Python/SWIGPythonBridge.h | 152 +- .../Python/ScriptInterpreterPython.cpp | 183 +- .../SymbolFile/Breakpad/SymbolFileBreakpad.cpp | 3 +- .../Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp | 12 +- .../SymbolFile/NativePDB/SymbolFileNativePDB.cpp | 5 +- .../Plugins/SymbolFile/PDB/SymbolFilePDB.cpp | 1 - .../Plugins/TypeSystem/Clang/TypeSystemClang.cpp | 2 +- .../llvm-project/lldb/source/Symbol/ObjectFile.cpp | 38 +- contrib/llvm-project/lldb/source/Symbol/Symtab.cpp | 9 +- .../llvm-project/lldb/source/Target/Platform.cpp | 40 +- .../llvm-project/lldb/source/Target/Process.cpp | 7 - .../lldb/source/Target/RemoteAwarePlatform.cpp | 11 +- contrib/llvm-project/lldb/tools/driver/Driver.cpp | 88 +- .../lldb/tools/lldb-server/lldb-platform.cpp | 26 +- contrib/llvm-project/llvm/include/llvm-c/Core.h | 11 + contrib/llvm-project/llvm/include/llvm/ADT/APInt.h | 4 +- .../llvm/include/llvm/ADT/SCCIterator.h | 133 + .../llvm-project/llvm/include/llvm/ADT/STLExtras.h | 31 +- .../llvm/include/llvm/Analysis/IVDescriptors.h | 8 + .../llvm-project/llvm/include/llvm/Analysis/Lint.h | 9 +- .../llvm/include/llvm/Analysis/ScalarEvolution.h | 29 +- .../include/llvm/Analysis/TargetLibraryInfo.def | 6 + .../llvm/include/llvm/Analysis/VectorUtils.h | 2 +- .../llvm/include/llvm/BinaryFormat/ELF.h | 7 + .../llvm/include/llvm/CodeGen/CommandFlags.h | 5 + .../llvm/CodeGen/GlobalISel/CombinerHelper.h | 49 + .../llvm/CodeGen/GlobalISel/MIPatternMatch.h | 42 + .../llvm/include/llvm/CodeGen/GlobalISel/Utils.h | 12 + .../llvm/include/llvm/CodeGen/MachineFunction.h | 3 +- .../include/llvm/CodeGen/TargetFrameLowering.h | 14 +- .../llvm/include/llvm/CodeGen/TargetInstrInfo.h | 6 + .../llvm/include/llvm/CodeGen/TargetLowering.h | 65 +- .../include/llvm/DebugInfo/DWARF/DWARFContext.h | 5 + .../include/llvm/DebugInfo/DWARF/DWARFVerifier.h | 5 +- .../llvm/include/llvm/ExecutionEngine/Orc/Core.h | 175 +- .../include/llvm/Frontend/OpenMP/OMPConstants.h | 4 + .../llvm-project/llvm/include/llvm/IR/IRBuilder.h | 125 - .../llvm/include/llvm/IR/Instructions.h | 18 - .../llvm/include/llvm/IR/IntrinsicsPowerPC.td | 18 + .../llvm-project/llvm/include/llvm/IR/Operator.h | 8 + .../llvm/include/llvm/IR/PatternMatch.h | 25 + contrib/llvm-project/llvm/include/llvm/IR/Type.h | 2 + .../llvm/include/llvm/IR/VPIntrinsics.def | 156 +- .../llvm-project/llvm/include/llvm/IR/Verifier.h | 6 +- .../include/llvm/MCA/HardwareUnits/Scheduler.h | 7 +- .../llvm/include/llvm/ObjectYAML/MachOYAML.h | 1 + .../llvm/include/llvm/ProfileData/MemProfData.inc | 61 + .../include/llvm/ProfileData/RawMemProfReader.h | 43 + .../include/llvm/Support/AArch64TargetParser.def | 3 +- .../include/llvm/Support/AArch64TargetParser.h | 9 - .../llvm/include/llvm/Support/ARMAttributeParser.h | 4 + .../llvm/include/llvm/Support/ARMBuildAttributes.h | 24 +- .../llvm/include/llvm/Support/ARMTargetParser.def | 1 + .../llvm/include/llvm/Support/ARMTargetParser.h | 2 +- .../llvm/include/llvm/Support/GenericDomTree.h | 16 +- .../llvm/include/llvm/Support/HTTPClient.h | 113 + .../llvm-project/llvm/include/llvm/Support/Mutex.h | 4 +- .../llvm/include/llvm/Support/RWMutex.h | 8 +- .../llvm/include/llvm/Support/TargetParser.h | 12 + .../llvm/include/llvm/Support/ThreadPool.h | 70 +- .../llvm/include/llvm/Target/GlobalISel/Combine.td | 96 +- .../llvm/Transforms/IPO/ProfiledCallGraph.h | 104 +- .../Transforms/Instrumentation/AddressSanitizer.h | 2 +- .../llvm/Transforms/Scalar/AnnotationRemarks.h | 1 + .../llvm/include/llvm/Transforms/Utils/Local.h | 5 - .../include/llvm/Transforms/Utils/SSAUpdater.h | 4 + .../llvm/Transforms/Utils/SampleProfileInference.h | 284 ++ .../Transforms/Utils/SampleProfileLoaderBaseImpl.h | 162 +- .../llvm/lib/Analysis/BranchProbabilityInfo.cpp | 201 +- .../llvm/lib/Analysis/DivergenceAnalysis.cpp | 10 +- .../llvm/lib/Analysis/IRSimilarityIdentifier.cpp | 2 +- .../llvm/lib/Analysis/IVDescriptors.cpp | 46 +- .../llvm/lib/Analysis/InstructionSimplify.cpp | 184 +- .../llvm/lib/Analysis/IntervalPartition.cpp | 16 +- .../llvm/lib/Analysis/LazyValueInfo.cpp | 15 +- .../llvm/lib/Analysis/LoopAccessAnalysis.cpp | 60 +- .../llvm/lib/Analysis/MemoryDependenceAnalysis.cpp | 6 +- .../llvm/lib/Analysis/MemoryLocation.cpp | 22 + .../llvm/lib/Analysis/PHITransAddr.cpp | 2 +- .../llvm-project/llvm/lib/Analysis/RegionPass.cpp | 3 + .../llvm/lib/Analysis/ScalarEvolution.cpp | 363 +- .../llvm/lib/Analysis/StackSafetyAnalysis.cpp | 126 +- .../llvm/lib/Analysis/SyncDependenceAnalysis.cpp | 59 +- .../llvm/lib/Analysis/TargetLibraryInfo.cpp | 19 +- .../llvm/lib/Analysis/VFABIDemangling.cpp | 1 - .../llvm-project/llvm/lib/AsmParser/LLParser.cpp | 13 +- .../llvm/lib/Bitcode/Reader/BitcodeAnalyzer.cpp | 4 +- .../llvm/lib/Bitcode/Reader/BitcodeReader.cpp | 9 +- .../llvm/lib/Bitcode/Reader/MetadataLoader.cpp | 7 +- .../llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | 28 +- .../llvm/lib/Bitcode/Writer/ValueEnumerator.cpp | 4 +- .../llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp | 26 +- .../llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 14 +- .../lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp | 213 +- .../lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | 134 +- .../llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h | 8 +- .../llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp | 8 +- .../llvm/lib/CodeGen/BranchFolding.cpp | 4 +- .../llvm/lib/CodeGen/BranchRelaxation.cpp | 4 +- contrib/llvm-project/llvm/lib/CodeGen/CodeGen.cpp | 2 + .../llvm-project/llvm/lib/CodeGen/CommandFlags.cpp | 15 +- .../llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp | 16 +- .../lib/CodeGen/DeadMachineInstructionElim.cpp | 11 +- .../llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp | 619 ++- .../lib/CodeGen/GlobalISel/LegalizerHelper.cpp | 36 +- .../lib/CodeGen/GlobalISel/RegisterBankInfo.cpp | 2 +- .../llvm/lib/CodeGen/GlobalISel/Utils.cpp | 27 +- .../llvm-project/llvm/lib/CodeGen/GlobalMerge.cpp | 6 +- .../llvm/lib/CodeGen/IndirectBrExpandPass.cpp | 10 +- .../llvm/lib/CodeGen/InlineSpiller.cpp | 8 +- .../llvm/lib/CodeGen/LatencyPriorityQueue.cpp | 6 +- .../CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp | 70 +- .../CodeGen/LiveDebugValues/InstrRefBasedImpl.h | 63 +- .../llvm/lib/CodeGen/LiveDebugVariables.cpp | 51 +- .../llvm/lib/CodeGen/LiveRangeEdit.cpp | 14 +- .../llvm-project/llvm/lib/CodeGen/LiveRangeUtils.h | 2 +- .../llvm/lib/CodeGen/LiveVariables.cpp | 10 +- .../llvm/lib/CodeGen/LocalStackSlotAllocation.cpp | 8 +- .../llvm/lib/CodeGen/MIRSampleProfile.cpp | 2 + .../llvm/lib/CodeGen/MachineFunction.cpp | 21 +- .../llvm-project/llvm/lib/CodeGen/MachineInstr.cpp | 6 +- .../llvm/lib/CodeGen/MachineOperand.cpp | 4 +- .../llvm/lib/CodeGen/MachineOutliner.cpp | 17 +- .../llvm/lib/CodeGen/MachinePipeliner.cpp | 24 +- .../llvm-project/llvm/lib/CodeGen/MachineSink.cpp | 12 +- .../llvm/lib/CodeGen/MachineVerifier.cpp | 24 +- .../llvm/lib/CodeGen/ModuloSchedule.cpp | 6 +- .../llvm/lib/CodeGen/PrologEpilogInserter.cpp | 13 +- .../llvm-project/llvm/lib/CodeGen/RegAllocFast.cpp | 9 +- .../llvm/lib/CodeGen/RegAllocGreedy.cpp | 119 +- .../llvm/lib/CodeGen/RegisterCoalescer.cpp | 12 +- .../llvm/lib/CodeGen/ScheduleDAGInstrs.cpp | 5 +- .../llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp | 131 +- .../llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp | 9 +- .../llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 7 +- .../lib/CodeGen/SelectionDAG/LegalizeTypes.cpp | 5 +- .../CodeGen/SelectionDAG/LegalizeVectorTypes.cpp | 21 +- .../CodeGen/SelectionDAG/ResourcePriorityQueue.cpp | 4 +- .../CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp | 4 +- .../llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 50 +- .../CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 109 +- .../lib/CodeGen/SelectionDAG/TargetLowering.cpp | 102 +- .../llvm/lib/CodeGen/StackSlotColoring.cpp | 6 +- .../llvm/lib/CodeGen/TailDuplicator.cpp | 29 - .../llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp | 10 + .../llvm/lib/CodeGen/TargetInstrInfo.cpp | 21 +- .../lib/CodeGen/TargetLoweringObjectFileImpl.cpp | 4 +- .../llvm/lib/CodeGen/TwoAddressInstructionPass.cpp | 35 +- .../llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp | 80 +- .../llvm/lib/Demangle/DLangDemangle.cpp | 253 +- .../llvm/lib/ExecutionEngine/ExecutionEngine.cpp | 3 +- .../ExecutionEngine/JITLink/ELFLinkGraphBuilder.h | 40 +- .../llvm/lib/ExecutionEngine/Orc/Core.cpp | 234 +- .../ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp | 2 +- .../llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp | 2 + contrib/llvm-project/llvm/lib/IR/AsmWriter.cpp | 26 +- contrib/llvm-project/llvm/lib/IR/Core.cpp | 8 + contrib/llvm-project/llvm/lib/IR/DIBuilder.cpp | 15 +- contrib/llvm-project/llvm/lib/IR/Instructions.cpp | 2 +- contrib/llvm-project/llvm/lib/IR/IntrinsicInst.cpp | 67 +- contrib/llvm-project/llvm/lib/IR/Operator.cpp | 21 + .../llvm-project/llvm/lib/IR/PassTimingInfo.cpp | 2 +- .../llvm/lib/IR/SafepointIRVerifier.cpp | 6 +- contrib/llvm-project/llvm/lib/IR/Verifier.cpp | 31 +- .../llvm/lib/InterfaceStub/ELFObjHandler.cpp | 2 +- contrib/llvm-project/llvm/lib/MC/MCAsmStreamer.cpp | 6 +- contrib/llvm-project/llvm/lib/MC/MCELFStreamer.cpp | 3 - .../llvm/lib/MC/MCParser/ELFAsmParser.cpp | 8 +- .../llvm/lib/MC/WinCOFFObjectWriter.cpp | 48 +- contrib/llvm-project/llvm/lib/MCA/InstrBuilder.cpp | 2 +- .../llvm/lib/MCA/Stages/ExecuteStage.cpp | 2 +- .../llvm-project/llvm/lib/Object/ELFObjectFile.cpp | 4 +- .../llvm/lib/ObjectYAML/COFFEmitter.cpp | 32 +- .../llvm-project/llvm/lib/ObjectYAML/ELFYAML.cpp | 4 + .../llvm/lib/ObjectYAML/MachOEmitter.cpp | 13 + .../llvm-project/llvm/lib/ObjectYAML/MachOYAML.cpp | 1 + contrib/llvm-project/llvm/lib/Option/OptTable.cpp | 7 +- .../llvm/lib/Passes/PassBuilderPipelines.cpp | 2 + .../llvm/lib/Passes/StandardInstrumentations.cpp | 4 +- .../ProfileData/Coverage/CoverageMappingReader.cpp | 1 - .../llvm/lib/ProfileData/InstrProf.cpp | 11 +- .../llvm/lib/ProfileData/InstrProfReader.cpp | 2 - .../llvm/lib/ProfileData/RawMemProfReader.cpp | 121 + .../llvm/lib/ProfileData/SampleProfReader.cpp | 2 +- .../llvm/lib/Support/AArch64TargetParser.cpp | 50 +- .../llvm/lib/Support/ARMAttributeParser.cpp | 26 + .../llvm/lib/Support/ARMBuildAttrs.cpp | 4 + .../llvm-project/llvm/lib/Support/CommandLine.cpp | 16 +- .../llvm-project/llvm/lib/Support/HTTPClient.cpp | 97 + .../llvm-project/llvm/lib/Support/KnownBits.cpp | 9 +- contrib/llvm-project/llvm/lib/Support/Regex.cpp | 6 +- .../llvm-project/llvm/lib/Support/StringExtras.cpp | 3 +- .../llvm-project/llvm/lib/Support/StringRef.cpp | 16 +- .../llvm-project/llvm/lib/Support/TargetParser.cpp | 48 + .../llvm-project/llvm/lib/Support/ThreadPool.cpp | 29 +- contrib/llvm-project/llvm/lib/TableGen/TGLexer.cpp | 8 +- .../llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp | 13 +- .../lib/Target/AArch64/AArch64CondBrTuning.cpp | 9 +- .../Target/AArch64/AArch64ExpandPseudoInsts.cpp | 10 +- .../lib/Target/AArch64/AArch64ISelLowering.cpp | 297 +- .../llvm/lib/Target/AArch64/AArch64ISelLowering.h | 6 + .../llvm/lib/Target/AArch64/AArch64InstrInfo.td | 16 + .../llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td | 11 +- .../Target/AArch64/AArch64TargetTransformInfo.cpp | 10 +- .../AArch64/GISel/AArch64InstructionSelector.cpp | 57 +- .../AArch64/MCTargetDesc/AArch64ELFStreamer.cpp | 4 +- .../AArch64/MCTargetDesc/AArch64TargetStreamer.cpp | 4 +- .../llvm/lib/Target/AMDGPU/AMDGPUCombine.td | 11 +- .../llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp | 41 + .../llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h | 5 + .../llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp | 49 + .../llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h | 1 + .../Target/AMDGPU/AMDGPUInstructionSelector.cpp | 16 + .../lib/Target/AMDGPU/AMDGPUInstructionSelector.h | 4 + .../llvm/lib/Target/AMDGPU/AMDGPUInstructions.td | 29 +- .../Target/AMDGPU/AMDGPUPostLegalizerCombiner.cpp | 46 + .../Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp | 6 +- .../lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp | 22 +- .../lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp | 12 +- .../lib/Target/AMDGPU/AMDILCFGStructurizer.cpp | 17 +- .../llvm/lib/Target/AMDGPU/CaymanInstructions.td | 2 - .../lib/Target/AMDGPU/EvergreenInstructions.td | 1 - .../llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp | 23 +- .../llvm/lib/Target/AMDGPU/GCNRegPressure.cpp | 10 +- .../llvm/lib/Target/AMDGPU/R600ClauseMergePass.cpp | 4 +- .../lib/Target/AMDGPU/R600EmitClauseMarkers.cpp | 4 +- .../lib/Target/AMDGPU/R600ExpandSpecialInstrs.cpp | 4 +- .../llvm/lib/Target/AMDGPU/R600ISelLowering.cpp | 5 +- .../llvm/lib/Target/AMDGPU/R600Instructions.td | 1 - .../lib/Target/AMDGPU/R600MachineScheduler.cpp | 4 +- .../Target/AMDGPU/R600OptimizeVectorRegisters.cpp | 6 +- .../llvm/lib/Target/AMDGPU/R600Packetizer.cpp | 19 +- .../llvm/lib/Target/AMDGPU/SIDefines.h | 3 +- .../llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp | 10 +- .../llvm/lib/Target/AMDGPU/SIFoldOperands.cpp | 12 +- .../llvm/lib/Target/AMDGPU/SIFrameLowering.cpp | 28 + .../llvm/lib/Target/AMDGPU/SIFrameLowering.h | 3 + .../llvm/lib/Target/AMDGPU/SIISelLowering.cpp | 80 +- .../llvm/lib/Target/AMDGPU/SIISelLowering.h | 8 + .../llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp | 9 +- .../llvm/lib/Target/AMDGPU/SIInstrInfo.cpp | 67 +- .../llvm/lib/Target/AMDGPU/SIInstrInfo.td | 2 +- .../llvm/lib/Target/AMDGPU/SIInstructions.td | 176 +- .../lib/Target/AMDGPU/SILoadStoreOptimizer.cpp | 2 +- .../llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp | 38 +- .../llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp | 2 +- .../llvm/lib/Target/AMDGPU/SIPreEmitPeephole.cpp | 11 +- .../llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp | 155 +- .../llvm/lib/Target/AMDGPU/SIRegisterInfo.h | 29 +- .../llvm/lib/Target/AMDGPU/SIRegisterInfo.td | 135 +- .../llvm/lib/Target/AMDGPU/SISchedule.td | 6 +- .../llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp | 10 +- .../lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp | 16 +- .../llvm/lib/Target/ARC/ARCMCInstLower.cpp | 3 +- contrib/llvm-project/llvm/lib/Target/ARM/ARM.h | 2 + contrib/llvm-project/llvm/lib/Target/ARM/ARM.td | 4 + .../llvm/lib/Target/ARM/ARMAsmPrinter.cpp | 48 +- .../llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp | 126 +- .../llvm/lib/Target/ARM/ARMBaseInstrInfo.h | 24 +- .../llvm/lib/Target/ARM/ARMBranchTargets.cpp | 135 + .../llvm/lib/Target/ARM/ARMConstantIslandPass.cpp | 92 +- .../llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp | 24 +- .../llvm/lib/Target/ARM/ARMFrameLowering.cpp | 20 +- .../llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp | 5 +- .../llvm/lib/Target/ARM/ARMISelLowering.cpp | 206 +- .../llvm/lib/Target/ARM/ARMISelLowering.h | 2 + .../llvm/lib/Target/ARM/ARMInstrFormats.td | 29 +- .../llvm/lib/Target/ARM/ARMInstrInfo.td | 8 + .../llvm/lib/Target/ARM/ARMInstrMVE.td | 60 +- .../llvm/lib/Target/ARM/ARMInstrThumb.td | 2 + .../llvm/lib/Target/ARM/ARMInstrThumb2.td | 138 +- .../llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp | 20 +- .../llvm/lib/Target/ARM/ARMMachineFunctionInfo.cpp | 57 +- .../llvm/lib/Target/ARM/ARMMachineFunctionInfo.h | 25 + .../llvm/lib/Target/ARM/ARMPredicates.td | 2 + .../llvm/lib/Target/ARM/ARMRegisterInfo.td | 10 + .../llvm/lib/Target/ARM/ARMSubtarget.h | 3 + .../llvm/lib/Target/ARM/ARMSystemRegister.td | 18 + .../llvm/lib/Target/ARM/ARMTargetMachine.cpp | 2 + .../llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp | 33 +- .../llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp | 17 +- .../Target/ARM/Disassembler/ARMDisassembler.cpp | 67 +- .../llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h | 24 +- .../Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp | 5 + .../llvm/lib/Target/ARM/Thumb1FrameLowering.cpp | 13 +- .../llvm/lib/Target/ARM/Thumb2InstrInfo.cpp | 5 +- .../llvm/lib/Target/ARM/Thumb2SizeReduction.cpp | 12 +- .../llvm/lib/Target/BPF/BPFMCInstLower.cpp | 4 +- .../llvm/lib/Target/Hexagon/BitTracker.cpp | 7 +- .../llvm/lib/Target/Hexagon/HexagonBitTracker.cpp | 2 +- .../llvm/lib/Target/Hexagon/HexagonCommonGEP.cpp | 18 +- .../lib/Target/Hexagon/HexagonConstExtenders.cpp | 2 +- .../lib/Target/Hexagon/HexagonCopyToCombine.cpp | 23 +- .../lib/Target/Hexagon/HexagonFrameLowering.cpp | 30 +- .../llvm/lib/Target/Hexagon/HexagonGenInsert.cpp | 31 +- .../llvm/lib/Target/Hexagon/HexagonGenMux.cpp | 2 +- .../lib/Target/Hexagon/HexagonGenPredicate.cpp | 23 +- .../lib/Target/Hexagon/HexagonHardwareLoops.cpp | 22 +- .../lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp | 8 +- .../lib/Target/Hexagon/HexagonISelLowering.cpp | 9 +- .../lib/Target/Hexagon/HexagonISelLoweringHVX.cpp | 11 +- .../llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp | 7 +- .../llvm/lib/Target/Hexagon/HexagonMCInstLower.cpp | 3 +- .../llvm/lib/Target/Hexagon/HexagonPeephole.cpp | 18 +- .../lib/Target/Hexagon/HexagonStoreWidening.cpp | 3 +- .../llvm/lib/Target/Hexagon/HexagonSubtarget.cpp | 3 +- .../lib/Target/Hexagon/HexagonVectorCombine.cpp | 1 - .../llvm/lib/Target/Lanai/LanaiDelaySlotFiller.cpp | 8 +- .../llvm/lib/Target/Lanai/LanaiFrameLowering.cpp | 9 +- .../llvm/lib/Target/Lanai/LanaiInstrInfo.cpp | 3 +- .../llvm/lib/Target/Lanai/LanaiMCInstLower.cpp | 4 +- .../llvm/lib/Target/MSP430/MSP430FrameLowering.cpp | 4 +- .../llvm/lib/Target/MSP430/MSP430MCInstLower.cpp | 4 +- .../llvm/lib/Target/Mips/Mips16FrameLowering.cpp | 11 +- .../llvm/lib/Target/Mips/MipsAsmPrinter.cpp | 5 +- .../lib/Target/Mips/MipsConstantIslandPass.cpp | 36 +- .../llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp | 5 +- .../llvm/lib/Target/Mips/MipsExpandPseudo.cpp | 5 +- .../llvm/lib/Target/Mips/MipsFrameLowering.h | 5 +- .../llvm/lib/Target/Mips/MipsMCInstLower.cpp | 3 +- .../llvm/lib/Target/Mips/MipsSEFrameLowering.cpp | 14 +- .../llvm/lib/Target/Mips/MipsSEISelLowering.cpp | 4 +- .../llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp | 54 +- .../llvm/lib/Target/NVPTX/NVPTXAsmPrinter.h | 5 + .../Target/NVPTX/NVPTXAssignValidGlobalNames.cpp | 3 +- .../lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp | 15 +- .../llvm/lib/Target/PowerPC/P10InstrResources.td | 5 +- .../llvm/lib/Target/PowerPC/P9InstrResources.td | 6 +- .../llvm-project/llvm/lib/Target/PowerPC/PPC.td | 18 +- .../llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp | 11 +- .../llvm/lib/Target/PowerPC/PPCBranchSelector.cpp | 30 +- .../llvm/lib/Target/PowerPC/PPCCTRLoops.cpp | 15 +- .../Target/PowerPC/PPCExpandAtomicPseudoInsts.cpp | 3 +- .../llvm/lib/Target/PowerPC/PPCFrameLowering.cpp | 41 +- .../llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp | 150 +- .../llvm/lib/Target/PowerPC/PPCISelLowering.cpp | 34 +- .../llvm/lib/Target/PowerPC/PPCISelLowering.h | 4 + .../llvm/lib/Target/PowerPC/PPCInstr64Bit.td | 12 + .../llvm/lib/Target/PowerPC/PPCInstrAltivec.td | 39 +- .../llvm/lib/Target/PowerPC/PPCInstrInfo.cpp | 8 +- .../llvm/lib/Target/PowerPC/PPCInstrVSX.td | 5 + .../llvm/lib/Target/PowerPC/PPCMCInstLower.cpp | 4 +- .../llvm/lib/Target/PowerPC/PPCMacroFusion.cpp | 73 + .../llvm/lib/Target/PowerPC/PPCMacroFusion.def | 75 + .../llvm/lib/Target/PowerPC/PPCSubtarget.cpp | 4 + .../llvm/lib/Target/PowerPC/PPCSubtarget.h | 8 + .../lib/Target/PowerPC/PPCTargetTransformInfo.cpp | 91 +- .../lib/Target/PowerPC/PPCTargetTransformInfo.h | 4 +- .../Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp | 8 + .../llvm/lib/Target/RISCV/RISCVFrameLowering.cpp | 16 +- .../llvm/lib/Target/RISCV/RISCVISelLowering.cpp | 137 +- .../llvm/lib/Target/RISCV/RISCVISelLowering.h | 2 + .../llvm/lib/Target/RISCV/RISCVInstrInfo.td | 1 + .../llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp | 28 + .../llvm/lib/Target/RISCV/RISCVRegisterInfo.h | 3 + .../llvm/lib/Target/RISCV/RISCVRegisterInfo.td | 2 + .../llvm/lib/Target/RISCV/RISCVSystemOperands.td | 2 +- .../llvm/lib/Target/Sparc/DelaySlotFiller.cpp | 8 +- .../llvm/lib/Target/Sparc/LeonPasses.cpp | 12 +- .../llvm/lib/Target/Sparc/SparcFrameLowering.cpp | 15 +- .../llvm/lib/Target/Sparc/SparcMCInstLower.cpp | 3 +- .../llvm/lib/Target/SystemZ/SystemZElimCompare.cpp | 3 +- .../lib/Target/SystemZ/SystemZFrameLowering.cpp | 36 +- .../llvm/lib/Target/SystemZ/SystemZFrameLowering.h | 14 +- .../llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp | 4 +- .../llvm/lib/Target/SystemZ/SystemZMCInstLower.cpp | 4 +- .../lib/Target/VE/MCTargetDesc/VEInstPrinter.cpp | 19 +- .../llvm/lib/Target/VE/VEInstrInfo.cpp | 3 +- .../WebAssembly/WebAssemblyTargetMachine.cpp | 6 +- .../lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp | 6 +- .../llvm/lib/Target/X86/X86DomainReassignment.cpp | 4 +- .../llvm/lib/Target/X86/X86DynAllocaExpander.cpp | 8 +- .../llvm/lib/Target/X86/X86ExpandPseudo.cpp | 4 +- .../llvm/lib/Target/X86/X86FixupLEAs.cpp | 7 +- .../llvm/lib/Target/X86/X86FloatingPoint.cpp | 7 +- .../llvm/lib/Target/X86/X86FrameLowering.cpp | 66 +- .../llvm/lib/Target/X86/X86FrameLowering.h | 19 +- .../llvm/lib/Target/X86/X86ISelLowering.cpp | 126 +- .../llvm/lib/Target/X86/X86InstrAVX512.td | 4 +- .../llvm/lib/Target/X86/X86InstrInfo.cpp | 7 +- .../llvm/lib/Target/X86/X86RegisterBanks.td | 2 +- .../llvm/lib/Target/X86/X86TargetTransformInfo.cpp | 251 +- .../llvm/lib/Target/XCore/XCoreFrameLowering.cpp | 8 +- .../Target/XCore/XCoreFrameToArgsOffsetElim.cpp | 4 +- .../llvm/lib/Target/XCore/XCoreMCInstLower.cpp | 3 +- .../llvm/lib/Transforms/IPO/GlobalOpt.cpp | 132 +- .../llvm/lib/Transforms/IPO/OpenMPOpt.cpp | 37 +- .../llvm/lib/Transforms/IPO/PartialInlining.cpp | 3 +- .../llvm/lib/Transforms/IPO/SampleProfile.cpp | 41 +- .../Transforms/InstCombine/InstCombineAndOrXor.cpp | 90 +- .../Transforms/InstCombine/InstCombineCalls.cpp | 2 +- .../Transforms/InstCombine/InstCombineCasts.cpp | 2 +- .../Transforms/InstCombine/InstCombineCompares.cpp | 69 +- .../Transforms/InstCombine/InstCombineInternal.h | 1 + .../Transforms/InstCombine/InstCombineNegator.cpp | 2 +- .../Transforms/InstCombine/InstCombineSelect.cpp | 4 + .../InstCombine/InstructionCombining.cpp | 23 + .../Instrumentation/AddressSanitizer.cpp | 3 +- .../Instrumentation/HWAddressSanitizer.cpp | 4 +- .../Transforms/Instrumentation/InstrProfiling.cpp | 66 +- .../Transforms/Instrumentation/ThreadSanitizer.cpp | 2 +- .../lib/Transforms/ObjCARC/DependencyAnalysis.cpp | 4 +- .../Scalar/CorrelatedValuePropagation.cpp | 54 +- .../lib/Transforms/Scalar/DeadStoreElimination.cpp | 127 +- .../llvm/lib/Transforms/Scalar/IndVarSimplify.cpp | 3 +- .../llvm/lib/Transforms/Scalar/LICM.cpp | 67 +- .../llvm/lib/Transforms/Scalar/LoopPassManager.cpp | 14 +- .../llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp | 5 +- .../llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp | 189 +- .../llvm/lib/Transforms/Scalar/Reassociate.cpp | 9 +- .../llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp | 3 +- .../llvm/lib/Transforms/Utils/BasicBlockUtils.cpp | 71 +- .../llvm/lib/Transforms/Utils/BuildLibCalls.cpp | 18 +- .../llvm/lib/Transforms/Utils/CloneModule.cpp | 12 +- .../llvm/lib/Transforms/Utils/GuardUtils.cpp | 2 +- .../llvm/lib/Transforms/Utils/InlineFunction.cpp | 7 +- .../llvm/lib/Transforms/Utils/Local.cpp | 57 +- .../lib/Transforms/Utils/LoopUnrollRuntime.cpp | 6 +- .../llvm/lib/Transforms/Utils/LoopUtils.cpp | 4 +- .../llvm/lib/Transforms/Utils/SSAUpdater.cpp | 3 + .../Transforms/Utils/SampleProfileInference.cpp | 462 ++ .../Utils/SampleProfileLoaderBaseUtil.cpp | 4 + .../Transforms/Utils/ScalarEvolutionExpander.cpp | 68 +- .../llvm/lib/Transforms/Utils/SimplifyCFG.cpp | 52 +- .../lib/Transforms/Vectorize/LoopVectorize.cpp | 980 ++-- .../lib/Transforms/Vectorize/SLPVectorizer.cpp | 612 ++- .../llvm/lib/Transforms/Vectorize/VPlan.cpp | 20 +- .../llvm/lib/Transforms/Vectorize/VPlan.h | 23 +- .../llvm/tools/llvm-cov/CodeCoverage.cpp | 42 +- .../llvm/tools/llvm-cov/CoverageFilters.cpp | 7 + .../llvm/tools/llvm-cov/CoverageFilters.h | 14 +- .../llvm/tools/llvm-diff/lib/DifferenceEngine.cpp | 26 +- .../llvm/tools/llvm-dwarfdump/Statistics.cpp | 139 +- .../llvm/tools/llvm-profdata/llvm-profdata.cpp | 24 +- .../llvm/tools/llvm-readobj/ELFDumper.cpp | 13 + .../tools/llvm-tli-checker/llvm-tli-checker.cpp | 71 +- .../llvm/utils/TableGen/AsmWriterInst.cpp | 3 +- .../llvm/utils/TableGen/CodeGenTarget.cpp | 11 +- etc/mtree/BSD.include.dist | 2 + lib/clang/include/VCSVersion.inc | 8 +- lib/clang/include/llvm/Support/VCSRevision.h | 2 +- lib/clang/libclang/Makefile | 1 + lib/clang/liblldb/LLDBWrapLua.cpp | 104 + lib/clang/libllvm/Makefile | 3 + lib/libc++/Makefile | 61 +- tools/build/mk/OptionalObsoleteFiles.inc | 61 +- 751 files changed, 23662 insertions(+), 13601 deletions(-) diff --git a/contrib/llvm-project/FREEBSD-Xlist b/contrib/llvm-project/FREEBSD-Xlist index a1b16e75a5b8..4f1ddd272910 100644 --- a/contrib/llvm-project/FREEBSD-Xlist +++ b/contrib/llvm-project/FREEBSD-Xlist @@ -41,6 +41,7 @@ clang/lib/AST/CMakeLists.txt clang/lib/ASTMatchers/CMakeLists.txt clang/lib/ASTMatchers/Dynamic/CMakeLists.txt clang/lib/Analysis/CMakeLists.txt +clang/lib/Analysis/FlowSensitive/CMakeLists.txt clang/lib/Analysis/plugins/CMakeLists.txt clang/lib/Analysis/plugins/CheckerDependencyHandling/CMakeLists.txt clang/lib/Analysis/plugins/CheckerOptionHandling/CMakeLists.txt @@ -398,6 +399,7 @@ lldb/source/Plugins/Platform/MacOSX/ lldb/source/Plugins/Platform/NetBSD/CMakeLists.txt lldb/source/Plugins/Platform/OpenBSD/CMakeLists.txt lldb/source/Plugins/Platform/POSIX/CMakeLists.txt +lldb/source/Plugins/Platform/QemuUser/CMakeLists.txt lldb/source/Plugins/Platform/Windows/ lldb/source/Plugins/Platform/gdb-server/CMakeLists.txt lldb/source/Plugins/Process/CMakeLists.txt diff --git a/contrib/llvm-project/clang/include/clang/AST/Decl.h b/contrib/llvm-project/clang/include/clang/AST/Decl.h index cc0e8de7c071..2c92571325c8 100644 --- a/contrib/llvm-project/clang/include/clang/AST/Decl.h +++ b/contrib/llvm-project/clang/include/clang/AST/Decl.h @@ -1837,7 +1837,8 @@ enum class MultiVersionKind { None, Target, CPUSpecific, - CPUDispatch + CPUDispatch, + TargetClones }; /// Represents a function declaration or definition. @@ -2456,6 +2457,10 @@ public: /// the target functionality. bool isTargetMultiVersion() const; + /// True if this function is a multiversioned dispatch function as a part of + /// the target-clones functionality. + bool isTargetClonesMultiVersion() const; + /// \brief Get the associated-constraints of this function declaration. /// Currently, this will either be a vector of size 1 containing the /// trailing-requires-clause or an empty vector. diff --git a/contrib/llvm-project/clang/include/clang/AST/DeclBase.h b/contrib/llvm-project/clang/include/clang/AST/DeclBase.h index 18468c8ca1c4..2a0a19597391 100644 --- a/contrib/llvm-project/clang/include/clang/AST/DeclBase.h +++ b/contrib/llvm-project/clang/include/clang/AST/DeclBase.h @@ -352,7 +352,7 @@ protected: DeclContext *Parent, std::size_t Extra = 0); private: - bool AccessDeclContextSanity() const; + bool AccessDeclContextCheck() const; /// Get the module ownership kind to use for a local lexical child of \p DC, /// which may be either a local or (rarely) an imported declaration. @@ -472,11 +472,11 @@ public: void setAccess(AccessSpecifier AS) { Access = AS; - assert(AccessDeclContextSanity()); + assert(AccessDeclContextCheck()); } AccessSpecifier getAccess() const { - assert(AccessDeclContextSanity()); + assert(AccessDeclContextCheck()); return AccessSpecifier(Access); } diff --git a/contrib/llvm-project/clang/include/clang/AST/Expr.h b/contrib/llvm-project/clang/include/clang/AST/Expr.h index 5d42e5284a56..02469e3a8cae 100644 --- a/contrib/llvm-project/clang/include/clang/AST/Expr.h +++ b/contrib/llvm-project/clang/include/clang/AST/Expr.h @@ -6304,8 +6304,10 @@ public: bool isCmpXChg() const { return getOp() == AO__c11_atomic_compare_exchange_strong || getOp() == AO__c11_atomic_compare_exchange_weak || + getOp() == AO__hip_atomic_compare_exchange_strong || getOp() == AO__opencl_atomic_compare_exchange_strong || getOp() == AO__opencl_atomic_compare_exchange_weak || + getOp() == AO__hip_atomic_compare_exchange_weak || getOp() == AO__atomic_compare_exchange || getOp() == AO__atomic_compare_exchange_n; } @@ -6340,6 +6342,8 @@ public: auto Kind = (Op >= AO__opencl_atomic_load && Op <= AO__opencl_atomic_fetch_max) ? AtomicScopeModelKind::OpenCL + : (Op >= AO__hip_atomic_load && Op <= AO__hip_atomic_fetch_max) + ? AtomicScopeModelKind::HIP : AtomicScopeModelKind::None; return AtomicScopeModel::create(Kind); } diff --git a/contrib/llvm-project/clang/include/clang/AST/GlobalDecl.h b/contrib/llvm-project/clang/include/clang/AST/GlobalDecl.h index 8cb56fb4ae90..88abba28c991 100644 --- a/contrib/llvm-project/clang/include/clang/AST/GlobalDecl.h +++ b/contrib/llvm-project/clang/include/clang/AST/GlobalDecl.h @@ -18,6 +18,7 @@ #include "clang/AST/DeclCXX.h" #include "clang/AST/DeclObjC.h" #include "clang/AST/DeclOpenMP.h" +#include "clang/AST/DeclTemplate.h" #include "clang/Basic/ABI.h" #include "clang/Basic/LLVM.h" #include "llvm/ADT/DenseMapInfo.h" @@ -129,8 +130,12 @@ public: } KernelReferenceKind getKernelReferenceKind() const { - assert(isa<FunctionDecl>(getDecl()) && - cast<FunctionDecl>(getDecl())->hasAttr<CUDAGlobalAttr>() && + assert(((isa<FunctionDecl>(getDecl()) && + cast<FunctionDecl>(getDecl())->hasAttr<CUDAGlobalAttr>()) || + (isa<FunctionTemplateDecl>(getDecl()) && + cast<FunctionTemplateDecl>(getDecl()) + ->getTemplatedDecl() + ->hasAttr<CUDAGlobalAttr>())) && "Decl is not a GPU kernel!"); return static_cast<KernelReferenceKind>(Value.getInt()); } diff --git a/contrib/llvm-project/clang/include/clang/ASTMatchers/ASTMatchers.h b/contrib/llvm-project/clang/include/clang/ASTMatchers/ASTMatchers.h index d6e5b215462b..5221d05477d0 100644 --- a/contrib/llvm-project/clang/include/clang/ASTMatchers/ASTMatchers.h +++ b/contrib/llvm-project/clang/include/clang/ASTMatchers/ASTMatchers.h @@ -4227,8 +4227,8 @@ AST_MATCHER(VarDecl, isInitCapture) { return Node.isInitCapture(); } /// lambdaExpr(forEachLambdaCapture( /// lambdaCapture(capturesVar(varDecl(hasType(isInteger())))))) /// will trigger two matches, binding for 'x' and 'y' respectively. -AST_MATCHER_P(LambdaExpr, forEachLambdaCapture, LambdaCaptureMatcher, - InnerMatcher) { +AST_MATCHER_P(LambdaExpr, forEachLambdaCapture, + internal::Matcher<LambdaCapture>, InnerMatcher) { BoundNodesTreeBuilder Result; bool Matched = false; for (const auto &Capture : Node.captures()) { @@ -4655,7 +4655,8 @@ extern const internal::VariadicAllOfMatcher<LambdaCapture> lambdaCapture; /// lambdaExpr(hasAnyCapture(lambdaCapture())) and /// lambdaExpr(hasAnyCapture(lambdaCapture(refersToVarDecl(hasName("t"))))) /// both match `[=](){ return t; }`. -AST_MATCHER_P(LambdaExpr, hasAnyCapture, LambdaCaptureMatcher, InnerMatcher) { +AST_MATCHER_P(LambdaExpr, hasAnyCapture, internal::Matcher<LambdaCapture>, + InnerMatcher) { for (const LambdaCapture &Capture : Node.captures()) { clang::ast_matchers::internal::BoundNodesTreeBuilder Result(*Builder); if (InnerMatcher.matches(Capture, Finder, &Result)) { diff --git a/contrib/llvm-project/clang/include/clang/Analysis/CFG.h b/contrib/llvm-project/clang/include/clang/Analysis/CFG.h index 3b9b22e87f35..b8e453fcc235 100644 --- a/contrib/llvm-project/clang/include/clang/Analysis/CFG.h +++ b/contrib/llvm-project/clang/include/clang/Analysis/CFG.h @@ -515,7 +515,7 @@ public: /// of the most derived class while we're in the base class. VirtualBaseBranch, - /// Number of different kinds, for validity checks. We subtract 1 so that + /// Number of different kinds, for assertions. We subtract 1 so that /// to keep receiving compiler warnings when we don't cover all enum values /// in a switch. NumKindsMinusOne = VirtualBaseBranch diff --git a/contrib/llvm-project/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h b/contrib/llvm-project/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h new file mode 100644 index 000000000000..a5d4a5d6ba40 --- /dev/null +++ b/contrib/llvm-project/clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h @@ -0,0 +1,134 @@ +//===- DataflowAnalysis.h ---------------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file defines base types and functions for building dataflow analyses +// that run over Control-Flow Graphs (CFGs). +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_DATAFLOWANALYSIS_H +#define LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_DATAFLOWANALYSIS_H + +#include <iterator> +#include <utility> +#include <vector> + +#include "clang/AST/ASTContext.h" +#include "clang/AST/Stmt.h" +#include "clang/Analysis/CFG.h" +#include "clang/Analysis/FlowSensitive/DataflowEnvironment.h" +#include "clang/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.h" +#include "llvm/ADT/Any.h" +#include "llvm/ADT/Optional.h" +#include "llvm/ADT/STLExtras.h" + +namespace clang { +namespace dataflow { + +/// Base class template for dataflow analyses built on a single lattice type. +/// +/// Requirements: +/// +/// `Derived` must be derived from a specialization of this class template and +/// must provide the following public members: +/// * `LatticeT initialElement()` - returns a lattice element that models the +/// initial state of a basic block; +/// * `LatticeT transfer(const Stmt *, const LatticeT &, Environment &)` - +/// applies the analysis transfer function for a given statement and lattice +/// element. +/// +/// `LatticeT` is a bounded join-semilattice that is used by `Derived` and must +/// provide the following public members: +/// * `LatticeJoinEffect join(const LatticeT &)` - joins the object and the *** 58772 LINES SKIPPED ***