SuccessChanges

Summary

  1. [SVE][CodeGen] Fix TypeSize/ElementCount related warnings in sve-split-store.ll (details)
  2. docs: add documentation describing API Notes (details)
  3. [NFC][regalloc] Model weight normalization as a virtual (details)
  4. [clangd] Describe non-handling of most IWYU pragmas. NFC (details)
  5. [InstCombine] Add test for PR47730 (details)
  6. [InstCombine] Handle GEP inbounds in select op replacement (PR47730) (details)
  7. [gcov] Fix non-determinism (DenseMap iteration order) of checksum computation (details)
  8. [lldb/test] Catch invalid calls to expect() (details)
  9. [CodeGen][MachineSched] Fixup function name typo. NFC (details)
  10. [NFC][GCOV] Fix build: there's `llvm::stable_partition()` wrapper (details)
  11. [CUDA] Don't call __cudaRegisterVariable on C++17 inline variables (details)
  12. [LLD] [COFF] Fix parsing version numbers with leading zeros (details)
  13. [LLD] [COFF] Add a private option for setting the os version separately from subsystem version (details)
  14. [LLD] [MinGW] Simplify handling of os/subsystem version (details)
  15. [LLD] [MinGW] Support setting the subsystem version via the subsystem argument (details)
  16. [flang] Make binary->decimal conversion buffer sizes accurate (details)
  17. [libc++] Fix several debug mode tests (details)
  18. [SLC] Optimize mempcpy_chk to mempcpy (details)
  19. Revert "[SLC] Optimize mempcpy_chk to mempcpy" (details)
  20. [libc++] NFC: Remove unused <iostream> include in atomic.cpp (details)
  21. [libc++] NFC: Rename variant helpers to avoid name clashes (details)
  22. [libc++] Use __has_include instead of complex logic in thread.cpp (details)
  23. [RISCV] Use the extensions in the canonical order (NFC) (details)
  24. [RISCV] Add SiFive cores to the CPU option (details)
  25. [flang] Correct kP scaling on F output (details)
  26. [InstCombine] Revert rL226781 "Teach InstCombine to canonicalize loads which are only ever stored to always use a legal integer type if one is available." (PR47592) (details)
  27. [MLIR][SPIRV] Extend _reference_of to support SpecConstantCompositeOp. (details)
  28. [SVE] Add legalisation tests to sve-fixed-length-int-reduce.ll (details)
  29. Revert "Outline non returning functions unless a longjmp" (details)
  30. Cleanup CodeGen/CallingConvLower.cpp (details)
  31. [SelectionDAG] Make sure FMF are propagated when getSetcc canonicalizes FP constants to RHS. (details)
  32. [X86] Remove X86ISD::LCMPXCHG8_SAVE_EBX_DAG and LCMPXCHG8B_SAVE_EBX pseudo instruction (details)
  33. [libcxx][dsl] Fix mutable default argument warning (details)
  34. [OpenMP][Archer][Tests] NFC: fix spurious test failure (details)
  35. Show register names in DWARF unwind info. (details)
  36. Fix raciness in the StopHook check for "has the target run". (details)
  37. [libc++] Improve tests for std::quoted (details)
  38. [NFC][regalloc] Separate iteration from AllocationOrder (details)
Commit fa0293081d62295140f8518cc7127473d6856cda by david.sherwood
[SVE][CodeGen] Fix TypeSize/ElementCount related warnings in sve-split-store.ll

I have fixed up a number of warnings resulting from TypeSize -> uint64_t
casts and calling getVectorNumElements() on scalable vector types. I
think most of the changes are fairly trivial except for those in
DAGTypeLegalizer::SplitVecRes_MSTORE I've tried to ensure we create
the MachineMemoryOperands in a sensible way for scalable vectors.

I have added a CHECK line to the following test:

CodeGen/AArch64/sve-split-store.ll

that ensures no new warnings are added.

Differential Revision: https://reviews.llvm.org/D86928
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/test/CodeGen/AArch64/sve-split-store.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
Commit 85d506400081e121ef876a4c66fb337b050dcae6 by Saleem Abdulrasool
docs: add documentation describing API Notes

API Notes are a feature which allows annotation of headers by an
auxiliary file that contains metadata for declarations pertaining to the
associated module.  This enables adding attributes to declarations
without requiring modification of the headers, enabling finer grained
control for library headers for consumers without having to modify
external headers.

Differential Revision: https://reviews.llvm.org/D88446
Reviewed By: Richard Smith, Marcel Hlopko
The file was addedclang/docs/APINotes.rst
The file was addedclang/test/APINotes/Inputs/Frameworks/SomeKit.framework/Headers/SomeKit.h
The file was addedclang/test/APINotes/Inputs/Frameworks/SomeKit.framework/Headers/SomeKitExplicitNullability.h
The file was addedclang/test/APINotes/Inputs/Frameworks/SomeKit.framework/Headers/SomeKit_private.apinotes
The file was addedclang/test/APINotes/Inputs/Frameworks/SomeKit.framework/Headers/SomeKit.apinotes
Commit 82ebbcfb059ba755ce4ae7711a27205fbe443990 by mtrofin
[NFC][regalloc] Model weight normalization as a virtual

Continuing from D88499, we can now model the normalization function as a
virtual member of VirtRegAuxInfo. Note that the default
(normalizeSpillWeight) is also used stand-alone in RAGreedy.

Differential Revision: https://reviews.llvm.org/D88713
The file was modifiedllvm/include/llvm/CodeGen/CalcSpillWeights.h
The file was modifiedllvm/lib/CodeGen/RegAllocPBQP.cpp
Commit 95262ee2be75daffd05e9a8a985ca2c8e34c9af7 by sam.mccall
[clangd] Describe non-handling of most IWYU pragmas. NFC

Differential Revision: https://reviews.llvm.org/D88822
The file was modifiedclang-tools-extra/clangd/index/CanonicalIncludes.h
Commit 0f8e4a5ed0e556af82592f7cae4a6082ab238da3 by nikita.ppv
[InstCombine] Add test for PR47730
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
Commit 3641d375f6747237b1b55a25a55e9028d8a67a02 by nikita.ppv
[InstCombine] Handle GEP inbounds in select op replacement (PR47730)

When retrying the "simplify with operand replaced" select
optimization without poison flags, also handle inbounds on GEPs.

Of course, this particular example would also be safe to transform
while keeping inbounds, but the underlying machinery does not
know this (yet).
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
Commit e338f8fe69b869afd8adf53919bd578aaf14fb2f by i
[gcov] Fix non-determinism (DenseMap iteration order) of checksum computation

... by using MapVector. The issue was caused by 63182c2ac0b643a60d397274e8a31166fc7243fa.

Also use stable_partition instead of partition to get stable results
across different STL implementations.
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
Commit 010d7a388b146cafaf4bc0b28b952d5852d62b6a by davelee.com
[lldb/test] Catch invalid calls to expect()

Add preconditions to `TestBase.expect()` that catch semantically invalid calls
that happen to succeed anyway. This also fixes the broken callsites caught by
these checks.

This prevents the following incorrect calls:

1. `self.expect("lldb command", "some substr")`
2. `self.expect("lldb command", "assert message", "some substr")`

Differential Revision: https://reviews.llvm.org/D88792
The file was modifiedlldb/test/API/commands/settings/TestSettings.py
The file was modifiedlldb/test/API/commands/frame/diagnose/complicated-expression/TestComplicatedExpression.py
The file was modifiedlldb/test/API/macosx/macCatalyst/TestMacCatalyst.py
The file was modifiedlldb/test/API/functionalities/breakpoint/breakpoint_by_line_and_column/TestBreakpointByLineAndColumn.py
The file was modifiedlldb/test/API/commands/frame/diagnose/dereference-this/TestDiagnoseDereferenceThis.py
The file was modifiedlldb/test/API/assert_messages_test/TestAssertMessages.py
The file was modifiedlldb/test/API/commands/frame/diagnose/virtual-method-call/TestDiagnoseDereferenceVirtualMethodCall.py
The file was modifiedlldb/test/API/commands/frame/diagnose/dereference-argument/TestDiagnoseDereferenceArgument.py
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-objc/cmtime/TestDataFormatterCMTime.py
The file was modifiedlldb/test/API/commands/frame/diagnose/local-variable/TestLocalVariable.py
The file was modifiedlldb/test/API/lang/cpp/constructors/TestCppConstructors.py
The file was modifiedlldb/test/API/commands/frame/diagnose/inheritance/TestDiagnoseInheritance.py
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
The file was modifiedlldb/test/API/driver/batch_mode/TestBatchMode.py
The file was modifiedlldb/test/API/types/TestRecursiveTypes.py
The file was modifiedlldb/test/API/commands/frame/diagnose/bad-reference/TestBadReference.py
Commit db80cc397e7ec4aeefc7322e6a240651506e15a6 by jonathan_roelofs
[CodeGen][MachineSched] Fixup function name typo. NFC
The file was modifiedllvm/lib/CodeGen/MachineScheduler.cpp
Commit 59127de2435b54c6b1621f5b3e7fabc3e79ff248 by lebedev.ri
[NFC][GCOV] Fix build: there's `llvm::stable_partition()` wrapper
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
Commit a2cc8833683dd124cf2ee96f6d17f7f835da1fc8 by i
[CUDA] Don't call __cudaRegisterVariable on C++17 inline variables

D17779: host-side shadow variables of external declarations of device-side
global variables have internal linkage and are referenced by
`__cuda_register_globals`.

nvcc from CUDA 11 does not allow `__device__ inline` or `__device__ constexpr`
(C++17 inline variables) but clang has incorrectly supported them for a while:

```
error: A __device__ variable cannot be marked constexpr
error: An inline __device__/__constant__/__managed__ variable must have internal linkage when the program is compiled in whole program mode (-rdc=false)
```

If such a variable (which has a comdat group) is discarded (a copy from another
translation unit is prevailing and selected), accessing the variable from
outside the section group (`__cuda_register_globals`) is a violation of the ELF
specification and will be rejected by linkers:

> A symbol table entry with STB_LOCAL binding that is defined relative to one of a group's sections, and that is contained in a symbol table section that is not part of the group, must be discarded if the group members are discarded. References to this symbol table entry from outside the group are not allowed.

As a workaround, don't register such inline variables for now.
(If we register the variables in all TUs, we will keep multiple instances of the shadow and break the C++ semantics for inline variables).
We should reject such variables in Sema but our internal users need some time to migrate.

Reviewed By: tra

Differential Revision: https://reviews.llvm.org/D88786
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedclang/test/CodeGenCUDA/device-stub.cu
Commit 19e86336efa75456469a2a3491fc58e65af6bd0a by martin
[LLD] [COFF] Fix parsing version numbers with leading zeros

Parse the components as decimal, instead of decuding the base from
the string. This avoids ambiguity if the second number contains leading
zeros, which previously were parsed as indicating an octal number.

MS link.exe doesn't support hexadecimal numbers in the version numbers,
neither in /version nor in /subsystem.

Differential Revision: https://reviews.llvm.org/D88801
The file was modifiedlld/test/COFF/version.test
The file was modifiedlld/test/COFF/subsystem.test
The file was modifiedlld/COFF/DriverUtils.cpp
Commit 45c4c54003641f2bb225eaf305c07906451d6096 by martin
[LLD] [COFF] Add a private option for setting the os version separately from subsystem version

The MinGW driver has separate options for OS and subsystem version.
Having this available in lld-link allows the MinGW driver to both match
GNU ld better and simplifies the code for merging two (potentially
mismatching) arguments into one.

Differential Revision: https://reviews.llvm.org/D88802
The file was modifiedlld/COFF/Writer.cpp
The file was modifiedlld/COFF/Config.h
The file was modifiedlld/COFF/Driver.cpp
The file was modifiedlld/COFF/Driver.h
The file was modifiedlld/COFF/DriverUtils.cpp
The file was modifiedlld/COFF/Options.td
The file was modifiedlld/test/COFF/subsystem.test
Commit bc8f3b424c7785754c1de8a2f5a1e2c16a997143 by martin
[LLD] [MinGW] Simplify handling of os/subsystem version

As they can be set independently after D88802, we can get rid of a bit
of extra code - simplifying the logic here before adding more
complication to it later.

Differential Revision: https://reviews.llvm.org/D88803
The file was modifiedlld/test/MinGW/driver.test
The file was modifiedlld/COFF/Config.h
The file was modifiedlld/MinGW/Driver.cpp
Commit 61e2f9fa2e514c053c571228639ccdb5d21fadd4 by martin
[LLD] [MinGW] Support setting the subsystem version via the subsystem argument

If a version is specified both with --{major,minor}-subsystem-version and
with --subsystem <name>:<version>, the one specified last (that actually
sets a version) takes precedance in GNU ld; thus doing the same here.

Differential Revision: https://reviews.llvm.org/D88804
The file was modifiedlld/test/MinGW/driver.test
The file was modifiedlld/MinGW/Driver.cpp
Commit 07cb4c013c43721565530f3be077c947804da8a6 by pklausler
[flang] Make binary->decimal conversion buffer sizes accurate

The binary values that produce the most significant decimal
digits in an exact conversion are those with the least normal
biased exponent (1) and all fractional bits set, not the
least-valued subnormals.  So the binary->decimal conversion
buffer sizes were a little short, and could cause a overrun crash.

Differential revision: https://reviews.llvm.org/D88688
The file was modifiedflang/include/flang/Common/real.h
Commit a506a66bd90cb15885833012fb2c2b7873bff541 by Louis Dionne
[libc++] Fix several debug mode tests

These tests were only being run when _LIBCPP_DEBUG was defined, which
isn't the case by default when we run the test suite. In other words,
all these debug mode tests were never being run. This commit makes sure
they are run, and in some cases, extracts them into a file under test/libcxx
to separate them from the Standard tests.

Differential Revision: https://reviews.llvm.org/D88836
The file was removedlibcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db2.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/sequences/vector/db_front.pass.cpp
The file was removedlibcxx/test/std/strings/basic.string/string.iterators/db_iterators_6.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db3.pass.cpp
The file was removedlibcxx/test/std/strings/basic.string/string.iterators/db_iterators_8.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db1.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db1.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/sequences/vector/db_cfront.pass.cpp
The file was removedlibcxx/test/std/strings/basic.string/string.access/db_back.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db1.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/sequences/vector/db_iterators_3.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_rvalue.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.map/db_insert_hint_const_lvalue.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.set/erase_iter_iter_db2.pass.cpp
The file was addedlibcxx/test/libcxx/strings/basic.string/string.access/db_cfront.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multimap/db_local_iterators_7.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/sequences/vector/db_cback.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db4.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multimap/db_insert_hint_const_lvalue.pass.cpp
The file was modifiedlibcxx/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db3.pass.cpp
The file was removedlibcxx/test/std/strings/basic.string/string.iterators/db_iterators_4.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db1.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multimap/db_local_iterators_8.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/sequences/vector/db_iterators_5.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.set/erase_iter_db2.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.map/db_move.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.map/db_bucket.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.multiset/insert_hint_const_lvalue.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.set/unord.set.swap/db_swap_1.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.set/db_iterators_8.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db4.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.set/erase_iter_db1.pass.cpp
The file was modifiedlibcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db1.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db2.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multimap/db_insert_hint_rvalue.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db2.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.set/erase_iter_db2.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multimap/db_iterators_8.pass.cpp
The file was addedlibcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_8.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_db1.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db1.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db4.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_db1.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multiset/erase_iter_db2.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db3.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.set/db_local_iterators_8.pass.cpp
The file was removedlibcxx/test/std/strings/basic.string/string.access/db_index.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.map/unord.map.swap/db_swap_1.pass.cpp
The file was modifiedlibcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db2.pass.cpp
The file was addedlibcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_3.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_hint_const_lvalue.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multimap/unord.multimap.swap/db_swap_1.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multiset/db_local_iterators_7.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.set/erase_iter_iter_db3.pass.cpp
The file was modifiedlibcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db4.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db2.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db1.pass.cpp
The file was removedlibcxx/test/std/strings/basic.string/string.iterators/db_iterators_3.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_db2.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multiset/db_iterators_8.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/sequences/vector/pop_back_empty.pass.cpp
The file was addedlibcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_5.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db2.pass.cpp
The file was removedlibcxx/test/std/strings/basic.string/string.access/db_front.pass.cpp
The file was removedlibcxx/test/std/strings/basic.string/string.iterators/db_iterators_7.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/sequences/vector/db_iterators_4.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multimap/db_iterators_8.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multiset/db_iterators_7.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multiset/unord.multiset.swap/db_swap_1.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multimap/db_iterators_7.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/sequences/vector/db_iterators_6.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.set/unord.set.cnstr/move.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.set/insert_hint_const_lvalue.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multimap/db_local_iterators_8.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_iter_db4.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multiset/db_local_iterators_8.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db4.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.set/db_insert_hint_const_lvalue.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.set/erase_iter_iter_db1.pass.cpp
The file was addedlibcxx/test/libcxx/strings/basic.string/string.access/db_index.pass.cpp
The file was modifiedlibcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db1.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db3.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.set/db_local_iterators_7.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multiset/db_insert_hint_const_lvalue.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.map/db_insert_hint_rvalue.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.set/db_move.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multiset/db_iterators_8.pass.cpp
The file was addedlibcxx/test/libcxx/strings/basic.string/string.access/db_front.pass.cpp
The file was modifiedlibcxx/test/libcxx/strings/basic.string/string.modifiers/erase_pop_back_db1.pass.cpp
The file was removedlibcxx/test/std/strings/basic.string/string.access/db_cback.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_rvalue.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.set/db_iterators_7.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_db1.pass.cpp
The file was modifiedlibcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db3.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multimap/db_move.pass.cpp
The file was addedlibcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_2.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/sequences/vector/db_iterators_7.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.set/erase_iter_iter_db4.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db4.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/unord/unord.map/db_iterators_7.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multiset/db_iterators_7.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/sequences/vector/db_back.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db3.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multiset/erase_iter_db2.pass.cpp
The file was removedlibcxx/test/std/strings/basic.string/string.access/db_cfront.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multiset/erase_iter_db1.pass.cpp
The file was addedlibcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_4.pass.cpp
The file was removedlibcxx/test/std/strings/basic.string/string.iterators/db_iterators_5.pass.cpp
The file was addedlibcxx/test/libcxx/strings/basic.string/string.access/db_back.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db2.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db2.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multiset/erase_iter_iter_db3.pass.cpp
The file was addedlibcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_7.pass.cpp
The file was addedlibcxx/test/libcxx/strings/basic.string/string.iterators/db_iterators_6.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multiset/unord.multiset.swap/db_swap_1.pass.cpp
The file was addedlibcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_iter_iter_db1.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/unord/unord.map/db_local_iterators_8.pass.cpp
The file was addedlibcxx/test/libcxx/strings/basic.string/string.access/db_cindex.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.set/erase_iter_db1.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multiset/db_move.pass.cpp
The file was modifiedlibcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_size_char_db1.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_db2.pass.cpp
The file was removedlibcxx/test/std/strings/basic.string/string.iterators/db_iterators_2.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.map/unord.map.cnstr/move.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.map/bucket.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multimap/db_local_iterators_7.pass.cpp
The file was addedlibcxx/test/libcxx/strings/basic.string/string.access/db_cback.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_db1.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db2.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multimap/unord.multimap.swap/db_swap_1.pass.cpp
The file was modifiedlibcxx/test/libcxx/strings/basic.string/string.modifiers/clear_and_shrink_db1.pass.cpp
The file was modifiedlibcxx/test/libcxx/strings/basic.string/string.modifiers/insert_iter_char_db1.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.map/unord.map.swap/db_swap_1.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.set/db_local_iterators_8.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/sequences/vector/db_iterators_2.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_const_lvalue.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db2.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_iter_iter_db1.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/sequences/vector/db_index.pass.cpp
The file was removedlibcxx/test/std/containers/unord/unord.set/db_iterators_7.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/sequences/vector/db_cindex.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/unord/unord.map/db_iterators_8.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db3.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.set/unord.set.swap/db_swap_1.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.multimap/db_iterators_7.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/sequences/vector/db_iterators_8.pass.cpp
The file was modifiedlibcxx/test/libcxx/containers/unord/unord.map/db_local_iterators_7.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.set/db_local_iterators_7.pass.cpp
The file was modifiedlibcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.set/db_iterators_8.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db4.pass.cpp
The file was modifiedlibcxx/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db2.pass.cpp
The file was removedlibcxx/test/std/strings/basic.string/string.access/db_cindex.pass.cpp
The file was addedlibcxx/test/libcxx/containers/unord/unord.set/erase_iter_iter_db1.pass.cpp
Commit 3f1fd59de3002e3d5a4eca98cd49c45755ab0110 by Dávid Bolvanský
[SLC] Optimize mempcpy_chk to mempcpy

As reported in PR46735:

void* f(void *d, const void *s, size_t l)
{
    return __builtin___mempcpy_chk(d, s, l, __builtin_object_size(d, 0));
}

This can be optimized to `return mempcpy(d, s, l);`.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D86019
The file was modifiedllvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h
The file was modifiedllvm/lib/Transforms/Utils/BuildLibCalls.cpp
The file was modifiedllvm/test/Transforms/InstCombine/fortify-folding.ll
The file was modifiedllvm/include/llvm/Analysis/TargetLibraryInfo.def
The file was modifiedllvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils/BuildLibCalls.h
The file was modifiedllvm/lib/Analysis/TargetLibraryInfo.cpp
Commit a4bae56ab8e9474c2bdb2640243ae7ea6a3e0619 by Dávid Bolvanský
Revert "[SLC] Optimize mempcpy_chk to mempcpy"

This reverts commit 3f1fd59de3002e3d5a4eca98cd49c45755ab0110.
The file was modifiedllvm/include/llvm/Analysis/TargetLibraryInfo.def
The file was modifiedllvm/include/llvm/Transforms/Utils/BuildLibCalls.h
The file was modifiedllvm/lib/Transforms/Utils/BuildLibCalls.cpp
The file was modifiedllvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
The file was modifiedllvm/lib/Analysis/TargetLibraryInfo.cpp
The file was modifiedllvm/test/Transforms/InstCombine/fortify-folding.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h
Commit 32a2209b5c72571a2448bf0ffe88e96eb91b4784 by Louis Dionne
[libc++] NFC: Remove unused <iostream> include in atomic.cpp
The file was modifiedlibcxx/src/atomic.cpp
Commit fe7245b772d5bca4a5f6cc055b18c45cc8b46902 by Louis Dionne
[libc++] NFC: Rename variant helpers to avoid name clashes

Some system headers define __constructor and __destructor macros (for
Clang attributes constructor and destructor). While this is badly
behaved, it is easy for libc++ to work around this issue.
The file was modifiedlibcxx/include/variant
Commit 477a68760b24f07a45253fb41e89368328b3a4a8 by Louis Dionne
[libc++] Use __has_include instead of complex logic in thread.cpp

We might end up including more headers than strictly necessary this way,
but it's much simpler and it makes it easier to port thread.cpp to systems
not handled by the existing conditionals.
The file was modifiedlibcxx/src/thread.cpp
Commit ed88d962953c52c76d568d90fe2d5546ea6ab543 by ebahapo
[RISCV] Use the extensions in the canonical order (NFC)

Fix a mistake in the ordering.
The file was modifiedllvm/lib/Target/RISCV/RISCV.td
Commit 5d6d8a2769b3a91fd65b125c2cda64ea27a894bf by ebahapo
[RISCV] Add SiFive cores to the CPU option

Add the SiFive cores E76 and U74 using the SiFive 7 series microarchitecture.

Differential Revision: https://reviews.llvm.org/D88759
The file was modifiedclang/test/Misc/target-invalid-cpu-note.c
The file was modifiedclang/test/Driver/riscv-cpus.c
The file was modifiedllvm/lib/Target/RISCV/RISCV.td
The file was modifiedllvm/include/llvm/Support/RISCVTargetParser.def
Commit 567462b48eba1c2d286ce97117994463f4535d2e by pklausler
[flang] Correct kP scaling on F output

The sign of the scaling factor was misinterpreted for output
as meaning what it does for input.  To be correct, they
should cancel each other out.

print '(1P,F4.3)', 1. ! printed 0.1 but should print 10.0

Differential revision: https://reviews.llvm.org/D88610
The file was modifiedflang/unittests/Runtime/hello.cpp
The file was modifiedflang/runtime/edit-output.cpp
Commit e00f189d392dd9bf95f6a98f05f2d341d06cd65c by lebedev.ri
[InstCombine] Revert rL226781 "Teach InstCombine to canonicalize loads which are only ever stored to always use a legal integer type if one is available." (PR47592)

(it was introduced in https://lists.llvm.org/pipermail/llvm-dev/2015-January/080956.html)

This canonicalization seems dubious.

Most importantly, while it does not create `inttoptr` casts by itself,
it may cause them to appear later, see e.g. D88788.

I think it's pretty obvious that it is an undesirable outcome,
by now we've established that seemingly no-op `inttoptr`/`ptrtoint` casts
are not no-op, and are no longer eager to look past them.
Which e.g. means that given
```
%a = load i32
%b = inttoptr %a
%c = inttoptr %a
```
we likely won't be able to tell that `%b` and `%c` is the same thing.

As we can see in D88789 / D88788 / D88806 / D75505,
we can't really teach SCEV about this (not without the https://bugs.llvm.org/show_bug.cgi?id=47592 at least)
And we can't recover the situation post-inlining in instcombine.

So it really does look like this fold is actively breaking
otherwise-good IR, in a way that is not recoverable.
And that means, this fold isn't helpful in exposing the passes
that are otherwise unaware of these patterns it produces.

Thusly, i propose to simply not perform such a canonicalization.
The original motivational RFC does not state what larger problem
that canonicalization was trying to solve, so i'm not sure
how this plays out in the larger picture.

On vanilla llvm test-suite + RawSpeed, this results in
increase of asm instructions and final object size by ~+0.05%
decreases final count of bitcasts by -4.79% (-28990),
ptrtoint casts by -15.41% (-3423),
and of inttoptr casts by -25.59% (-6919, *sic*).
Overall, there's -0.04% less IR blocks, -0.39% instructions.

See https://bugs.llvm.org/show_bug.cgi?id=47592

Differential Revision: https://reviews.llvm.org/D88789
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-globals.c
The file was modifiedllvm/test/Transforms/InstCombine/load.ll
The file was modifiedllvm/test/Transforms/InstCombine/atomic.ll
The file was modifiedllvm/test/Transforms/InstCombine/non-integral-pointers.ll
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-call.c
The file was modifiedllvm/test/Transforms/PhaseOrdering/instcombine-sroa-inttoptr.ll
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-bitcast.c
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
The file was modifiedllvm/test/Transforms/InstCombine/loadstore-metadata.ll
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-cast.c
Commit 1b31b50d384b5f25221ac268ef781d26f5beacc1 by antiagainst
[MLIR][SPIRV] Extend _reference_of to support SpecConstantCompositeOp.

Adds support for SPIR-V composite speciailization constants to spv._reference_of.

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D88732
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVStructureOps.td
The file was modifiedmlir/test/Dialect/SPIRV/structure-ops.mlir
The file was modifiedmlir/test/Dialect/SPIRV/Serialization/spec-constant.mlir
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVOps.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/Serialization/Deserializer.cpp
Commit 6bec45e2558566e10be71280a3e2c1b144f1b236 by mcinally
[SVE] Add legalisation tests to sve-fixed-length-int-reduce.ll
The file was modifiedllvm/test/CodeGen/AArch64/sve-fixed-length-int-reduce.ll
Commit 9afb1c566e8cb396da495e2fbbbc53e1814cc3a1 by Vedant Kumar
Revert "Outline non returning functions unless a longjmp"

This reverts commit 20797989ea190f2ef22d13c5a7a0535fe9afa58b.

This patch (https://reviews.llvm.org/D69257) cannot complete a stage2
build due to the change:

```
CI->getCalledFunction()->getName().contains("longjmp")
```

There are several concrete issues here:

  - The callee may not be a function, so `getCalledFunction` can assert.
  - The called value may not have a name, so `getName` can assert.
  - There's no distinction made between "my_longjmp_test_helper" and the
    actual longjmp libcall.

At a higher level, there's a serious layering problem here. The
splitting pass makes policy decisions in a general way (e.g. based on
attributes or profile data). Special-casing certain names breaks the
layering. It subverts the work of library maintainers (who may now need
to opt-out of unexpected optimization behavior for any affected
functions) and can lead to inconsistent optimization behavior (as not
all llvm passes special-case ".*longjmp.*" in the same way).

The patch may need significant revision to address these issues.

But the immediate issue is that this crashes while compiling llvm's unit
tests in a stage2 build (due to the `getName` problem).
The file was removedllvm/test/Transforms/HotColdSplit/longjmp-nosplit.ll
The file was modifiedllvm/lib/Transforms/IPO/HotColdSplitting.cpp
The file was removedllvm/test/Transforms/HotColdSplit/sjlj-nosplit.ll
The file was removedllvm/test/Transforms/HotColdSplit/split-assert-fail.ll
The file was removedllvm/test/Transforms/HotColdSplit/sjlj-split.ll
The file was removedllvm/test/Transforms/HotColdSplit/longjmp-split.ll
Commit 27e1cc6f391b57c9e20344c8a6d77a57f697eb87 by i
Cleanup CodeGen/CallingConvLower.cpp

Patch by pi1024e (email unavailable)

Differential Revision: https://reviews.llvm.org/D82593
The file was modifiedllvm/lib/CodeGen/CallingConvLower.cpp
Commit 1127662c6dc2a276839c75a42238b11a3ad00f32 by craig.topper
[SelectionDAG] Make sure FMF are propagated when getSetcc canonicalizes FP constants to RHS.

getNode handling for ISD:SETCC calls FoldSETCC which can canonicalize
FP constants to the RHS. When this happens we should create the node
with the FMF that was requested. By using FlagInserter when can ensure
any calls to getNode/getSetcc during canonicalization will also get the flags.

Differential Revision: https://reviews.llvm.org/D88063
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/fmf-propagation.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
The file was modifiedllvm/include/llvm/CodeGen/SelectionDAG.h
Commit 4da4e7cb2092c80ccb5c6c7e013b0f103c14d3e0 by craig.topper
[X86] Remove X86ISD::LCMPXCHG8_SAVE_EBX_DAG and LCMPXCHG8B_SAVE_EBX pseudo instruction

This and its friend X86ISD::LCMPXCHG8_SAVE_RBX_DAG are used if we need to avoid clobbering the frame pointer in EBX/RBX. EBX/RBX are only used a frame pointer in 64-bit mode. In 64-bit mode we don't use CMPXCHG8B since we have a GR64 cmpxchg available. So we don't need special handling for LCMPXCHG8B.

Split from D88808

Differential Revision: https://reviews.llvm.org/D88853
The file was modifiedllvm/lib/Target/X86/X86InstrCompiler.td
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.td
The file was modifiedllvm/lib/Target/X86/X86ExpandPseudo.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit e426ae2bd5e04ca57f36bfb64a5a466a6797cea1 by Alexander.Richardson
[libcxx][dsl] Fix mutable default argument warning

This is flagged by PyCharm and can cause subtle bugs. While changing this
also re-sort the imports and add missing ones.

Reviewed By: #libc, ldionne

Differential Revision: https://reviews.llvm.org/D88816
The file was modifiedlibcxx/utils/libcxx/test/dsl.py
Commit 69f87400a85e13482c535365bb19272a15d054b9 by protze
[OpenMP][Archer][Tests] NFC: fix spurious test failure

The test disables suppression and therefore sometimes triggers a know false
positive in the openmp runtime. The test should only verify that the env
var is handles as expected.
The file was modifiedopenmp/tools/archer/tests/parallel/parallel-nosuppression.c
The file was modifiedopenmp/tools/archer/tests/lit.cfg
Commit a4b842e29411da2d08fed0e99918a7cf089bb84d by gclayton
Show register names in DWARF unwind info.

Register context information was already being passed into the DWARFDebugFrame code that dumps unwind information but it wasn't being used. This change adds the ability to dump registers names of a valid MC register context was passed in and if it knows about the register. Updated the tests to use the newly returned register names.

Differential Revision: https://reviews.llvm.org/D88767
The file was modifiedllvm/test/MC/X86/i386-darwin-frame-register.ll
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
The file was modifiedllvm/test/MC/ELF/cfi-restore-extended.s
The file was modifiedllvm/test/DebugInfo/dwarfdump-debug-frame-simple.test
The file was modifiedllvm/test/DebugInfo/RISCV/eh-frame.s
The file was modifiedllvm/test/MC/Mips/eh-frame.s
Commit be66987e2047636d9ed9d2a4d88b762d59ae88f2 by jingham
Fix raciness in the StopHook check for "has the target run".

This was looking at the privateState, but it's possible that
the actual process has started up and then stopped again by the
time we get to the check, which would lead us to get out of running
the stop hooks too early.

Instead we need to track the intention of the stop hooks directly.

Differential Revision: https://reviews.llvm.org/D88753
The file was modifiedlldb/source/Target/Target.cpp
The file was modifiedlldb/test/API/commands/target/stop-hooks/TestStopHookScripted.py
The file was modifiedlldb/include/lldb/Target/Target.h
The file was modifiedlldb/source/Target/Process.cpp
Commit 2ea8fec2cd566be77c9412aacb8e546bd0c36612 by Louis Dionne
[libc++] Improve tests for std::quoted

Instead of using ad-hoc mechanisms to disable the tests in C++ < 14, use
UNSUPPORTED markup.
The file was addedlibcxx/test/std/input.output/iostream.format/quoted.manip/quoted_traits.verify.cpp
The file was modifiedlibcxx/test/std/input.output/iostream.format/quoted.manip/quoted.pass.cpp
The file was addedlibcxx/test/std/input.output/iostream.format/quoted.manip/quoted_char.verify.cpp
The file was removedlibcxx/test/std/input.output/iostream.format/quoted.manip/quoted_traits.compile.fail.cpp
The file was removedlibcxx/test/std/input.output/iostream.format/quoted.manip/quoted_char.compile.fail.cpp
Commit b268e24d4349d586334dd6f47aa99b2196b1046e by mtrofin
[NFC][regalloc] Separate iteration from AllocationOrder

This separates the two concerns - encapsulation of traversal order; and
iteration.

Differential Revision: https://reviews.llvm.org/D88256
The file was modifiedllvm/lib/CodeGen/RegAllocGreedy.cpp
The file was modifiedllvm/unittests/CodeGen/AllocationOrderTest.cpp
The file was modifiedllvm/lib/CodeGen/AllocationOrder.h
The file was modifiedllvm/lib/CodeGen/RegAllocBasic.cpp