[all-commits] [llvm/llvm-project] 04d3a6: [libc++][modules] Add a header to forward-declare ...

Vitaly Buka via All-commits all-commits at lists.llvm.org
Thu Sep 12 13:40:40 PDT 2024


  Branch: refs/heads/users/vitalybuka/spr/test
  Home:   https://github.com/llvm/llvm-project
  Commit: 04d3a6be62d338600f72d4dc2c7b24508cecd541
      https://github.com/llvm/llvm-project/commit/04d3a6be62d338600f72d4dc2c7b24508cecd541
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M libcxx/include/CMakeLists.txt
    A libcxx/include/__fwd/get.h
    A libcxx/include/__fwd/variant.h
    M libcxx/include/__ranges/elements_view.h
    M libcxx/include/module.modulemap
    M libcxx/include/variant

  Log Message:
  -----------
  [libc++][modules] Add a header to forward-declare std::get (#108285)

This is necessary because e.g. ranges::elements_view uses std::get but
it needs to have in scope the declaration of all the versions of
std::get that exist in the library. This need is what had originally led
to elements_view.h gaining an include of __fwd/complex.h, but in reality
it is a more general issue that requires a canonical declration point
for all the std::get variations.


  Commit: 7a6945fcf65f58ac6e4800c92f1e6d47930ec648
      https://github.com/llvm/llvm-project/commit/7a6945fcf65f58ac6e4800c92f1e6d47930ec648
  Author: Sushant Gokhale <sgokhale at nvidia.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M llvm/test/Analysis/CostModel/AArch64/reduce-fadd.ll
    A llvm/test/Transforms/SLPVectorizer/AArch64/reduce-fadd.ll

  Log Message:
  -----------
  [AArch64][SLP] Add NFC test cases for floating point reductions (#106507)

A successive patch would be added to fix some of the tests.

Pull request: #106507


  Commit: 0446b403b04ad3df709f23a63c2e1cea087459b3
      https://github.com/llvm/llvm-project/commit/0446b403b04ad3df709f23a63c2e1cea087459b3
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp

  Log Message:
  -----------
  [NFC][AMDGPU][Attributor] Only iterate over filtered functions when creating AAs (#108417)


  Commit: 5d17293caaf0f62ea94fecc137b9b6f07c659dac
      https://github.com/llvm/llvm-project/commit/5d17293caaf0f62ea94fecc137b9b6f07c659dac
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp

  Log Message:
  -----------
  [lldb] Fix a warning

This patch fixes:

  lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp:2935:31:
  error: designated initializers are a C++20 extension
  [-Werror,-Wc++20-designator]


  Commit: 853bff2122e1f42398587f76234c05d56f16318e
      https://github.com/llvm/llvm-project/commit/853bff2122e1f42398587f76234c05d56f16318e
  Author: Yuxuan Chen <ych at fb.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
    A llvm/test/Transforms/Coroutines/gh107139-split-in-scc.ll

  Log Message:
  -----------
  [Coroutines] properly update CallGraph in CoroSplit (#107935)

Fixes https://github.com/llvm/llvm-project/issues/107139.

We weren't updating the call graph properly in CoroSplit. This crash is
due to the await_suspend() function calling the coroutine, forming a
multi-node SCC. The issue bisected to
https://github.com/llvm/llvm-project/pull/79712 but I think this is red
herring. We haven't been properly updating the call graph.

Added an example of such code as a test case.


  Commit: adc1ab33a4db93be74487663259617c9346ef1d2
      https://github.com/llvm/llvm-project/commit/adc1ab33a4db93be74487663259617c9346ef1d2
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M llvm/unittests/ProfileData/PGOCtxProfReaderWriterTest.cpp

  Log Message:
  -----------
  Add missing include to `PGOCtxProfReaderWriterTest.cpp`


  Commit: 0989a775ae779c7df783537a2b796ac7707e13e4
      https://github.com/llvm/llvm-project/commit/0989a775ae779c7df783537a2b796ac7707e13e4
  Author: Tyler Nowicki <tyler.nowicki at amd.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
    M llvm/lib/Transforms/Coroutines/SuspendCrossingInfo.cpp

  Log Message:
  -----------
  [Coroutines] Verify normalization was not missed (#108096)

* Add asserts to verify normalization of the coroutine happened.
* This will be important when normalization becomes part of an ABI
object.

--- From a previous discussion here
https://github.com/llvm/llvm-project/pull/108076

Normalization performs these important steps:

split around each suspend, this adds BBs before/after each suspend so
each suspend now exists in its own block.
split around coro.end (similar to above)
break critical edges and add single-edge phis in the new blocks (also
removing other single-edge phis).
Each of these things can individually be tested
A) Check that each suspend is the only inst in its BB
B) Check that coro.end is the only inst in its BB
C) Check that each edge of a multi-edge phis is preceded by single-edge
phi in an immediate pred

For 1) and 2) I believe the purpose of the transform is in part for
suspend crossing info's analysis so it can specifically 'mark' the
suspend blocks and identify the end of the coroutine. There are some
existing places within suspend crossing info that visit the CoroSuspends
and CoroEnds so we could check A) and B) there.

For 3) I believe the purpose of this transform is for insertSpills to
work properly. Infact there is already a check for the result of this
transform!

assert(PN->getNumIncomingValues() == 1 &&
           "unexpected number of incoming "
           "values in the PHINode");

I think to verify the result of normalization we just need to add checks
A) and B) to suspend crossing info.


  Commit: 2670565afc4ec855fa406b8f582dde44ce1739fb
      https://github.com/llvm/llvm-project/commit/2670565afc4ec855fa406b8f582dde44ce1739fb
  Author: Tyler Nowicki <tyler.nowicki at amd.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M llvm/lib/Transforms/Coroutines/CMakeLists.txt
    M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
    M llvm/lib/Transforms/Coroutines/CoroInternal.h
    M llvm/lib/Transforms/Coroutines/Coroutines.cpp
    A llvm/lib/Transforms/Coroutines/MaterializationUtils.cpp
    A llvm/lib/Transforms/Coroutines/MaterializationUtils.h
    M llvm/lib/Transforms/Coroutines/SpillUtils.cpp
    M llvm/lib/Transforms/Coroutines/SpillUtils.h

  Log Message:
  -----------
  [Coroutines] Move materialization code into its own utils (#108240)

* Move materialization out of CoroFrame to MaterializationUtils.h
* Move spill related utilities that were used by materialization to
SpillUtils
* Move isSuspendBlock (needed by materialization) to CoroInternal

See RFC for more info:
https://discourse.llvm.org/t/rfc-abi-objects-for-coroutines/81057


  Commit: 030c6da7af826b641db005be925b20f956c3a6bb
      https://github.com/llvm/llvm-project/commit/030c6da7af826b641db005be925b20f956c3a6bb
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M clang-tools-extra/clangd/Diagnostics.cpp
    M clang-tools-extra/clangd/Diagnostics.h
    M clang-tools-extra/clangd/ParsedAST.cpp
    M clang-tools-extra/clangd/Preamble.cpp
    M clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/Diagnostic.h
    M clang/include/clang/Basic/DiagnosticCategories.h
    M clang/include/clang/Basic/DiagnosticIDs.h
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Basic/Diagnostic.cpp
    M clang/lib/Basic/DiagnosticIDs.cpp
    M clang/lib/Frontend/LogDiagnosticPrinter.cpp
    M clang/lib/Frontend/SerializedDiagnosticPrinter.cpp
    M clang/lib/Frontend/TextDiagnosticPrinter.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaCUDA.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp
    M clang/test/Sema/diagnose_if.c
    A clang/test/SemaCXX/diagnose_if-warning-group.cpp
    M clang/tools/diagtool/ListWarnings.cpp
    M clang/tools/diagtool/ShowEnabledWarnings.cpp
    M clang/tools/libclang/CXStoredDiagnostic.cpp

  Log Message:
  -----------
  [clang] Extend diagnose_if to accept more detailed warning information (#70976)

This implements parts of the extension proposed in
https://discourse.llvm.org/t/exposing-the-diagnostic-engine-to-c/73092/7.

Specifically, this makes it possible to specify a diagnostic group in an
optional third argument.


  Commit: 33325524f5e80a898a7ae875e208a54af132001b
      https://github.com/llvm/llvm-project/commit/33325524f5e80a898a7ae875e208a54af132001b
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M libcxx/include/type_traits
    M libcxx/test/std/containers/sequences/vector.bool/enabled_hash.pass.cpp
    M libcxx/test/std/diagnostics/syserr/syserr.hash/enabled_hash.pass.cpp
    M libcxx/test/std/experimental/memory/memory.observer.ptr/hash.pass.cpp
    M libcxx/test/std/input.output/filesystems/class.path/path.member/path.hash_enabled.pass.cpp
    M libcxx/test/std/strings/basic.string.hash/enabled_hashes.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp
    M libcxx/test/std/thread/thread.threads/thread.thread.class/thread.thread.id/enabled_hashes.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_shared_ptr.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp
    M libcxx/test/std/utilities/optional/optional.hash/hash.pass.cpp
    M libcxx/test/std/utilities/template.bitset/bitset.hash/enabled_hash.pass.cpp
    M libcxx/test/std/utilities/type.index/type.index.synopsis/hash_type_index.pass.cpp
    M libcxx/test/std/utilities/variant/variant.hash/hash.pass.cpp
    M libcxx/test/support/poisoned_hash_helper.h
    R libcxx/test/support/test.support/test_poisoned_hash_helper.pass.cpp

  Log Message:
  -----------
  [libc++][modules] Refactor poisoned_hash_helper (#108296)

The poisoned_hash_helper header was relying on an implicit forward
declaration of std::hash located in <type_traits>. When we improve the
modularization of the library, that causes issues, in addition to being
a fundamentally non-portable assumption in the test suite.

It turns out that the reason for relying on a forward declaration is to
be able to test that std::hash is *not* provided if we don't include any
header that provides it. But testing that is actually both non-portable
and not really useful.

Indeed, what harm does it make if additional headers provide std::hash
specializations? That would certainly be conforming -- the Standard
never requires an implementation to avoid providing a declaration when a
given header is included, instead it mandates what *must* be provided
for sure. In that spirit, it would be conforming for e.g. `<cstddef>` to
define the hash specializations if that was our desire. I also don't
read https://wg21.link/P0513R0 as going against that statement. Hence,
this patch just removes that test which doesn't carry its weight.

Fixes #56938


  Commit: c6b2aa1896e44c3b96a77f9f6ae1b1df6294cf2e
      https://github.com/llvm/llvm-project/commit/c6b2aa1896e44c3b96a77f9f6ae1b1df6294cf2e
  Author: Robin Caloudis <robin.caloudis at gmx.de>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M libcxx/include/__math/traits.h
    M libcxx/test/std/numerics/c.math/signbit.pass.cpp

  Log Message:
  -----------
  [libc++][math] Provide overloads for cv-unqualified floating point types for `std::signbit` (#106566)

## Why
Following up on https://github.com/llvm/llvm-project/pull/105946, this
patch provides the floating point overloads for `std::signbit` as
defined by
[P0533R9](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0533r9.pdf).

## What
* Test and add overloads for cv-unqualified floating point types
* Remove constrained overload as it is not needed anymore
* Make use of `template<class = void>` as the universal C runtime (UCRT)
needed for Clang-Cl comes with overloads for all cv-unqualified floating
point types (float, double, long double) for `std::signbit()` by itself
[in the
WinSDK](https://github.com/microsoft/win32metadata/blob/e012b29924c53aa941fc010850b68331b0c3ea80/generation/WinSDK/RecompiledIdlHeaders/ucrt/corecrt_math.h#L309-L322).
In a certain way, this can be seen as a deviation from the C standard.
We need to work around it as the compilation would otherwise error out
due to duplicated definitions.


  Commit: 17e0686ab1107a1a675d8783383dedf70fa24033
      https://github.com/llvm/llvm-project/commit/17e0686ab1107a1a675d8783383dedf70fa24033
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M libcxx/.clang-format
    M libcxx/include/__algorithm/adjacent_find.h
    M libcxx/include/__algorithm/all_of.h
    M libcxx/include/__algorithm/any_of.h
    M libcxx/include/__algorithm/binary_search.h
    M libcxx/include/__algorithm/count.h
    M libcxx/include/__algorithm/count_if.h
    M libcxx/include/__algorithm/equal.h
    M libcxx/include/__algorithm/equal_range.h
    M libcxx/include/__algorithm/find.h
    M libcxx/include/__algorithm/find_end.h
    M libcxx/include/__algorithm/find_first_of.h
    M libcxx/include/__algorithm/find_if.h
    M libcxx/include/__algorithm/find_if_not.h
    M libcxx/include/__algorithm/includes.h
    M libcxx/include/__algorithm/is_heap.h
    M libcxx/include/__algorithm/is_heap_until.h
    M libcxx/include/__algorithm/is_partitioned.h
    M libcxx/include/__algorithm/is_permutation.h
    M libcxx/include/__algorithm/is_sorted.h
    M libcxx/include/__algorithm/is_sorted_until.h
    M libcxx/include/__algorithm/lexicographical_compare.h
    M libcxx/include/__algorithm/lower_bound.h
    M libcxx/include/__algorithm/max.h
    M libcxx/include/__algorithm/max_element.h
    M libcxx/include/__algorithm/min.h
    M libcxx/include/__algorithm/min_element.h
    M libcxx/include/__algorithm/minmax.h
    M libcxx/include/__algorithm/minmax_element.h
    M libcxx/include/__algorithm/mismatch.h
    M libcxx/include/__algorithm/none_of.h
    M libcxx/include/__algorithm/pstl.h
    M libcxx/include/__algorithm/remove.h
    M libcxx/include/__algorithm/remove_if.h
    M libcxx/include/__algorithm/search.h
    M libcxx/include/__algorithm/search_n.h
    M libcxx/include/__algorithm/set_intersection.h
    M libcxx/include/__algorithm/simd_utils.h
    M libcxx/include/__algorithm/unique.h
    M libcxx/include/__algorithm/upper_bound.h
    M libcxx/include/__bit/bit_cast.h
    M libcxx/include/__bit/countl.h
    M libcxx/include/__bit/countr.h
    M libcxx/include/__chrono/leap_second.h
    M libcxx/include/__config
    M libcxx/include/__filesystem/path.h
    M libcxx/include/__functional/identity.h
    M libcxx/include/__math/abs.h
    M libcxx/include/__math/copysign.h
    M libcxx/include/__math/min_max.h
    M libcxx/include/__math/roots.h
    M libcxx/include/__math/rounding_functions.h
    M libcxx/include/__math/traits.h
    M libcxx/include/__memory/allocate_at_least.h
    M libcxx/include/__memory/allocator.h
    M libcxx/include/__memory/allocator_traits.h
    M libcxx/include/__memory/assume_aligned.h
    M libcxx/include/__memory/temporary_buffer.h
    M libcxx/include/__mutex/lock_guard.h
    M libcxx/include/__mutex/unique_lock.h
    M libcxx/include/__utility/forward.h
    M libcxx/include/__utility/move.h
    M libcxx/include/array
    M libcxx/include/barrier
    M libcxx/include/deque
    M libcxx/include/forward_list
    M libcxx/include/future
    M libcxx/include/limits
    M libcxx/include/list
    M libcxx/include/map
    M libcxx/include/math.h
    M libcxx/include/new
    M libcxx/include/queue
    M libcxx/include/regex
    M libcxx/include/scoped_allocator
    M libcxx/include/set
    M libcxx/include/stack
    M libcxx/include/stdlib.h
    M libcxx/include/string
    M libcxx/include/string_view
    M libcxx/include/unordered_map
    M libcxx/include/unordered_set
    M libcxx/include/vector

  Log Message:
  -----------
  [libc++][NFC] Use [[__nodiscard__]] unconditionally (#80454)

`__has_cpp_attribute(__nodiscard__)` is always true now, so we might as
well replace `_LIBCPP_NODISCARD`. It's one less macro that can result in
bad diagnostics.


  Commit: e0cd11eba526234ca14a0b91f5598ca3363b6aca
      https://github.com/llvm/llvm-project/commit/e0cd11eba526234ca14a0b91f5598ca3363b6aca
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M clang-tools-extra/clangd/Diagnostics.cpp
    M clang-tools-extra/clangd/Diagnostics.h
    M clang-tools-extra/clangd/ParsedAST.cpp
    M clang-tools-extra/clangd/Preamble.cpp
    M clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/Diagnostic.h
    M clang/include/clang/Basic/DiagnosticCategories.h
    M clang/include/clang/Basic/DiagnosticIDs.h
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Basic/Diagnostic.cpp
    M clang/lib/Basic/DiagnosticIDs.cpp
    M clang/lib/Frontend/LogDiagnosticPrinter.cpp
    M clang/lib/Frontend/SerializedDiagnosticPrinter.cpp
    M clang/lib/Frontend/TextDiagnosticPrinter.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaCUDA.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/StaticAnalyzer/Core/TextDiagnostics.cpp
    M clang/test/Sema/diagnose_if.c
    R clang/test/SemaCXX/diagnose_if-warning-group.cpp
    M clang/tools/diagtool/ListWarnings.cpp
    M clang/tools/diagtool/ShowEnabledWarnings.cpp
    M clang/tools/libclang/CXStoredDiagnostic.cpp

  Log Message:
  -----------
  Revert "[clang] Extend diagnose_if to accept more detailed warning information (#70976)"

This reverts commit 030c6da7af826b641db005be925b20f956c3a6bb.

Several build bots are failing:
https://lab.llvm.org/buildbot/#/builders/89/builds/6211
https://lab.llvm.org/buildbot/#/builders/157/builds/7578
https://lab.llvm.org/buildbot/#/builders/140/builds/6429


  Commit: 87e1104cf0e2de0d04bee2944893fa7897277b2f
      https://github.com/llvm/llvm-project/commit/87e1104cf0e2de0d04bee2944893fa7897277b2f
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    A clang/test/ClangScanDeps/implicit-target.c
    M clang/tools/clang-scan-deps/ClangScanDeps.cpp

  Log Message:
  -----------
  [clang-scan-deps] Infer the target from the executable name (#108189)

This allows clang-scan-deps to work correctly when using cross compilers
with names like <triple>-clang.


  Commit: d37d05795dbbdd1b7e629e966013df5967d2da5b
      https://github.com/llvm/llvm-project/commit/d37d05795dbbdd1b7e629e966013df5967d2da5b
  Author: Sushant Gokhale <sgokhale at nvidia.com>
  Date:   2024-09-13 (Fri, 13 Sep 2024)

  Changed paths:
    M llvm/test/Transforms/SLPVectorizer/AArch64/reduce-fadd.ll

  Log Message:
  -----------
  [SLP][AArch64] Fix test failure for PR #106507 (#108442)

Updating the failing test in this patch.


  Commit: a81a4b2a7ac2d0b8195bb008b2c0f464cfbda223
      https://github.com/llvm/llvm-project/commit/a81a4b2a7ac2d0b8195bb008b2c0f464cfbda223
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M lldb/include/lldb/Core/SourceManager.h

  Log Message:
  -----------
  [lldb] Fix building with lldb::once_flag != std::once_flag

This fixes build breakage on e.g. mingw platforms since
ffa2f539ae2a4e79c01b3d54f8b12c63d8781a0c.

The Debugger::ReportWarning function takes a pointer to a
std::once_flag. On many platforms, llvm::once_flag is a typedef
for std::once_flag, but on others, llvm::once_flag is a custom
reimplementation.


  Commit: 159e5b3fdf26325403ad3756d43e625b7d59443a
      https://github.com/llvm/llvm-project/commit/159e5b3fdf26325403ad3756d43e625b7d59443a
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp

  Log Message:
  -----------
  MemCpyOpt: avoid unnecessary getMemorySSA (NFC) (#108405)


  Commit: 085c88c3ad4a9802fb6ad3d96db4af6d66b4d588
      https://github.com/llvm/llvm-project/commit/085c88c3ad4a9802fb6ad3d96db4af6d66b4d588
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M llvm/utils/gn/secondary/libcxx/include/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 04d3a6be62d3


  Commit: 3733528e521b7ee6af3950c65c3ff421c8fd0af6
      https://github.com/llvm/llvm-project/commit/3733528e521b7ee6af3950c65c3ff421c8fd0af6
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/lib/Transforms/Coroutines/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 2670565afc4e


  Commit: c05e29bff036060f0811b887a92715104abdceb5
      https://github.com/llvm/llvm-project/commit/c05e29bff036060f0811b887a92715104abdceb5
  Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M llvm/include/llvm/InitializePasses.h
    M llvm/include/llvm/LinkAllPasses.h
    M llvm/include/llvm/Transforms/Scalar/Scalarizer.h
    M llvm/lib/Target/DirectX/DirectXTargetMachine.cpp
    M llvm/lib/Transforms/Scalar/Scalar.cpp
    M llvm/lib/Transforms/Scalar/Scalarizer.cpp
    M llvm/test/CodeGen/DirectX/acos.ll
    M llvm/test/CodeGen/DirectX/asin.ll
    M llvm/test/CodeGen/DirectX/atan.ll
    M llvm/test/CodeGen/DirectX/ceil.ll
    M llvm/test/CodeGen/DirectX/cos.ll
    M llvm/test/CodeGen/DirectX/cosh.ll
    M llvm/test/CodeGen/DirectX/exp2.ll
    M llvm/test/CodeGen/DirectX/fabs.ll
    M llvm/test/CodeGen/DirectX/floor.ll
    M llvm/test/CodeGen/DirectX/isinf.ll
    A llvm/test/CodeGen/DirectX/llc-pipeline.ll
    M llvm/test/CodeGen/DirectX/reversebits.ll
    M llvm/test/CodeGen/DirectX/round.ll
    M llvm/test/CodeGen/DirectX/saturate.ll
    A llvm/test/CodeGen/DirectX/scalar-store.ll
    A llvm/test/CodeGen/DirectX/scalarize-two-calls.ll
    M llvm/test/CodeGen/DirectX/sin.ll
    M llvm/test/CodeGen/DirectX/sinh.ll
    M llvm/test/CodeGen/DirectX/sqrt.ll
    M llvm/test/CodeGen/DirectX/tan.ll
    M llvm/test/CodeGen/DirectX/tanh.ll
    M llvm/test/CodeGen/DirectX/trunc.ll
    M llvm/tools/opt/optdriver.cpp

  Log Message:
  -----------
  [LegacyPM][DirectX] Add legacy scalarizer back for use in the DirectX backend (#107427)

As discussed in this
[proposal](https://github.com/llvm/wg-hlsl/pull/62/files?short_path=ac6e592#diff-ac6e59276afe8016e307eedc5c835f534c0cb353707760b44df0fa9d905a5cf8).
We had to bring back the legacy pass manager interface for the
scalarizer pass. Two reasons for this:
1. The DirectX backend is still using the legacy pass manager
2. The new PM isn't hooked up in clang yet via `BackendUtil.cpp`'s
`AddEmitPasses` That means even if we add a `buildCodeGenPipeline` we
won't be able to benefit from the new pass manager's scalarizer pass
interface.

The remaining changes are hooking up the scalarizer pass to the DirectX
backend, updating the DirectX test cases,
and allowing the `optdriver` to not block the legacy invocation of the
scalarizer pass.

Future work still needs to be done to allow the scalarizer pass to
handle target specific intrinsics.

closes #105178


  Commit: ad3ad15229cc65874eae173137e47b5c817d77ea
      https://github.com/llvm/llvm-project/commit/ad3ad15229cc65874eae173137e47b5c817d77ea
  Author: David Green <david.green at arm.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    A llvm/test/Transforms/InstCombine/fmod.ll
    M llvm/test/Transforms/InstCombine/pow-1.ll

  Log Message:
  -----------
  [InstCombine] Test for fmod -> frem folding. NFC


  Commit: aa3465793a250faa5426ac626989375465256658
      https://github.com/llvm/llvm-project/commit/aa3465793a250faa5426ac626989375465256658
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M clang/tools/clang-scan-deps/CMakeLists.txt

  Log Message:
  -----------
  [clang-scan-deps] Fix builds with BUILD_SHARED_LIBS=ON

This fixes building in this configuration after
87e1104cf0e2de0d04bee2944893fa7897277b2f.


  Commit: 7e9bd12cd9ebb1f14c3716d5e45fb88aff23e671
      https://github.com/llvm/llvm-project/commit/7e9bd12cd9ebb1f14c3716d5e45fb88aff23e671
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp

  Log Message:
  -----------
  MemCpyOpt: clarify logic in processStoreOfLoad (NFC) (#108400)


  Commit: 82a36468c74a29b6154639d659550c62457e655b
      https://github.com/llvm/llvm-project/commit/82a36468c74a29b6154639d659550c62457e655b
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M lld/COFF/DLL.cpp
    M lld/COFF/DLL.h
    M lld/COFF/Driver.cpp
    M lld/COFF/InputFiles.cpp
    M lld/COFF/InputFiles.h
    M lld/COFF/SymbolTable.cpp
    M lld/COFF/SymbolTable.h
    M lld/COFF/Symbols.h
    M lld/COFF/Writer.cpp
    M lld/test/COFF/Inputs/loadconfig-arm64ec.s
    M lld/test/COFF/arm64ec-import.test

  Log Message:
  -----------
  [LLD][COFF] Add support for ARM64EC auxiliary IAT (#108304)

In addition to the regular IAT, ARM64EC also includes an auxiliary IAT.
At runtime, the regular IAT is populated with the addresses of imported
functions, which may be x86_64 functions or the export thunks of ARM64EC
functions. The auxiliary IAT contains versions of functions that are
guaranteed to be directly callable by ARM64 code.

The linker fills the auxiliary IAT with the addresses of `__impchk_`
thunks. These thunks perform a call on the IAT address using
`__icall_helper_arm64ec` with the target address from the IAT. If the
imported function is an ARM64EC function, the OS may replace the address
in the auxiliary IAT with the address of the ARM64EC version of the
function (not its export thunk), avoiding the runtime call checker for
better performance.


  Commit: dd66aaf85a2258324851ac19eb08094928ac1eac
      https://github.com/llvm/llvm-project/commit/dd66aaf85a2258324851ac19eb08094928ac1eac
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_common_interface.inc
    M compiler-rt/lib/sanitizer_common/sanitizer_interface_internal.h
    M compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cpp
    M compiler-rt/lib/sanitizer_common/weak_symbols.txt

  Log Message:
  -----------
  [sanitizer] Allow to override GetDTLSRange (#108348)

And rename it into __sanitizer_get_dtls_size.

The test will be in a separate patch, as I
expected reverts of the test.


  Commit: 42ec766b206878aad2781791981d317489b55842
      https://github.com/llvm/llvm-project/commit/42ec766b206878aad2781791981d317489b55842
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-09-12 (Thu, 12 Sep 2024)

  Changed paths:
    A clang/test/ClangScanDeps/implicit-target.c
    M clang/tools/clang-scan-deps/CMakeLists.txt
    M clang/tools/clang-scan-deps/ClangScanDeps.cpp
    M libcxx/.clang-format
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__algorithm/adjacent_find.h
    M libcxx/include/__algorithm/all_of.h
    M libcxx/include/__algorithm/any_of.h
    M libcxx/include/__algorithm/binary_search.h
    M libcxx/include/__algorithm/count.h
    M libcxx/include/__algorithm/count_if.h
    M libcxx/include/__algorithm/equal.h
    M libcxx/include/__algorithm/equal_range.h
    M libcxx/include/__algorithm/find.h
    M libcxx/include/__algorithm/find_end.h
    M libcxx/include/__algorithm/find_first_of.h
    M libcxx/include/__algorithm/find_if.h
    M libcxx/include/__algorithm/find_if_not.h
    M libcxx/include/__algorithm/includes.h
    M libcxx/include/__algorithm/is_heap.h
    M libcxx/include/__algorithm/is_heap_until.h
    M libcxx/include/__algorithm/is_partitioned.h
    M libcxx/include/__algorithm/is_permutation.h
    M libcxx/include/__algorithm/is_sorted.h
    M libcxx/include/__algorithm/is_sorted_until.h
    M libcxx/include/__algorithm/lexicographical_compare.h
    M libcxx/include/__algorithm/lower_bound.h
    M libcxx/include/__algorithm/max.h
    M libcxx/include/__algorithm/max_element.h
    M libcxx/include/__algorithm/min.h
    M libcxx/include/__algorithm/min_element.h
    M libcxx/include/__algorithm/minmax.h
    M libcxx/include/__algorithm/minmax_element.h
    M libcxx/include/__algorithm/mismatch.h
    M libcxx/include/__algorithm/none_of.h
    M libcxx/include/__algorithm/pstl.h
    M libcxx/include/__algorithm/remove.h
    M libcxx/include/__algorithm/remove_if.h
    M libcxx/include/__algorithm/search.h
    M libcxx/include/__algorithm/search_n.h
    M libcxx/include/__algorithm/set_intersection.h
    M libcxx/include/__algorithm/simd_utils.h
    M libcxx/include/__algorithm/unique.h
    M libcxx/include/__algorithm/upper_bound.h
    M libcxx/include/__bit/bit_cast.h
    M libcxx/include/__bit/countl.h
    M libcxx/include/__bit/countr.h
    M libcxx/include/__chrono/leap_second.h
    M libcxx/include/__config
    M libcxx/include/__filesystem/path.h
    M libcxx/include/__functional/identity.h
    A libcxx/include/__fwd/get.h
    A libcxx/include/__fwd/variant.h
    M libcxx/include/__math/abs.h
    M libcxx/include/__math/copysign.h
    M libcxx/include/__math/min_max.h
    M libcxx/include/__math/roots.h
    M libcxx/include/__math/rounding_functions.h
    M libcxx/include/__math/traits.h
    M libcxx/include/__memory/allocate_at_least.h
    M libcxx/include/__memory/allocator.h
    M libcxx/include/__memory/allocator_traits.h
    M libcxx/include/__memory/assume_aligned.h
    M libcxx/include/__memory/temporary_buffer.h
    M libcxx/include/__mutex/lock_guard.h
    M libcxx/include/__mutex/unique_lock.h
    M libcxx/include/__ranges/elements_view.h
    M libcxx/include/__utility/forward.h
    M libcxx/include/__utility/move.h
    M libcxx/include/array
    M libcxx/include/barrier
    M libcxx/include/deque
    M libcxx/include/forward_list
    M libcxx/include/future
    M libcxx/include/limits
    M libcxx/include/list
    M libcxx/include/map
    M libcxx/include/math.h
    M libcxx/include/module.modulemap
    M libcxx/include/new
    M libcxx/include/queue
    M libcxx/include/regex
    M libcxx/include/scoped_allocator
    M libcxx/include/set
    M libcxx/include/stack
    M libcxx/include/stdlib.h
    M libcxx/include/string
    M libcxx/include/string_view
    M libcxx/include/type_traits
    M libcxx/include/unordered_map
    M libcxx/include/unordered_set
    M libcxx/include/variant
    M libcxx/include/vector
    M libcxx/test/std/containers/sequences/vector.bool/enabled_hash.pass.cpp
    M libcxx/test/std/diagnostics/syserr/syserr.hash/enabled_hash.pass.cpp
    M libcxx/test/std/experimental/memory/memory.observer.ptr/hash.pass.cpp
    M libcxx/test/std/input.output/filesystems/class.path/path.member/path.hash_enabled.pass.cpp
    M libcxx/test/std/numerics/c.math/signbit.pass.cpp
    M libcxx/test/std/strings/basic.string.hash/enabled_hashes.pass.cpp
    M libcxx/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp
    M libcxx/test/std/thread/thread.threads/thread.thread.class/thread.thread.id/enabled_hashes.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_shared_ptr.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp
    M libcxx/test/std/utilities/optional/optional.hash/hash.pass.cpp
    M libcxx/test/std/utilities/template.bitset/bitset.hash/enabled_hash.pass.cpp
    M libcxx/test/std/utilities/type.index/type.index.synopsis/hash_type_index.pass.cpp
    M libcxx/test/std/utilities/variant/variant.hash/hash.pass.cpp
    M libcxx/test/support/poisoned_hash_helper.h
    R libcxx/test/support/test.support/test_poisoned_hash_helper.pass.cpp
    M lld/COFF/DLL.cpp
    M lld/COFF/DLL.h
    M lld/COFF/Driver.cpp
    M lld/COFF/InputFiles.cpp
    M lld/COFF/InputFiles.h
    M lld/COFF/SymbolTable.cpp
    M lld/COFF/SymbolTable.h
    M lld/COFF/Symbols.h
    M lld/COFF/Writer.cpp
    M lld/test/COFF/Inputs/loadconfig-arm64ec.s
    M lld/test/COFF/arm64ec-import.test
    M lldb/include/lldb/Core/SourceManager.h
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
    M llvm/include/llvm/InitializePasses.h
    M llvm/include/llvm/LinkAllPasses.h
    M llvm/include/llvm/Transforms/Scalar/Scalarizer.h
    M llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp
    M llvm/lib/Target/DirectX/DirectXTargetMachine.cpp
    M llvm/lib/Transforms/Coroutines/CMakeLists.txt
    M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
    M llvm/lib/Transforms/Coroutines/CoroInternal.h
    M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
    M llvm/lib/Transforms/Coroutines/Coroutines.cpp
    A llvm/lib/Transforms/Coroutines/MaterializationUtils.cpp
    A llvm/lib/Transforms/Coroutines/MaterializationUtils.h
    M llvm/lib/Transforms/Coroutines/SpillUtils.cpp
    M llvm/lib/Transforms/Coroutines/SpillUtils.h
    M llvm/lib/Transforms/Coroutines/SuspendCrossingInfo.cpp
    M llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
    M llvm/lib/Transforms/Scalar/Scalar.cpp
    M llvm/lib/Transforms/Scalar/Scalarizer.cpp
    M llvm/test/Analysis/CostModel/AArch64/reduce-fadd.ll
    M llvm/test/CodeGen/DirectX/acos.ll
    M llvm/test/CodeGen/DirectX/asin.ll
    M llvm/test/CodeGen/DirectX/atan.ll
    M llvm/test/CodeGen/DirectX/ceil.ll
    M llvm/test/CodeGen/DirectX/cos.ll
    M llvm/test/CodeGen/DirectX/cosh.ll
    M llvm/test/CodeGen/DirectX/exp2.ll
    M llvm/test/CodeGen/DirectX/fabs.ll
    M llvm/test/CodeGen/DirectX/floor.ll
    M llvm/test/CodeGen/DirectX/isinf.ll
    A llvm/test/CodeGen/DirectX/llc-pipeline.ll
    M llvm/test/CodeGen/DirectX/reversebits.ll
    M llvm/test/CodeGen/DirectX/round.ll
    M llvm/test/CodeGen/DirectX/saturate.ll
    A llvm/test/CodeGen/DirectX/scalar-store.ll
    A llvm/test/CodeGen/DirectX/scalarize-two-calls.ll
    M llvm/test/CodeGen/DirectX/sin.ll
    M llvm/test/CodeGen/DirectX/sinh.ll
    M llvm/test/CodeGen/DirectX/sqrt.ll
    M llvm/test/CodeGen/DirectX/tan.ll
    M llvm/test/CodeGen/DirectX/tanh.ll
    M llvm/test/CodeGen/DirectX/trunc.ll
    A llvm/test/Transforms/Coroutines/gh107139-split-in-scc.ll
    A llvm/test/Transforms/InstCombine/fmod.ll
    M llvm/test/Transforms/InstCombine/pow-1.ll
    A llvm/test/Transforms/SLPVectorizer/AArch64/reduce-fadd.ll
    M llvm/tools/opt/optdriver.cpp
    M llvm/unittests/ProfileData/PGOCtxProfReaderWriterTest.cpp
    M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/Transforms/Coroutines/BUILD.gn

  Log Message:
  -----------
  rebase

Created using spr 1.3.4


Compare: https://github.com/llvm/llvm-project/compare/ee80b53cbc00...42ec766b2068

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list