[all-commits] [llvm/llvm-project] f0e79d: [AArch64] Add a cost for identity shuffles.

darkbuck via All-commits all-commits at lists.llvm.org
Wed Apr 10 07:21:18 PDT 2024


  Branch: refs/heads/users/darkbuck/spr/globalisel-handle-more-commutable-instructions-in-commute_constant_to_rhs
  Home:   https://github.com/llvm/llvm-project
  Commit: f0e79d9152b04845e60fc97ca6a4e7760202afbb
      https://github.com/llvm/llvm-project/commit/f0e79d9152b04845e60fc97ca6a4e7760202afbb
  Author: David Green <david.green at arm.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/AArch64/shuffle-other.ll

  Log Message:
  -----------
  [AArch64] Add a cost for identity shuffles.

These are mostly handled at a higher level when costing shuffles, but some
masks can end up being identity or concat masks which we can treat as free.


  Commit: 3009228a09dbfe04e0911fc19813ec72d389bc45
      https://github.com/llvm/llvm-project/commit/3009228a09dbfe04e0911fc19813ec72d389bc45
  Author: Michael Halkenhäuser <MichaelGerald.Halkenhauser at amd.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/test/CodeGen/ubsan-bitfield-conversion.c
    M clang/test/CodeGenCXX/ubsan-bitfield-conversion.cpp

  Log Message:
  -----------
  [clang][UBSan] Remove rigid metadata checks for `ubsan-bitfield-conversion` (#88116)

Follow-up to discussion: https://github.com/llvm/llvm-project/pull/87761

As discussed after landing the original PR:
Since fails could happen w.r.t. checking `!6`, these checks should be
removed.


  Commit: 5601e35f620eccdebab988bed4b9677b29366b79
      https://github.com/llvm/llvm-project/commit/5601e35f620eccdebab988bed4b9677b29366b79
  Author: Alexander Richardson <alexrichardson at google.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M compiler-rt/lib/memprof/tests/CMakeLists.txt

  Log Message:
  -----------
  [memprof] Use COMPILER_RT_TEST_COMPILER

Unlike the other compiler-rt unit tests MemProf was not using the
`generate_compiler_rt_tests()` helper that ensures the test is compiled
using the test compiler (generally the Clang binary built earlier).
This was exposed by https://github.com/llvm/llvm-project/pull/83088
because it started adding Clang-specific flags to
COMPILER_RT_UNITTEST_CFLAGS if the compiler ID matched "Clang".

This change should fix the buildbots that compile compiler-rt using
a GCC compiler with LLVM_ENABLE_PROJECTS=compiler-rt.

Reviewed By: vitalybuka

Pull Request: https://github.com/llvm/llvm-project/pull/88074


  Commit: 528943f1535b925ce175afb2438cec79513cfc2b
      https://github.com/llvm/llvm-project/commit/528943f1535b925ce175afb2438cec79513cfc2b
  Author: Dinar Temirbulatov <Dinar.Temirbulatov at arm.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp
    M llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.h
    M llvm/lib/Target/AArch64/Utils/AArch64SMEAttributes.cpp
    A llvm/test/CodeGen/AArch64/streaming-compatible-memory-ops.ll

  Log Message:
  -----------
  [AArch64][SME] Allow memory operations lowering to custom SME functions. (#79263)

This change allows to lower memcpy, memset, memmove to custom SME
version provided by LibRT.


  Commit: bab0507ff2679d2bbfa34921eeed4ff1cadbe7e2
      https://github.com/llvm/llvm-project/commit/bab0507ff2679d2bbfa34921eeed4ff1cadbe7e2
  Author: ChiaHungDuan <chiahungduan at google.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/allocator_config.def
    M compiler-rt/lib/scudo/standalone/primary64.h
    M compiler-rt/lib/scudo/standalone/tests/primary_test.cpp

  Log Message:
  -----------
  [scudo] Add EnableContiguousRegions mode (#85149)

This releases the requirement that we need to preserve the memory for
all regions at the beginning. It needs a huge amount of contiguous pages
and which may be a challenge in certain cases. Therefore, adding a new
flag, EnableContiguousRegions, to indicate whether we want to allocate
all the regions next to each other.

Note that once the EnableContiguousRegions is disabled,
EnableRandomOffset becomes irrelevant because the base of each region is
already random.


  Commit: b1a278dd874d6135780fc824c6aa263c52d7aadd
      https://github.com/llvm/llvm-project/commit/b1a278dd874d6135780fc824c6aa263c52d7aadd
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Lower/Allocatable.cpp

  Log Message:
  -----------
  [flang][cuda] Add a proper TODO for allocate statement for cuda var (#88034)

Allocate statement for variable with CUDA attributes need to allocate
memory on the device and not the host. Add a proper TODO so we keep
track of work to be done for it.


  Commit: 9e418c94cd1393408d201f215be8631d1f41e857
      https://github.com/llvm/llvm-project/commit/9e418c94cd1393408d201f215be8631d1f41e857
  Author: Jakub Kuderski <jakub at nod-labs.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/include/llvm/ADT/STLExtras.h

  Log Message:
  -----------
  [ADT] Use `adl_*` wrappers across STLExtras (#87936)

Update the remaining uses of `std::begin`/`end` functions to
`adl_beging`/`end`. This is to make the behavior all the utility
functions consistent, rather than trying to fix a specific usecase.


  Commit: 49561181bdc8698aa28ee2a46d2faa4cf6767bbe
      https://github.com/llvm/llvm-project/commit/49561181bdc8698aa28ee2a46d2faa4cf6767bbe
  Author: Job Henandez Lara <hj93 at protonmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M libc/hdr/CMakeLists.txt
    A libc/hdr/fenv_macros.h
    M libc/src/__support/FPUtil/CMakeLists.txt
    M libc/src/__support/FPUtil/aarch64/FEnvImpl.h
    M libc/src/__support/FPUtil/aarch64/fenv_darwin_impl.h
    M libc/src/__support/FPUtil/arm/FEnvImpl.h
    M libc/src/__support/FPUtil/generic/CMakeLists.txt
    M libc/src/__support/FPUtil/riscv/FEnvImpl.h
    M libc/src/__support/FPUtil/rounding_mode.h
    M libc/src/fenv/CMakeLists.txt
    M libc/src/fenv/feholdexcept.cpp
    M libc/src/fenv/fesetexceptflag.cpp
    M libc/test/UnitTest/RoundingModeUtils.cpp
    M libc/test/src/__support/FPUtil/rounding_mode_test.cpp
    M libc/test/src/fenv/CMakeLists.txt
    M libc/test/src/fenv/enabled_exceptions_test.cpp
    M libc/test/src/fenv/exception_status_test.cpp
    M libc/test/src/fenv/feclearexcept_test.cpp
    M libc/test/src/fenv/feenableexcept_test.cpp
    M libc/test/src/fenv/rounding_mode_test.cpp
    M libc/test/src/math/RIntTest.h
    M libc/test/src/math/smoke/NextTowardTest.h
    M libc/test/src/math/smoke/RIntTest.h
    M libc/utils/MPFRWrapper/MPFRUtils.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/FPUtil/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/fenv/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel

  Log Message:
  -----------
  [libc] Add proxy header for fenv.h macro constants. #87863 (#87896)

Hello, this addresses #87863.


  Commit: 8d6469b0e02c4c7bd1d496972c63ed3e2de0e077
      https://github.com/llvm/llvm-project/commit/8d6469b0e02c4c7bd1d496972c63ed3e2de0e077
  Author: xiaoleis-nv <99947620+xiaoleis-nv at users.noreply.github.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Vector/Transforms/Passes.h
    M mlir/include/mlir/Dialect/Vector/Transforms/Passes.td
    M mlir/lib/Dialect/Vector/Transforms/LowerVectorMultiReduction.cpp
    A mlir/test/Dialect/Vector/vector-multi-reduction-pass-lowering.mlir

  Log Message:
  -----------
  [mlir][vector] Add lower-vector-multi-reduction pass (#87333)

This MR adds the `lower-vector-multi-reduction` pass to lower the
vector.multi_reduction operation.

While the Transform Dialect includes an operation,
`transform.apply_patterns.vector.lower_multi_reduction`, intended for a
similar purpose, its utility is limited to projects that have adopted
the Transform Dialect. Recognizing that not all projects are equipped to
integrate this dialect, the proposed pass serves as a vital standalone
alternative. It ensures that projects solely dependent on the
traditional pass infrastructure can also benefit from the optimized
lowering of `multi_reduction` operation.

---------

Co-authored-by: Xiaolei Shi <xiaoleis at nvidia.com>


  Commit: 1381645ab675d1edcc0eaa0b72729b9f3f02a82d
      https://github.com/llvm/llvm-project/commit/1381645ab675d1edcc0eaa0b72729b9f3f02a82d
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    A libcxx/test/libcxx/fuzzing/format_no_args.pass.cpp

  Log Message:
  -----------
  [libc++][format] adds a basic fuzzer test. (#87883)

This adds an initial fuzzer. Different formatting arguments will execute
different code paths. This will be tested by different fuzzer tests.

The code is based on a sample provided by Louis.


  Commit: eea3bd3954e3a38ae0997f1af558b9deea301c3a
      https://github.com/llvm/llvm-project/commit/eea3bd3954e3a38ae0997f1af558b9deea301c3a
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M libcxx/src/tzdb.cpp

  Log Message:
  -----------
  [libc++][TZDB] Fixes relative path resolving. (#87882)

The path /etc/localtime is a symlink. This symlink can be a relative
path. This fixes resolving a relative symlink.

Since the path used is hard-coded based on the user's system there is no
good way to test this.

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


  Commit: cf6feff56b06b9110095ba6e20c609c9d1dfcfd3
      https://github.com/llvm/llvm-project/commit/cf6feff56b06b9110095ba6e20c609c9d1dfcfd3
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/src/random.cpp

  Log Message:
  -----------
  [libc++] Avoids using ENODATA. (#86165)

This macro is deprecated in C++26.

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

---------

Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>


  Commit: 59e66c515a475bc53db011f3ccca0d2831314443
      https://github.com/llvm/llvm-project/commit/59e66c515a475bc53db011f3ccca0d2831314443
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__format/escaped_output_table.h
    A libcxx/include/__format/indic_conjunct_break_table.h
    M libcxx/include/__format/unicode.h
    M libcxx/include/__format/width_estimation_table.h
    M libcxx/include/libcxx.imp
    M libcxx/include/module.modulemap
    M libcxx/test/libcxx/utilities/format/format.string/format.string.std/extended_grapheme_cluster.h
    M libcxx/test/libcxx/utilities/format/format.string/format.string.std/extended_grapheme_cluster.pass.cpp
    M libcxx/utils/CMakeLists.txt
    M libcxx/utils/data/unicode/DerivedCoreProperties.txt
    M libcxx/utils/data/unicode/DerivedGeneralCategory.txt
    M libcxx/utils/data/unicode/EastAsianWidth.txt
    M libcxx/utils/data/unicode/GraphemeBreakProperty.txt
    M libcxx/utils/data/unicode/GraphemeBreakTest.txt
    M libcxx/utils/data/unicode/emoji-data.txt
    M libcxx/utils/generate_extended_grapheme_cluster_table.py
    A libcxx/utils/generate_indic_conjunct_break_table.py

  Log Message:
  -----------
  [libc++][format] Switches to Unicode 15.1. (#86543)

In addition to changes in the tables the extended grapheme clustering
algorithm has been overhauled. Before I considered a separate state
machine to implement the rules. With the new rule GB9c this became more
attractive and the design has changed.

This change initially had quite an impact on the performance. By making
the state machine persistent the performance was improved greatly. Note
it is still slower than before due to the larger Unicode tables.

Before
--------------------------------------------------------------------
Benchmark                          Time             CPU   Iterations
--------------------------------------------------------------------
BM_ascii_text<char>             1891 ns         1889 ns       369504
BM_unicode_text<char>         106642 ns       106397 ns         6576
BM_cyrillic_text<char>         73420 ns        73277 ns         9445
BM_japanese_text<char>         62485 ns        62387 ns        11153
BM_emoji_text<char>             1895 ns         1893 ns       369525
BM_ascii_text<wchar_t>          2015 ns         2013 ns       346887
BM_unicode_text<wchar_t>       92119 ns        92017 ns         7598
BM_cyrillic_text<wchar_t>      62637 ns        62568 ns        11117
BM_japanese_text<wchar_t>      53850 ns        53785 ns        12803
BM_emoji_text<wchar_t>          2016 ns         2014 ns       347325

After
--------------------------------------------------------------------
Benchmark                          Time             CPU   Iterations
--------------------------------------------------------------------
BM_ascii_text<char>             1906 ns         1904 ns       369409
BM_unicode_text<char>         265462 ns       265175 ns         2628
BM_cyrillic_text<char>        181063 ns       180865 ns         3871
BM_japanese_text<char>        130927 ns       130789 ns         5324
BM_emoji_text<char>             1892 ns         1890 ns       370537
BM_ascii_text<wchar_t>          2038 ns         2035 ns       343689
BM_unicode_text<wchar_t>      277603 ns       277282 ns         2526
BM_cyrillic_text<wchar_t>     188558 ns       188339 ns         3727
BM_japanese_text<wchar_t>     133084 ns       132943 ns         5262
BM_emoji_text<wchar_t>          2012 ns         2010 ns       348015

Persistent
--------------------------------------------------------------------
Benchmark                          Time             CPU   Iterations
--------------------------------------------------------------------
BM_ascii_text<char>             1904 ns         1899 ns       367472
BM_unicode_text<char>         133609 ns       133287 ns         5246
BM_cyrillic_text<char>         90185 ns        89941 ns         7796
BM_japanese_text<char>         75137 ns        74946 ns         9316
BM_emoji_text<char>             1906 ns         1901 ns       368081
BM_ascii_text<wchar_t>          2703 ns         2696 ns       259153
BM_unicode_text<wchar_t>      131497 ns       131168 ns         5341
BM_cyrillic_text<wchar_t>      87071 ns        86840 ns         8076
BM_japanese_text<wchar_t>      72279 ns        72099 ns         9682
BM_emoji_text<wchar_t>          2021 ns         2016 ns       346767


  Commit: ca705681dff4d7b28fad84b8e6846e0463a8860d
      https://github.com/llvm/llvm-project/commit/ca705681dff4d7b28fad84b8e6846e0463a8860d
  Author: Jakub Kuderski <jakub at nod-labs.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/include/llvm/ADT/STLExtras.h

  Log Message:
  -----------
  Revert "[ADT] Use `adl_*` wrappers across STLExtras" (#88158)

Reverts llvm/llvm-project#87936

Seems like this broke some clang designated initializers tests,
reverting.


  Commit: 60c5c4ccadfb333335649103a71dbddc953f4ff3
      https://github.com/llvm/llvm-project/commit/60c5c4ccadfb333335649103a71dbddc953f4ff3
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp

  Log Message:
  -----------
  [MLIR] Don't check for key before inserting in map in GreedyPatternRewriteDriver worklist (NFC) (#88148)

This is a common anti-pattern (any volunteer for a clang-tidy check?).

This does not show real word significant impact though.


  Commit: 4dfc55f7e77821c87d35e1e888fecb8cfb854f7e
      https://github.com/llvm/llvm-project/commit/4dfc55f7e77821c87d35e1e888fecb8cfb854f7e
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    A llvm/test/Transforms/SLPVectorizer/X86/zext-incoming-for-neg-icmp.ll

  Log Message:
  -----------
  [SLP][NFC]Add a test for PR88103, where zext is incoming to signed comparison.


  Commit: 910d2de357de8a490cac3ecbd27196356fe1f2a3
      https://github.com/llvm/llvm-project/commit/910d2de357de8a490cac3ecbd27196356fe1f2a3
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/zext-incoming-for-neg-icmp.ll

  Log Message:
  -----------
  [SLP]Fix PR88103: consider the sign of the compare for non-negative operands.

Need to improve detection of number of bits, required for the operand,
before doing a reduction. If the instruction is incoming operand of the
signed compare, need to consider adding an extra bit for signedness.


  Commit: f48895a8be517be058153385438ad64fa09d4883
      https://github.com/llvm/llvm-project/commit/f48895a8be517be058153385438ad64fa09d4883
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    A clang/test/C/C11/n1514.c
    M clang/www/c_status.html

  Log Message:
  -----------
  [C11] Claim conformance to WG14 N1514

This paper made Annex G a normative, but conditionally supported,
annex. Clang does not implement Annex G, so we conform to this paper.


  Commit: a454d92c5ac906d391b683661ac3d9a362ab0107
      https://github.com/llvm/llvm-project/commit/a454d92c5ac906d391b683661ac3d9a362ab0107
  Author: Peiming Liu <peiming at google.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/SparseTensor/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.h
    A mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorIterator.cpp
    A mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorIterator.h
    R mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorLevel.cpp
    R mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorLevel.h

  Log Message:
  -----------
  [mlir][sparse] rename files and unifies APIs (#88162)


  Commit: d3016aa889ac12fd8a047d68fed2ddaca107b990
      https://github.com/llvm/llvm-project/commit/d3016aa889ac12fd8a047d68fed2ddaca107b990
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/include/llvm/BinaryFormat/Dwarf.h
    M llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp

  Log Message:
  -----------
  [DWARF] Refactor .debug_names bucket count computation (#88087)

`getDebugNamesBucketAndHashCount` lures users to provide an array to
compute the bucket count using an O(n log n) sort. This is inefficient
as hash table based uniquifying is faster.

The performance issue matters less for Clang as the number of names is
relatively small. For `ld.lld --debug-names`, I plan to compute the
unique hash count as a side product of parallel entry pool computation,
and I just need a function to suggest a bucket count.


  Commit: 5d9d740c39a6cf21f0d54ec572aed3c2f556cbcb
      https://github.com/llvm/llvm-project/commit/5d9d740c39a6cf21f0d54ec572aed3c2f556cbcb
  Author: Björn Pettersson <bjorn.a.pettersson at ericsson.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    R llvm/include/llvm/Analysis/Interval.h
    R llvm/include/llvm/Analysis/IntervalIterator.h
    R llvm/include/llvm/Analysis/IntervalPartition.h
    M llvm/include/llvm/InitializePasses.h
    M llvm/include/llvm/LinkAllPasses.h
    M llvm/lib/Analysis/Analysis.cpp
    M llvm/lib/Analysis/CMakeLists.txt
    R llvm/lib/Analysis/Interval.cpp
    R llvm/lib/Analysis/IntervalPartition.cpp
    M llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
    M llvm/utils/gn/secondary/llvm/lib/Analysis/BUILD.gn

  Log Message:
  -----------
  Remove the unused IntervalPartition analysis pass (#88133)

This removes the old legacy PM "intervals" analysis pass (aka
IntervalPartition). It also removes the associated Interval and
IntervalIterator help classes.

Reasons for removal:
1) The pass is not used by llvm-project (not even being tested by
   any regression tests).
2) Pass has not been ported to new pass manager, which at least
   indicates that it isn't used by the middle-end.
3) ASan reports heap-use-after-free on
      ++I;  // After the first one...
   even if false is passed to intervals_begin. Not sure if that is
   a false positive, but it makes the code a bit less trustworthy.


  Commit: 759bab068157d93a71ef20dc28a2eaed4fec6d40
      https://github.com/llvm/llvm-project/commit/759bab068157d93a71ef20dc28a2eaed4fec6d40
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/InstCombine/icmp-add.ll

  Log Message:
  -----------
  [InstCombine] Add tests for folding `(icmp eq/ne (add nuw x, y), 0)`; NFC


  Commit: 7599d478efb1576b5013d17a70971f76d6f7c25a
      https://github.com/llvm/llvm-project/commit/7599d478efb1576b5013d17a70971f76d6f7c25a
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
    M llvm/test/Transforms/InstCombine/icmp-add.ll

  Log Message:
  -----------
  [InstCombine] Fold `(icmp eq/ne (add nuw x, y), 0)` -> `(icmp eq/ne (or x, y), 0)`

`(icmp eq/ne (or x, y), 0)` is probably easier to analyze than `(icmp
eq/ne x, -y)`

Proof: https://alive2.llvm.org/ce/z/2-VTb6

Closes #88088


  Commit: e248f0df14e407b8ae98cd31fb2e77fc058f3c7e
      https://github.com/llvm/llvm-project/commit/e248f0df14e407b8ae98cd31fb2e77fc058f3c7e
  Author: Daniel Chen <cdchen at ca.ibm.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M flang/docs/Extensions.md

  Log Message:
  -----------
  [Flang] Update Extensions.md for supported BIND(C) LOGICAL kind. (#88159)

Flang also supports non-scalar logical dummy argument with a different
KIND from C_BOOL to a bind(c) routine as well as a component in a
bind(c) derived type. Update the document.

```
subroutine sub(arg)
logical(4) :: arg(4)
end
```

```
type dt
logical(4) :: comp
end type
end
```


  Commit: 9797a7ea6bf84b48f267c781be209951d62bc6c9
      https://github.com/llvm/llvm-project/commit/9797a7ea6bf84b48f267c781be209951d62bc6c9
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
    M llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp

  Log Message:
  -----------
  [DWARF] Refactor findDebugNamesOffsets

Address some post-review comments in #82153 and move the function inside
llvm::dwarf, used by certain free functions.

Pull Request: https://github.com/llvm/llvm-project/pull/88064


  Commit: 9d9560facb5597e0232ab15716a7915a33d4f0a6
      https://github.com/llvm/llvm-project/commit/9d9560facb5597e0232ab15716a7915a33d4f0a6
  Author: Raghu Maddhipatla <7686592+raghavendhra at users.noreply.github.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
    M flang/lib/Lower/OpenMP/ClauseProcessor.h
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M flang/test/Lower/OpenMP/FIR/target.f90
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir

  Log Message:
  -----------
  [Flang] [OpenMP] [Semantics] [MLIR] [Lowering] Add lowering support for IS_DEVICE_PTR and HAS_DEVICE_ADDR clauses on OMP TARGET directive. (#74187)

Added lowering support for IS_DEVICE_PTR and HAS_DEVICE_ADDR clauses for
OMP TARGET directive and added related tests for these changes.

IS_DEVICE_PTR and HAS_DEVICE_ADDR clauses apply to OMP TARGET directive
OpenMP spec states

`The **is_device_ptr** clause indicates that its list items are device
pointers.`

`The **has_device_addr** clause indicates that its list items already
have device addresses and therefore they may be directly accessed from a
target device.`

Whereas USE_DEVICE_PTR and USE_DEVICE_ADDR clauses apply to OMP TARGET
DATA directive and OpenMP spec for them states

`Each list item in the **use_device_ptr** clause results in a new list
item that is a device pointer that refers to a device address`

`Each list item in a **use_device_addr** clause that is present in the
device data environment is treated as if it is implicitly mapped by a
map clause on the construct with a map-type of alloc`


  Commit: aacb8985f734e7e11fc94947f7bc348d1d39f7af
      https://github.com/llvm/llvm-project/commit/aacb8985f734e7e11fc94947f7bc348d1d39f7af
  Author: Ben Langmuir <blangmuir at apple.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/Orc/Core.h
    M llvm/lib/ExecutionEngine/Orc/Core.cpp

  Log Message:
  -----------
  [orc] Reduce memory usage from empty materialization info DenseMaps (#88167)

Saves several MB of memory in larger applications after linking finishes
by clearing DenseMap storage that is empty. This does not attempt to
shrink partially full materialization infos. The assumption is that
adding more after linking finishes is rare.

rdar://126145336


  Commit: 4bc4c7baed1a4ef13a0964fbf97f4dc1560de592
      https://github.com/llvm/llvm-project/commit/4bc4c7baed1a4ef13a0964fbf97f4dc1560de592
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/OpenACCKinds.h

  Log Message:
  -----------
  [NFC] Change name of two helper functions to match naming conventions

Brought up in #88135, I inadvertently mis-named these functions, so
correcting them here.


  Commit: 63934821d56f4d366f61048ed6060978bbde1bc6
      https://github.com/llvm/llvm-project/commit/63934821d56f4d366f61048ed6060978bbde1bc6
  Author: Ziqing Luo <ziqing at udel.edu>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/tools/scan-build/libexec/ccc-analyzer

  Log Message:
  -----------
  [Static Analyzer] Add handling of the `-nostdlibinc` option to ccc-analyzer (#88017)

Compiler options recognizable to ccc-analyzer are stored in maps. An
option missing in the map will be dropped by ccc-analyzer. This causes a
build error in one of our projects that only happens in scan-build but
not regular build, because ccc-analyzer do not recognize `-nostdlibinc`.

This commit adds the option to the map.

rdar://126082053


  Commit: fe5dba3c08e31db6b96119787b0836f180aac584
      https://github.com/llvm/llvm-project/commit/fe5dba3c08e31db6b96119787b0836f180aac584
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [bazel][libc] Add missing fenv dep for aarch64

For 49561181bdc8698aa28ee2a46d2faa4cf6767bbe.


  Commit: 4ae8694cca1b19425ac8707eacc6959ca9770802
      https://github.com/llvm/llvm-project/commit/4ae8694cca1b19425ac8707eacc6959ca9770802
  Author: Peter Collingbourne <peter at pcc.me.uk>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/clang/include/clang/Basic/BUILD.gn
    M llvm/utils/gn/secondary/clang/lib/Basic/BUILD.gn

  Log Message:
  -----------
  gn build: Manually port a30662fc2acd


  Commit: 2248164a9ab791a3ed1b9586dc340b5303155021
      https://github.com/llvm/llvm-project/commit/2248164a9ab791a3ed1b9586dc340b5303155021
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/include/clang/Frontend/FrontendActions.h
    M clang/include/clang/Lex/Preprocessor.h
    M clang/include/clang/Lex/PreprocessorOptions.h
    M clang/lib/Frontend/FrontendActions.cpp
    M clang/lib/Lex/PPLexerChange.cpp
    M clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
    R clang/test/ClangScanDeps/modules-extension.c
    A clang/test/ClangScanDeps/modules-minimize-extension.c
    A clang/test/ClangScanDeps/modules-minimize-module.c
    M clang/unittests/Lex/PPDependencyDirectivesTest.cpp

  Log Message:
  -----------
  Revert "[clang] Move state out of `PreprocessorOptions` (1/n) (#86358)"

This reverts commit 407a2f23 which stopped propagating the callback to module compiles, effectively disabling dependency directive scanning for all modular dependencies. Also added a regression test.


  Commit: a8ec1eb843c9c999d1c55b7b34cabebeacc533d7
      https://github.com/llvm/llvm-project/commit/a8ec1eb843c9c999d1c55b7b34cabebeacc533d7
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    M llvm/test/Transforms/LoopVectorize/PowerPC/vplan-force-tail-with-evl.ll

  Log Message:
  -----------
  [VPlan] Dont assign slots to VPValues with an underlying value.

This makes sure the numbering for VPValues without underlying
values is consecutive.


  Commit: e953c862e9b082e16ac3306c36dc8fdfc5f03ee3
      https://github.com/llvm/llvm-project/commit/e953c862e9b082e16ac3306c36dc8fdfc5f03ee3
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M flang/include/flang/Common/Fortran.h
    M flang/include/flang/Optimizer/Support/Utils.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/lib/Parser/Fortran-parsers.cpp
    M flang/lib/Semantics/check-declarations.cpp
    M flang/test/Lower/CUDA/cuda-data-attribute.cuf
    M flang/test/Semantics/cuf03.cuf

  Log Message:
  -----------
  [flang][cuda] Add UNIFIED data attribute (#88171)

Latest version of the specification introduced the `UNIFIED` attribute
for data.


https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/#cfref-var-attr-unified-data

This patch adds the attribute to parsing, semantic and lowering. 

The matching rules for dummy/actual arguments is not part of this patch.


  Commit: 5b58eb68ed36717971970f35a1192213e3eb4ec5
      https://github.com/llvm/llvm-project/commit/5b58eb68ed36717971970f35a1192213e3eb4ec5
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/InstCombine/icmp-or.ll

  Log Message:
  -----------
  [InstCombine] Add tests for folding `(icmp eq/ne (or disjoint x, C0), C1)`; NFC


  Commit: 71ef04d7cd6c0d6133ab11ca4cfceefe506a1acb
      https://github.com/llvm/llvm-project/commit/71ef04d7cd6c0d6133ab11ca4cfceefe506a1acb
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
    M llvm/test/Transforms/InstCombine/icmp-or.ll

  Log Message:
  -----------
  [InstCombine] fold `(icmp eq/ne (or disjoint x, C0), C1)` -> `(icmp eq/ne x, C0^C1)`

Proof: https://alive2.llvm.org/ce/z/m3xoo_

Closes #87734


  Commit: 470aefb240dee7d791875284b9917bf641ca971a
      https://github.com/llvm/llvm-project/commit/470aefb240dee7d791875284b9917bf641ca971a
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/test/CodeGenCUDA/offloading-entries.cu
    M clang/test/OpenMP/declare_target_link_codegen.cpp
    M clang/test/OpenMP/declare_target_visibility_codegen.cpp
    M clang/test/OpenMP/target_codegen_registration.cpp
    M clang/test/OpenMP/target_indirect_codegen.cpp
    M llvm/lib/Frontend/Offloading/Utility.cpp
    M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
    M mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-host.mlir

  Log Message:
  -----------
  [Offload][NFC] Remove `omp_` prefix from offloading entries (#88071)

Summary:
These entires are generic for offloading with the new driver now. Having
the `omp` prefix was a historical artifact and is confusing when used
for CUDA. This patch just renames them for now, future patches will
rework the binary format to make it more common.


  Commit: b79db396599f42d106b930d61e20c9d5146a6866
      https://github.com/llvm/llvm-project/commit/b79db396599f42d106b930d61e20c9d5146a6866
  Author: srcarroll <50210727+srcarroll at users.noreply.github.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
    M mlir/test/Dialect/Linalg/transform-ops-invalid.mlir
    M mlir/test/Dialect/Linalg/transform-ops.mlir
    M mlir/test/Dialect/Linalg/vectorization.mlir
    M mlir/test/python/dialects/transform_structured_ext.py

  Log Message:
  -----------
  [mlir][linalg] Support `ParamType` in `vector_sizes` option of `VectorizeOp` transform (#87557)


  Commit: b561fd37266753c645f073b7fabf7a75cf65d2ec
      https://github.com/llvm/llvm-project/commit/b561fd37266753c645f073b7fabf7a75cf65d2ec
  Author: Youngsuk Kim <joseph942010 at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/docs/Benchmarking.rst

  Log Message:
  -----------
  [docs] Fix broken link in Benchmarking docs (#88117)

Fixes #58813


  Commit: a332cfc986e431de11cdbf632b5769878e0d826b
      https://github.com/llvm/llvm-project/commit/a332cfc986e431de11cdbf632b5769878e0d826b
  Author: Teresa Johnson <tejohnson at google.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
    A llvm/test/Transforms/MemProfContextDisambiguation/overlapping-contexts.ll

  Log Message:
  -----------
  [MemProf] Perform cloning for each allocation separately (#87112)

Restructures the cloning slightly to perform all cloning for each
allocation separately. The prior algorithm would sometimes miss cloning
opportunities in cases where trimmed cold contexts partially overlapped
with longer contexts for different allocations.

Most of the change is isolated to the helpers that move edges to new or
existing clones, which now support moving a subset of context ids.


  Commit: 4afcfd7498363e42c002ee33a6e925c2d2c7b45e
      https://github.com/llvm/llvm-project/commit/4afcfd7498363e42c002ee33a6e925c2d2c7b45e
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M lld/ELF/DWARF.h
    M lld/ELF/SyntheticSections.h

  Log Message:
  -----------
  [ELF] Sort DWARF.h sections. NFC

to make it clear whether .debug_names should be added.
And include llvm/ADT/STLFunctionalExtras.h for IWYU.


  Commit: eec41d2f8d81b546d7b97648cca6b2d656104bd3
      https://github.com/llvm/llvm-project/commit/eec41d2f8d81b546d7b97648cca6b2d656104bd3
  Author: Raghu Maddhipatla <7686592+raghavendhra at users.noreply.github.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
    M flang/lib/Lower/OpenMP/ClauseProcessor.h
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M flang/test/Lower/OpenMP/FIR/target.f90
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir

  Log Message:
  -----------
  Revert "[Flang] [OpenMP] [Semantics] [MLIR] [Lowering] Add lowering support for IS_DEVICE_PTR and HAS_DEVICE_ADDR clauses on OMP TARGET directive." (#88198)

Reverts llvm/llvm-project#74187


  Commit: f04452de1986e4e01296a80231efb212d6c84c42
      https://github.com/llvm/llvm-project/commit/f04452de1986e4e01296a80231efb212d6c84c42
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/include/clang/InstallAPI/DylibVerifier.h
    M clang/include/clang/InstallAPI/Frontend.h
    M clang/include/clang/InstallAPI/FrontendRecords.h
    M clang/lib/InstallAPI/DylibVerifier.cpp
    M clang/lib/InstallAPI/Frontend.cpp
    M clang/tools/clang-installapi/ClangInstallAPI.cpp

  Log Message:
  -----------
  [InstallAPI] Tie lifetime of FE objects to DylibVerifier (#88189)

A few verification checks need to happen until all AST's have been
traversed, specifically for zippered framework checking. To keep source
location until that time valid, hold onto to references of
FrontendRecords + SourceManager.


  Commit: 4a04fca9e2f936264bccba58081893c6703de7ec
      https://github.com/llvm/llvm-project/commit/4a04fca9e2f936264bccba58081893c6703de7ec
  Author: PiJoules <6019989+PiJoules at users.noreply.github.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M compiler-rt/lib/asan/asan_thread.cpp

  Log Message:
  -----------
  [compiler-rt][asan] Fix for flaky asan check (#88177)

This fixes https://github.com/llvm/llvm-project/issues/87324.

We haven't been able to come up with a minimal reproducer but we can
reliabely avoid this failure with the following fix. Prior to the
GetGlobalLowLevelAllocator change, the old LowLevelAllocator aquired a
lock associated with it preventing that specific allocator from being
accessed at the same time by many threads. With the
GetGlobalLowLevelAllocator change, I had accidentally replaced it but
not taken into account the lock, so we can have a data race if the
allocator is used at any point while a thread is being created. The
global allocator can be used for flag parsing or registering asan
globals.


  Commit: 788be0d9fc6aeca548c90bac5ebe6990dd3c66ec
      https://github.com/llvm/llvm-project/commit/788be0d9fc6aeca548c90bac5ebe6990dd3c66ec
  Author: Brooks Davis <brooks at one-eyed-alien.net>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M flang/include/flang/Evaluate/integer.h
    M flang/include/flang/Evaluate/real.h
    M flang/lib/Decimal/decimal-to-binary.cpp
    M flang/lib/Evaluate/fold-implementation.h

  Log Message:
  -----------
  [flang] fix build on *BSD after 4762c6557d15 (#86204)

The HUGE definition collides with the HUGE macro from math.h. Unlike the
fix in 3149c934cb26 (#84478) (largely reverted in f95710c76519), add
another #undef HUGE since there is no practical way to make FreeBSD's
headers not define HUGE and still define XSI interfaces such as isascii
or strnlen.

Update comments above `#undef HUGE` instances to reflect the fact that
all major BSD versions (I checked DragonFly, FreeBSD, NetBSD, and
OpenBSD) leak the HUGE macro from math.h to various degrees.

Fixes #86038


  Commit: 9170e3857521324c096240bf38877e0ffe1a402e
      https://github.com/llvm/llvm-project/commit/9170e3857521324c096240bf38877e0ffe1a402e
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/IR/IRBuilder.h
    M llvm/include/llvm/IR/InstrTypes.h
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/IR/Instruction.cpp
    M llvm/lib/IR/Operator.cpp
    M llvm/test/Assembler/flags.ll
    M llvm/test/Bitcode/flags.ll
    M llvm/test/Transforms/InstCombine/freeze.ll
    M llvm/test/Transforms/SimplifyCFG/HoistCode.ll

  Log Message:
  -----------
  Add support for `nneg` flag with `uitofp`

As noted when #82404 was pushed (canonicalizing `sitofp` -> `uitofp`),
different signedness on fp casts can have dramatic performance
implications on different backends.

So, it makes to create a reliable means for the backend to pick its
cast signedness if either are correct.

Further, this allows us to start canonicalizing `sitofp`- > `uitofp`
which may easy middle end analysis.

Closes #86141


  Commit: e8a3b72272e3e67e94ee9d7144d3c8292c49e868
      https://github.com/llvm/llvm-project/commit/e8a3b72272e3e67e94ee9d7144d3c8292c49e868
  Author: Evgenii Stepanov <eugenis at google.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    A llvm/test/Instrumentation/MemorySanitizer/overflow.ll
    A llvm/test/Instrumentation/MemorySanitizer/saturating.ll

  Log Message:
  -----------
  [msan] Precommit tests.

Precommit tests for overflowing and saturating arithmetic intrinsics.


  Commit: 9760872b537ba8e6eee2e68eb81b7d26af5b40e4
      https://github.com/llvm/llvm-project/commit/9760872b537ba8e6eee2e68eb81b7d26af5b40e4
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M utils/bazel/llvm-project-overlay/libc/test/src/math/BUILD.bazel

  Log Message:
  -----------
  [bazel][libc] Add missing fenv dep for rint test template

For 49561181bdc8698aa28ee2a46d2faa4cf6767bbe.


  Commit: 36e25772ddd049c8c742e55fbd2b3c9aaceb7060
      https://github.com/llvm/llvm-project/commit/36e25772ddd049c8c742e55fbd2b3c9aaceb7060
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/test/APINotes/instancetype.m

  Log Message:
  -----------
  clang/test/APINotes/instancetype.m: Clean the cache dir

It has been incompatible since #87761


  Commit: 892f01a7437b20f5df3edf53824a53889f733b06
      https://github.com/llvm/llvm-project/commit/892f01a7437b20f5df3edf53824a53889f733b06
  Author: Lei Wang <wlei at fb.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h

  Log Message:
  -----------
  Remove the assertion to unblock breakages (#88035)

as titled.


  Commit: ee52add6cb4a6a4ba4beb941c1f2cfa82266e0df
      https://github.com/llvm/llvm-project/commit/ee52add6cb4a6a4ba4beb941c1f2cfa82266e0df
  Author: Shih-Po Hung <shihpo.hung at sifive.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/RISCV/active_lane_mask.ll

  Log Message:
  -----------
  [RISCV][TTI] Implement cost of intrinsic active_lane_mask (#87931)

This patch uses the argument type to infer the LMUL cost for the index
generation, add, and comparison.


  Commit: 44c79da3ae90795ca8b252e8a92910eee9d889c0
      https://github.com/llvm/llvm-project/commit/44c79da3ae90795ca8b252e8a92910eee9d889c0
  Author: hanbeom <kese111 at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
    M llvm/test/Transforms/InstCombine/shl-demand.ll

  Log Message:
  -----------
  [InstCombine] Remove shl if we only demand known signbits of shift source (#79014)

This patch resolve TODO written in commit:
https://github.com/llvm/llvm-project/commit/5909c678831f3a5c1669f6906f777d4ec4532fa1

Proof: https://alive2.llvm.org/ce/z/C3VNoR


  Commit: 1aceee7bb6c4423da73f71aff2004493bdf620d1
      https://github.com/llvm/llvm-project/commit/1aceee7bb6c4423da73f71aff2004493bdf620d1
  Author: Lei Wang <wlei at fb.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
    M llvm/lib/Transforms/IPO/SampleProfile.cpp

  Log Message:
  -----------
  Remove unused variable (#88223)

fix the CI


  Commit: e0219f2d53686135b7363450b44877342a960e71
      https://github.com/llvm/llvm-project/commit/e0219f2d53686135b7363450b44877342a960e71
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M lldb/cmake/caches/Apple-lldb-Linux.cmake

  Log Message:
  -----------
  [lldb] Overwrite existing LLVM_ENABLE_EXPORTED_SYMBOLS_IN_EXECUTABLES
on apple-linux


  Commit: 349327f7e73ab7a314ef08c463dd04fcea623150
      https://github.com/llvm/llvm-project/commit/349327f7e73ab7a314ef08c463dd04fcea623150
  Author: Eli Friedman <efriedma at quicinc.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/lib/Headers/intrin.h

  Log Message:
  -----------
  [ARM64EC] Make intrin.h include arm64intrin.h.

Fixes compiling windows.h using clang's intrin.h.


  Commit: 4c6ae8ebb69525118e7fc3cf57908e9de74ebef9
      https://github.com/llvm/llvm-project/commit/4c6ae8ebb69525118e7fc3cf57908e9de74ebef9
  Author: Karthika Devi C <quic_kartc at quicinc.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M polly/lib/Support/GICHelper.cpp
    M polly/lib/Transform/MatmulOptimizer.cpp

  Log Message:
  -----------
  [polly] Fix cppcheck SA comments reported in #82263 (#85749)

This patch addresses the (performance )suggestions by checkcpp static
analyzer for couple of files. Here we use const reference for the
suggested function arguments.
Fixes #82263.


  Commit: 71097e927141e278dd92e847e67f636526510a31
      https://github.com/llvm/llvm-project/commit/71097e927141e278dd92e847e67f636526510a31
  Author: Eli Friedman <efriedma at quicinc.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/lib/Basic/Targets/AArch64.cpp
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CodeGenModule.cpp
    A clang/test/CodeGenCXX/arm64ec-vectorcall.cpp

  Log Message:
  -----------
  [ARM64EC] Add support for parsing __vectorcall (#87725)

MSVC doesn't support generating __vectorcall calls in Arm64EC mode, but
it does treat it as a distinct type. The Microsoft STL depends on this
functionality. (Not sure if this is intentional.) Add support for
parsing the same way as MSVC, and add some checks to ensure we don't try
to actually generate code.

The error handling in CodeGen is ugly, but I can't think of a better way
to do it.


  Commit: 000f2b51633d181bf4a5919fc38cf964a83f2091
      https://github.com/llvm/llvm-project/commit/000f2b51633d181bf4a5919fc38cf964a83f2091
  Author: Longsheng Mou <moulongsheng at huawei.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/Targets/X86.cpp
    M clang/test/CodeGen/X86/x86_64-arguments.c

  Log Message:
  -----------
  [X86_64] fix arg pass error in struct. (#86902)

```
typedef long long t67 __attribute__((aligned (4)));
struct s67 {
  int a;
  t67 b;
};
void f67(struct s67 x) {
}
```
When classify:
a: Lo = Integer, Hi = NoClass
b: Lo = Integer, Hi = NoClass
struct S: Lo = Integer, Hi = NoClass

```
define dso_local void @f67(i64 %x.coerce) {
```
In this case, only one i64 register is used when the structure parameter
is transferred, which is obviously incorrect.So we need to treat the
split case specially. fix
https://github.com/llvm/llvm-project/issues/85387.


  Commit: 58323de2e5ed0fec81ccfe421488d7fb27ecbe38
      https://github.com/llvm/llvm-project/commit/58323de2e5ed0fec81ccfe421488d7fb27ecbe38
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/lib/Format/UnwrappedLineParser.cpp
    M clang/unittests/Format/FormatTest.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp
    M polly/lib/Analysis/ScopDetectionDiagnostic.cpp

  Log Message:
  -----------
  [clang-format] Correctly annotate braces in macros (#87953)

Also fix unit tests and reformat polly.

Fixes #86550.


  Commit: bcf849b1e5faea405cfbbd4bc848048651055b25
      https://github.com/llvm/llvm-project/commit/bcf849b1e5faea405cfbbd4bc848048651055b25
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/lib/Format/TokenAnnotator.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp

  Log Message:
  -----------
  [clang-format] instanceof is a keyword only in Java/JavaScript (#88085)

Fixes #87907.


  Commit: 8dc006ea4008c1af298e56c4db6fffe2a40a2ba9
      https://github.com/llvm/llvm-project/commit/8dc006ea4008c1af298e56c4db6fffe2a40a2ba9
  Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp

  Log Message:
  -----------
  [RISCV] Make EmitToStreamer return whether Inst is compressed

This is helpful to reduce calls of `RISCVRVC::compress` in #77337.

Reviewers: asb, lukel97, topperc

Reviewed By: topperc

Pull Request: https://github.com/llvm/llvm-project/pull/88120


  Commit: 289a2c380e47d64a1e626259c53fc8c7d6c2be66
      https://github.com/llvm/llvm-project/commit/289a2c380e47d64a1e626259c53fc8c7d6c2be66
  Author: Nhat Nguyen <nhat7203 at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/spec/linux.td
    M libc/src/sys/CMakeLists.txt
    A libc/src/sys/ioctl/CMakeLists.txt
    A libc/src/sys/ioctl/ioctl.h
    A libc/src/sys/ioctl/linux/CMakeLists.txt
    A libc/src/sys/ioctl/linux/ioctl.cpp
    A libc/test/src/sys/ioctl/CMakeLists.txt
    A libc/test/src/sys/ioctl/linux/CMakeLists.txt
    A libc/test/src/sys/ioctl/linux/ioctl_test.cpp

  Log Message:
  -----------
  [libc] implement ioctl (#85890)

This PR is to work on the issue #85275


  Commit: 87e6f87fe7e343eb656e9b49d30cbb065c086651
      https://github.com/llvm/llvm-project/commit/87e6f87fe7e343eb656e9b49d30cbb065c086651
  Author: Connor Sughrue <55301806+cpsughrue at users.noreply.github.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Support/raw_socket_stream.h
    M llvm/lib/Support/raw_socket_stream.cpp
    M llvm/unittests/Support/raw_socket_stream_test.cpp

  Log Message:
  -----------
  [llvm][Support] Improvements to ListeningSocket functionality and documentation (#84710)

Improvements include
* Enable `ListeningSocket::accept` to timeout after a specified amount
of time or block indefinitely
* Enable `ListeningSocket::createUnix` to handle instances where the
target socket address already exists and differentiate between
situations where the existing file does and does not already have a
bound socket
* Doxygen comments

Functionality added for the module build daemon

---------

Co-authored-by: Michael Spencer <bigcheesegs at gmail.com>


  Commit: 3c2feab7d152b7f161b4adaecef4ec81f038a23e
      https://github.com/llvm/llvm-project/commit/3c2feab7d152b7f161b4adaecef4ec81f038a23e
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/spec/linux.td
    M libc/src/sys/CMakeLists.txt
    R libc/src/sys/ioctl/CMakeLists.txt
    R libc/src/sys/ioctl/ioctl.h
    R libc/src/sys/ioctl/linux/CMakeLists.txt
    R libc/src/sys/ioctl/linux/ioctl.cpp
    R libc/test/src/sys/ioctl/CMakeLists.txt
    R libc/test/src/sys/ioctl/linux/CMakeLists.txt
    R libc/test/src/sys/ioctl/linux/ioctl_test.cpp

  Log Message:
  -----------
  Revert "[libc] implement ioctl" (#88226)

Reverts llvm/llvm-project#85890

This fails in full build mode:

https://lab.llvm.org/buildbot/#/builders/163/builds/54478/steps/4/logs/stdio


  Commit: 84a5332a68f2b6cb6f48b9483e50d3f821f17119
      https://github.com/llvm/llvm-project/commit/84a5332a68f2b6cb6f48b9483e50d3f821f17119
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/uint_to_fp.ll

  Log Message:
  -----------
  [X86] Add tests for `uitofp nneg` -> `sitofp`; NFC


  Commit: 70136389788b90c2e6bbaef5ad8bb0285d460068
      https://github.com/llvm/llvm-project/commit/70136389788b90c2e6bbaef5ad8bb0285d460068
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

  Log Message:
  -----------
  [DAG] Add support for `nneg` flag with `uitofp`

Copy `nneg` flag when building `UINT_TO_FP` from `uitofp` and use
`nneg` flag in the one place we transform `UINT_TO_FP` -> `SINT_TO_FP`
if the operand is non-negative.


  Commit: 6c40d463c28e7a6843bea9f6d838cd89e586cbe8
      https://github.com/llvm/llvm-project/commit/6c40d463c28e7a6843bea9f6d838cd89e586cbe8
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/uint_to_fp.ll

  Log Message:
  -----------
  [X86] Use `nneg` flag when trying to convert `uitofp` -> `sitofp`

Closes #86694


  Commit: 817c832e72f0df3efe1ddd804283c8c89b78639f
      https://github.com/llvm/llvm-project/commit/817c832e72f0df3efe1ddd804283c8c89b78639f
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/test/SemaCXX/type-traits.cpp

  Log Message:
  -----------
  [clang] Improve source location in binary type traits diagnostics (#88097)

This patch takes advantage of a recent NFC change that refactored
`EvaluateBinaryTypeTrait()` to accept `TypeSourceInfo` instead of
`QualType` c7db450e5c1a83ea768765dcdedfd50f3358d418.
Before:
```
test2.cpp:105:55: error: variable length arrays are not supported in '__is_layout_compatible'
  105 |   static_assert(!__is_layout_compatible(int[n], int[n]));
      |                                                       ^
test2.cpp:125:76: error: incomplete type 'CStructIncomplete' where a complete type is required
  125 |   static_assert(__is_layout_compatible(CStructIncomplete, CStructIncomplete));
      |                                                                            ^
``` 
After:
```
test2.cpp:105:41: error: variable length arrays are not supported in '__is_layout_compatible'
  105 |   static_assert(!__is_layout_compatible(int[n], int[n]));
      |                                         ^
test2.cpp:125:40: error: incomplete type 'CStructIncomplete' where a complete type is required
  125 |   static_assert(__is_layout_compatible(CStructIncomplete, CStructIncomplete));
      |                                        ^
```


  Commit: b0662a7a7d6d7a4a5339b95d3a20a53390636716
      https://github.com/llvm/llvm-project/commit/b0662a7a7d6d7a4a5339b95d3a20a53390636716
  Author: Congzhe <congzhe.cao at huawei.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/CodeMoverUtils.cpp
    M llvm/unittests/Transforms/Utils/CodeMoverUtilsTest.cpp

  Log Message:
  -----------
   [CodeMoverUtils] Enhance CodeMoverUtils to sink an entire BB (#87857)

When moving an entire basic block after `InsertPoint`, currently we
check each instruction whether their users are dominated by
`InsertPoint`, however, this can be improved such that even a user is
not dominated by `InsertPoint`, as long as it appears as a subsequent
instruction in the same BB, it is safe to move.

This patch is similar to commit 751be2a064f119af74c7b9b1e52bc904d8aa114d
that enhanced hoisting an entire BB, and this patch enhances sinking an
entire BB. Please refer to the added functionality in test case
`llvm/unittests/Transforms/Utils/CodeMoverUtilsTest.cpp` that was not
supported without this patch.


  Commit: ee284d2da0720dc21191d6f545504cbfcf5dcbcf
      https://github.com/llvm/llvm-project/commit/ee284d2da0720dc21191d6f545504cbfcf5dcbcf
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M lld/ELF/SyntheticSections.cpp
    M lld/ELF/SyntheticSections.h
    M lld/ELF/Writer.cpp

  Log Message:
  -----------
  [ELF] Avoid make<GdbIndexSection>. NFC


  Commit: 1fda1776e32b5582bfcfcbd8094f3c280d936cec
      https://github.com/llvm/llvm-project/commit/1fda1776e32b5582bfcfcbd8094f3c280d936cec
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/include/CMakeLists.txt
    A libcxx/include/__chrono/sys_info.h
    M libcxx/include/__chrono/time_zone.h
    M libcxx/include/chrono
    M libcxx/include/libcxx.imp
    M libcxx/include/module.modulemap
    M libcxx/modules/std/chrono.inc
    M libcxx/src/include/tzdb/time_zone_private.h
    M libcxx/src/include/tzdb/types_private.h
    M libcxx/src/time_zone.cpp
    M libcxx/src/tzdb.cpp
    M libcxx/test/libcxx/diagnostics/chrono.nodiscard_extensions.compile.pass.cpp
    M libcxx/test/libcxx/diagnostics/chrono.nodiscard_extensions.verify.cpp
    A libcxx/test/libcxx/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp
    A libcxx/test/libcxx/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.rule_selection.pass.cpp
    M libcxx/test/libcxx/transitive_includes/cxx23.csv
    M libcxx/test/libcxx/transitive_includes/cxx26.csv
    A libcxx/test/std/time/time.zone/time.zone.info/time.zone.info.sys/sys_info.members.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/sys_info.zdump.pass.cpp
    M libcxx/utils/libcxx/test/features.py

  Log Message:
  -----------
  [libc++][chrono] Adds the sys_info class. (#85619)

Adds the sys_info class and time_zone::get_info(). The code still has a
few quirks and has not been optimized for performance yet.

The returned sys_info is compared against the output of the zdump tool
in the test giving confidence the implementation is correct.

Implements parts of:
- P0355 Extending <chrono> to Calendars and Time Zones

Implements:
- LWGXXXX The sys_info range should be affected by save


  Commit: c174d8f46546f7e0e861061256a45570f3bdea75
      https://github.com/llvm/llvm-project/commit/c174d8f46546f7e0e861061256a45570f3bdea75
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M libcxx/utils/ci/Dockerfile

  Log Message:
  -----------
  [libc++][CI] Updates Docker LLDB dependencies. (#88174)

In order to test the LLDB data formatters make is required and SWIG
needs to be updated to version 4.

As drive-by, this patch sorts the entries and removes some duplicates.


  Commit: 4a93872a4f57d2f205826052150fadc36490445f
      https://github.com/llvm/llvm-project/commit/4a93872a4f57d2f205826052150fadc36490445f
  Author: Phoebe Wang <phoebe.wang at intel.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/MSVC.h
    M clang/test/Driver/gcodeview-command-line.c
    A clang/test/Misc/win32-elf.c

  Log Message:
  -----------
  Reland "[Win32][ELF] Make CodeView a DebugInfoFormat only for COFF format" (#87987)

This relands #87149.

The previous commit exposed failures on some targets. The reason is only
a few targets support COFF ObjectFormatType on Windows:
https://github.com/llvm/llvm-project/blob/main/llvm/lib/TargetParser/Triple.cpp#L835-L842

With #87149, the targets don't support COFF will report "warning:
argument unused during compilation: '-gcodeview-command-line'
[-Wunused-command-line-argument]" in the test gcodeview-command-line.c

This patch limits gcodeview-command-line.c only run on targets support
COFF.


  Commit: 749620ea2c738be88f6c0fd59c7217bca6818d5f
      https://github.com/llvm/llvm-project/commit/749620ea2c738be88f6c0fd59c7217bca6818d5f
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M libcxx/utils/ci/run-buildbot

  Log Message:
  -----------
  [lib++][CI] Changes bootstrap build type. (#88175)

The RelWithDebInfo generates a few GB of debug info that is not used.
Instead use the normal Release build for testing.


  Commit: 3d985a6f1bfcdb6e6d550003f9a1276fe47f588d
      https://github.com/llvm/llvm-project/commit/3d985a6f1bfcdb6e6d550003f9a1276fe47f588d
  Author: Shih-Po Hung <shihpo.hung at sifive.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/RISCV/rvv-select.ll

  Log Message:
  -----------
  [RISCV][TTI] Scale the cost of Select with LMUL (#88098)

Use the Val type to estimate the instruction cost for SelectInst.


  Commit: 313a33b9dff44dc2b0048484e54f9328d9a0d9db
      https://github.com/llvm/llvm-project/commit/313a33b9dff44dc2b0048484e54f9328d9a0d9db
  Author: XChy <xxs_chy at outlook.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/test/Transforms/InstCombine/and-or-icmps.ll
    M llvm/test/Transforms/InstCombine/logical-select.ll

  Log Message:
  -----------
  [InstCombine] Reduce nested logical operator if poison is implied (#86823)

Fixes #76623
Alive2 proof: https://alive2.llvm.org/ce/z/gX6znJ (I'm not sure how to
write a proof for such transform, maybe there are mistakes)

In most cases, `icmp(a, C1) && (other_cond && icmp(a, C2))` will be
reduced to `icmp(a, C1) & (other_cond && icmp(a, C2))`, since latter
icmp always implies the poison of the former. After reduction, it's
easier to simplify the icmp chain.
Similarly, this patch does the same thing for `(A && B) && C --> A && (B
& C)`. Maybe we could constraint such reduction only on icmps if there
is regression in benchmarks.


  Commit: 469caa31e77f1da37434783f9b4f1d87fe8dff71
      https://github.com/llvm/llvm-project/commit/469caa31e77f1da37434783f9b4f1d87fe8dff71
  Author: Chia <sun1011jacobi at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/ctlz-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/cttz-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vwadd-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vwsll-sdnode.ll

  Log Message:
  -----------
  [RISCV] Use vwadd.vx for splat vector with extension (#87249)

This patch allows `combineBinOp_VLToVWBinOp_VL` to handle patterns like
`(splat_vector (sext op))` or `(splat_vector (zext op))`. Then we can
use `vwadd.vx` and `vwadd.w` for such a case.

### Source code
```
define <vscale x 8 x i64> @vwadd_vx_splat_sext(<vscale x 8 x i32> %va, i32 %b) {
     %sb = sext i32 %b to i64
     %head = insertelement <vscale x 8 x i64> poison, i64 %sb, i32 0
     %splat = shufflevector <vscale x 8 x i64> %head, <vscale x 8 x i64> poison, <vscale x 8 x i32> zeroinitializer
     %vc = sext <vscale x 8 x i32> %va to <vscale x 8 x i64>
     %ve = add <vscale x 8 x i64> %vc, %splat
     ret <vscale x 8 x i64> %ve
}
```

### Before this patch
[Compiler Explorer](https://godbolt.org/z/sq191PsT4)
```
vwadd_vx_splat_sext:
  sext.w a0, a0
  vsetvli a1, zero, e64, m8, ta, ma
  vmv.v.x v16, a0
  vsetvli zero, zero, e32, m4, ta, ma
  vwadd.wv v16, v16, v8
  vmv8r.v v8, v16
  ret
```
### After this patch
```
vwadd_vx_splat_sext
  vsetvli a1, zero, e32, m4, ta, ma
  vwadd.vx v16, v8, a0
  vmv8r.v v8, v16
  ret
```


  Commit: 299b636a8f1c9cb2382f9dce4cdf6ec6330a79c6
      https://github.com/llvm/llvm-project/commit/299b636a8f1c9cb2382f9dce4cdf6ec6330a79c6
  Author: Phoebe Wang <phoebe.wang at intel.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/MSVC.h
    M clang/test/Driver/gcodeview-command-line.c
    R clang/test/Misc/win32-elf.c

  Log Message:
  -----------
  Revert "Reland "[Win32][ELF] Make CodeView a DebugInfoFormat only for COFF format" (#87987)"

This reverts commit 4a93872a4f57d2f205826052150fadc36490445f.

Sorry, there're still buildbot failures.


  Commit: 4e85e1ffcaf161736e27a24c291c1177be865976
      https://github.com/llvm/llvm-project/commit/4e85e1ffcaf161736e27a24c291c1177be865976
  Author: Dinar Temirbulatov <Dinar.Temirbulatov at arm.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/test/Sema/aarch64-incompat-sm-builtin-calls.c
    M clang/test/Sema/aarch64-sme-func-attrs.c

  Log Message:
  -----------
  [Clang][AArch64] Warn when calling non/streaming about vector size difference (#79842)

The compiler doesn't know in advance if the streaming and non-streaming
vector-lengths are different, so it should be safe to give a warning
diagnostic to warn the user about possible undefined behaviour. If the
user knows the vector lengths are equal, they can disable the warning
separately.


  Commit: e50c4c83b6d3f595b0eec9c9600fb3de1147fef7
      https://github.com/llvm/llvm-project/commit/e50c4c83b6d3f595b0eec9c9600fb3de1147fef7
  Author: Paschalis Mpeis <paschalis.mpeis at arm.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/VecFuncs.def
    M llvm/test/Transforms/LoopVectorize/AArch64/veclib-function-calls.ll
    M llvm/test/Transforms/Util/add-TLI-mappings.ll

  Log Message:
  -----------
  [AArch64][TLI] Add TLI mappings for ArmPL modf, sincos, sincospi (#83143)

ArmPL 24.04 release fixes a bug concerning these methods,
so now they can be re-introduced to TLI mappings.


  Commit: b7a93bc1f230fe01f38f3648437cee74f339c5ac
      https://github.com/llvm/llvm-project/commit/b7a93bc1f230fe01f38f3648437cee74f339c5ac
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/Context.cpp
    M clang/lib/AST/Interp/EvalEmitter.cpp
    M clang/lib/AST/Interp/Pointer.cpp
    M clang/lib/AST/Interp/Program.cpp
    A clang/test/AST/Interp/vectors.cpp

  Log Message:
  -----------
  [clang][Interp] Start implementing vector types

Map them to primtive arrays, much like complex types.


  Commit: 0d17e1f0e5d706ac288ac8a62db92b8df64faf4e
      https://github.com/llvm/llvm-project/commit/0d17e1f0e5d706ac288ac8a62db92b8df64faf4e
  Author: hev <wangrui at loongson.cn>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArchFrameLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchFrameLowering.h
    M llvm/test/CodeGen/LoongArch/emergency-spill-slot.ll

  Log Message:
  -----------
  [LoongArch] Revert `sp` adjustment in prologue (#88110)

After commit 18c5f3c3 ("[RegisterScavenger][RISCV] Don't search for
FrameSetup instrs if we were searching from Non-FrameSetup instrs"), we
can revert the `sp` adjustment 4e2364a2 ("[LoongArch] Add emergency
spill slot for GPR for large frames") to generate better code, as the
issue with `RegScavenger` has been resolved.

Fixes #88109


  Commit: cac4c14ecfcb892201ae8f4b1559909cc22082d0
      https://github.com/llvm/llvm-project/commit/cac4c14ecfcb892201ae8f4b1559909cc22082d0
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp

  Log Message:
  -----------
  [LAA] Replace std::tuple with struct (NFCI).

As suggested in https://github.com/llvm/llvm-project/pull/88039, replace
the tuple with a struct, to make it easier to extend.


  Commit: 0e7d14d2e8ccad8ee1ec60c5c9f434553ec5c6ec
      https://github.com/llvm/llvm-project/commit/0e7d14d2e8ccad8ee1ec60c5c9f434553ec5c6ec
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/mmx-intrinsics.ll

  Log Message:
  -----------
  [X86] Regenerate mmx-intrinsics.ll test checks


  Commit: 990c4bc95f69afb63849898b6b25b13d49d6cdd4
      https://github.com/llvm/llvm-project/commit/990c4bc95f69afb63849898b6b25b13d49d6cdd4
  Author: Dinar Temirbulatov <Dinar.Temirbulatov at arm.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    A llvm/test/CodeGen/AArch64/sve2-bsl.ll

  Log Message:
  -----------
  [AArch64][SVE2] Generate SVE2 BSL instruction in LLVM for bit-twiddling. (#83514)

Allow to fold or/and-and to BSL instuction for scalable vectors.


  Commit: ec40097db28374c1226f0f7e45f18491a596778b
      https://github.com/llvm/llvm-project/commit/ec40097db28374c1226f0f7e45f18491a596778b
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/lib/AST/Interp/InterpBuiltin.cpp
    M clang/test/AST/Interp/builtin-functions.cpp

  Log Message:
  -----------
  [clang][Interp] Implement __builtin_{ctz,clz}g


  Commit: 1709eac58fee8f559cd70cfce9e7f09192dcb1bc
      https://github.com/llvm/llvm-project/commit/1709eac58fee8f559cd70cfce9e7f09192dcb1bc
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/ByteCodeStmtGen.cpp
    M clang/lib/AST/Interp/Descriptor.h
    M clang/lib/AST/Interp/FunctionPointer.h
    M clang/lib/AST/Interp/Interp.cpp
    M clang/lib/AST/Interp/Interp.h
    M clang/lib/AST/Interp/InterpBlock.cpp
    M clang/lib/AST/Interp/Opcodes.td
    M clang/lib/AST/Interp/Pointer.cpp
    M clang/lib/AST/Interp/Pointer.h
    M clang/lib/AST/Interp/PrimType.h
    M clang/test/AST/Interp/c.c
    A clang/test/AST/Interp/const-eval.c
    M clang/test/AST/Interp/functions.cpp

  Log Message:
  -----------
  [clang][Interp] Integral pointers (#84159)

This turns the current `Pointer` class into a discriminated union of
`BlockPointer` and `IntPointer`. The former is what `Pointer` currently
is while the latter is just an integer value and an optional
`Descriptor*`.

The `Pointer` then has type check functions like
`isBlockPointer()`/`isIntegralPointer()`/`asBlockPointer()`/`asIntPointer()`,
which can be used to access its data.

Right now, the `IntPointer` and `BlockPointer` structs do not have any
methods of their own and everything is instead implemented in Pointer
(like it was before) and the functions now just either assert for the
right type or decide what to do based on it.

This also implements bitcasts by decaying the pointer to an integral
pointer.

`test/AST/Interp/const-eval.c` is a new test testing all kinds of stuff
related to this. It still has a few tests `#ifdef`-ed out but that
mostly depends on other unimplemented things like
`__builtin_constant_p`.


  Commit: 89ba7e183e6e2c64370ed1b963e54c06352211db
      https://github.com/llvm/llvm-project/commit/89ba7e183e6e2c64370ed1b963e54c06352211db
  Author: Utkarsh Saxena <usx at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGCleanup.cpp
    M clang/lib/CodeGen/CGCleanup.h
    M clang/lib/CodeGen/CGDecl.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGExprAgg.cpp
    M clang/lib/CodeGen/CGExprCXX.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    A clang/test/CodeGenCXX/control-flow-in-stmt-expr.cpp
    A clang/test/CodeGenCoroutines/coro-suspend-cleanups.cpp

  Log Message:
  -----------
  [codegen] Emit missing cleanups for stmt-expr and coro suspensions [take-2] (#85398)

Fixes https://github.com/llvm/llvm-project/issues/63818 for control flow
out of an expressions.

#### Background

A control flow could happen in the middle of an expression due to
stmt-expr and coroutine suspensions.

Due to branch-in-expr, we missed running cleanups for the temporaries
constructed in the expression before the branch.
Previously, these cleanups were only added as `EHCleanup` during the
expression and as normal expression after the full expression.

Examples of such deferred cleanups include:

`ParenList/InitList`: Cleanups for fields are performed by the
destructor of the object being constructed.
`Array init`: Cleanup for elements of an array is included in the array
cleanup.
`Lifetime-extended temporaries`: reference-binding temporaries in
braced-init are lifetime extended to the parent scope.
`Lambda capture init`: init in the lambda capture list is destroyed by
the lambda object.

---

#### In this PR

In this PR, we change some of the `EHCleanups` cleanups to
`NormalAndEHCleanups` to make sure these are emitted when we see a
branch inside an expression (through statement expressions or coroutine
suspensions).

These are supposed to be deactivated after full expression and destroyed
later as part of the destructor of the aggregate or array being
constructed. To simplify deactivating cleanups, we add two utilities as
well:
* `DeferredDeactivationCleanupStack`: A stack to remember cleanups with
deferred deactivation.
* `CleanupDeactivationScope`: RAII for deactivating cleanups added to
the above stack.

---

#### Deactivating normal cleanups
These were previously `EHCleanups` and not `Normal` and **deactivation**
of **required** `Normal` cleanups had some bugs. These specifically
include deactivating `Normal` cleanups which are not the top of
`EHStack`
[source1](https://github.com/llvm/llvm-project/blob/92b56011e6b61e7dc1628c0431ece432f282b3cb/clang/lib/CodeGen/CGCleanup.cpp#L1319),
[2](https://github.com/llvm/llvm-project/blob/92b56011e6b61e7dc1628c0431ece432f282b3cb/clang/lib/CodeGen/CGCleanup.cpp#L722-L746).
This has not been part of our test suite (maybe it was never required
before statement expressions). In this PR, we also fix the emission of
required-deactivated-normal cleanups.


  Commit: a0651db490328a972185e44ff637970b3456406b
      https://github.com/llvm/llvm-project/commit/a0651db490328a972185e44ff637970b3456406b
  Author: Younan Zhang <zyn7109 at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaTemplateVariadic.cpp
    M clang/test/SemaTemplate/alias-templates.cpp

  Log Message:
  -----------
  [clang][Sema] Avoid guessing unexpanded packs' size in getFullyPackExpandedSize (#87768)

There has been an optimization for `SizeOfPackExprs` since c5452ed9, in
which
we overlooked a case where the template arguments were not yet
formed into a `PackExpansionType` at the token annotation stage. This
led to a problem in that a template involving such expressions may
lose its nature of being dependent, causing some false-positive
diagnostics.

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


  Commit: 8d206f51497fdf1ceebd6430b2f7d31ef735d0dc
      https://github.com/llvm/llvm-project/commit/8d206f51497fdf1ceebd6430b2f7d31ef735d0dc
  Author: Edwin Vane <revane at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp

  Log Message:
  -----------
  [clang-tidy] Allow renaming macro arguments (#87792)

Although the identifier-naming.cpp lit test expected macro arguments not
to be renamed, the code seemed to already allow it. The code was simply
not being exercised because a SourceManager argument wasn't being
provided. With this change, renaming of macro arguments that expand to
renamable decls is permitted.


  Commit: f2ade91a9fe7c222ea919748d30b74397911ecc8
      https://github.com/llvm/llvm-project/commit/f2ade91a9fe7c222ea919748d30b74397911ecc8
  Author: Jeff Niu <jeff at modular.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M mlir/include/mlir/IR/OpDefinition.h
    M mlir/include/mlir/IR/Operation.h

  Log Message:
  -----------
  [mlir] Optimize getting properties on concrete ops (#88259)

This makes retrieving properties on concrete operations faster by
removing a branch when it is known that the operation must have
properties.


  Commit: 94ed57dab64ccb248a342a91957f390209c5c7ce
      https://github.com/llvm/llvm-project/commit/94ed57dab64ccb248a342a91957f390209c5c7ce
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/PhaseOrdering/AArch64/hoist-runtime-checks.ll

  Log Message:
  -----------
  [PhaseOrdering] Add test for #85551.

Add test for missed hoisting of checks from std::span
https://github.com/llvm/llvm-project/issues/85551


  Commit: a2bdbc6f0da2a9d0cecb23c64bd20423b3fd0340
      https://github.com/llvm/llvm-project/commit/a2bdbc6f0da2a9d0cecb23c64bd20423b3fd0340
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M lld/COFF/ICF.cpp
    A lld/test/COFF/arm64x-icf.s

  Log Message:
  -----------
  [LLD][COFF] Check machine types in ICF::equalsConstant. (#88140)

Avoid replacing replacing a chunk with one from a different type. It's
mostly a concern for ARM64X, where we don't want to merge aarch64 and
arm64ec chunks, but it may also in theory happen between arm64ec and
 x86_64 chunks.


  Commit: b47e439559ad03a1b32614f573aad66f145a634d
      https://github.com/llvm/llvm-project/commit/b47e439559ad03a1b32614f573aad66f145a634d
  Author: Krystian Stasiowski <sdkrystian at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaExprMember.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/test/SemaTemplate/ms-function-specialization-class-scope.cpp

  Log Message:
  -----------
  Revert "[Clang][Sema] Fix crash when 'this' is used in a dependent class scope function template specialization that instantiates to a static member function" (#88264)

Reverts llvm/llvm-project#87541


  Commit: 1ca01958310f2956abd72ece1652c3218bcf27e1
      https://github.com/llvm/llvm-project/commit/1ca01958310f2956abd72ece1652c3218bcf27e1
  Author: Krystian Stasiowski <sdkrystian at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/lib/AST/TypePrinter.cpp

  Log Message:
  -----------
  [Clang][AST][NFC] Fix printing of dependent PackIndexTypes (#88146)

Dependent `PackIndexType`s currently print the memory address of the
index `Expr*` rather than pretty printing the expression. This patch
fixes that.


  Commit: 49ef12a08c4c7d7ae4765929e72fe2320a12b08c
      https://github.com/llvm/llvm-project/commit/49ef12a08c4c7d7ae4765929e72fe2320a12b08c
  Author: Johannes Reifferscheid <jreiffers at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
    M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir

  Log Message:
  -----------
  Fix complex log1p accuracy with large abs values. (#88260)

This ports https://github.com/openxla/xla/pull/10503 by @pearu. The new
implementation matches mpmath's results for most inputs, see caveats in
the linked pull request. In addition to the filecheck test here, the
accuracy was tested with XLA's complex_unary_op_test and its MLIR
emitters.


  Commit: 54a9f0007cb4f19d2e9df30405c5027229f5def0
      https://github.com/llvm/llvm-project/commit/54a9f0007cb4f19d2e9df30405c5027229f5def0
  Author: annamthomas <anna at azul.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ScalarEvolution.cpp
    A llvm/test/Analysis/ScalarEvolution/pr87798.ll

  Log Message:
  -----------
  [SCEV] Fix BinomialCoefficient Iteration to fit in W bits (#88010)

BinomialCoefficient computes the value of W-bit IV at iteration It of a loop. When W is 1, we can call multiplicative inverse on 0 which triggers an assert since 1b76120.
    
Since the arithmetic is supposed to wrap if It or K does not fit in W bits, do the truncation into W bits after we do the shift.
    
 Fixes #87798


  Commit: 938a73422e0b964eba16f272acdfae1d0281772c
      https://github.com/llvm/llvm-project/commit/938a73422e0b964eba16f272acdfae1d0281772c
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  Log Message:
  -----------
  [SLP][NFC]Walk over entries, not single values.

Better to walk over SLP nodes rather than single values. Matching
a value to a node is not a 1-to-1 relation, one value may be part of
several nodes and compiler may get wrong node, when trying to map it.
Currently there are no such issues detected, but they may appear in
future.


  Commit: 50d368aee981738cd05f3d16f5d1cfc122c9b0ab
      https://github.com/llvm/llvm-project/commit/50d368aee981738cd05f3d16f5d1cfc122c9b0ab
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/test/Driver/linker-wrapper-libs.c
    M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp

  Log Message:
  -----------
  [LinkerWrapper] Relax ordering of static libraries for offloading (#87532)

Summary:
The linker wrapper attempts to maintain consistent semantics with
existing host invocations. Static libraries by default only extract if
there are non-weak symbols that remain undefined. However, we have
situations between linkers that put different meanings on ordering. The
ld.bfd linker requires static libraries to be defined after the symbols,
while `ld.lld` relaxes this rule. The linker wrapper went with the
former as it's the easier solution, however this has caused a lot of
issues as I've had to explain this rule to several people, it also make
it difficult to include things like `libc` in the OpenMP runtime because
it would sometimes be linked before or after.

This patch reworks the logic to more or less perform the following logic
for static libraries.

  1. Split library / object inputs.
  2. Include every object input and record its undefined symbols
  3. Repeatedly try to extract static libraries to resolve these
     symbols. If a file is extracted we need to check every library
     again to resolve any new undefined symbols.

This allows the following to work and will cause fewer issues when
replacing HIP, which does `--whole-archive` so it's very likely the old
logic will regress.
```console
$ clang -lfoo main.c -fopenmp --offload-arch=native
```


  Commit: 6b35cbee3f577d9ee55f7277affa0fe194859b25
      https://github.com/llvm/llvm-project/commit/6b35cbee3f577d9ee55f7277affa0fe194859b25
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    A clang/include/clang/Sema/SemaSYCL.h
    M clang/lib/Parse/ParseExpr.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaSYCL.cpp
    M clang/lib/Sema/TreeTransform.h

  Log Message:
  -----------
  [clang] Introduce `SemaSYCL` (#88086)

This patch moves SYCL-related `Sema` functions into new `SemaSYCL`
class, following the recent example of OpenACC and HLSL. This is a part
of the effort to split `Sema`. Additional context can be found in
#82217, #84184, #87634.


  Commit: 0c7b92a42a36563dfd28e3a828e87f4f3a6e4311
      https://github.com/llvm/llvm-project/commit/0c7b92a42a36563dfd28e3a828e87f4f3a6e4311
  Author: Erich Keane <ekeane at nvidia.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/include/clang/AST/OpenACCClause.h
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/OpenACCKinds.h
    M clang/include/clang/Sema/SemaOpenACC.h
    M clang/lib/AST/OpenACCClause.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/lib/Parse/ParseOpenACC.cpp
    M clang/lib/Sema/SemaOpenACC.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/test/ParserOpenACC/parse-clauses.c
    M clang/test/SemaOpenACC/compute-construct-ast.cpp
    A clang/test/SemaOpenACC/compute-construct-clause-ast.cpp
    A clang/test/SemaOpenACC/compute-construct-default-clause.c
    A clang/test/SemaOpenACC/compute-construct-default-clause.cpp

  Log Message:
  -----------
  [OpenACC] Implement Default clause for Compute Constructs (#88135)

As a followup to my previous commits, this is an implementation of a
single clause, in this case the 'default' clause. This implements all
semantic analysis for it on compute clauses, and continues to leave it
rejected for all others (some as 'doesnt appertain', others as 'not
implemented' as appropriate).

This also implements and tests the TreeTransform as requested in the
previous patch.


  Commit: 2823d5ed097db2ee95b7165d5a8b4a6d3ca1513b
      https://github.com/llvm/llvm-project/commit/2823d5ed097db2ee95b7165d5a8b4a6d3ca1513b
  Author: Michael Liao <michael.hliao at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/OpenACCClause.h
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/OpenACCKinds.h
    M clang/include/clang/Frontend/FrontendActions.h
    M clang/include/clang/InstallAPI/DylibVerifier.h
    M clang/include/clang/InstallAPI/Frontend.h
    M clang/include/clang/InstallAPI/FrontendRecords.h
    M clang/include/clang/Lex/Preprocessor.h
    M clang/include/clang/Lex/PreprocessorOptions.h
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Sema/SemaOpenACC.h
    A clang/include/clang/Sema/SemaSYCL.h
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/ByteCodeStmtGen.cpp
    M clang/lib/AST/Interp/Context.cpp
    M clang/lib/AST/Interp/Descriptor.h
    M clang/lib/AST/Interp/EvalEmitter.cpp
    M clang/lib/AST/Interp/FunctionPointer.h
    M clang/lib/AST/Interp/Interp.cpp
    M clang/lib/AST/Interp/Interp.h
    M clang/lib/AST/Interp/InterpBlock.cpp
    M clang/lib/AST/Interp/InterpBuiltin.cpp
    M clang/lib/AST/Interp/Opcodes.td
    M clang/lib/AST/Interp/Pointer.cpp
    M clang/lib/AST/Interp/Pointer.h
    M clang/lib/AST/Interp/PrimType.h
    M clang/lib/AST/Interp/Program.cpp
    M clang/lib/AST/OpenACCClause.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/lib/AST/TypePrinter.cpp
    M clang/lib/Basic/Targets/AArch64.cpp
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CGCleanup.cpp
    M clang/lib/CodeGen/CGCleanup.h
    M clang/lib/CodeGen/CGDecl.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGExprAgg.cpp
    M clang/lib/CodeGen/CGExprCXX.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/CodeGen/Targets/X86.cpp
    M clang/lib/Format/TokenAnnotator.cpp
    M clang/lib/Format/UnwrappedLineParser.cpp
    M clang/lib/Frontend/FrontendActions.cpp
    M clang/lib/Headers/intrin.h
    M clang/lib/InstallAPI/DylibVerifier.cpp
    M clang/lib/InstallAPI/Frontend.cpp
    M clang/lib/Lex/PPLexerChange.cpp
    M clang/lib/Parse/ParseExpr.cpp
    M clang/lib/Parse/ParseOpenACC.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaExprMember.cpp
    M clang/lib/Sema/SemaOpenACC.cpp
    M clang/lib/Sema/SemaSYCL.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/SemaTemplateVariadic.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
    M clang/test/APINotes/instancetype.m
    M clang/test/AST/Interp/builtin-functions.cpp
    M clang/test/AST/Interp/c.c
    A clang/test/AST/Interp/const-eval.c
    M clang/test/AST/Interp/functions.cpp
    A clang/test/AST/Interp/vectors.cpp
    A clang/test/C/C11/n1514.c
    R clang/test/ClangScanDeps/modules-extension.c
    A clang/test/ClangScanDeps/modules-minimize-extension.c
    A clang/test/ClangScanDeps/modules-minimize-module.c
    M clang/test/CodeGen/X86/x86_64-arguments.c
    M clang/test/CodeGen/ubsan-bitfield-conversion.c
    M clang/test/CodeGenCUDA/offloading-entries.cu
    A clang/test/CodeGenCXX/arm64ec-vectorcall.cpp
    A clang/test/CodeGenCXX/control-flow-in-stmt-expr.cpp
    M clang/test/CodeGenCXX/ubsan-bitfield-conversion.cpp
    A clang/test/CodeGenCoroutines/coro-suspend-cleanups.cpp
    M clang/test/Driver/linker-wrapper-libs.c
    M clang/test/OpenMP/declare_target_link_codegen.cpp
    M clang/test/OpenMP/declare_target_visibility_codegen.cpp
    M clang/test/OpenMP/target_codegen_registration.cpp
    M clang/test/OpenMP/target_indirect_codegen.cpp
    M clang/test/ParserOpenACC/parse-clauses.c
    M clang/test/Sema/aarch64-incompat-sm-builtin-calls.c
    M clang/test/Sema/aarch64-sme-func-attrs.c
    M clang/test/SemaCXX/type-traits.cpp
    M clang/test/SemaOpenACC/compute-construct-ast.cpp
    A clang/test/SemaOpenACC/compute-construct-clause-ast.cpp
    A clang/test/SemaOpenACC/compute-construct-default-clause.c
    A clang/test/SemaOpenACC/compute-construct-default-clause.cpp
    M clang/test/SemaTemplate/alias-templates.cpp
    M clang/test/SemaTemplate/ms-function-specialization-class-scope.cpp
    M clang/tools/clang-installapi/ClangInstallAPI.cpp
    M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
    M clang/tools/scan-build/libexec/ccc-analyzer
    M clang/unittests/Format/FormatTest.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp
    M clang/unittests/Lex/PPDependencyDirectivesTest.cpp
    M clang/www/c_status.html
    M compiler-rt/lib/asan/asan_thread.cpp
    M compiler-rt/lib/memprof/tests/CMakeLists.txt
    M compiler-rt/lib/scudo/standalone/allocator_config.def
    M compiler-rt/lib/scudo/standalone/primary64.h
    M compiler-rt/lib/scudo/standalone/tests/primary_test.cpp
    M flang/docs/Extensions.md
    M flang/include/flang/Common/Fortran.h
    M flang/include/flang/Evaluate/integer.h
    M flang/include/flang/Evaluate/real.h
    M flang/include/flang/Optimizer/Support/Utils.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Decimal/decimal-to-binary.cpp
    M flang/lib/Evaluate/fold-implementation.h
    M flang/lib/Lower/Allocatable.cpp
    M flang/lib/Parser/Fortran-parsers.cpp
    M flang/lib/Semantics/check-declarations.cpp
    M flang/test/Lower/CUDA/cuda-data-attribute.cuf
    M flang/test/Semantics/cuf03.cuf
    M libc/hdr/CMakeLists.txt
    A libc/hdr/fenv_macros.h
    M libc/src/__support/FPUtil/CMakeLists.txt
    M libc/src/__support/FPUtil/aarch64/FEnvImpl.h
    M libc/src/__support/FPUtil/aarch64/fenv_darwin_impl.h
    M libc/src/__support/FPUtil/arm/FEnvImpl.h
    M libc/src/__support/FPUtil/generic/CMakeLists.txt
    M libc/src/__support/FPUtil/riscv/FEnvImpl.h
    M libc/src/__support/FPUtil/rounding_mode.h
    M libc/src/fenv/CMakeLists.txt
    M libc/src/fenv/feholdexcept.cpp
    M libc/src/fenv/fesetexceptflag.cpp
    M libc/test/UnitTest/RoundingModeUtils.cpp
    M libc/test/src/__support/FPUtil/rounding_mode_test.cpp
    M libc/test/src/fenv/CMakeLists.txt
    M libc/test/src/fenv/enabled_exceptions_test.cpp
    M libc/test/src/fenv/exception_status_test.cpp
    M libc/test/src/fenv/feclearexcept_test.cpp
    M libc/test/src/fenv/feenableexcept_test.cpp
    M libc/test/src/fenv/rounding_mode_test.cpp
    M libc/test/src/math/RIntTest.h
    M libc/test/src/math/smoke/NextTowardTest.h
    M libc/test/src/math/smoke/RIntTest.h
    M libc/utils/MPFRWrapper/MPFRUtils.cpp
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/include/CMakeLists.txt
    A libcxx/include/__chrono/sys_info.h
    M libcxx/include/__chrono/time_zone.h
    M libcxx/include/__format/escaped_output_table.h
    A libcxx/include/__format/indic_conjunct_break_table.h
    M libcxx/include/__format/unicode.h
    M libcxx/include/__format/width_estimation_table.h
    M libcxx/include/chrono
    M libcxx/include/libcxx.imp
    M libcxx/include/module.modulemap
    M libcxx/modules/std/chrono.inc
    M libcxx/src/include/tzdb/time_zone_private.h
    M libcxx/src/include/tzdb/types_private.h
    M libcxx/src/random.cpp
    M libcxx/src/time_zone.cpp
    M libcxx/src/tzdb.cpp
    M libcxx/test/libcxx/diagnostics/chrono.nodiscard_extensions.compile.pass.cpp
    M libcxx/test/libcxx/diagnostics/chrono.nodiscard_extensions.verify.cpp
    A libcxx/test/libcxx/fuzzing/format_no_args.pass.cpp
    A libcxx/test/libcxx/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp
    A libcxx/test/libcxx/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.rule_selection.pass.cpp
    M libcxx/test/libcxx/transitive_includes/cxx23.csv
    M libcxx/test/libcxx/transitive_includes/cxx26.csv
    M libcxx/test/libcxx/utilities/format/format.string/format.string.std/extended_grapheme_cluster.h
    M libcxx/test/libcxx/utilities/format/format.string/format.string.std/extended_grapheme_cluster.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.info/time.zone.info.sys/sys_info.members.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/sys_info.zdump.pass.cpp
    M libcxx/utils/CMakeLists.txt
    M libcxx/utils/ci/Dockerfile
    M libcxx/utils/ci/run-buildbot
    M libcxx/utils/data/unicode/DerivedCoreProperties.txt
    M libcxx/utils/data/unicode/DerivedGeneralCategory.txt
    M libcxx/utils/data/unicode/EastAsianWidth.txt
    M libcxx/utils/data/unicode/GraphemeBreakProperty.txt
    M libcxx/utils/data/unicode/GraphemeBreakTest.txt
    M libcxx/utils/data/unicode/emoji-data.txt
    M libcxx/utils/generate_extended_grapheme_cluster_table.py
    A libcxx/utils/generate_indic_conjunct_break_table.py
    M libcxx/utils/libcxx/test/features.py
    M lld/COFF/ICF.cpp
    M lld/ELF/DWARF.h
    M lld/ELF/SyntheticSections.cpp
    M lld/ELF/SyntheticSections.h
    M lld/ELF/Writer.cpp
    A lld/test/COFF/arm64x-icf.s
    M lldb/cmake/caches/Apple-lldb-Linux.cmake
    M llvm/docs/Benchmarking.rst
    M llvm/docs/LangRef.rst
    R llvm/include/llvm/Analysis/Interval.h
    R llvm/include/llvm/Analysis/IntervalIterator.h
    R llvm/include/llvm/Analysis/IntervalPartition.h
    M llvm/include/llvm/Analysis/VecFuncs.def
    M llvm/include/llvm/BinaryFormat/Dwarf.h
    M llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
    M llvm/include/llvm/ExecutionEngine/Orc/Core.h
    M llvm/include/llvm/IR/IRBuilder.h
    M llvm/include/llvm/IR/InstrTypes.h
    M llvm/include/llvm/InitializePasses.h
    M llvm/include/llvm/LinkAllPasses.h
    M llvm/include/llvm/Support/raw_socket_stream.h
    M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
    M llvm/lib/Analysis/Analysis.cpp
    M llvm/lib/Analysis/CMakeLists.txt
    R llvm/lib/Analysis/Interval.cpp
    R llvm/lib/Analysis/IntervalPartition.cpp
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp
    M llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
    M llvm/lib/ExecutionEngine/Orc/Core.cpp
    M llvm/lib/Frontend/Offloading/Utility.cpp
    M llvm/lib/IR/Instruction.cpp
    M llvm/lib/IR/Operator.cpp
    M llvm/lib/Support/raw_socket_stream.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp
    M llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.h
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/lib/Target/AArch64/Utils/AArch64SMEAttributes.cpp
    M llvm/lib/Target/LoongArch/LoongArchFrameLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchFrameLowering.h
    M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
    M llvm/lib/Transforms/IPO/SampleProfile.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
    M llvm/lib/Transforms/Utils/CodeMoverUtils.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    M llvm/test/Analysis/CostModel/AArch64/shuffle-other.ll
    M llvm/test/Analysis/CostModel/RISCV/active_lane_mask.ll
    M llvm/test/Analysis/CostModel/RISCV/rvv-select.ll
    A llvm/test/Analysis/ScalarEvolution/pr87798.ll
    M llvm/test/Assembler/flags.ll
    M llvm/test/Bitcode/flags.ll
    A llvm/test/CodeGen/AArch64/streaming-compatible-memory-ops.ll
    A llvm/test/CodeGen/AArch64/sve2-bsl.ll
    M llvm/test/CodeGen/LoongArch/emergency-spill-slot.ll
    M llvm/test/CodeGen/RISCV/rvv/ctlz-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/cttz-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vwadd-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vwsll-sdnode.ll
    M llvm/test/CodeGen/X86/mmx-intrinsics.ll
    M llvm/test/CodeGen/X86/uint_to_fp.ll
    A llvm/test/Instrumentation/MemorySanitizer/overflow.ll
    A llvm/test/Instrumentation/MemorySanitizer/saturating.ll
    M llvm/test/Transforms/InstCombine/and-or-icmps.ll
    M llvm/test/Transforms/InstCombine/freeze.ll
    M llvm/test/Transforms/InstCombine/icmp-add.ll
    M llvm/test/Transforms/InstCombine/icmp-or.ll
    M llvm/test/Transforms/InstCombine/logical-select.ll
    M llvm/test/Transforms/InstCombine/shl-demand.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/veclib-function-calls.ll
    M llvm/test/Transforms/LoopVectorize/PowerPC/vplan-force-tail-with-evl.ll
    A llvm/test/Transforms/MemProfContextDisambiguation/overlapping-contexts.ll
    M llvm/test/Transforms/PhaseOrdering/AArch64/hoist-runtime-checks.ll
    A llvm/test/Transforms/SLPVectorizer/X86/zext-incoming-for-neg-icmp.ll
    M llvm/test/Transforms/SimplifyCFG/HoistCode.ll
    M llvm/test/Transforms/Util/add-TLI-mappings.ll
    M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
    M llvm/unittests/Support/raw_socket_stream_test.cpp
    M llvm/unittests/Transforms/Utils/CodeMoverUtilsTest.cpp
    M llvm/utils/gn/secondary/clang/include/clang/Basic/BUILD.gn
    M llvm/utils/gn/secondary/clang/lib/Basic/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/Analysis/BUILD.gn
    M mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
    M mlir/include/mlir/Dialect/Vector/Transforms/Passes.h
    M mlir/include/mlir/Dialect/Vector/Transforms/Passes.td
    M mlir/include/mlir/IR/OpDefinition.h
    M mlir/include/mlir/IR/Operation.h
    M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.h
    A mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorIterator.cpp
    A mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorIterator.h
    R mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorLevel.cpp
    R mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorLevel.h
    M mlir/lib/Dialect/Vector/Transforms/LowerVectorMultiReduction.cpp
    M mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
    M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
    M mlir/test/Dialect/Linalg/transform-ops-invalid.mlir
    M mlir/test/Dialect/Linalg/transform-ops.mlir
    M mlir/test/Dialect/Linalg/vectorization.mlir
    A mlir/test/Dialect/Vector/vector-multi-reduction-pass-lowering.mlir
    M mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-host.mlir
    M mlir/test/python/dialects/transform_structured_ext.py
    M polly/lib/Analysis/ScopDetectionDiagnostic.cpp
    M polly/lib/Support/GICHelper.cpp
    M polly/lib/Transform/MatmulOptimizer.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/UnitTest/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/FPUtil/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/fenv/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/math/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel

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

Created using spr 1.3.4


Compare: https://github.com/llvm/llvm-project/compare/f259373ab891...2823d5ed097d

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