SuccessChanges

Summary

  1. [InstCombine] Add or((icmp ult/ule (A + C1), C3), (icmp ult/ule (A + C2), C3)) uniform vector support (details)
  2. [clangd] Rename edge name for filesymbols to slabs in memorytree (details)
  3. [clang-tidy] Better support for Override function in RenamerClangTidy based checks (details)
  4. [InstCombine] Add (icmp eq B, 0) | (icmp ult/gt A, B) -> (icmp ule A, B-1) vector support (details)
  5. Extend tests of run-clang-tidy (details)
  6. [Aarch64] [TableGen] Clean up !if(!eq(boolean, 1) and related booleans. (details)
  7. Revert "Extend tests of run-clang-tidy" (details)
  8. [InstCombine] Add (icmp ne A, 0) | (icmp ne B, 0) --> (icmp ne (A|B), 0) vector support (details)
  9. [MLIR][SPIRVToLLVM] Updated documentation for composite ops (details)
  10. [clangd] Add test for structured-binding completion. NFC (details)
  11. [flang] Add name match checks for interface procedures (details)
  12. [clang-tidy] Add scoped enum constants to identifier naming check (details)
  13. Revert rGa704d8238c86bac: "[InstCombine] Add or((icmp ult/ule (A + C1), C3), (icmp ult/ule (A + C2), C3)) uniform vector support" (details)
  14. [lit] Avoid calling realpath() for every printed message (details)
  15. [libc++][test] Portably silence warnings (details)
  16. [libc++] Define new/delete in libc++abi only by default (details)
  17. [Dexter][NFC] Add Missing Commands to Commands.md Contents (details)
  18. [ML] Add final reward logging facility. (details)
  19. [InstCombine] foldOrOfICmps - only fold (icmp_eq B, 0) | (icmp_ult/gt A, B) for integer types (details)
  20. [ORC] Fix unused variable warning. (details)
  21. [libc++] Refactor the fuzzing tests (details)
  22. [Flang][OpenACC] Fix for branching out issue in OpenACC parallel construct. (details)
  23. [libc++] Skip tests using constexpr destructors with older clang versions (details)
  24. [NFC][MC] Type [MC]Register uses in MachineTraceMetrics (details)
  25. [AMDGPU] Correct hsa-diag-v3.s test (details)
  26. [AMDGPU] Extend hip-toolchin-features.hip test (details)
  27. [AMDGPU] Simplify cumode handling in SIMemoryLegalizer (details)
  28. [llvm] Make obj2yaml and yaml2obj LLVM utilities instead of tools (details)
  29. [DAGCombiner][PowerPC] Remove isMulhCheaperThanMulShift TLI hook, Use isOperationLegalOrCustom directly instead. (details)
  30. [libc++] Add more tests for operator<< on std::complex (details)
  31. [SCEV] Add tests where assumes can be used to improve tripe multiple. (details)
  32. [clang] Use SourceLocation as key in std::map, NFCI (details)
  33. [LangRef] Define mustprogress attribute (details)
  34. [OpenMP] Fixing OpenMP/driver.c failing on 32-bit hosts (details)
  35. [AMDGPU] Remove MUL_LOHI_U24/MUL_LOHI_I24 (details)
  36. [libc] Add LLVM libc specific functions to llvm_libc_ext.td. (details)
  37. [SVE] Update vector reduction intrinsics in new tests. (details)
  38. [LLDB][TestSuite] Improve skipIfWindowsAndNonEnglish in decorators.py (details)
  39. [flang][openacc] Switch to use TODO from D88909 (details)
  40. [NPM][opt] Run -O# after other passes in legacy PM compatibility mode (details)
  41. [AMDGPU] Correct comment typo in SIMemoryLegaliizer.cpp (details)
  42. [BatchAA] Add test for incorrect phi cycle result (NFC) (details)
  43. [NPM][test] Fix some LoopVectorize tests under NPM (details)
  44. [ORC] Fix a missing include. (details)
  45. Fix typo (details)
  46. [X86] Add i32->float and i64->double bitcast pseudo instructions to store folding table. (details)
  47. [SelectionDAG][X86] Enable SimplifySetCC CTPOP transforms for vector splats (details)
  48. [test][NPM] Fix already-vectorized.ll under NPM (details)
  49. Add alloca size threshold for StackTagging initializer merging. (details)
  50. clang/{Format,Rewrite}: Stop using SourceManager::getBuffer, NFC (details)
  51. [clang] Automatically link against oldnames just as linking against libcmt (details)
  52. [libcxx] [test] Do error printfs to stderr in filesystems tests (details)
  53. [libcxx] [test] Allow fs::permissions(path, perms, perm_options, error_code) to be noexcept (details)
  54. [libcxx] [test] Don't require fs::path::operator(string_type&&) to be noexcept (details)
  55. [libcxx] [test] Add LIBCPP_ONLY() around another test for an implementation detail (details)
  56. [libcxx] [test] Exclude domain socket tests on windows, like bsd/darwin (details)
  57. [libcxx] [test] Mark tests that require specific allocation behaviours as libcpp only (details)
  58. [libcxx] [test] Fix filesystem_test_helper.h to compile for windows (details)
  59. [libcxx] [test] Fix all remaining issues with fs::path::string_type being wstring (details)
  60. [libcxx] [test] Use _putenv instead of setenv/unsetenv on windows (details)
  61. [Intrinsics] Added writeonly attribute to the first arg of llvm.memmove (details)
  62. [NFC][SCEVExpander] isHighCostExpansionHelper(): rewrite as a switch (details)
  63. [NFC][SCEV] BuildConstantFromSCEV(): reformat, NFC (details)
  64. [NFCI][SCEV] Always refer to enum SCEVTypes as enum, not integer (details)
  65. [NPM] Port module-debuginfo pass to the new pass manager (details)
  66. [NFC] Refactor DiagnosticBuilder and PartialDiagnostic (details)
  67. Recommit "[CUDA][HIP] Defer overloading resolution diagnostics for host device functions" (details)
  68. [VE] Fix initializer visibility (details)
  69. [NFC] Inline assertion-only variable (details)
  70. [trace] rename ThreadIntelPT into TraceTrace (details)
  71. [AMDGPU] flat scratch ST addressing mode on gfx10 (details)
  72. Reland "[Modules] Add stats to measure performance of building and loading modules." (details)
  73. [mlir] Add some more std bufferize patterns. (details)
  74. [mlir] Add std.dynamic_tensor_from_elements bufferization. (details)
  75. [mlir][DialectConversion] Fix recursive `clone` calls. (details)
  76. [mlir] Use dynamic_tensor_from_elements in shape.broadcast conversion (details)
  77. Lexer: Update the Lexer to use MemoryBufferRef, NFC (details)
  78. Revert "[Sanitizers] Remove OpenBSD support" + 1 (details)
  79. [libomptarget][amdgcn] Implement missing symbols in deviceRTL (details)
  80. [hmaptool] Fix `NameError: global name 'num_buckets' is not defined` in `action_dump`. (details)
  81. Revert "[gn build] (manually) port d09b08919ca" (details)
  82. lldb: Update for change in `clang::Lexer`'s constructor (details)
  83. [libc++][test] Spell "TEST_CONSTEXPR_CXX17" correctly (details)
  84. [libc++][test] Pass correct ordering to std::merge (details)
  85. [libc++][test] atomic<T> requires trivially copyable T (details)
  86. [libc++][test] Don't violate precondition [atomics.flag]/6 (details)
  87. [libc++][test] test allocator<const T> extension only on libc++ (details)
  88. [libc++][test] Silence MSVC "comparison of signed and unsigned" warning (details)
  89. [libc++][test] Test nonconforming atomic_fetch_XXX overloads only on libc++ (details)
  90. [libc++][test] MSVC has no __PRETTY_FUNCTION__ (details)
  91. clang/Lex: Stop using SourceManager::getBuffer (details)
  92. [GWP-ASan] Cleanup (NFC) (details)
  93. Add option to use older clang ABI behavior when passing certain union types as function arguments (details)
  94. [X86] Fix assert fail when element type is i1. (details)
  95. Revert "Reland "[Modules] Add stats to measure performance of building and loading modules."" (details)
  96. Ensure that checkInitIsICE is called exactly once for every variable (details)
  97. [DAGCombiner] Tighten reasscociation of visitFMA (details)
  98. [ORC] Remove commented out methods accidentally left in in 069919c9ba3. (details)
  99. Fixup clang-tidy after recent Clang change. (details)
  100. Add llvm_unreachable to avoid MSVC warning (details)
  101. [IRCE] Do not transform if loop has small number of iterations (details)
  102. [PowerPC] Add test case for missing `nsw` flag. NFC. (details)
  103. [NPM][StackSafetyAnalysis] Pin uses of -analyze to legacy PM (details)
  104. Refactor tracking of constant initializers for variables. (details)
  105. [SCEV] Recommit "Use nw flag and symbolic iteration count to sharpen ranges of AddRecs", attempt 2 (details)
  106. [FileCollector] Move interface into FileCollectorBase (NFC) (details)
  107. [gcov] Delete CC1 option -test-coverage (details)
  108. Use LLVM_TOOLCHAIN_UTILITIES to allow utils to be installed in the toolchain (details)
  109. [NPM][PFOProfile] Fix some tests under NPM (details)
Commit a704d8238c86bac524f14adb6b04e0908a324e15 by llvm-dev
[InstCombine] Add or((icmp ult/ule (A + C1), C3), (icmp ult/ule (A + C2), C3)) uniform vector support
The file was modifiedllvm/test/Transforms/InstCombine/or.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
Commit 40749141030b8172b8490ebbdcd0d3440cbe041b by kadircet
[clangd] Rename edge name for filesymbols to slabs in memorytree

This was causing duplicate `symbols` components on the path as both the
edge from an index to filesymbols and filesymbols to symbolslabs were named
symbols.

Differential Revision: https://reviews.llvm.org/D89685
The file was modifiedclang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp
The file was modifiedclang-tools-extra/clangd/index/Background.cpp
The file was modifiedclang-tools-extra/clangd/index/FileIndex.cpp
The file was modifiedclang-tools-extra/clangd/unittests/FileIndexTests.cpp
The file was modifiedclang-tools-extra/clangd/test/memory_tree.test
Commit 866dc09784495bd2c204945144cd31cd8e653f0e by n.james93
[clang-tidy] Better support for Override function in RenamerClangTidy based checks

Methods that override virtual methods will now get renamed if the initial virtual method has a name violation.
Addresses https://bugs.llvm.org/show_bug.cgi?id=34879

Reviewed By: alexfh

Differential Revision: https://reviews.llvm.org/D79674
The file was modifiedclang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/readability-identifier-naming.cpp
Commit ecd25086d142a0a07bb774c54ba51b042a47c31c by llvm-dev
[InstCombine] Add (icmp eq B, 0) | (icmp ult/gt A, B) -> (icmp ule A, B-1) vector support
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
Commit 627c01bee0deb353b3e3e90c1b8d0b6d73464466 by aaron
Extend tests of run-clang-tidy

new test: parsing and using compile_commands
new test: export fixes to yaml file
old test extended with CHECK-MESSAGES in order to ensure that they "fail as intended"
The file was removedclang-tools-extra/test/clang-tidy/infrastructure/run-clang-tidy.cpp
The file was addedclang-tools-extra/test/clang-tidy/infrastructure/run-clang-tidy_export-diagnostics.cpp
The file was addedclang-tools-extra/test/clang-tidy/infrastructure/run-clang-tidy_config-file.cpp
Commit 2871c6c93fadee11c8d0dd3a396ca0d53e1d86f4 by paul
[Aarch64] [TableGen] Clean up !if(!eq(boolean, 1) and related booleans.

Differential Revision: https://reviews.llvm.org/D89551
The file was modifiedllvm/lib/Target/AArch64/SVEInstrFormats.td
Commit b91a236ee1c3e9fa068df058164385732cb46bba by aaron
Revert "Extend tests of run-clang-tidy"

This reverts commit 627c01bee0deb353b3e3e90c1b8d0b6d73464466.

Some failing build bots:
http://lab.llvm.org:8011/#/builders/109/builds/690
http://lab.llvm.org:8011/#/builders/14/builds/476
The file was removedclang-tools-extra/test/clang-tidy/infrastructure/run-clang-tidy_export-diagnostics.cpp
The file was removedclang-tools-extra/test/clang-tidy/infrastructure/run-clang-tidy_config-file.cpp
The file was addedclang-tools-extra/test/clang-tidy/infrastructure/run-clang-tidy.cpp
Commit de885f1b2abe7fd26c22bbb551d1dc86a87e6dff by llvm-dev
[InstCombine] Add (icmp ne A, 0) | (icmp ne B, 0) --> (icmp ne (A|B), 0) vector support

Scalar cases were already being handled by foldLogOpOfMaskedICmps (so this was dead code), but refactoring to support non-uniform vectors will take some time, so tweak this fold in the meantime.
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
Commit 87a232103294e2500bc44e3195b54063ca9e98f7 by georgemitenk0v
[MLIR][SPIRVToLLVM] Updated documentation for composite ops

Added a section on composite ops (`spv.CompositeExtract` and
`spv.CompositeInsert`) conversion.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D89658
The file was modifiedmlir/docs/SPIRVToLLVMDialectConversion.md
Commit cf814fcd3939a705f8bdf67bcf54cbf821aa6f75 by sam.mccall
[clangd] Add test for structured-binding completion. NFC
The file was modifiedclang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
Commit 0047f6aed37c4643bc9b3f3c897110447459c8db by psteinfeld
[flang] Add name match checks for interface procedures

We had neglected to check for name mismatches for procedure definitions that
appear in interfaces.

I also changed label11.f90 to an error test since I think they're better than
"FileCheck" tests.

Differential Revision: https://reviews.llvm.org/D89611
The file was modifiedflang/test/Semantics/label11.f90
The file was modifiedflang/lib/Semantics/resolve-labels.cpp
Commit 86ef379800162e5d6bb0d478c5bfb4b56498a272 by n.james93
[clang-tidy] Add scoped enum constants to identifier naming check

Added option `ScopedEnumConstant(Prefix|Case|Suffix)` to readability-identitied-naming.
This controls the style for constants in scoped enums, declared as enum (class|struct).
If this option is unspecified the EnumConstant style will be used instead.

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D89407
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/readability-identifier-naming.rst
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/readability-identifier-naming.cpp
The file was modifiedclang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
Commit 482e6f0041a81967ddf06b5e52375fbb592cfe7f by llvm-dev
Revert rGa704d8238c86bac: "[InstCombine] Add or((icmp ult/ule (A + C1), C3), (icmp ult/ule (A + C2), C3)) uniform vector support"

This reverts commit a704d8238c86bac524f14adb6b04e0908a324e15.

Causing stage2 build failures on some bots.
The file was modifiedllvm/test/Transforms/InstCombine/or.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
Commit 9a6ae91128fa53b427f2da9765f042faed5533a6 by Alexander.Richardson
[lit] Avoid calling realpath() for every printed message

I did some profiling of lit while trying to optimize the libc++ test
startup for remote hosts and it turns out that there is a realpath() call
for every message printed and this shows up in the profile.
The inspect.getframeinfo() function calls realpath() internally and
moreover we don't need most of the other information returned from it.
This patch uses inspect.getsourcefile() and os.path.abspath() to remove
../ from the path instead. Not resolving symlinks reduces the startup time
for running a single test with lit by about 50ms for me.

Reviewed By: ldionne, yln
Differential Revision: https://reviews.llvm.org/D89186
The file was modifiedllvm/utils/lit/lit/LitConfig.py
Commit b20918997ae5078b6053b04dd7309af52db6ae99 by Casey
[libc++][test] Portably silence warnings

... in `<numbers>` tests with `[[maybe_unused]]`.
The file was modifiedlibcxx/test/std/numerics/numbers/defined.pass.cpp
The file was modifiedlibcxx/test/std/numerics/numbers/specialize.pass.cpp
Commit 9b40ee8eb0c194f4b2787801ac6f9ef8fc1b8f46 by Louis Dionne
[libc++] Define new/delete in libc++abi only by default

Previously, we would define new/delete in both libc++ and libc++abi.
Not only does this cause code bloat, but also it's technically an ODR
violation since we don't know which operator will be selected. Furthermore,
since those are weak definitions, we should strive to have as few of them
as possible (to improve load times).

My preferred choice would have been to put the operators in libc++ only
by default, however that would create a circular dependency between
libc++ and libc++abi, which GNU linkers don't handle.

Folks who want to ship new/delete in libc++ instead of libc++abi are
free to do so by turning on LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS at
CMake configure time.

On Apple platforms, this shouldn't be an ABI break because we re-export
the new/delete symbols from libc++abi. This change actually makes libc++
behave closer to the system libc++ shipped on Apple platforms.

On other platforms, this is an ABI break for people linking against libc++
but not libc++abi. However, vendors have been consulted in D68269 and no
objection was raised. Furthermore, the definitions can be controlled to
appear in libc++ instead with the CMake option.

Differential Revision: https://reviews.llvm.org/D68269
The file was modifiedlibcxx/docs/ReleaseNotes.rst
The file was modifiedlibcxx/lib/abi/CHANGELOG.TXT
The file was modifiedlibcxx/lib/abi/x86_64-apple-darwin.v1.abilist
The file was modifiedlibcxx/CMakeLists.txt
The file was modifiedlibcxx/cmake/caches/Apple.cmake
The file was modifiedlibcxx/lib/abi/CMakeLists.txt
The file was modifiedlibcxx/lib/abi/x86_64-unknown-linux-gnu.v1.abilist
The file was modifiedlibcxxabi/src/CMakeLists.txt
The file was modifiedlibcxxabi/CMakeLists.txt
The file was modifiedlibcxx/src/CMakeLists.txt
Commit 7d8c19a4e9ed8f39eda0f0f383d5ff8f1485471b by Tom.Weaver
[Dexter][NFC] Add Missing Commands to Commands.md Contents

  NFC patch simply updates the commands.md documentation contents with missing
  links to the DexLimitSteps and DexLabel command documentation.

  Differential Revision: https://reviews.llvm.org/D89689

  Author:    Nabeel Omer <nabeel.omer@sony.com>
The file was modifieddebuginfo-tests/dexter/Commands.md
Commit d454328ea88562a6ec6260529a040035ab9c4a06 by mtrofin
[ML] Add final reward logging facility.

Allow logging final rewards. A final reward is logged only once, and is
serialized as all-zero values, except for the last one.

Differential Revision: https://reviews.llvm.org/D89626
The file was modifiedllvm/include/llvm/Analysis/Utils/TFUtils.h
The file was modifiedllvm/lib/Analysis/TFUtils.cpp
The file was modifiedllvm/unittests/Analysis/TFUtilsTest.cpp
Commit adb52e5f9e66e726a8175bb0025ed3553cc1534e by llvm-dev
[InstCombine] foldOrOfICmps - only fold (icmp_eq B, 0) | (icmp_ult/gt A, B) for integer types

Fixes a number of stage2 buildbots that were failing when I generalized the m_ConstantInt() logic - that didn't match for pointer types but m_Zero() does......
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
Commit c89447b65984c97145f63be21e42cfa98da60dd2 by Lang Hames
[ORC] Fix unused variable warning.
The file was modifiedllvm/lib/ExecutionEngine/Orc/Core.cpp
Commit b4bd194378851c2f421477d4147019d10f2420ac by Louis Dionne
[libc++] Refactor the fuzzing tests

Define all the fuzzing tests in libcxx/test/libcxx/fuzzing, and get
rid of the ad-hoc libcxx/fuzzing directory, which wasn't properly
integrated with the build system or test suite.

As a fly-by change, this also reduces the dependencies of fuzzing tests
on large library components like <iostream>, to make them work on more
platforms.
The file was addedlibcxx/test/libcxx/fuzzing/fuzz.h
The file was removedlibcxx/test/libcxx/fuzzing/regex_POSIX.pass.cpp
The file was removedlibcxx/test/libcxx/fuzzing/regex_egrep.pass.cpp
The file was modifiedlibcxx/test/libcxx/fuzzing/unique_copy.pass.cpp
The file was removedlibcxx/test/libcxx/fuzzing/regex_ECMAScript.pass.cpp
The file was removedlibcxx/fuzzing/fuzzing.h
The file was removedlibcxx/test/libcxx/fuzzing/regex_awk.pass.cpp
The file was modifiedlibcxx/test/libcxx/fuzzing/partial_sort.pass.cpp
The file was addedlibcxx/test/libcxx/fuzzing/search.pass.cpp
The file was modifiedlibcxx/test/libcxx/fuzzing/partial_sort_copy.pass.cpp
The file was modifiedlibcxx/test/libcxx/fuzzing/partition.pass.cpp
The file was removedlibcxx/test/libcxx/fuzzing/regex_extended.pass.cpp
The file was removedlibcxx/fuzzing/fuzz_test.cpp
The file was removedlibcxx/test/libcxx/fuzzing/geometric_distribution.pass.cpp
The file was modifiedlibcxx/test/libcxx/fuzzing/partition_copy.pass.cpp
The file was removedlibcxx/test/libcxx/fuzzing/regex_grep.pass.cpp
The file was modifiedlibcxx/utils/ci/oss-fuzz.sh
The file was modifiedlibcxx/test/libcxx/fuzzing/nth_element.pass.cpp
The file was addedlibcxx/test/libcxx/fuzzing/pop_heap.pass.cpp
The file was addedlibcxx/test/libcxx/fuzzing/random.pass.cpp
The file was removedlibcxx/fuzzing/fuzz_test_template.cpp
The file was addedlibcxx/test/libcxx/fuzzing/push_heap.pass.cpp
The file was modifiedlibcxx/test/libcxx/fuzzing/stable_sort.pass.cpp
The file was removedlibcxx/fuzzing/fuzzing.cpp
The file was modifiedlibcxx/test/libcxx/fuzzing/stable_partition.pass.cpp
The file was modifiedlibcxx/test/libcxx/fuzzing/unique.pass.cpp
The file was removedlibcxx/fuzzing/RoutineNames.txt
The file was addedlibcxx/test/libcxx/fuzzing/regex.pass.cpp
The file was addedlibcxx/test/libcxx/fuzzing/make_heap.pass.cpp
The file was modifiedlibcxx/test/libcxx/fuzzing/sort.pass.cpp
The file was removedlibcxx/test/libcxx/fuzzing/fuzzer_test.h
Commit 4a51691a85a1c048b9028d409b744a6235c55933 by joshisameeran17
[Flang][OpenACC] Fix for branching out issue in OpenACC parallel construct.

From OpenACC 3.0 Standards document
840 • A program may not branch into or out of an OpenACC parallel construct.
Exits are allowed provided it does not cause an exit outside the parallel region.

Test case exits out of the inner do loop, but it is still inside the parallel region.
Patch tries to extract labels from block attached to a construct,
If the exit is to a label not in the collected list then flags an error.

Reviewed By: tskeith

Differential Revision: https://reviews.llvm.org/D87906
The file was modifiedflang/lib/Semantics/check-do-forall.cpp
The file was modifiedflang/lib/Semantics/check-acc-structure.cpp
The file was modifiedflang/lib/Semantics/tools.cpp
The file was modifiedflang/include/flang/Semantics/tools.h
The file was modifiedflang/test/Semantics/acc-branch.f90
Commit 8041f13e62ae3dfd4b66e33d917aae45dfb61d2d by Alexander.Richardson
[libc++] Skip tests using constexpr destructors with older clang versions

It appears that the released version of clang that supports constexpr
destructors is clang 10 and the oldest one that accepts -std=c++2a is 5,
so mark these as UNSUPPORTED for clang-5 to clang-9.

Reviewed By: #libc, ldionne

Differential Revision: https://reviews.llvm.org/D89704
The file was modifiedlibcxx/test/std/utilities/memory/specialized.algorithms/specialized.construct/construct_at.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/specialized.algorithms/specialized.destroy/destroy.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/specialized.algorithms/specialized.destroy/destroy_n.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/specialized.algorithms/specialized.destroy/destroy_at.pass.cpp
Commit 225065b9a8e7ec0479b6ee8334f8fe4d4118f875 by mtrofin
[NFC][MC] Type [MC]Register uses in MachineTraceMetrics

Differential Revision: https://reviews.llvm.org/D89710
The file was modifiedllvm/include/llvm/CodeGen/MachineTraceMetrics.h
The file was modifiedllvm/lib/CodeGen/MachineTraceMetrics.cpp
Commit ceb9940b39ca7263a0069a1262be4363adbeda36 by Tony.Tye
[AMDGPU] Correct hsa-diag-v3.s test

- Use file_check -LABEL markers to prevent false positives being
  reported due to messages from different tests causing success to be
  reported.

- Add checks for all the run commands for more robust testing.

- Add checks for the absence of errors.

- Name and order tests more sensibly.

Differential Revision: https://reviews.llvm.org/D89635
The file was modifiedllvm/test/MC/AMDGPU/hsa-diag-v3.s
Commit 89d71970cb82b6f56fb64a0e711df4a59da15d42 by Tony.Tye
[AMDGPU] Extend hip-toolchin-features.hip test

- Extend hip-toolchin-features.hip to also check the lld attributes
  are passed correctly.

- Add check for cumode attributes.

Differential Revision: https://reviews.llvm.org/D89636
The file was modifiedclang/test/Driver/hip-toolchain-features.hip
Commit 151e297034c7e4ea2b52451e3a40999b94be0e8b by Tony.Tye
[AMDGPU] Simplify cumode handling in SIMemoryLegalizer

Differential Revision: https://reviews.llvm.org/D89663
The file was modifiedllvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
Commit 97b8e2c1f063529125a8d1604d2745878c016061 by Jonas Devlieghere
[llvm] Make obj2yaml and yaml2obj LLVM utilities instead of tools

For testing purposes I need a way to build and install FileCheck and
yaml2obj. I had to choose between making FileCheck an LLVM tool and
making obj2yaml and yaml2obj utilities. I think the distinction is
rather arbitrary but my understanding is that tools are things meant for
the toolchain while utilities are more used for things like testing,
which is the case here.

The functional difference is that these tools now end up in the
${LLVM_UTILS_INSTALL_DIR}, which defaults to the ${LLVM_TOOLS_INSTALL_DIR}.
Unless you specified a different value or you added obj2yaml and
yaml2obj to ${LLVM_TOOLCHAIN_TOOLS}, this patch shouldn't change
anything.

Differential revision: https://reviews.llvm.org/D89357
The file was modifiedllvm/tools/obj2yaml/CMakeLists.txt
The file was modifiedllvm/tools/yaml2obj/CMakeLists.txt
Commit 6a946fd06fa0b0215fe366c54320bc20736a7a71 by amy.kwan1
[DAGCombiner][PowerPC] Remove isMulhCheaperThanMulShift TLI hook, Use isOperationLegalOrCustom directly instead.

MULH is often expanded on targets.
This patch removes the isMulhCheaperThanMulShift hook and uses
isOperationLegalOrCustom instead.

Differential Revision: https://reviews.llvm.org/D80485
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/test/CodeGen/X86/pmulh.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
Commit ec0dc70efca825199cc5955cf813170a12e5c6a9 by Louis Dionne
[libc++] Add more tests for operator<< on std::complex
The file was modifiedlibcxx/include/complex
The file was modifiedlibcxx/test/std/numerics/complex.number/complex.ops/stream_output.pass.cpp
Commit 3cbdae22b91b94d21c0ca348e5ceea7081c9887d by flo
[SCEV] Add tests where assumes can be used to improve tripe multiple.

This patch adds a set of tests where information from assumes can be
used to improve the trip multiple.

See PR47904.
The file was addedllvm/test/Analysis/ScalarEvolution/trip-multiple-guard-info.ll
Commit a3c16039b3f119cd83d872f256c45599ae6ac60c by mikhail.maltsev
[clang] Use SourceLocation as key in std::map, NFCI

SourceLocation implements `operator<`, so `SourceLocation`-s can be used
as keys in `std::map` directly, there is no need to extract the internal
representation.

Since the `operator<` simply compares the internal representations of
its operands, this patch does not introduce any functional changes.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D89705
The file was modifiedclang/lib/ARCMigrate/TransProperties.cpp
The file was modifiedclang/lib/Frontend/Rewrite/InclusionRewriter.cpp
Commit 1e55cf77f389c5d13a776228c6d7128dad638b03 by a335pate
[LangRef] Define mustprogress attribute

LLVM IR currently assumes some form of forward progress. This form is
not explicitly defined anywhere, and is the cause of miscompilations
in most languages that are not C++11 or later. This implicit forward progress
guarantee can not be opted out of on a function level nor on a loop
level. Languages such as C (C11 and later), C++ (pre-C++11), and Rust
have different forward progress requirements and this needs to be
evident in the IR.

Specifically, C11 and onwards (6.8.5, Paragraph 6) states that "An
iteration statement whose controlling expression is not a constant
expression, that performs no input/output operations, does not access
volatile objects, and performs no synchronization or atomic operations
in its body, controlling expression, or (in the case of for statement)
its expression-3, may be assumed by the implementation to terminate."
C++11 and onwards does not have this assumption, and instead assumes
that every thread must make progress as defined in [intro.progress] when
it comes to scheduling.

This was initially brought up in [0] as a bug, a solution was presented
in [1] which is the current workaround, and the predecessor to this
change was [2].

After defining a notion of forward progress for IR, there are two
options to address this:
1) Set the default to assuming Forward Progress and provide an opt-out for functions and an opt-in for loops.
2) Set the default to not assuming Forward Progress and provide an opt-in for functions, and an opt-in for loops.

Option 2) has been selected because only C++11 and onwards have a
forward progress requirement and it makes sense for them to opt-into it
via the defined `mustprogress` function attribute.  The `mustprogress`
function attribute indicates that the function is required to make
forward progress as defined. This is sharply in contrast to the status
quo where this is implicitly assumed. In addition, `willreturn` implies `mustprogress`.

The background for why this definition was chosen is in [3] and for why
the option was chosen is in [4] and the corresponding thread(s). The implementation is in D85393, the
clang patch is in D86841, the LoopDeletion patch is in D86844, the
Inliner patches are in D87180 and D87262, and there will be more
incoming.

[0] https://bugs.llvm.org/show_bug.cgi?id=965#c25
[1] https://lists.llvm.org/pipermail/llvm-dev/2017-October/118558.html
[2] https://reviews.llvm.org/D65718
[3] https://lists.llvm.org/pipermail/llvm-dev/2020-September/144919.html
[4] https://lists.llvm.org/pipermail/llvm-dev/2020-September/145023.html

Reviewed By: jdoerfert, efriedma, nikic

Differential Revision: https://reviews.llvm.org/D86233
The file was modifiedllvm/utils/llvm.grm
The file was modifiedllvm/utils/emacs/llvm-mode.el
The file was modifiedllvm/utils/vscode/llvm/syntaxes/ll.tmLanguage.yaml
The file was modifiedllvm/utils/kate/llvm.xml
The file was modifiedllvm/utils/vim/syntax/llvm.vim
The file was modifiedllvm/docs/LangRef.rst
Commit 24df30efda6169915bc75bbf78d4c7f65d5f57e2 by jhuber6
[OpenMP] Fixing OpenMP/driver.c failing on 32-bit hosts

The changes made in D88594 caused the test OpenMP/driver.c to fail on a 32-bit host becuase it was offloading to a 64-bit architecture by default. The offloading test was moved to a new file and a feature was added to the lit config to check for a 64-bit host.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D89696
The file was addedclang/test/OpenMP/driver-openmp-target.c
The file was modifiedclang/test/OpenMP/driver.c
The file was modifiedclang/test/lit.cfg.py
Commit 56f6bf1a8d6c9288d54737479ba0bbe792528625 by jay.foad
[AMDGPU] Remove MUL_LOHI_U24/MUL_LOHI_I24

These were introduced in r279902 on the grounds that using separate
MUL_U24/MUL_I24 and MULHI_U24/MULHI_I24 nodes would introduce multiple
uses of the operands, which would prevent SimplifyDemandedBits from
simplifying the operands.

This has since been fixed by D24672 "AMDGPU/SI: Use new SimplifyDemandedBits helper for multi-use operations"

No functional change intended. At least it has no effect on lit tests.

Differential Revision: https://reviews.llvm.org/D89706
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.h
Commit ba24ba7e9c727793bdd760ed4e48d15e8b2712a2 by michaelrj
[libc] Add LLVM libc specific functions to llvm_libc_ext.td.

Also moved most of the common type definitions from libc/spec/stdc.td
to libc/spec/spec.td so that they can be used to list functions in llvm_libc_ext.td.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D89436
The file was modifiedlibc/spec/spec.td
The file was modifiedlibc/spec/stdc.td
The file was modifiedlibc/spec/llvm_libc_ext.td
Commit 629d1d117ae038601e6d7bfc046c597c05fe127b by mcinally
[SVE] Update vector reduction intrinsics in new tests.

Remove `experimental` from the intrinsic names.
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-log-reduce.ll
Commit 89b72209ad9baf585f6765df7c668da112dea230 by alexandre.ganea
[LLDB][TestSuite] Improve skipIfWindowsAndNonEnglish in decorators.py

Differential Revision: https://reviews.llvm.org/D89716
The file was modifiedlldb/packages/Python/lldbsuite/test/decorators.py
Commit 340181f29afece5abdf98aa61855b9826726d4df by clementval
[flang][openacc] Switch to use TODO from D88909

Use the Todo.h header file introduce in D88909 to marke part of the lowering that are
not done yet.

Reviewed By: jeanPerier

Differential Revision: https://reviews.llvm.org/D88915
The file was modifiedflang/lib/Lower/OpenACC.cpp
Commit 65e5006962bd49d0236a18d6772ea9f165b8c41a by aeubanks
[NPM][opt] Run -O# after other passes in legacy PM compatibility mode

Generally tests run -O# before other passes, not after.
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/metadata-enable.ll
The file was modifiedllvm/tools/opt/opt.cpp
Commit 6be9c7d2dc155d218a82d6422462f46913457d2c by Tony.Tye
[AMDGPU] Correct comment typo in SIMemoryLegaliizer.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
Commit ddd0f083184feb489684f87cf28d5eb10e0a244e by nikita.ppv
[BatchAA] Add test for incorrect phi cycle result (NFC)

AA computes the correct result for phi/a1 aliasing, while BatchAA
produces an incorrect result depening on which queries have been
performed beforehand.
The file was modifiedllvm/unittests/Analysis/AliasAnalysisTest.cpp
Commit fce64578bc1855f4d3e57a3718e39e37b089a7fe by aeubanks
[NPM][test] Fix some LoopVectorize tests under NPM
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/vectorization-remarks-missed.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/optsize.ll
Commit 9898d9d885c7e3fed287894162e0e9982be3dccf by Lang Hames
[ORC] Fix a missing include.
The file was modifiedllvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
Commit ae3625d7526f50c39784ca6b0532a74c059516c2 by Matthew.Arsenault
Fix typo
The file was modifiedllvm/include/llvm/CodeGen/LiveInterval.h
Commit e28376ec28b9034a35e01c95ccb4de9ccc6c4954 by craig.topper
[X86] Add i32->float and i64->double bitcast pseudo instructions to store folding table.

We have pseudo instructions we use for bitcasts between these types.
We have them in the load folding table, but not the store folding
table. This adds them there so they can be used for stack spills.

I added an exact size check so that we don't fold when the stack slot
is larger than the GPR. Otherwise the upper bits in the stack slot
would be garbage. That would be fine for Eli's test case in PR47874,
but I'm not sure its safe in general.

A step towards fixing PR47874. Next steps are to change the ADDSSrr_Int
pseudo instructions to use FR32 as the second source register class
instead of VR128. That will keep the coalescer from promoting the
register class of the bitcast instruction which will make the stack
slot 4 bytes instead of 16 bytes.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D89656
The file was modifiedllvm/lib/Target/X86/X86InstrFoldTables.cpp
The file was modifiedllvm/test/CodeGen/X86/pr47874.ll
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.cpp
Commit edd0cb11bd182de8d70b7bbeba73f88d7a3714db by craig.topper
[SelectionDAG][X86] Enable SimplifySetCC CTPOP transforms for vector splats

This enables these transforms for vectors:
(ctpop x) u< 2 -> (x & x-1) == 0
(ctpop x) u> 1 -> (x & x-1) != 0
(ctpop x) == 1 --> (x != 0) && ((x & x-1) == 0)
(ctpop x) != 1 --> (x == 0) || ((x & x-1) != 0)

All enabled if CTPOP isn't Legal. This differs from the scalar
behavior where the first two are done unconditionally and the
last two are done if CTPOP isn't Legal or Custom. The Legal
check produced better results for vectors based on X86's
custom handling. Might be worth re-visiting scalars here.

I disabled the looking through truncate for vectors. The
code that creates new setcc can use the same result VT as the
original setcc even if we truncated the input. That may work
work for most scalars, but definitely wouldn't work for vectors
unless it was a vector of i1.

Fixes or at least improves PR47825

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D89346
The file was modifiedllvm/test/CodeGen/X86/vector-popcnt-256.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-popcnt-128.ll
The file was modifiedllvm/test/CodeGen/X86/vector-popcnt-512.ll
Commit c76968d8b60e5ac75d3630eeff685a44d8450f74 by aeubanks
[test][NPM] Fix already-vectorized.ll under NPM

The NPM runs SpeculateAroundPHIs which breaks critical edges, causing a
branch we check for to not directly jump back to the same block.
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/already-vectorized.ll
Commit 188a7d671019247932b7242c7794960ca1986b5a by eugenis
Add alloca size threshold for StackTagging initializer merging.

Summary:
Initializer merging generates pretty inefficient code for large allocas
that also happens to trigger an exponential algorithm somewhere in
Machine Instruction Scheduler. See https://bugs.llvm.org/show_bug.cgi?id=47867.

This change adds an upper limit for the alloca size. The default limit
is selected such that worst case size of memtag-generated code is
similar to non-memtag (but because of the ISA quirks, this case is
realized at the different value of alloca size, ex. memset inlining
triggers at sizes below 512, but stack tagging instructions are 2x
shorter, so limit is approx. 256).

We could try harder to emit more compact code with initializer merging,
but that would only affect large, sparsely initialized allocas, and
those are doing fine already.

Reviewers: vitalybuka, pcc

Subscribers: llvm-commits
The file was modifiedllvm/test/CodeGen/AArch64/stack-tagging-initializer-merge.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64StackTagging.cpp
Commit 0ddf4bd47c18a4608b67fdda537f575c4c7a0a52 by Duncan P. N. Exon Smith
clang/{Format,Rewrite}: Stop using SourceManager::getBuffer, NFC

Update clang/lib/Format and clang/lib/Rewrite to use a `MemoryBufferRef`
from `getBufferOrFake` instead of `MemoryBuffer*` from `getBuffer`.

No functionality change here, since the call sites weren't checking if
the buffer was valid.

Differential Revision: https://reviews.llvm.org/D89406
The file was modifiedclang/lib/Format/FormatTokenLexer.cpp
The file was modifiedclang/lib/Rewrite/HTMLRewrite.cpp
Commit 5eece137bc76f349cefc8922447694bea29ae101 by martin
[clang] Automatically link against oldnames just as linking against libcmt

Differential Revision: https://reviews.llvm.org/D89702
The file was modifiedclang/test/Driver/msvc-link.c
The file was modifiedclang/lib/Driver/ToolChains/MSVC.cpp
Commit c61c7ba595d39f22a2f5a900e165ae464015c2e7 by martin
[libcxx] [test] Do error printfs to stderr in filesystems tests

This makes them more readable in llvm-lit's output on failures.

This only applies the change on the filesystem test subdir.

Differential Revision: https://reviews.llvm.org/D89680
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.weakly_canonical/weakly_canonical.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_normal.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_relative_and_proximate.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.proximate/proximate.pass.cpp
Commit e2ddd515abd1735a3a8c075f2e6e487872cb8a4f by martin
[libcxx] [test] Allow fs::permissions(path, perms, perm_options, error_code) to be noexcept

The standard doesn't declare this overload as noexcept, but doesn't
either say that it strictly cannot be noexcept either. The function
doesn't throw on errors that are signaled via error_code, but the
standard says that it may throw a bad_alloc.

This fixes an error with libstdc++ on linux.

Differential Revision: https://reviews.llvm.org/D89678
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.permissions/permissions.pass.cpp
Commit 41c5070888947aeebd90db484d4c6a7b34889a13 by martin
[libcxx] [test] Don't require fs::path::operator(string_type&&) to be noexcept

Mark this as a libcpp specific test; the standard doesn't say that
this method should be noexcept.

Differential Revision: https://reviews.llvm.org/D89677
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.assign/source.pass.cpp
Commit cf9831b843b44baaf5dc01954ca381e2449e4670 by martin
[libcxx] [test] Add LIBCPP_ONLY() around another test for an implementation detail

Differential Revision: https://reviews.llvm.org/D89675
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.enum/enum.perm_options.pass.cpp
Commit fa88f61ef52fb91b50e2b87aa199c62ebfc2ff3c by martin
[libcxx] [test] Exclude domain socket tests on windows, like bsd/darwin

Differential Revision: https://reviews.llvm.org/D89673
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.status/status.pass.cpp
The file was modifiedlibcxx/test/support/filesystem_test_helper.h
Commit afe40b305d2292bce5b2694220697c6e6bdeed65 by martin
[libcxx] [test] Mark tests that require specific allocation behaviours as libcpp only

This fixes/silences a few failures on libstdc++ on linux.

Differential Revision: https://reviews.llvm.org/D89676
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.native.obs/string_alloc.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.append.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.concat.pass.cpp
Commit 5c39eebc126dca73c086562bbd9598d4d4c7c197 by martin
[libcxx] [test] Fix filesystem_test_helper.h to compile for windows

Use .string() instead of .native() in places where we want to combine
paths with std::string.

Convert some methods to take a fs::path as parameter instead of
std::string, for cases where they are called with paths as
parameters (which can't be implicitly converted to std::string if
the path's string_type is wstring).

Differential Revision: https://reviews.llvm.org/D89530
The file was modifiedlibcxx/utils/libcxx/test/config.py
The file was modifiedlibcxx/test/support/filesystem_test_helper.h
Commit 81db3c31aafec72f1cfec2a9da4381ece7f97a29 by martin
[libcxx] [test] Fix all remaining issues with fs::path::string_type being wstring

Use fs::path as variable type instead of std::string, when the input
potentially is a path, as they can't be implicitly converted back to
string.

Differential Revision: https://reviews.llvm.org/D89674
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.assign/braced_init.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.decompose/path.decompose.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.weakly_canonical/weakly_canonical.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_relative_and_proximate.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.absolute/absolute.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.proximate/proximate.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_normal.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.itr/iterator.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.space/space.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/path.member/path.assign/source.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp
Commit 93671fffb5ef37060da54199cb9e009188f63a0e by martin
[libcxx] [test] Use _putenv instead of setenv/unsetenv on windows

Move the functions to the helper header and keep the arch specific
logic there.

Differential Revision: https://reviews.llvm.org/D89681
The file was modifiedlibcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp
The file was modifiedlibcxx/test/support/filesystem_test_helper.h
Commit d605a119939a91477c0eb223d3a5d7d912825daa by Dávid Bolvanský
[Intrinsics] Added writeonly attribute to the first arg of llvm.memmove

D18714 introduced writeonly attribute:

"Also start using the attribute for memset, memcpy, and memmove intrinsics,
and remove their special-casing in BasicAliasAnalysis."

But actually, writeonly was not attached to memmove - oversight, it seems.

So let's add it. As we can see, this helps DSE to eliminate redundant stores.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D89724
The file was modifiedllvm/test/Bitcode/upgrade-memory-intrinsics.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memintrinsics.ll
The file was modifiedllvm/include/llvm/IR/Intrinsics.td
Commit 3355284b2d7652cd2f7ae01aa0323ea3f963641b by lebedev.ri
[NFC][SCEVExpander] isHighCostExpansionHelper(): rewrite as a switch

If we switch over an enum, compiler can easily issue a diagnostic
if some case is not handled. However with an if cascade that isn't so.
Experimental evidence suggests new behavior to be superior.
The file was modifiedllvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
Commit d4b0aa9773a98f5072384bda414e70f6df335237 by lebedev.ri
[NFC][SCEV] BuildConstantFromSCEV(): reformat, NFC

Makes diff in next commit more readable
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit e0567582b8b1def8656f4a5addce0909fa51c86e by lebedev.ri
[NFCI][SCEV] Always refer to enum SCEVTypes as enum, not integer

The main tricky thing here is forward-declaring the enum:
we have to specify it's underlying data type.

In particular, this avoids the danger of switching over the SCEVTypes,
but actually switching over an integer, and not being notified
when some case is not handled.

I have updated most of such switches to be exaustive and not have
a default case, where it's pretty obvious to be the intent,
however not all of them.
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
The file was modifiedllvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
Commit ea693a162786d933863ab079648d4261ac0ead47 by akhuang
[NPM] Port module-debuginfo pass to the new pass manager

Port pass to NPM and update tests in DebugInfo/Generic.

Differential Revision: https://reviews.llvm.org/D89730
The file was modifiedllvm/test/DebugInfo/Generic/debuginfofinder-forward-declaration.ll
The file was modifiedllvm/lib/Analysis/Analysis.cpp
The file was modifiedllvm/test/DebugInfo/Generic/debuginfofinder-imported-global-variable.ll
The file was modifiedllvm/lib/Analysis/ModuleDebugInfoPrinter.cpp
The file was modifiedllvm/test/DebugInfo/Generic/debuginfofinder-inlined-cu.ll
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/test/DebugInfo/Generic/debuginfofinder-multiple-cu.ll
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was addedllvm/include/llvm/Analysis/ModuleDebugInfoPrinter.h
Commit 7e561b62d2f2140fcacfcdf78c42f01181fe0df5 by Yaxun.Liu
[NFC] Refactor DiagnosticBuilder and PartialDiagnostic

PartialDiagnostic misses some functions compared to DiagnosticBuilder.

This patch refactors DiagnosticBuilder and PartialDiagnostic, extracts
the common functionality so that the streaming << operators are
shared.

Differential Revision: https://reviews.llvm.org/D84362
The file was modifiedclang/include/clang/AST/Attr.h
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was modifiedclang/include/clang/Sema/DelayedDiagnostic.h
The file was modifiedclang/lib/AST/TemplateName.cpp
The file was modifiedclang/include/clang/AST/TemplateBase.h
The file was modifiedclang/include/clang/Sema/Ownership.h
The file was modifiedclang/include/clang/AST/TemplateName.h
The file was modifiedclang/include/clang/AST/ASTContext.h
The file was modifiedclang/unittests/Basic/DiagnosticTest.cpp
The file was modifiedclang/include/clang/AST/CanonicalType.h
The file was modifiedclang/include/clang/AST/DeclCXX.h
The file was modifiedclang/lib/Basic/Diagnostic.cpp
The file was modifiedclang/include/clang/AST/NestedNameSpecifier.h
The file was modifiedclang/include/clang/Basic/Diagnostic.h
The file was modifiedclang/include/clang/Sema/ParsedAttr.h
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/include/clang/AST/DependentDiagnostic.h
The file was modifiedclang/lib/AST/DeclCXX.cpp
The file was modifiedclang/lib/AST/DeclBase.cpp
The file was modifiedclang/include/clang/AST/DeclarationName.h
The file was modifiedclang/lib/AST/TemplateBase.cpp
The file was modifiedclang/include/clang/Basic/PartialDiagnostic.h
The file was modifiedclang/include/clang/AST/Decl.h
The file was modifiedclang/include/clang/AST/Type.h
The file was modifiedclang/include/clang/Tooling/Refactoring/RefactoringRuleContext.h
Commit 52bcd691cb1992187d022161e95977a9db371f51 by Yaxun.Liu
Recommit "[CUDA][HIP] Defer overloading resolution diagnostics for host device functions"

This recommits 7f1f89ec8d9944559042bb6d3b1132eabe3409de and
40df06cdafc010002fc9cfe1dda73d689b7d27a6 with bug fixes for
memory sanitizer failure and Tensile build failure.
The file was modifiedclang/include/clang/Basic/DiagnosticFrontend.h
The file was modifiedclang/include/clang/Basic/DiagnosticSema.h
The file was modifiedclang/include/clang/Basic/DiagnosticLex.h
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticCrossTU.h
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was modifiedclang/include/clang/Basic/Diagnostic.td
The file was modifiedclang/test/TableGen/DiagnosticBase.inc
The file was modifiedclang/include/clang/Basic/DiagnosticSerialization.h
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Sema/SemaOverload.cpp
The file was modifiedclang/tools/diagtool/DiagnosticNames.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticAnalysis.h
The file was modifiedclang/lib/Sema/AnalysisBasedWarnings.cpp
The file was modifiedclang/lib/Sema/SemaAttr.cpp
The file was modifiedclang/lib/Sema/SemaSYCL.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticComment.h
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/lib/Sema/SemaTemplateInstantiate.cpp
The file was addedclang/test/SemaCUDA/deferred-oeverload.cu
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was modifiedclang/lib/Sema/SemaCUDA.cpp
The file was modifiedclang/lib/Sema/SemaTemplateVariadic.cpp
The file was modifiedclang/lib/Basic/DiagnosticIDs.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/include/clang/Basic/DiagnosticAST.h
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/lib/Sema/SemaStmtAsm.cpp
The file was modifiedclang/include/clang/Basic/LangOptions.def
The file was modifiedclang/lib/Sema/Sema.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticIDs.h
The file was modifiedclang/lib/Sema/SemaStmt.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticParse.h
The file was modifiedclang/lib/Sema/SemaExprObjC.cpp
The file was modifiedclang-tools-extra/clangd/Diagnostics.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticRefactoring.h
The file was modifiedclang/include/clang/Basic/DiagnosticDriver.h
The file was addedclang/test/TableGen/deferred-diag.td
The file was modifiedclang/utils/TableGen/ClangDiagnosticsEmitter.cpp
Commit 1eb812e06d0f02382f4e91bbc9b74029a7635bd6 by slyfox
[VE] Fix initializer visibility

Before the change attempt to link libLTO.so against shared
LLVM library failed as:

```
[ 76%] Linking CXX shared library ../../lib/libLTO.so
... /usr/bin/cmake -E cmake_link_script CMakeFiles/LTO.dir/link.txt --verbose=1
c++ -o ...libLTO.so.12git ...ibLLVM-12git.so
ld: CMakeFiles/LTO.dir/lto.cpp.o: in function `llvm::InitializeAllTargetInfos()':
include/llvm/Config/Targets.def:31: undefined reference to `LLVMInitializeVETargetInfo'
```

It happens because on linux llvm build system sets default
symbol visibility to "hidden". The fix is to set visibility
back to "default" for exported APIs with LLVM_EXTERNAL_VISIBILITY.

Bug: https://bugs.llvm.org/show_bug.cgi?id=47847

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D89633
The file was modifiedllvm/lib/Target/VE/Disassembler/VEDisassembler.cpp
The file was modifiedllvm/lib/Target/VE/MCTargetDesc/VEMCTargetDesc.cpp
The file was modifiedllvm/lib/Target/VE/VEAsmPrinter.cpp
The file was modifiedllvm/lib/Target/VE/TargetInfo/VETargetInfo.cpp
The file was modifiedllvm/lib/Target/VE/VETargetMachine.cpp
Commit 8a377f1e3cf4c26f609b1204f9ce1a340f7fb8d4 by rupprecht
[NFC] Inline assertion-only variable
The file was modifiedllvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
Commit 8a203bb22d161d23c6b1195f85ae025e87f03bae by walter erquinigo
[trace] rename ThreadIntelPT into TraceTrace

Renamed ThreadIntelPT to TreaceThread, making it a top-level class. I noticed that this class can and shuld work for any trace plugin and there's nothing intel-pt specific in it.
With that TraceThread change, I was able to move most of the json file parsing logic to the base class TraceSessionFileParser, which makes adding new plug-ins easier.

This originally was part of https://reviews.llvm.org/D89283

Differential Revision: https://reviews.llvm.org/D89408
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPT.h
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPTSessionFileParser.cpp
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPTSessionFileParser.h
The file was addedlldb/source/Target/ThreadTrace.cpp
The file was modifiedlldb/include/lldb/lldb-forward.h
The file was modifiedlldb/include/lldb/Target/TraceSessionFileParser.h
The file was addedlldb/source/Target/ProcessTrace.cpp
The file was addedlldb/include/lldb/Target/ProcessTrace.h
The file was modifiedlldb/source/Plugins/Trace/intel-pt/CMakeLists.txt
The file was modifiedlldb/source/Target/CMakeLists.txt
The file was removedlldb/source/Plugins/Process/Trace/ProcessTrace.h
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPT.cpp
The file was removedlldb/source/Plugins/Trace/intel-pt/ThreadIntelPT.cpp
The file was modifiedlldb/source/API/SystemInitializerFull.cpp
The file was removedlldb/source/Plugins/Trace/intel-pt/ThreadIntelPT.h
The file was modifiedlldb/source/Target/TraceSessionFileParser.cpp
The file was addedlldb/include/lldb/Target/ThreadTrace.h
The file was modifiedlldb/source/Plugins/Process/CMakeLists.txt
The file was removedlldb/source/Plugins/Process/Trace/CMakeLists.txt
The file was removedlldb/source/Plugins/Process/Trace/ProcessTrace.cpp
Commit 6ddadf99018bc5ef91dc57173eb0b8b42a7c6213 by Stanislav.Mekhanoshin
[AMDGPU] flat scratch ST addressing mode on gfx10

GFX10 enables third addressing mode for flat scratch instructions,
an ST mode. In that mode both register operands are omitted and
only swizzled offset is used in addition to flat_scratch base.

Differential Revision: https://reviews.llvm.org/D89501
The file was addedllvm/test/MC/AMDGPU/flat-scratch-st-mode.s
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPU.td
The file was modifiedllvm/test/MC/Disassembler/AMDGPU/gfx1030_dasm_new.txt
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
The file was modifiedllvm/lib/Target/AMDGPU/FLATInstructions.td
Commit 4000c9ee18ecebe3ff0f197af8c1fb434ad986e5 by vsapsai
Reland "[Modules] Add stats to measure performance of building and loading modules."

Measure amount of high-level or fixed-cost operations performed during
building/loading modules and during header search. High-level operations
like building a module or processing a .pcm file are motivated by
previous issues where clang was re-building modules or re-reading .pcm
files unnecessarily. Fixed-cost operations like `stat` calls are tracked
because clang cannot change how long each operation takes but it can
perform fewer of such operations to improve the compile time.

Also tracking such stats over time can help us detect compile-time
regressions. Added stats are more stable than the actual measured
compilation time, so expect the detected regressions to be less noisy.

On relanding drop stats in MemoryBuffer.cpp as their value is pretty low
but affects a lot of clients and many of those aren't interested in
modules and header search.

rdar://problem/55715134

Reviewed By: aprantl, bruno

Differential Revision: https://reviews.llvm.org/D86895
The file was modifiedllvm/lib/Support/Windows/Path.inc
The file was modifiedllvm/lib/Support/Unix/Path.inc
The file was modifiedllvm/lib/Support/Path.cpp
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp
The file was modifiedclang/lib/Serialization/ASTReader.cpp
Commit e3f5073a961076475c286a39a2cba2bf803eb32c by silvasean
[mlir] Add some more std bufferize patterns.

Add bufferizations for extract_element and tensor_from_elements.

Differential Revision: https://reviews.llvm.org/D89594
The file was modifiedmlir/test/Dialect/Standard/bufferize.mlir
The file was modifiedmlir/lib/Dialect/StandardOps/Transforms/Bufferize.cpp
Commit f4abd3ed6d95e66470a0c8cc132e61782896527a by silvasean
[mlir] Add std.dynamic_tensor_from_elements bufferization.

It's unfortunate that this requires adding a dependency on scf dialect
to std bufferization (and hence all of std transforms). This is a bit
perilous. We might want a lib/Transforms/Bufferize/ with a separate
bufferization library per dialect?

Differential Revision: https://reviews.llvm.org/D89667
The file was modifiedmlir/include/mlir/Dialect/StandardOps/Transforms/Passes.td
The file was modifiedmlir/lib/Dialect/StandardOps/Transforms/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/StandardOps/Transforms/PassDetail.h
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/lib/Dialect/StandardOps/Transforms/Bufferize.cpp
The file was modifiedmlir/test/Dialect/Standard/bufferize.mlir
Commit 7885bf8b78e21a29e27c598e0aed602de8f15260 by silvasean
[mlir][DialectConversion] Fix recursive `clone` calls.

The framework was not tracking ops created in any regions of the cloned
op.

Differential Revision: https://reviews.llvm.org/D89668
The file was modifiedmlir/include/mlir/IR/Builders.h
The file was modifiedmlir/lib/IR/Builders.cpp
The file was modifiedmlir/test/Dialect/Standard/bufferize.mlir
Commit 57211fd239a3a3efe89f0b7091f86a167f8301ff by silvasean
[mlir] Use dynamic_tensor_from_elements in shape.broadcast conversion

Now, convert-shape-to-std doesn't internally create memrefs, which was
previously a bit of a layering violation. The conversion to memrefs
should logically happen as part of bufferization.

Differential Revision: https://reviews.llvm.org/D89669
The file was modifiedmlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp
The file was modifiedmlir/test/Conversion/ShapeToStandard/shape-to-standard.mlir
Commit b3eff6b7bb31e7ef059a3d238de138849839fbbd by Duncan P. N. Exon Smith
Lexer: Update the Lexer to use MemoryBufferRef, NFC

Update `Lexer` / `Lexer::Lexer` to use `MemoryBufferRef` instead of
`MemoryBuffer*`. Callers that were acquiring a `MemoryBuffer*` via
`SourceManager::getBuffer` were updated, such that if they checked
`Invalid` they use `getBufferOrNone` and otherwise `getBufferOrFake`.

Differential Revision: https://reviews.llvm.org/D89398
The file was modifiedclang/include/clang/Lex/Lexer.h
The file was modifiedclang/lib/Frontend/VerifyDiagnosticConsumer.cpp
The file was modifiedclang/lib/Frontend/FrontendAction.cpp
The file was modifiedclang/lib/Frontend/FrontendActions.cpp
The file was modifiedclang/lib/Lex/PPLexerChange.cpp
The file was modifiedclang/lib/Tooling/Inclusions/HeaderIncludes.cpp
The file was modifiedclang/lib/Lex/Lexer.cpp
The file was modifiedclang/lib/Format/FormatTokenLexer.cpp
The file was modifiedclang/lib/Rewrite/HTMLRewrite.cpp
The file was modifiedclang/lib/Frontend/Rewrite/InclusionRewriter.cpp
The file was modifiedclang-tools-extra/clangd/Format.cpp
The file was modifiedclang/lib/Rewrite/TokenRewriter.cpp
The file was modifiedclang/lib/Frontend/Rewrite/RewriteMacros.cpp
Commit 7ecd60bb7022bb681b9dc01a9c232fd93b4b169c by eugenis
Revert "[Sanitizers] Remove OpenBSD support" + 1

Revert "Fix compiler-rt build on Windows after D89640"

This reverts commit a7acee89d68473183cc5021d952a56cdf0ae27d3.
This reverts commit d09b08919ca6e206cd981fdea8b19b1d1188e325.

Reason: breaks Linux / x86_64 build.
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerExtraCounters.cpp
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerUtilLinux.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp
The file was modifiedcompiler-rt/cmake/base-config-ix.cmake
The file was modifiedcompiler-rt/lib/ubsan/ubsan_platform.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_posix.h
The file was modifiedcompiler-rt/lib/xray/xray_x86_64.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/CMakeLists.txt
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
The file was addedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_openbsd.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/tests/sanitizer_common_test.cpp
The file was addedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_openbsd.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_procmaps.h
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
The file was modifiedcompiler-rt/lib/asan/tests/asan_mem_test.cpp
The file was modifiedcompiler-rt/lib/fuzzer/afl/afl_driver.cpp
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerUtilPosix.cpp
The file was modifiedcompiler-rt/lib/tsan/go/buildgo.sh
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cpp
The file was modifiedcompiler-rt/lib/interception/interception.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform.h
The file was modifiedcompiler-rt/cmake/config-ix.cmake
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerPlatform.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux.h
The file was modifiedcompiler-rt/lib/interception/interception_linux.cpp
The file was addedcompiler-rt/lib/sanitizer_common/sanitizer_openbsd.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerExtFunctionsWeak.cpp
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_errno.h
The file was modifiedcompiler-rt/lib/interception/interception_linux.h
The file was modifiedcompiler-rt/lib/xray/xray_basic_logging.cpp
Commit d27b39ce11629f8742a487f9d1d2a343756d0da7 by jonathanchesterfield
[libomptarget][amdgcn] Implement missing symbols in deviceRTL

[libomptarget][amdgcn] Implement missing symbols in deviceRTL

Malloc, wtime are stubs. Malloc needs a hostrpc implementation which is
a work in progress, wtime needs some experimentation to find out the
multiplier to get a time in seconds as documentation is scarce.

Reviewed By: ronlieb

Differential Revision: https://reviews.llvm.org/D89725
The file was modifiedopenmp/libomptarget/deviceRTLs/amdgcn/src/target_impl.hip
Commit 34ccc3e13bccde6f5cf993c744efe4bcb1fd439a by vsapsai
[hmaptool] Fix `NameError: global name 'num_buckets' is not defined` in `action_dump`.
The file was modifiedclang/utils/hmaptool/hmaptool
Commit 6ca3dd97352013375f907d92a7e1aed7ab80fbc3 by thakis
Revert "[gn build] (manually) port d09b08919ca"

This reverts commit 4d2d287a030fe81a5bf9d982ed8ea26fe3bcee6b.
d09b08919ca got reverted in 7ecd60bb702.
The file was modifiedllvm/utils/gn/secondary/compiler-rt/lib/sanitizer_common/BUILD.gn
Commit f96e16bc15a9a10857681b85b6c8824b9addd9b2 by Duncan P. N. Exon Smith
lldb: Update for change in `clang::Lexer`'s constructor

b3eff6b7bb31e7ef059a3d238de138849839fbbd updated `Lexer::Lexer` to take
`clang::MemoryBufferRef` instead of `clang::MemoryBuffer*`. Update LLDB
to fix the bots.
The file was modifiedlldb/source/Plugins/Language/ClangCommon/ClangHighlighter.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp
Commit 24ab5787b44435d0c7e805a8579753e48be9f5b9 by Casey
[libc++][test] Spell "TEST_CONSTEXPR_CXX17" correctly

These three algorithm tests are incorrectly using `_LIBCPP_CONSTEXPR_AFTER_CXX17` instead of `TEST_CONSTEXPR_CXX17`.
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.rotate/rotate.pass.cpp
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.move/move_backward.pass.cpp
The file was modifiedlibcxx/test/std/algorithms/alg.modifying.operations/alg.move/move.pass.cpp
Commit fce9ca3c1e3adf9f506cd0e195b7f27b4f8db0c4 by Casey
[libc++][test] Pass correct ordering to std::merge

The predicate passed to `merge` must induce a strict weak ordering on its arguments.
The file was modifiedlibcxx/test/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp
Commit dccc742c2257159abec6b287223bb159bbf4b91c by Casey
[libc++][test] atomic<T> requires trivially copyable T

The author of these tests apparently forgot that `atomic_{,un}signed_lock_free` are already specializations of `atomic`.
The file was modifiedlibcxx/test/std/atomics/types.pass.cpp
The file was modifiedlibcxx/test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
Commit 877766573b21a72b04371b8790c0828dc7176f5d by Casey
[libc++][test] Don't violate precondition [atomics.flag]/6

... which forbids passing `memory_order_release` or `memory_order_acq_rel` to either overload of `atomic_flag_test_explicit`.
The file was modifiedlibcxx/test/std/atomics/atomics.flag/atomic_flag_test_explicit.pass.cpp
Commit d5971a63ca3280525b99e1544c83f1b007ad0a34 by Casey
[libc++][test] test allocator<const T> extension only on libc++
The file was modifiedlibcxx/test/std/utilities/memory/default.allocator/allocator.dtor.pass.cpp
The file was modifiedlibcxx/test/std/utilities/memory/default.allocator/allocator_types.pass.cpp
Commit f92d874fe58555c1e6982cf78c257f3188d429f9 by Casey
[libc++][test] Silence MSVC "comparison of signed and unsigned" warning
The file was modifiedlibcxx/test/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp
The file was modifiedlibcxx/test/std/algorithms/alg.sorting/alg.merge/merge.pass.cpp
Commit 7f82352a2c766114bf1f2aa70f458da4e7304043 by Casey
[libc++][test] Test nonconforming atomic_fetch_XXX overloads only on libc++

The Standard doesn't include the
```c++
template<class T>
T* atomic_fetch_meow(atomic<T*>, ...);
```
templates these tests are testing.

(See https://bugs.llvm.org/show_bug.cgi?id=47908)
The file was modifiedlibcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpp
The file was modifiedlibcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add_explicit.pass.cpp
The file was modifiedlibcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpp
The file was modifiedlibcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpp
Commit a668ad92d5e2161e07e1a435a19ea5072f52a989 by Casey
[libc++][test] MSVC has no __PRETTY_FUNCTION__

Use `__FUNCSIG__` instead when compiling with MSVC. While we're touching `makeTypeIDImp`, remove the warning suppression for C4640 "construction of local static object is not thread safe" since C1XX now correctly constant-initializes `id`.
The file was modifiedlibcxx/test/support/type_id.h
Commit b03ae74319f19c3b86982638671d00205a91d263 by Duncan P. N. Exon Smith
clang/Lex: Stop using SourceManager::getBuffer

Update clang/lib/Lex to stop relying on a `MemoryBuffer*`, using the
`MemoryBufferRef` from `getBufferOrNone` since both locations had logic
for checking validity of the buffer. There's potentially a functionality
change, since the logic was wrong (it checked for `nullptr`, which was
never returned by the old API), but if that was reachable the new
behaviour should be better.

Differential Revision: https://reviews.llvm.org/D89402
The file was modifiedclang/lib/Lex/PPDirectives.cpp
The file was modifiedclang/lib/Lex/ModuleMap.cpp
Commit ae9d0400283229032fb3795b7b50920bf9be38dc by kostyak
[GWP-ASan] Cleanup (NFC)

Cleaning up some of the GWP-ASan code base:
- lots of headers didn't have the correct file name
- adding `#ifdef` guard to `utilities.h`
- correcting an `#ifdef` guard based on actual file name
- removing an extra `;`
- clang-format'ing the code (`-style=llvm`)

Differential Revision: https://reviews.llvm.org/D89721
The file was modifiedcompiler-rt/lib/gwp_asan/platform_specific/utilities_posix.cpp
The file was modifiedcompiler-rt/lib/gwp_asan/definitions.h
The file was modifiedcompiler-rt/lib/gwp_asan/platform_specific/common_posix.cpp
The file was modifiedcompiler-rt/lib/gwp_asan/guarded_pool_allocator.h
The file was modifiedcompiler-rt/lib/gwp_asan/utilities.h
The file was modifiedcompiler-rt/lib/gwp_asan/crash_handler.cpp
The file was modifiedcompiler-rt/lib/gwp_asan/crash_handler.h
The file was modifiedcompiler-rt/lib/gwp_asan/random.cpp
The file was modifiedcompiler-rt/lib/gwp_asan/optional/segv_handler.h
The file was modifiedcompiler-rt/lib/gwp_asan/optional/segv_handler_posix.cpp
Commit 774ab60125eeaeac8bf2470b7aaa6aa428d68453 by douglas.yung
Add option to use older clang ABI behavior when passing certain union types as function arguments

Recently commit D78699 (commit 26cfb6e562f1), fixed clang's behavior with respect
to passing a union type through a register to correctly follow the ABI. However,
this is an ABI breaking change with earlier versions of the clang compiler, so we
should add an -fclang-abi-compat option to address this. Additionally, the PS4 ABI
requires the older behavior, so that is added as well.

This change adds a Ver11 value to the ClangABI enum that when it is set (or the
target is the PS4 triple), we skip the ABI fix introduced in D78699.

Differential Revision: https://reviews.llvm.org/D89747
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/test/CodeGen/X86/avx-union.c
The file was modifiedclang/include/clang/Basic/LangOptions.h
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
Commit 3a85472af2b6f758c43999e0c013142271f72e74 by pengfei.wang
[X86] Fix assert fail when element type is i1.

extract_vector_elt will turn type vxi1 into i8, which triggers the assertion fail.
Since we don't really handle vxi1 cases in below code, we can just return from here.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D89096
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-or-cmp.ll
Commit a28678e20a112f8851fda2550e415924420bdcd5 by vsapsai
Revert "Reland "[Modules] Add stats to measure performance of building and loading modules.""

This reverts commit 4000c9ee18ecebe3ff0f197af8c1fb434ad986e5.

Test "LLVM :: Other/statistic.ll" is failing on Windows.
The file was modifiedllvm/lib/Support/Path.cpp
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp
The file was modifiedllvm/lib/Support/Windows/Path.inc
The file was modifiedllvm/lib/Support/Unix/Path.inc
The file was modifiedclang/lib/Serialization/ASTReader.cpp
Commit 76c0092665867a6defcd328ba0d0d976eb65d991 by richard
Ensure that checkInitIsICE is called exactly once for every variable
for which it matters.

This is a step towards separating checking for a constant initializer
(in which std::is_constant_evaluated returns true) and any other
evaluation of a variable initializer (in which it returns false).
The file was modifiedclang/include/clang/Serialization/ASTRecordWriter.h
The file was modifiedclang/lib/CodeGen/ItaniumCXXABI.cpp
The file was modifiedclang/test/SemaCXX/i-c-e-cxx.cpp
The file was modifiedclang/include/clang/AST/Decl.h
The file was modifiedclang/test/CodeGen/enable_if.c
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/test/Sema/enable_if.c
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/test/SemaCXX/constant-expression.cpp
The file was modifiedclang/lib/Serialization/ASTReaderDecl.cpp
The file was modifiedclang/lib/AST/ComparisonCategories.cpp
The file was modifiedclang/test/OpenMP/threadprivate_codegen.cpp
The file was modifiedclang/lib/AST/Decl.cpp
The file was modifiedclang/lib/Serialization/ASTWriter.cpp
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp
Commit 1b2fe71ecf6bd647a244fc64c231e31dfe1faaa2 by qiucofan
[DAGCombiner] Tighten reasscociation of visitFMA

From LangRef, FMF contract should not enable reassociating to form
arbitrary contractions. So it should not help rearrange nodes like
(fma (fmul x, c1), c2, y) into (fma x, c1*c2, y).

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D89527
The file was modifiedllvm/test/CodeGen/X86/fma-scalar-combine.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/fma-combine.ll
Commit 1044dfa7edb72041c20409207cda532d28cb60f4 by Lang Hames
[ORC] Remove commented out methods accidentally left in in 069919c9ba3.

Thanks for spotting this Mehdi!
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Core.h
Commit c7a7bba8c101f575ef10cb54737033d71f2b722c by richard
Fixup clang-tidy after recent Clang change.
The file was modifiedclang-tools-extra/clang-tidy/bugprone/DynamicStaticInitializersCheck.cpp
Commit ad0b2d9d46a368248ed27bd27d3500cc8028456e by gcmn
Add llvm_unreachable to avoid MSVC warning

Without this I get a warning about not all paths returning.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D89760
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
Commit 38799975ceb21da0e3d2ce70c3f23ba69adf0269 by serguei.katkov
[IRCE] Do not transform if loop has small number of iterations

IRCE has some overhead for runtime checks and in case number of iteration is small
the overhead can kill the benefit from optimizations.

This CL bases on BlockFrequencyInfo of pre-header and header to estimate the
number of loop iterations. If it is less than irce-min-estimated-iters we do not transform the loop.

Probably it is better to make more complex cost model but for simplicity it seems the be enough.

The usage of BFI is added only for new pass manager and tries to use it efficiently.

Reviewers: ebrevnov, dantrushin, asbirlea, mkazantsev
Reviewed By: mkazantsev
Subscribers: llvm-commits, fhahn
Differential Revision: https://reviews.llvm.org/D89541
The file was addedllvm/test/Transforms/IRCE/low-iterations.ll
The file was modifiedllvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
Commit 638fee625d43f663bf61168b793a402ad8c509fc by lkail
[PowerPC] Add test case for missing `nsw` flag. NFC.
The file was addedllvm/test/CodeGen/PowerPC/setcc-sub-flag.ll
Commit 0f0ff33037aa11f0a67a3540529131abde52f038 by aeubanks
[NPM][StackSafetyAnalysis] Pin uses of -analyze to legacy PM

Tests already have corresponding NPM RUN lines.
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/local.ll
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/memintrin.ll
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/ipa-alias.ll
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/ipa.ll
Commit 3692d20d2b994ce865ffb97096b05218279e1ebd by richard
Refactor tracking of constant initializers for variables.

Instead of framing the interface around whether the variable is an ICE
(which is only interesting in C++98), primarily track whether the
initializer is a constant initializer (which is interesting in all C++
language modes).

No functionality change intended.
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/lib/AST/Decl.cpp
The file was modifiedclang/include/clang/AST/Decl.h
The file was modifiedclang/lib/CodeGen/ItaniumCXXABI.cpp
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was modifiedclang/lib/AST/ExprConstant.cpp
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp
The file was modifiedclang/lib/Serialization/ASTReaderDecl.cpp
The file was modifiedclang/lib/Serialization/ASTWriter.cpp
Commit a10a64e7e334dc878d281aba9a46f751fe606567 by mkazantsev
[SCEV] Recommit "Use nw flag and symbolic iteration count to sharpen ranges of AddRecs", attempt 2

Fixed wrapping range case & proof methods reduced to constant range
checks to save compile time.

Differential Revision: https://reviews.llvm.org/D89381
The file was modifiedllvm/test/Transforms/IndVarSimplify/X86/eliminate-trunc.ll
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/test/Transforms/IndVarSimplify/promote-iv-to-eliminate-casts.ll
The file was modifiedllvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll
Commit f44fb130253aa5486380604101ce50a62a8d668b by Jonas Devlieghere
[FileCollector] Move interface into FileCollectorBase (NFC)

For the reproducers in LLDB we want to switch to an "immediate mode"
FileCollector that writes every file encountered straight to disk so we
can generate the actual mapping out-of-process. This patch moves the
interface into a separate base class.

Differential revision: https://reviews.llvm.org/D89742
The file was modifiedllvm/lib/Support/FileCollector.cpp
The file was modifiedllvm/include/llvm/Support/FileCollector.h
Commit 0ab222e7d730bb1f8b676e64b51615624e08614b by i
[gcov] Delete CC1 option -test-coverage

The name is unfortunate because it is similar to the driver option -ftest-coverage.
It turns out aside from one occurrence in a test, this option is not used.
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
The file was removedclang/test/CodeGenCXX/coverage.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
Commit 024921a5e165cc2e0fa7c1b3732aff6f3f5df60b by Jonas Devlieghere
Use LLVM_TOOLCHAIN_UTILITIES to allow utils to be installed in the toolchain

Make it possible to specify a list of utilities that should be installed
in the toolchain.

Differential revision: https://reviews.llvm.org/D89762
The file was modifiedllvm/cmake/modules/AddLLVM.cmake
Commit 7e9411efcf09e31d2db9e82dde378e40c908fc82 by aeubanks
[NPM][PFOProfile] Fix some tests under NPM
The file was modifiedllvm/test/Transforms/PGOProfile/indirectbr.ll
The file was modifiedllvm/test/Transforms/PGOProfile/chr.ll