SuccessChanges

Summary

  1. [VPlan] Move reduction start value creation to widenPHIRecipe. (details)
  2. Revert "[CMake] Don't enable BUILD_WITH_INSTALL_RPATH when using custom build rpath" (details)
  3. [libc++] Add basic support for -std=c++2b. (details)
  4. [libc++] LWG2070: Use Allocator construction for objects created with allocate_shared (details)
Commit c493e9216bd1700577b209a0e2d290145653e40d by flo
[VPlan] Move reduction start value creation to widenPHIRecipe.

This was suggested to prepare for D93975.

By moving the start value creation to widenPHInstruction, we set the
stage to manage the start value directly in VPWidenPHIRecipe, which be
used subsequently to set the 'resume' value for reductions during
epilogue vectorization.

It also moves RdxDesc to the recipe, so we do not have to rely on Legal
to look it up later.

Reviewed By: gilr

Differential Revision: https://reviews.llvm.org/D94175
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
Commit 913c430403b52b9336ed93fabbac363a3e18536a by raul
Revert "[CMake] Don't enable BUILD_WITH_INSTALL_RPATH when using custom build rpath"

This reverts commit 0ebc1fb29f278db0665423f15c53e6ee9601dddb.

The behaviour should have been the same as before unless specifying CMAKE_BUILD_RPATH,
which was previously broken.
However, this seems to have broken builds for some people that don't specify it.
Reverting until I can investigate.

Differential Revision: https://reviews.llvm.org/D94319
The file was modifiedllvm/cmake/modules/AddLLVM.cmake
Commit 95729f95d803c8e8f4ca3e6767404ec2c0492d53 by marek.kurdej
[libc++] Add basic support for -std=c++2b.

* Add feature test macros.
* Add buildbot configuration generic-cxx2b that uses clang-tot.

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D94227
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/locale.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/istream.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/ostream.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/numeric.version.pass.cpp
The file was modifiedlibcxx/docs/FeatureTestMacroTable.rst
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/variant.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/string.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/any.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/limits.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.pass.cpp
The file was modifiedlibcxx/utils/libcxx/test/params.py
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/compare.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/numbers.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/semaphore.version.pass.cpp
The file was modifiedlibcxx/utils/ci/run-buildbot
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/concepts.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/map.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/barrier.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/functional.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/regex.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/vector.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/list.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/chrono.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/cstddef.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/deque.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/memory.version.pass.cpp
The file was modifiedlibcxx/utils/generate_feature_test_macro_components.py
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/mutex.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/bit.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/iomanip.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/latch.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/utility.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/set.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/complex.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/execution.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/filesystem.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/exception.version.pass.cpp
The file was addedlibcxx/cmake/caches/Generic-cxx2b.cmake
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/array.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/span.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/new.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/optional.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.pass.cpp
The file was modifiedlibcxx/utils/ci/buildkite-pipeline.yml
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/cmath.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.pass.cpp
The file was modifiedlibcxx/test/std/language.support/support.limits/support.limits.general/thread.version.pass.cpp
The file was modifiedlibcxx/docs/TestingLibcxx.rst
The file was modifiedlibcxx/include/version
Commit 955dd7b7f3f6df79f573508ffb567f3923e892f7 by Louis Dionne
[libc++] LWG2070: Use Allocator construction for objects created with allocate_shared

This patch updates `allocate_shared` to call `allocator_traits::construct`
when creating the object held inside the shared_pointer, and
`allocator_traits::destroy` when destroying it. This resolves
the part of P0674R1 that was originally filed as LWG2070.

This change is landed separately from the rest of P0674R1 because it is
incredibly tricky from an ABI perspective.

This is the reason why this change is so tricky is that we previously
used EBO in a compressed pair to store both the allocator and the object
type stored in the `shared_ptr`. However, starting in C++20, P0674
requires us to use Allocator construction for initializing the object type.
That requirement rules out the use of the EBO for the object type, since
using the EBO implies that the base will be initialized when the control
block is initialized (and hence we can't do it through Allocator construction).
Hence, supporting P0674 requires changing how we store the object type
inside the control block, which we do while being ABI compatible by using
some trickery with a properly aligned char buffer.

Fixes https://llvm.org/PR41900
Supersedes https://llvm.org/D62760

Differential Revision: https://reviews.llvm.org/D91201
The file was addedlibcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/libcxx.control_block_layout.pass.cpp
The file was addedlibcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/allocate_shared_construct.pass.cpp
The file was modifiedlibcxx/include/memory
The file was modifiedlibcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/allocate_shared.pass.cpp