[all-commits] [llvm/llvm-project] 60fc4a: [GlobalISel] Don't form anyextending atomic loads.

Alexey Bataev via All-commits all-commits at lists.llvm.org
Tue Apr 16 12:22:04 PDT 2024


  Branch: refs/heads/users/alexey-bataev/spr/slpimprove-reordering-for-consts-splats-and-ops-from-same-nodes-improved-analysis-1
  Home:   https://github.com/llvm/llvm-project
  Commit: 60fc4ac67a613e4e36cef019fb2d13d70a06cfe8
      https://github.com/llvm/llvm-project/commit/60fc4ac67a613e4e36cef019fb2d13d70a06cfe8
  Author: Amara Emerson <amara at apple.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-load-rcpc_immo.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-pcsections.ll
    A llvm/test/CodeGen/AArch64/GlobalISel/atomic-anyextending-load-crash.ll

  Log Message:
  -----------
  [GlobalISel] Don't form anyextending atomic loads.

Until we can reliably check the legality and improve our selection of these,
don't form them at all.


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

  Changed paths:
    M flang/include/flang/Evaluate/tools.h
    M flang/lib/Semantics/check-cuda.cpp
    M flang/lib/Semantics/check-cuda.h
    A flang/test/Semantics/cuf11.cuf

  Log Message:
  -----------
  [flang][cuda] Add restriction on implicit data transfer (#87720)

In section 3.4.2, some example of illegal data transfer using expression
are given. One of it is when multiple device objects are part of an
expression in the rhs. Current implementation allow a single device
object in such case. This patch adds a similar restriction.


  Commit: 8ee6ab7f69ca9c34eed56faad3971d075dc47121
      https://github.com/llvm/llvm-project/commit/8ee6ab7f69ca9c34eed56faad3971d075dc47121
  Author: aniplcc <aniplccode at gmail.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M libc/config/baremetal/arm/entrypoints.txt
    M libc/config/baremetal/riscv/entrypoints.txt
    M libc/config/darwin/arm/entrypoints.txt
    M libc/config/darwin/x86_64/entrypoints.txt
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/arm/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/windows/entrypoints.txt
    M libc/docs/c23.rst
    M libc/spec/stdc.td
    M libc/src/fenv/CMakeLists.txt
    A libc/src/fenv/fesetexcept.cpp
    A libc/src/fenv/fesetexcept.h
    M libc/test/src/fenv/CMakeLists.txt
    M libc/test/src/fenv/exception_status_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/fenv/BUILD.bazel

  Log Message:
  -----------
   [libc][c23][fenv] implement fesetexcept  (#87603)


Closes #87564


  Commit: 27b2d7d4bb790ec1e7430bf18b1bc2f6e0800d0d
      https://github.com/llvm/llvm-project/commit/27b2d7d4bb790ec1e7430bf18b1bc2f6e0800d0d
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Basic/DiagnosticInstallAPIKinds.td
    M clang/include/clang/InstallAPI/Context.h
    M clang/include/clang/InstallAPI/DylibVerifier.h
    M clang/include/clang/InstallAPI/MachO.h
    M clang/lib/InstallAPI/CMakeLists.txt
    A clang/lib/InstallAPI/DiagnosticBuilderWrappers.cpp
    A clang/lib/InstallAPI/DiagnosticBuilderWrappers.h
    M clang/lib/InstallAPI/DylibVerifier.cpp
    M clang/lib/InstallAPI/Frontend.cpp
    A clang/test/InstallAPI/binary-attributes.test
    M clang/test/InstallAPI/driver-invalid-options.test
    A clang/test/InstallAPI/reexported-frameworks.test
    A clang/test/InstallAPI/rpath.test
    M clang/tools/clang-installapi/CMakeLists.txt
    M clang/tools/clang-installapi/ClangInstallAPI.cpp
    M clang/tools/clang-installapi/InstallAPIOpts.td
    M clang/tools/clang-installapi/Options.cpp
    M clang/tools/clang-installapi/Options.h

  Log Message:
  -----------
  [InstallAPI] Capture & compare load commands that may differ per arch slice (#87674)

* Capture reexported libraries, allowable clients, rpaths, shared cache
eligibility.
* Add support for select Xarch options.
* Add diagnostics related to capturing these options.
* Add support for verifying these attributes against what is encoded in
the dylib.


  Commit: 0a39f1a7e5c7fd00b37231964ec81dae938948e7
      https://github.com/llvm/llvm-project/commit/0a39f1a7e5c7fd00b37231964ec81dae938948e7
  Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/report_linux.cpp
    M compiler-rt/lib/scudo/standalone/tests/report_test.cpp

  Log Message:
  -----------
  [scudo] Add errno description to mmap failure. (#87713)

Added unit tests for all of the linux report error functions.


  Commit: 2744a243bb132ef0bbb37c888cee661488609ea5
      https://github.com/llvm/llvm-project/commit/2744a243bb132ef0bbb37c888cee661488609ea5
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M libc/src/__support/CPP/bit.h

  Log Message:
  -----------
  [libc][support][bit] use new type generic builtins (#86746)

These are new in clang-19+, gcc-14+.


  Commit: 25cf27910c3a58e71e37c3d5391235730aa7c488
      https://github.com/llvm/llvm-project/commit/25cf27910c3a58e71e37c3d5391235730aa7c488
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M clang/cmake/caches/Apple-stage2.cmake
    M lldb/cmake/caches/Apple-lldb-base.cmake
    M llvm/CMakeLists.txt
    M llvm/cmake/modules/AddLLVM.cmake
    M llvm/docs/CMake.rst

  Log Message:
  -----------
  [cmake] Build executables with -no_exported_symbols when building Apple toolchain (#87684)

Building the Apple way turns off plugin support, meaning we don't need
to export unloadable symbols from all executables. While deadstripping
effects aren't expected to change, enabling this across all tools
prevents the creation of export tries. This saves us ~3.5 MB in just the
universal build of `clang`.


  Commit: b329da896c4959f6c56cf5e515d3412322f4b3c5
      https://github.com/llvm/llvm-project/commit/b329da896c4959f6c56cf5e515d3412322f4b3c5
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    A flang/cmake/modules/AddFlangOffloadRuntime.cmake
    M flang/lib/Decimal/CMakeLists.txt
    M flang/lib/Decimal/big-radix-floating-point.h
    M flang/lib/Decimal/binary-to-decimal.cpp
    M flang/lib/Decimal/decimal-to-binary.cpp
    M flang/runtime/CMakeLists.txt

  Log Message:
  -----------
  [flang][runtime] Support for offload build of FortranDecimal. (#87653)


  Commit: 65e5391657147d1bda3a4d9b26c9b3db0ca54fd7
      https://github.com/llvm/llvm-project/commit/65e5391657147d1bda3a4d9b26c9b3db0ca54fd7
  Author: Usama Hameed <u_hameed at apple.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M compiler-rt/test/fuzzer/lit.cfg.py

  Log Message:
  -----------
  Pass the linker version to libfuzzer tests on darwin (#87719)

The HOST_LINK_VERSION is a hardcoded string in Darwin clang that detects
the linker version at configure time. The driver uses this information
to build the correct set of arguments for the linker. This patch detects
the linker version again during compiler-rt configuration and passes it
to the libfuzzer tests. This allows a clang built on a machine with a
new linker to run compiler-rt tests on a machine with an old linker.

rdar://125932376


  Commit: 80deb8269f2252b65c8af09da100e5b4949d589d
      https://github.com/llvm/llvm-project/commit/80deb8269f2252b65c8af09da100e5b4949d589d
  Author: Robin Caloudis <robin.caloudis at gmx.de>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M libc/src/fenv/fegetexceptflag.cpp

  Log Message:
  -----------
  [libc][fenv] Add compile time check (#87826)

Take care of a TODO. This
check makes sure that the fexcept_t
value fits in an int value.

TODO introduced in:
https://github.com/llvm/llvm-project/commit/9550f8ba9a3a697f28a7920c8aeb5cba1e8003a6


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

  Changed paths:
    M llvm/cmake/modules/AddLLVM.cmake

  Log Message:
  -----------
  [cmake] Back out of making unsupported `-no_exported_symbols` linker a
fatal error for now

Appeases build bots while being investigated.


  Commit: af34a5d382bc7cd93c620efa00dce449de252a0a
      https://github.com/llvm/llvm-project/commit/af34a5d382bc7cd93c620efa00dce449de252a0a
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    A libc/docs/fenv.rst
    M libc/docs/index.rst
    A libc/utils/docgen/ctype.json
    A libc/utils/docgen/docgen.py
    A libc/utils/docgen/fenv.json

  Log Message:
  -----------
  [libc][docs] Introduce docgen (#87682)


This script+config should help us generate more consistent documentation wrt.
what we currently support or not.

As an example usage:

    $ ./libc/utils/docgen/docgen.py fenv.h

Will spit out an RST formatted table that can be copy+pasted into our docs.

The config is not filled out entirely, but doing so and then updating our docs
would be great beginner bugs for new contributors.

Having python+json generate things like docs, or headers (as imagined in
https://github.com/nickdesaulniers/llvm-project/tree/hdr-gen2) is perhaps
easier to work with than tablegen, and doesn't introduce a dependency on a host
tool that needs to be compiled from llvm sources before building the rest of
the libc. This can probably be merged with whatever we end up doing to replace
libc-hdrgen.

Please use

https://llvm.org/docs/CodingStandards.html#python-version-and-source-code-formatting
for keeping this file formatted.


  Commit: 920298456037b9ed3ab14cb646ef6d3bf95d2c2b
      https://github.com/llvm/llvm-project/commit/920298456037b9ed3ab14cb646ef6d3bf95d2c2b
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M flang/CMakeLists.txt

  Log Message:
  -----------
  [flang][build] Fixed paths discrovery for the out-of-tree build. (#87822)

When building flang out-of-tree with relative paths in LLVM_DIR,
CLANG_DIR and MLIR_DIR, we need to compute the absolute paths
based on the CMake build directory (i.e. where the cmake is invoked
from).


  Commit: 42a6ad7bad85a0e35ff5ae6b9b370617509e363a
      https://github.com/llvm/llvm-project/commit/42a6ad7bad85a0e35ff5ae6b9b370617509e363a
  Author: Diego Caballero <diegocaballero at google.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
    M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir

  Log Message:
  -----------
  [mlir][Vector] Fix n-D vector.extract/insert lowering to LLVM (#87591)

The lowering of n-D vector.extract/insert ops to LLVM is not supported
but if one of these accidentally reaches the vector-to-llvm conversion
patterns, we end up with a kind of puzzling crash. This PR fixes that
crash and gracefully bails out in those cases.


  Commit: 3b337242ee165554f0017b00671381ec5b1ba855
      https://github.com/llvm/llvm-project/commit/3b337242ee165554f0017b00671381ec5b1ba855
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    A flang/include/flang/Runtime/freestanding-tools.h
    M flang/runtime/buffer.h
    M flang/runtime/descriptor-io.cpp
    M flang/runtime/edit-input.cpp
    M flang/runtime/format.h
    R flang/runtime/freestanding-tools.h
    M flang/runtime/internal-unit.cpp
    M flang/runtime/memory.cpp
    M flang/runtime/tools.h

  Log Message:
  -----------
  [NFC][flang][runtime] Moved freestanding-tools.h to use it in FortranDecimal. (#87827)

I will add `toupper` implementation into it in the next PR.


  Commit: 5748ad84e5e8e5621f221199cc290666f00e2a30
      https://github.com/llvm/llvm-project/commit/5748ad84e5e8e5621f221199cc290666f00e2a30
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M libc/CMakeLists.txt
    M libc/fuzzing/math/CMakeLists.txt
    M libc/fuzzing/math/RemQuoDiff.h
    M libc/fuzzing/stdlib/CMakeLists.txt
    M libc/fuzzing/stdlib/strtofloat_fuzz.cpp
    A libc/hdr/CMakeLists.txt
    A libc/hdr/math_macros.h
    M libc/include/llvm-libc-macros/math-macros.h
    M libc/src/__support/FPUtil/CMakeLists.txt
    M libc/src/__support/FPUtil/FEnvImpl.h
    M libc/src/__support/FPUtil/ManipulationFunctions.h
    M libc/src/__support/FPUtil/NearestIntegerOperations.h
    M libc/src/math/generic/CMakeLists.txt
    M libc/src/math/generic/math_utils.h
    M libc/test/CMakeLists.txt
    M libc/test/UnitTest/FPMatcher.h
    M libc/test/src/CMakeLists.txt
    M libc/test/src/__support/uint_test.cpp
    M libc/test/src/math/CMakeLists.txt
    M libc/test/src/math/CeilTest.h
    M libc/test/src/math/CopySignTest.h
    M libc/test/src/math/FAbsTest.h
    M libc/test/src/math/FDimTest.h
    M libc/test/src/math/FMaxTest.h
    M libc/test/src/math/FMinTest.h
    M libc/test/src/math/FModTest.h
    M libc/test/src/math/FloorTest.h
    M libc/test/src/math/FrexpTest.h
    M libc/test/src/math/HypotTest.h
    M libc/test/src/math/ILogbTest.h
    M libc/test/src/math/LdExpTest.h
    M libc/test/src/math/LogbTest.h
    M libc/test/src/math/ModfTest.h
    M libc/test/src/math/NextAfterTest.h
    M libc/test/src/math/RIntTest.h
    M libc/test/src/math/RemQuoTest.h
    M libc/test/src/math/RoundEvenTest.h
    M libc/test/src/math/RoundTest.h
    M libc/test/src/math/RoundToIntegerTest.h
    M libc/test/src/math/SqrtTest.h
    M libc/test/src/math/TruncTest.h
    M libc/test/src/math/acosf_test.cpp
    M libc/test/src/math/acoshf_test.cpp
    M libc/test/src/math/asinf_test.cpp
    M libc/test/src/math/asinhf_test.cpp
    M libc/test/src/math/atan2f_test.cpp
    M libc/test/src/math/atanf_test.cpp
    M libc/test/src/math/atanhf_test.cpp
    M libc/test/src/math/cos_test.cpp
    M libc/test/src/math/cosf_test.cpp
    M libc/test/src/math/coshf_test.cpp
    M libc/test/src/math/erff_test.cpp
    M libc/test/src/math/exhaustive/CMakeLists.txt
    M libc/test/src/math/exp10_test.cpp
    M libc/test/src/math/exp10f_test.cpp
    M libc/test/src/math/exp2_test.cpp
    M libc/test/src/math/exp2f_test.cpp
    M libc/test/src/math/exp2m1f_test.cpp
    M libc/test/src/math/exp_test.cpp
    M libc/test/src/math/expf_test.cpp
    M libc/test/src/math/explogxf_test.cpp
    M libc/test/src/math/expm1_test.cpp
    M libc/test/src/math/expm1f_test.cpp
    M libc/test/src/math/fdim_test.cpp
    M libc/test/src/math/fdimf_test.cpp
    M libc/test/src/math/fdiml_test.cpp
    M libc/test/src/math/generic/CMakeLists.txt
    M libc/test/src/math/ilogb_test.cpp
    M libc/test/src/math/ilogbf_test.cpp
    M libc/test/src/math/ilogbl_test.cpp
    M libc/test/src/math/log10_test.cpp
    M libc/test/src/math/log10f_test.cpp
    M libc/test/src/math/log1p_test.cpp
    M libc/test/src/math/log1pf_test.cpp
    M libc/test/src/math/log2_test.cpp
    M libc/test/src/math/log2f_test.cpp
    M libc/test/src/math/log_test.cpp
    M libc/test/src/math/logf_test.cpp
    M libc/test/src/math/powf_test.cpp
    M libc/test/src/math/sin_test.cpp
    M libc/test/src/math/sincosf_test.cpp
    M libc/test/src/math/sinf_test.cpp
    M libc/test/src/math/sinhf_test.cpp
    M libc/test/src/math/smoke/CMakeLists.txt
    M libc/test/src/math/smoke/CanonicalizeTest.h
    M libc/test/src/math/smoke/CeilTest.h
    M libc/test/src/math/smoke/CopySignTest.h
    M libc/test/src/math/smoke/FAbsTest.h
    M libc/test/src/math/smoke/FModTest.h
    M libc/test/src/math/smoke/FloorTest.h
    M libc/test/src/math/smoke/HypotTest.h
    M libc/test/src/math/smoke/ModfTest.h
    M libc/test/src/math/smoke/NextAfterTest.h
    M libc/test/src/math/smoke/NextTowardTest.h
    M libc/test/src/math/smoke/RIntTest.h
    M libc/test/src/math/smoke/RemQuoTest.h
    M libc/test/src/math/smoke/RoundEvenTest.h
    M libc/test/src/math/smoke/RoundTest.h
    M libc/test/src/math/smoke/RoundToIntegerTest.h
    M libc/test/src/math/smoke/SqrtTest.h
    M libc/test/src/math/smoke/TruncTest.h
    M libc/test/src/math/smoke/acosf_test.cpp
    M libc/test/src/math/smoke/acoshf_test.cpp
    M libc/test/src/math/smoke/asinf_test.cpp
    M libc/test/src/math/smoke/asinhf_test.cpp
    M libc/test/src/math/smoke/atan2f_test.cpp
    M libc/test/src/math/smoke/atanf_test.cpp
    M libc/test/src/math/smoke/atanhf_test.cpp
    M libc/test/src/math/smoke/cosf_test.cpp
    M libc/test/src/math/smoke/coshf_test.cpp
    M libc/test/src/math/smoke/erff_test.cpp
    M libc/test/src/math/smoke/exp10_test.cpp
    M libc/test/src/math/smoke/exp10f_test.cpp
    M libc/test/src/math/smoke/exp2_test.cpp
    M libc/test/src/math/smoke/exp2f_test.cpp
    M libc/test/src/math/smoke/exp_test.cpp
    M libc/test/src/math/smoke/expf_test.cpp
    M libc/test/src/math/smoke/expm1_test.cpp
    M libc/test/src/math/smoke/expm1f_test.cpp
    M libc/test/src/math/smoke/log10_test.cpp
    M libc/test/src/math/smoke/log10f_test.cpp
    M libc/test/src/math/smoke/log1p_test.cpp
    M libc/test/src/math/smoke/log1pf_test.cpp
    M libc/test/src/math/smoke/log2_test.cpp
    M libc/test/src/math/smoke/log2f_test.cpp
    M libc/test/src/math/smoke/log_test.cpp
    M libc/test/src/math/smoke/logf_test.cpp
    M libc/test/src/math/smoke/powf_test.cpp
    M libc/test/src/math/smoke/sincosf_test.cpp
    M libc/test/src/math/smoke/sinf_test.cpp
    M libc/test/src/math/smoke/sinhf_test.cpp
    M libc/test/src/math/smoke/tanf_test.cpp
    M libc/test/src/math/smoke/tanhf_test.cpp
    M libc/test/src/math/tan_test.cpp
    M libc/test/src/math/tanf_test.cpp
    M libc/test/src/math/tanhf_test.cpp
    M libc/test/src/sys/random/linux/CMakeLists.txt
    M libc/test/utils/FPUtil/CMakeLists.txt
    M libc/test/utils/FPUtil/x86_long_double_test.cpp
    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/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/math/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/math/libc_math_test_rules.bzl
    M utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/utils/MPFRWrapper/BUILD.bazel

  Log Message:
  -----------
  [libc] Add proxy header math_macros.h. (#87598)

Context: https://github.com/llvm/llvm-project/pull/87017

- Add proxy header `libc/hdr/math_macros.h` that will:
  - include `<math.h>` in overlay mode,
- include `"include/llvm-libc-macros/math-macros.h"` in full build mode.
- Its corresponding CMake target `libc.hdr.math_macros` will only depend
on `libc.include.math` and `libc.include.llvm-libc-macros.math_macros`
in full build mode.
- Replace all `#include "include/llvm-libc-macros/math-macros.h"` with
`#include "hdr/math_macros.h"`.
- Add dependency to `libc.hdr.math_macros` CMake target when using
`add_fp_unittest`.
- Update the remaining dependency.
- Update bazel overlay: add `libc:hdr_math_macros` target, and replacing
all dependency on `libc:llvm_libc_macros_math_macros` with
`libc:hdr_math_macros`.


  Commit: 2d3c827c053c112491dc1102ff31fc7d703adc36
      https://github.com/llvm/llvm-project/commit/2d3c827c053c112491dc1102ff31fc7d703adc36
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M bolt/include/bolt/Profile/BoltAddressTranslation.h
    M bolt/include/bolt/Profile/YAMLProfileWriter.h
    M bolt/lib/Profile/BoltAddressTranslation.cpp
    M bolt/lib/Profile/DataAggregator.cpp
    M bolt/lib/Profile/YAMLProfileWriter.cpp
    M bolt/test/X86/bolt-address-translation-yaml.test

  Log Message:
  -----------
  [BOLT] Use BAT for YAML profile call target information

Provide a mechanism to resolve call target information for calls from non-BAT
functions to BAT functions (`YAMLProfileWriter::convert`). Make it generic for
future use in BAT-to-BAT calls.

Test Plan: Updated bolt/test/X86/bolt-address-translation-yaml.test

Reviewers: ayermolo, maksfb, rafaelauler, dcci

Reviewed By: maksfb

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


  Commit: 3f2f700633bbcc0cb5ada17f5736b43f9c1e426e
      https://github.com/llvm/llvm-project/commit/3f2f700633bbcc0cb5ada17f5736b43f9c1e426e
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M flang/lib/Lower/Bridge.cpp

  Log Message:
  -----------
  [flang] Fix -Wunused-but-set-variable in Bridge.cpp (NFC)

llvm-project/flang/lib/Lower/Bridge.cpp:3775:14:
error: variable 'nbDeviceResidentObject' set but not used [-Werror,-Wunused-but-set-variable]
    unsigned nbDeviceResidentObject = 0;
             ^
1 error generated.


  Commit: 8bd391457fbd5108610557efdb26c2397aa0bd24
      https://github.com/llvm/llvm-project/commit/8bd391457fbd5108610557efdb26c2397aa0bd24
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrFormats.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td

  Log Message:
  -----------
  [RISCV] Rename OP-P to OP-VE. (#87546)

This has been updated in the isa-manual
https://github.com/riscv/riscv-isa-manual/pull/1311


  Commit: 0227623915bf0b4794bdbc64974f6cbd6fcc1611
      https://github.com/llvm/llvm-project/commit/0227623915bf0b4794bdbc64974f6cbd6fcc1611
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M bolt/lib/Profile/BoltAddressTranslation.cpp
    M bolt/test/X86/yaml-secondary-entry-discriminator.s

  Log Message:
  -----------
  [BOLT][BAT] Support multi-way split functions

BAT writeMaps encoded the assumption that functions are only split into
two fragments (hot and cold). However, BOLT supports splitting into
arbitrary number of fragments. Relax that assumption and look up primary
(hot) fragment explicitly.

Depends on: https://github.com/llvm/llvm-project/pull/86219

Test Plan: Updated bolt/test/X86/yaml-secondary-entry-discriminator.s

Reviewers: ayermolo, rafaelauler, maksfb, dcci

Reviewed By: maksfb, dcci

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


  Commit: e64eede0dcf08e9b2d4bec0b47818b26862ec2c7
      https://github.com/llvm/llvm-project/commit/e64eede0dcf08e9b2d4bec0b47818b26862ec2c7
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M bolt/lib/Profile/BoltAddressTranslation.cpp

  Log Message:
  -----------
  [BOLT][BAT] Fix encoded NumBasicBlocks

Emit the recorded number of blocks, not the number of basic block
hashes. There might be differences in corner cases (openssl
BN_BLINDING_convert_ex function).

Test Plan:
Updated openssl.test in https://github.com/rafaelauler/bolt-tests/pull/31

Reviewers: rafaelauler, ayermolo, maksfb, dcci

Reviewed By: ayermolo

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


  Commit: ed4e505c219fe6c7464ea5a056e90d8cd94c7332
      https://github.com/llvm/llvm-project/commit/ed4e505c219fe6c7464ea5a056e90d8cd94c7332
  Author: Mike <FruitClover at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/readability/DuplicateIncludeCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/readability/duplicate-include.cpp

  Log Message:
  -----------
  [clang-tidy] Fix readability-duplicate-include for includes with macro (#87433)

Completely skip include directives that form the filename using macros.

fixes #87303


  Commit: 0f52f4ddd909eb38f2a691ffed8469263fe5f635
      https://github.com/llvm/llvm-project/commit/0f52f4ddd909eb38f2a691ffed8469263fe5f635
  Author: Jeff Niu <jeff at modular.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M mlir/include/mlir/TableGen/Class.h
    M mlir/test/mlir-tblgen/op-attribute.td
    M mlir/test/mlir-tblgen/op-decl-and-defs.td
    M mlir/test/mlir-tblgen/op-operand.td
    M mlir/test/mlir-tblgen/op-properties.td
    M mlir/test/mlir-tblgen/op-result.td
    M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp

  Log Message:
  -----------
  [mlir][ods] Emit "trivial" ODS getter/setters inline (#87741)

Emitting trivial getters that amount to `(*this)->getOperand(1)`
out-of-line or `getProperties().foo` is a pretty significant performance
hit on these basic MLIR APIs for manipulating ops (3-4x). Emit them
inline (without adding additional dependencies to header files).


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

  Changed paths:
    M llvm/include/llvm/ADT/ADL.h
    M llvm/include/llvm/ADT/STLExtras.h
    M llvm/unittests/ADT/IteratorTest.cpp
    M llvm/unittests/ADT/RangeAdapterTest.cpp
    M llvm/unittests/ADT/STLExtrasTest.cpp

  Log Message:
  -----------
  [ADT] Allow reverse to find free rbegin/rend functions (#87840)

Lift the requirement that rbegin/rend must be member functions. Also
allow the rbegin/rend to be found through Argument Dependent Lookup
(ADL) and add `adl_rbegin`/`adl_rend` to STLExtras.


  Commit: 08200fa3f50ba9dc094467d6e1d31197dfcb7134
      https://github.com/llvm/llvm-project/commit/08200fa3f50ba9dc094467d6e1d31197dfcb7134
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Arith/IR/ValueBoundsOpInterfaceImpl.cpp

  Log Message:
  -----------
  [mlir][Arith] Specify evaluation order of `getExpr` (#87859)

The C++ standard does not specify an evaluation order for addition/...
operands. E.g., in `a() + b()`, the compiler is free to evaluate `a` or
`b` first.

This lead to different `mlir-opt` outputs in #85895. (FileCheck passed
when compiled with LLVM but failed when compiled with gcc.)


  Commit: 76435f2dca97621dfd7e7299bb93e2f38dcf403d
      https://github.com/llvm/llvm-project/commit/76435f2dca97621dfd7e7299bb93e2f38dcf403d
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h
    M mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp
    M mlir/lib/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.cpp
    M mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
    M mlir/test/Dialect/SCF/value-bounds-op-interface-impl.mlir

  Log Message:
  -----------
  [mlir][SCF] `ValueBoundsConstraintSet`: Support `scf.if` (branches) (#87860)

This commit adds support for `scf.if` to `ValueBoundsConstraintSet`.

Example:
```
%0 = scf.if ... -> index {
  scf.yield %a : index
} else {
  scf.yield %b : index
}
```

The following constraints hold for %0:
* %0 >= min(%a, %b)
* %0 <= max(%a, %b)

Such constraints cannot be added to the constraint set; min/max is not
supported by `IntegerRelation`. However, if we know which one of %a and
%b is larger, we can add constraints for %0. E.g., if %a <= %b:
* %0 >= %a
* %0 <= %b

This commit required a few minor changes to the
`ValueBoundsConstraintSet` infrastructure, so that values can be
compared while we are still in the process of traversing the IR/adding
constraints.

Note: This is a re-upload of #85895, which was reverted. The bug that
caused the failure was fixed in #87859.


  Commit: 813f68caf42260452ad7a5cc224ef199a2ad0067
      https://github.com/llvm/llvm-project/commit/813f68caf42260452ad7a5cc224ef199a2ad0067
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

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

  Log Message:
  -----------
  [clang] Reject VLAs in `__is_layout_compatible()` (#87737)

This is a follow-up to #81506. Since `__is_layout_compatible()` is a C++
intrinsic
(https://github.com/llvm/llvm-project/blob/ff1e72d68d1224271801ff5192a8c14fbd3be83b/clang/include/clang/Basic/TokenKinds.def#L523),
I don't think we should define how it interacts with VLA extension
unless we have a compelling reason to.

Since #81506 was merged after 18 cut-off, we don't have to follow any
kind of deprecation process.


  Commit: cd0f5b2e58fad3973f2f50936b0467b2de3b3e12
      https://github.com/llvm/llvm-project/commit/cd0f5b2e58fad3973f2f50936b0467b2de3b3e12
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    A clang/test/CXX/drs/dr392.cpp
    M clang/test/CXX/drs/dr3xx.cpp
    M clang/www/cxx_dr_status.html

  Log Message:
  -----------
  [clang] Add test for CWG392 (#87744)

[CWG392](https://cplusplus.github.io/CWG/issues/392.html) "Use of full
expression lvalue before temporary destruction". We're testing that
`operator bool()` is called before destructor of `C`.

I'm also marking CWG388 as requiring libc++abi test instead of codegen
test, as we need to test matching between exception object and exception
handlers.


  Commit: 0b021c4b603b4e076f9e54572a4eef3e43ab57c0
      https://github.com/llvm/llvm-project/commit/0b021c4b603b4e076f9e54572a4eef3e43ab57c0
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M clang/test/CXX/drs/dr4xx.cpp
    M clang/www/cxx_dr_status.html

  Log Message:
  -----------
  [clang] Claim conformance for CWG466 (#87748)

[CWG466](https://cplusplus.github.io/CWG/issues/466.html) "cv-qualifiers
on pseudo-destructor type".
Richard claimed that we don't implement this DR because of one
ill-formed example being accepted: `a->CI::~VI();`. This example is
testing the behavior of calling a pseudo-destructor via a qualified
name, where components of qualified name denote the same `int` type, but
with different cv-qualifications.

Initially, the following wording from [expr.pseudo] quoted in CWG466 was
left intact:
> Furthermore, the two type-names in a pseudo-destructor-name of the
form
>
>    `:: (opt) nested-name-specifier (opt) type-name ::~ type-name`
>
>shall designate the same scalar type.

According to this wording, the example is indeed ill-formed.

[P1131R2](https://wg21.link/p1131r2) merged wording for
pseudo-destructors into regular destructor wording. Among other things,
[expr.pseudo] was removed, and [expr.prim.id.qual]/2 was changed to
read:

> Where `type-name ::~ type-name` is used, the two type-names shall
refer to the same type (ignoring cv-qualifications);

I believe P1131R2 made the example well-formed.

However, this wording didn't survive
[P1787R6](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1787r6.html)
"Declarations and where to find them". In that paper I don't see the
intent to make the example ill-formed again, so I assume it confirmed
status-quo via other wording. My _guess_ the new wording is
http://eel.is/c++draft/basic.lookup#qual.general-4.6:
> If a qualified name Q follows a ~: 
> - <...>
> - The [type-name](http://eel.is/c++draft/dcl.type.simple#nt:type-name)
that is or contains Q shall refer to its (original) lookup context
(ignoring cv-qualification) under the interpretation established by at
least one (successful) lookup
performed[.](http://eel.is/c++draft/basic.lookup#qual.general-4.6.sentence-1)


  Commit: 770202343ebce1f2bc0745c78e298e251f204bee
      https://github.com/llvm/llvm-project/commit/770202343ebce1f2bc0745c78e298e251f204bee
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-04-05 (Fri, 05 Apr 2024)

  Changed paths:
    M clang/lib/Format/UnwrappedLineParser.cpp

  Log Message:
  -----------
  [clang-format][NFC] Rename `kind` to `Kind`


  Commit: 0ba3e96be114dcbe0ac6813a1d0e2940d2a88229
      https://github.com/llvm/llvm-project/commit/0ba3e96be114dcbe0ac6813a1d0e2940d2a88229
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp

  Log Message:
  -----------
  [mlir][SCF][NFC] `ValueBoundsConstraintSet`: Simplify `scf.for` implementation (#87862)

This commit simplifies the implementation of the
`ValueBoundsOpInterface` for `scf.for` based on the newly added
`ValueBoundsConstraintSet::compare` API and adds additional
documentation.

Previously, the interface implementation created a new constraint set
just to check if the yielded value and iter_arg are equal. This was
inefficient because constraints were added multiple times (to two
different constraint sets) for ops that are inside the loop.

Note: This is a re-upload of #86239.


  Commit: a522dbbd62d0cda4cd10b1b477f238938446294a
      https://github.com/llvm/llvm-project/commit/a522dbbd62d0cda4cd10b1b477f238938446294a
  Author: Kai Sasaki <lewuathe at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

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

  Log Message:
  -----------
  [mlir][complex] Support fast math flag for complex.sign op (#87148)

We are going to support the fast math flag given in `complex.sign` op in
the conversion to standard dialect.

See:
https://discourse.llvm.org/t/rfc-fastmath-flags-support-in-complex-dialect/71981


  Commit: 09efe848cf2877ea7528411eaa0fe99224059256
      https://github.com/llvm/llvm-project/commit/09efe848cf2877ea7528411eaa0fe99224059256
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M libc/fuzzing/__support/CMakeLists.txt
    M libc/fuzzing/__support/uint_fuzz.cpp
    M libc/src/__support/CMakeLists.txt
    M libc/src/__support/FPUtil/BasicOperations.h
    M libc/src/__support/FPUtil/CMakeLists.txt
    M libc/src/__support/FPUtil/FPBits.h
    M libc/src/__support/FPUtil/Hypot.h
    M libc/src/__support/FPUtil/dyadic_float.h
    M libc/src/__support/FPUtil/generic/FMA.h
    M libc/src/__support/FPUtil/generic/sqrt.h
    M libc/src/__support/FPUtil/generic/sqrt_80_bit_long_double.h
    R libc/src/__support/UInt.h
    R libc/src/__support/UInt128.h
    A libc/src/__support/big_int.h
    M libc/src/__support/float_to_string.h
    M libc/src/__support/hash.h
    M libc/src/__support/integer_literals.h
    M libc/src/__support/integer_to_string.h
    M libc/src/__support/str_to_float.h
    M libc/src/__support/str_to_integer.h
    A libc/src/__support/uint128.h
    M libc/src/math/generic/log_range_reduction.h
    M libc/src/stdio/printf_core/CMakeLists.txt
    M libc/src/stdio/printf_core/float_dec_converter.h
    M libc/test/UnitTest/CMakeLists.txt
    M libc/test/UnitTest/LibcTest.cpp
    M libc/test/UnitTest/StringUtils.h
    M libc/test/UnitTest/TestLogger.cpp
    M libc/test/src/__support/CMakeLists.txt
    M libc/test/src/__support/CPP/CMakeLists.txt
    M libc/test/src/__support/CPP/bit_test.cpp
    M libc/test/src/__support/CPP/limits_test.cpp
    M libc/test/src/__support/FPUtil/dyadic_float_test.cpp
    M libc/test/src/__support/high_precision_decimal_test.cpp
    M libc/test/src/__support/integer_to_string_test.cpp
    M libc/test/src/__support/math_extras_test.cpp
    M libc/test/src/__support/str_to_fp_test.h
    M libc/test/src/__support/uint_test.cpp
    M libc/test/src/math/smoke/nanf128_test.cpp
    M libc/test/src/stdlib/strtold_test.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/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/CPP/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/FPUtil/BUILD.bazel

  Log Message:
  -----------
  [libc][NFC] Rename `UInt.h` to `big_int.h` and `UInt128.h` to `uint128.h` for consistency (#87808)


  Commit: 684f27d37a6f1faf546a71bcb784b48c7fc8b7e0
      https://github.com/llvm/llvm-project/commit/684f27d37a6f1faf546a71bcb784b48c7fc8b7e0
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M clang/lib/Format/FormatTokenLexer.cpp
    M clang/lib/Format/TokenAnnotator.cpp
    M clang/lib/Format/UnwrappedLineParser.cpp
    M clang/lib/Format/WhitespaceManager.cpp

  Log Message:
  -----------
  [clang-format][NFC] Use `is` instead of `getType() ==`


  Commit: f5d7e755b8e9623f24812dcab8f4e09e888b2527
      https://github.com/llvm/llvm-project/commit/f5d7e755b8e9623f24812dcab8f4e09e888b2527
  Author: Benjamin Kramer <benny.kra at googlemail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

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

  Log Message:
  -----------
  [bazel] Fix the build after 27b2d7d4bb790ec1e7430bf18b1bc2f6e0800d0d


  Commit: d2884444472e92a8282f4d215a27128ac83a26b9
      https://github.com/llvm/llvm-project/commit/d2884444472e92a8282f4d215a27128ac83a26b9
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    A clang/include/clang/Sema/SemaBase.h
    M clang/include/clang/Sema/SemaOpenACC.h
    M clang/lib/Sema/CMakeLists.txt
    M clang/lib/Sema/Sema.cpp
    A clang/lib/Sema/SemaBase.cpp
    M clang/lib/Sema/SemaOpenACC.cpp

  Log Message:
  -----------
  [clang][NFC] Introduce `SemaBase` (#87634)

This is a follow-up to #84184. Multiple reviewers there pointed out to
me that we should have a common base class for `Sema` and `SemaOpenACC`
to avoid code duplication for common helpers like `getLangOpts()`. On
top of that, `Diag()` function was requested for `SemaOpenACC`. This
patch delivers both.

The intent is to keep `SemaBase` as small as possible, as things there
are globally available across `Sema` and its parts without any
additional effort from usage side. Overused, this can undermine the
whole endeavor of splitting `Sema` apart.

Apart of shuffling code around, this patch introduces a helper private
function `SemaDiagnosticBuilder::getDeviceDeferredDiags()`, the sole
purpose of which is to encapsulate member access into (incomplete)
`Sema` for function templates defined in the header, where `Sema` can't
be complete.


  Commit: 0e8b61f8e0bd37e99f3de06e4e8885844f904eba
      https://github.com/llvm/llvm-project/commit/0e8b61f8e0bd37e99f3de06e4e8885844f904eba
  Author: Ramkumar Ramachandra <ram.ramachandra at arm.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M llvm/test/tools/llvm-objdump/ELF/dynamic-malformed.test
    M llvm/tools/llvm-objdump/ELFDump.cpp

  Log Message:
  -----------
  llvm-objdump/ELF: fix crash when reading dyn str table (#87519)

When reading the dynamic string table, llvm-objdump used to crash if the
ELF was malformed, due to an erroneous consumption of error status.
Instead, propogate the error status to the caller, fixing the crash, and
printing a warning.


  Commit: 233c030dcb18880d5f0a749573f11f96f35e76b8
      https://github.com/llvm/llvm-project/commit/233c030dcb18880d5f0a749573f11f96f35e76b8
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    A llvm/test/Transforms/LoopVectorize/AArch64/induction-costs.ll
    A llvm/test/Transforms/LoopVectorize/X86/induction-costs.ll

  Log Message:
  -----------
  [LV] Add extra tests for induction cost modeling.


  Commit: 4761e74a276ee1f38596f4849daa9d633929f2ae
      https://github.com/llvm/llvm-project/commit/4761e74a276ee1f38596f4849daa9d633929f2ae
  Author: yronglin <yronglin777 at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx23Issues.csv
    M libcxx/include/fstream
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.cons/path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/path.pass.cpp
    M libcxx/test/support/test_macros.h

  Log Message:
  -----------
  [libc++] Implement LWG3430 disallow implicit conversion of the source arguments to `std::filesystem::path` when constructing `std::basic_*fstream` (#85079)

Implement [LWG3430](https://wg21.link/LWG3430).

---------

Signed-off-by: yronglin <yronglin777 at gmail.com>


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

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/global_alias.ll

  Log Message:
  -----------
  [LV] Make global_alias.ll test independent of O1 pipeline.

Update global_alias.ll with the IR after the O1 pipeline. Depending on
the O1 makes the tests more fragile and also makes it more difficult to
reason about the behavior of the tests, as it doesn't show the IR before
LoopVectorize.


  Commit: 1803d675004bb512051d2df7e1ae3ea95692fc67
      https://github.com/llvm/llvm-project/commit/1803d675004bb512051d2df7e1ae3ea95692fc67
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/AIX.cpp

  Log Message:
  -----------
  [Driver] Add missing include of std::set.

4ddd4ed7fe15a added a use of std::set without including it. With some
recent libc++, std::set isn't included transitively causing build
failures.

Add explicit include.


  Commit: 935e699173636921b118c3c21da6b18659c09a16
      https://github.com/llvm/llvm-project/commit/935e699173636921b118c3c21da6b18659c09a16
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M libcxx/benchmarks/CMakeLists.txt
    A libcxx/benchmarks/algorithms/minmax.bench.cpp
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/include/__algorithm/comp.h
    M libcxx/include/__algorithm/ranges_minmax.h
    M libcxx/include/__functional/operations.h
    M libcxx/include/__functional/ranges_operations.h
    M libcxx/include/__type_traits/desugars_to.h

  Log Message:
  -----------
  [libc++] Optimize ranges::minmax (#87335)

This allows Clang to vectorize the loop.
```
---------------------------------------------------------------------
Benchmark                                         old             new
---------------------------------------------------------------------
BM_std_minmax<char>/1                        0.659 ns         1.41 ns
BM_std_minmax<char>/2                         1.08 ns         2.16 ns
BM_std_minmax<char>/3                         2.16 ns         2.96 ns
BM_std_minmax<char>/4                         2.82 ns         3.81 ns
BM_std_minmax<char>/5                         3.43 ns         4.69 ns
BM_std_minmax<char>/6                         4.08 ns         5.63 ns
BM_std_minmax<char>/7                         4.75 ns         6.51 ns
BM_std_minmax<char>/8                         5.42 ns         7.41 ns
BM_std_minmax<char>/9                         6.05 ns         8.34 ns
BM_std_minmax<char>/10                        6.68 ns         9.29 ns
BM_std_minmax<char>/11                        7.47 ns         10.6 ns
BM_std_minmax<char>/12                        7.95 ns         11.4 ns
BM_std_minmax<char>/13                        8.64 ns         12.4 ns
BM_std_minmax<char>/14                        9.35 ns         13.4 ns
BM_std_minmax<char>/15                        10.1 ns         14.4 ns
BM_std_minmax<char>/16                        10.6 ns         2.25 ns
BM_std_minmax<char>/17                        11.3 ns         2.82 ns
BM_std_minmax<char>/18                        11.8 ns         3.71 ns
BM_std_minmax<char>/19                        12.6 ns         4.52 ns
BM_std_minmax<char>/20                        13.2 ns         5.47 ns
BM_std_minmax<char>/21                        14.1 ns         6.67 ns
BM_std_minmax<char>/22                        14.5 ns         7.78 ns
BM_std_minmax<char>/23                        15.1 ns         8.67 ns
BM_std_minmax<char>/24                        15.7 ns         9.68 ns
BM_std_minmax<char>/25                        16.4 ns         10.7 ns
BM_std_minmax<char>/26                        17.1 ns         11.7 ns
BM_std_minmax<char>/27                        17.8 ns         12.8 ns
BM_std_minmax<char>/28                        18.4 ns         14.1 ns
BM_std_minmax<char>/29                        19.0 ns         15.0 ns
BM_std_minmax<char>/30                        19.6 ns         16.0 ns
BM_std_minmax<char>/31                        20.2 ns         17.0 ns
BM_std_minmax<char>/32                        20.8 ns         2.46 ns
BM_std_minmax<char>/64                        41.5 ns         2.97 ns
BM_std_minmax<char>/512                        340 ns         6.05 ns
BM_std_minmax<char>/1024                       667 ns         8.83 ns
BM_std_minmax<char>/4000                      2571 ns         28.6 ns
BM_std_minmax<char>/4096                      2632 ns         25.8 ns
BM_std_minmax<char>/5500                      3554 ns         51.1 ns
BM_std_minmax<char>/64000                    41175 ns          480 ns
BM_std_minmax<char>/65536                    42039 ns          490 ns
BM_std_minmax<char>/70000                    44931 ns          528 ns
BM_std_minmax<short>/1                       0.708 ns         1.20 ns
BM_std_minmax<short>/2                        1.18 ns         1.78 ns
BM_std_minmax<short>/3                        1.98 ns         2.42 ns
BM_std_minmax<short>/4                        2.47 ns         3.05 ns
BM_std_minmax<short>/5                        3.09 ns         3.72 ns
BM_std_minmax<short>/6                        3.49 ns         4.37 ns
BM_std_minmax<short>/7                        4.24 ns         5.03 ns
BM_std_minmax<short>/8                        4.65 ns         2.12 ns
BM_std_minmax<short>/9                        5.34 ns         2.51 ns
BM_std_minmax<short>/10                       5.82 ns         3.18 ns
BM_std_minmax<short>/11                       6.36 ns         3.97 ns
BM_std_minmax<short>/12                       6.73 ns         4.68 ns
BM_std_minmax<short>/13                       7.59 ns         5.49 ns
BM_std_minmax<short>/14                       7.77 ns         6.45 ns
BM_std_minmax<short>/15                       8.54 ns         7.55 ns
BM_std_minmax<short>/16                       8.74 ns         2.38 ns
BM_std_minmax<short>/17                       9.59 ns         2.76 ns
BM_std_minmax<short>/18                       9.88 ns         3.37 ns
BM_std_minmax<short>/19                       10.7 ns         4.17 ns
BM_std_minmax<short>/20                       10.9 ns         4.88 ns
BM_std_minmax<short>/21                       12.1 ns         5.70 ns
BM_std_minmax<short>/22                       12.6 ns         6.64 ns
BM_std_minmax<short>/23                       13.5 ns         7.72 ns
BM_std_minmax<short>/24                       13.2 ns         2.87 ns
BM_std_minmax<short>/25                       14.2 ns         3.10 ns
BM_std_minmax<short>/26                       14.2 ns         3.59 ns
BM_std_minmax<short>/27                       15.4 ns         4.35 ns
BM_std_minmax<short>/28                       15.3 ns         5.10 ns
BM_std_minmax<short>/29                       16.2 ns         5.87 ns
BM_std_minmax<short>/30                       16.2 ns         6.88 ns
BM_std_minmax<short>/31                       17.0 ns         7.78 ns
BM_std_minmax<short>/32                       17.2 ns         3.45 ns
BM_std_minmax<short>/64                       34.1 ns         3.35 ns
BM_std_minmax<short>/512                       279 ns         8.37 ns
BM_std_minmax<short>/1024                      549 ns         14.2 ns
BM_std_minmax<short>/4000                     2111 ns         50.1 ns
BM_std_minmax<short>/4096                     2167 ns         47.9 ns
BM_std_minmax<short>/5500                     2895 ns         69.7 ns
BM_std_minmax<short>/64000                   33454 ns          953 ns
BM_std_minmax<short>/65536                   34474 ns          970 ns
BM_std_minmax<short>/70000                   36691 ns         1037 ns
BM_std_minmax<int>/1                         0.664 ns         1.17 ns
BM_std_minmax<int>/2                          1.11 ns         1.69 ns
BM_std_minmax<int>/3                          2.36 ns         2.29 ns
BM_std_minmax<int>/4                          2.53 ns         2.91 ns
BM_std_minmax<int>/5                          3.23 ns         3.56 ns
BM_std_minmax<int>/6                          3.56 ns         4.23 ns
BM_std_minmax<int>/7                          4.28 ns         4.91 ns
BM_std_minmax<int>/8                          4.60 ns         5.60 ns
BM_std_minmax<int>/9                          5.38 ns         6.31 ns
BM_std_minmax<int>/10                         5.69 ns         7.03 ns
BM_std_minmax<int>/11                         6.41 ns         7.70 ns
BM_std_minmax<int>/12                         6.73 ns         8.39 ns
BM_std_minmax<int>/13                         7.38 ns         9.07 ns
BM_std_minmax<int>/14                         7.74 ns         9.79 ns
BM_std_minmax<int>/15                         8.53 ns         10.5 ns
BM_std_minmax<int>/16                         8.79 ns         11.2 ns
BM_std_minmax<int>/17                         9.63 ns         12.0 ns
BM_std_minmax<int>/18                         9.84 ns         12.7 ns
BM_std_minmax<int>/19                         10.6 ns         13.5 ns
BM_std_minmax<int>/20                         11.0 ns         14.3 ns
BM_std_minmax<int>/21                         11.7 ns         15.0 ns
BM_std_minmax<int>/22                         12.0 ns         15.7 ns
BM_std_minmax<int>/23                         13.1 ns         16.5 ns
BM_std_minmax<int>/24                         13.0 ns         17.3 ns
BM_std_minmax<int>/25                         13.7 ns         17.9 ns
BM_std_minmax<int>/26                         14.0 ns         18.6 ns
BM_std_minmax<int>/27                         14.8 ns         19.4 ns
BM_std_minmax<int>/28                         15.1 ns         20.3 ns
BM_std_minmax<int>/29                         15.8 ns         20.9 ns
BM_std_minmax<int>/30                         16.1 ns         21.7 ns
BM_std_minmax<int>/31                         16.9 ns         22.5 ns
BM_std_minmax<int>/32                         17.2 ns         3.40 ns
BM_std_minmax<int>/64                         33.9 ns         4.04 ns
BM_std_minmax<int>/512                         275 ns         14.6 ns
BM_std_minmax<int>/1024                        541 ns         27.5 ns
BM_std_minmax<int>/4000                       2093 ns         96.3 ns
BM_std_minmax<int>/4096                       2146 ns         98.3 ns
BM_std_minmax<int>/5500                       2866 ns          157 ns
BM_std_minmax<int>/64000                     33619 ns         1954 ns
BM_std_minmax<int>/65536                     34252 ns         2009 ns
BM_std_minmax<int>/70000                     36618 ns         2125 ns
BM_std_minmax<long long>/1                   0.709 ns         1.19 ns
BM_std_minmax<long long>/2                    1.01 ns         1.65 ns
BM_std_minmax<long long>/3                    2.14 ns         2.21 ns
BM_std_minmax<long long>/4                    2.45 ns         2.83 ns
BM_std_minmax<long long>/5                    3.09 ns         3.47 ns
BM_std_minmax<long long>/6                    3.44 ns         4.11 ns
BM_std_minmax<long long>/7                    4.16 ns         4.79 ns
BM_std_minmax<long long>/8                    4.54 ns         5.47 ns
BM_std_minmax<long long>/9                    5.37 ns         6.20 ns
BM_std_minmax<long long>/10                   5.71 ns         6.93 ns
BM_std_minmax<long long>/11                   6.00 ns         7.60 ns
BM_std_minmax<long long>/12                   6.43 ns         8.27 ns
BM_std_minmax<long long>/13                   7.01 ns         8.94 ns
BM_std_minmax<long long>/14                   7.45 ns         9.65 ns
BM_std_minmax<long long>/15                   8.16 ns         10.4 ns
BM_std_minmax<long long>/16                   8.46 ns         5.22 ns
BM_std_minmax<long long>/17                   9.16 ns         5.22 ns
BM_std_minmax<long long>/18                   9.53 ns         5.52 ns
BM_std_minmax<long long>/19                   10.2 ns         6.02 ns
BM_std_minmax<long long>/20                   10.5 ns         6.89 ns
BM_std_minmax<long long>/21                   11.3 ns         7.83 ns
BM_std_minmax<long long>/22                   11.6 ns         8.59 ns
BM_std_minmax<long long>/23                   12.3 ns         9.91 ns
BM_std_minmax<long long>/24                   12.6 ns         10.1 ns
BM_std_minmax<long long>/25                   13.2 ns         12.0 ns
BM_std_minmax<long long>/26                   13.6 ns         13.5 ns
BM_std_minmax<long long>/27                   14.2 ns         14.8 ns
BM_std_minmax<long long>/28                   14.7 ns         15.9 ns
BM_std_minmax<long long>/29                   15.3 ns         16.6 ns
BM_std_minmax<long long>/30                   15.8 ns         17.3 ns
BM_std_minmax<long long>/31                   16.3 ns         18.2 ns
BM_std_minmax<long long>/32                   16.7 ns         7.18 ns
BM_std_minmax<long long>/64                   33.1 ns         11.5 ns
BM_std_minmax<long long>/512                   268 ns         71.0 ns
BM_std_minmax<long long>/1024                  532 ns          138 ns
BM_std_minmax<long long>/4000                 2056 ns          533 ns
BM_std_minmax<long long>/4096                 2112 ns          539 ns
BM_std_minmax<long long>/5500                 2823 ns          749 ns
BM_std_minmax<long long>/64000               32956 ns         8590 ns
BM_std_minmax<long long>/65536               33795 ns         8791 ns
BM_std_minmax<long long>/70000               36084 ns         9442 ns
BM_std_minmax<unsigned char>/1               0.714 ns         1.41 ns
BM_std_minmax<unsigned char>/2               0.955 ns         1.96 ns
BM_std_minmax<unsigned char>/3                1.90 ns         2.63 ns
BM_std_minmax<unsigned char>/4                2.40 ns         3.34 ns
BM_std_minmax<unsigned char>/5                2.87 ns         4.10 ns
BM_std_minmax<unsigned char>/6                3.47 ns         4.88 ns
BM_std_minmax<unsigned char>/7                4.04 ns         5.66 ns
BM_std_minmax<unsigned char>/8                4.65 ns         6.45 ns
BM_std_minmax<unsigned char>/9                5.18 ns         7.24 ns
BM_std_minmax<unsigned char>/10               5.80 ns         8.05 ns
BM_std_minmax<unsigned char>/11               6.24 ns         8.86 ns
BM_std_minmax<unsigned char>/12               6.78 ns         9.70 ns
BM_std_minmax<unsigned char>/13               7.30 ns         10.6 ns
BM_std_minmax<unsigned char>/14               7.86 ns         11.4 ns
BM_std_minmax<unsigned char>/15               8.46 ns         12.3 ns
BM_std_minmax<unsigned char>/16               9.00 ns         2.12 ns
BM_std_minmax<unsigned char>/17               9.58 ns         2.83 ns
BM_std_minmax<unsigned char>/18               10.1 ns         3.37 ns
BM_std_minmax<unsigned char>/19               10.7 ns         4.11 ns
BM_std_minmax<unsigned char>/20               11.2 ns         4.85 ns
BM_std_minmax<unsigned char>/21               11.9 ns         5.69 ns
BM_std_minmax<unsigned char>/22               12.3 ns         6.77 ns
BM_std_minmax<unsigned char>/23               13.1 ns         7.56 ns
BM_std_minmax<unsigned char>/24               13.5 ns         8.40 ns
BM_std_minmax<unsigned char>/25               14.2 ns         9.30 ns
BM_std_minmax<unsigned char>/26               14.4 ns         10.1 ns
BM_std_minmax<unsigned char>/27               15.0 ns         11.1 ns
BM_std_minmax<unsigned char>/28               15.3 ns         11.9 ns
BM_std_minmax<unsigned char>/29               16.2 ns         12.9 ns
BM_std_minmax<unsigned char>/30               16.5 ns         13.9 ns
BM_std_minmax<unsigned char>/31               17.2 ns         14.8 ns
BM_std_minmax<unsigned char>/32               17.6 ns         2.36 ns
BM_std_minmax<unsigned char>/64               35.6 ns         3.21 ns
BM_std_minmax<unsigned char>/512               288 ns         6.00 ns
BM_std_minmax<unsigned char>/1024              573 ns         8.80 ns
BM_std_minmax<unsigned char>/4000             2222 ns         28.6 ns
BM_std_minmax<unsigned char>/4096             2265 ns         25.9 ns
BM_std_minmax<unsigned char>/5500             3047 ns         48.8 ns
BM_std_minmax<unsigned char>/64000           35059 ns          480 ns
BM_std_minmax<unsigned char>/65536           35941 ns          491 ns
BM_std_minmax<unsigned char>/70000           38922 ns          525 ns
BM_std_minmax<unsigned short>/1              0.711 ns         1.18 ns
BM_std_minmax<unsigned short>/2              0.957 ns         1.65 ns
BM_std_minmax<unsigned short>/3               2.13 ns         2.21 ns
BM_std_minmax<unsigned short>/4               2.14 ns         2.78 ns
BM_std_minmax<unsigned short>/5               3.06 ns         3.29 ns
BM_std_minmax<unsigned short>/6               2.89 ns         3.87 ns
BM_std_minmax<unsigned short>/7               3.80 ns         4.55 ns
BM_std_minmax<unsigned short>/8               3.68 ns         2.02 ns
BM_std_minmax<unsigned short>/9               4.53 ns         2.40 ns
BM_std_minmax<unsigned short>/10              4.60 ns         2.94 ns
BM_std_minmax<unsigned short>/11              5.67 ns         3.67 ns
BM_std_minmax<unsigned short>/12              5.39 ns         4.22 ns
BM_std_minmax<unsigned short>/13              6.58 ns         4.78 ns
BM_std_minmax<unsigned short>/14              6.33 ns         5.54 ns
BM_std_minmax<unsigned short>/15              7.34 ns         6.30 ns
BM_std_minmax<unsigned short>/16              7.17 ns         2.25 ns
BM_std_minmax<unsigned short>/17              8.19 ns         2.61 ns
BM_std_minmax<unsigned short>/18              8.02 ns         3.19 ns
BM_std_minmax<unsigned short>/19              9.03 ns         3.72 ns
BM_std_minmax<unsigned short>/20              8.89 ns         4.36 ns
BM_std_minmax<unsigned short>/21              9.77 ns         5.10 ns
BM_std_minmax<unsigned short>/22              9.70 ns         5.55 ns
BM_std_minmax<unsigned short>/23              10.8 ns         6.29 ns
BM_std_minmax<unsigned short>/24              10.6 ns         2.41 ns
BM_std_minmax<unsigned short>/25              11.6 ns         2.75 ns
BM_std_minmax<unsigned short>/26              11.4 ns         3.26 ns
BM_std_minmax<unsigned short>/27              12.4 ns         3.86 ns
BM_std_minmax<unsigned short>/28              12.3 ns         4.45 ns
BM_std_minmax<unsigned short>/29              13.2 ns         5.07 ns
BM_std_minmax<unsigned short>/30              13.1 ns         5.77 ns
BM_std_minmax<unsigned short>/31              13.9 ns         6.65 ns
BM_std_minmax<unsigned short>/32              13.9 ns         2.72 ns
BM_std_minmax<unsigned short>/64              27.8 ns         3.25 ns
BM_std_minmax<unsigned short>/512              220 ns         8.30 ns
BM_std_minmax<unsigned short>/1024             435 ns         14.1 ns
BM_std_minmax<unsigned short>/4000            1703 ns         49.8 ns
BM_std_minmax<unsigned short>/4096            1746 ns         47.9 ns
BM_std_minmax<unsigned short>/5500            2350 ns         69.9 ns
BM_std_minmax<unsigned short>/64000          27388 ns          953 ns
BM_std_minmax<unsigned short>/65536          28040 ns          975 ns
BM_std_minmax<unsigned short>/70000          29967 ns         1040 ns
BM_std_minmax<unsigned int>/1                0.712 ns         1.18 ns
BM_std_minmax<unsigned int>/2                0.965 ns         1.65 ns
BM_std_minmax<unsigned int>/3                 2.13 ns         2.14 ns
BM_std_minmax<unsigned int>/4                 2.09 ns         2.64 ns
BM_std_minmax<unsigned int>/5                 3.02 ns         3.21 ns
BM_std_minmax<unsigned int>/6                 2.94 ns         3.81 ns
BM_std_minmax<unsigned int>/7                 3.91 ns         4.38 ns
BM_std_minmax<unsigned int>/8                 3.75 ns         4.93 ns
BM_std_minmax<unsigned int>/9                 4.71 ns         5.60 ns
BM_std_minmax<unsigned int>/10                4.59 ns         6.26 ns
BM_std_minmax<unsigned int>/11                5.57 ns         6.80 ns
BM_std_minmax<unsigned int>/12                5.43 ns         7.47 ns
BM_std_minmax<unsigned int>/13                6.45 ns         8.10 ns
BM_std_minmax<unsigned int>/14                6.32 ns         8.69 ns
BM_std_minmax<unsigned int>/15                7.29 ns         9.37 ns
BM_std_minmax<unsigned int>/16                7.12 ns         9.99 ns
BM_std_minmax<unsigned int>/17                8.24 ns         10.6 ns
BM_std_minmax<unsigned int>/18                8.00 ns         11.2 ns
BM_std_minmax<unsigned int>/19                8.94 ns         12.0 ns
BM_std_minmax<unsigned int>/20                8.91 ns         12.6 ns
BM_std_minmax<unsigned int>/21                9.73 ns         17.2 ns
BM_std_minmax<unsigned int>/22                9.75 ns         13.8 ns
BM_std_minmax<unsigned int>/23                10.6 ns         14.5 ns
BM_std_minmax<unsigned int>/24                10.6 ns         15.1 ns
BM_std_minmax<unsigned int>/25                11.5 ns         15.7 ns
BM_std_minmax<unsigned int>/26                11.4 ns         16.3 ns
BM_std_minmax<unsigned int>/27                12.3 ns         17.0 ns
BM_std_minmax<unsigned int>/28                12.3 ns         17.6 ns
BM_std_minmax<unsigned int>/29                13.2 ns         18.3 ns
BM_std_minmax<unsigned int>/30                13.2 ns         19.0 ns
BM_std_minmax<unsigned int>/31                14.0 ns         19.6 ns
BM_std_minmax<unsigned int>/32                14.0 ns         3.39 ns
BM_std_minmax<unsigned int>/64                27.6 ns         4.05 ns
BM_std_minmax<unsigned int>/512                221 ns         14.2 ns
BM_std_minmax<unsigned int>/1024               439 ns         25.5 ns
BM_std_minmax<unsigned int>/4000              1720 ns         96.3 ns
BM_std_minmax<unsigned int>/4096              1762 ns         97.8 ns
BM_std_minmax<unsigned int>/5500              2364 ns          146 ns
BM_std_minmax<unsigned int>/64000            27874 ns         1905 ns
BM_std_minmax<unsigned int>/65536            28012 ns         1961 ns
BM_std_minmax<unsigned int>/70000            29899 ns         2087 ns
BM_std_minmax<unsigned long long>/1          0.707 ns         1.18 ns
BM_std_minmax<unsigned long long>/2          0.909 ns         1.65 ns
BM_std_minmax<unsigned long long>/3           1.65 ns         2.70 ns
BM_std_minmax<unsigned long long>/4           1.93 ns         2.69 ns
BM_std_minmax<unsigned long long>/5           2.45 ns         3.34 ns
BM_std_minmax<unsigned long long>/6           2.78 ns         3.81 ns
BM_std_minmax<unsigned long long>/7           3.28 ns         4.43 ns
BM_std_minmax<unsigned long long>/8           3.70 ns         4.92 ns
BM_std_minmax<unsigned long long>/9           4.12 ns         5.64 ns
BM_std_minmax<unsigned long long>/10          4.44 ns         6.15 ns
BM_std_minmax<unsigned long long>/11          4.91 ns         6.81 ns
BM_std_minmax<unsigned long long>/12          5.31 ns         7.41 ns
BM_std_minmax<unsigned long long>/13          5.72 ns         7.96 ns
BM_std_minmax<unsigned long long>/14          6.05 ns         8.66 ns
BM_std_minmax<unsigned long long>/15          6.55 ns         9.37 ns
BM_std_minmax<unsigned long long>/16          6.89 ns         7.98 ns
BM_std_minmax<unsigned long long>/17          7.34 ns         8.13 ns
BM_std_minmax<unsigned long long>/18          7.73 ns         8.42 ns
BM_std_minmax<unsigned long long>/19          8.26 ns         8.63 ns
BM_std_minmax<unsigned long long>/20          8.54 ns         8.96 ns
BM_std_minmax<unsigned long long>/21          9.14 ns         9.37 ns
BM_std_minmax<unsigned long long>/22          9.39 ns         9.67 ns
BM_std_minmax<unsigned long long>/23          10.1 ns         10.1 ns
BM_std_minmax<unsigned long long>/24          10.4 ns         10.6 ns
BM_std_minmax<unsigned long long>/25          11.0 ns         11.3 ns
BM_std_minmax<unsigned long long>/26          11.3 ns         12.1 ns
BM_std_minmax<unsigned long long>/27          11.8 ns         14.2 ns
BM_std_minmax<unsigned long long>/28          12.1 ns         15.8 ns
BM_std_minmax<unsigned long long>/29          12.6 ns         17.4 ns
BM_std_minmax<unsigned long long>/30          13.1 ns         18.1 ns
BM_std_minmax<unsigned long long>/31          13.4 ns         18.8 ns
BM_std_minmax<unsigned long long>/32          13.8 ns         10.4 ns
BM_std_minmax<unsigned long long>/64          27.3 ns         15.5 ns
BM_std_minmax<unsigned long long>/512          222 ns         80.6 ns
BM_std_minmax<unsigned long long>/1024         443 ns          156 ns
BM_std_minmax<unsigned long long>/4000        1731 ns          591 ns
BM_std_minmax<unsigned long long>/4096        1752 ns          609 ns
BM_std_minmax<unsigned long long>/5500        2340 ns          819 ns
BM_std_minmax<unsigned long long>/64000      27166 ns         9652 ns
BM_std_minmax<unsigned long long>/65536      27869 ns         9876 ns
BM_std_minmax<unsigned long long>/70000      29920 ns        10680 ns
```


  Commit: fc7087b7b7fa410e00f7abce5ea379a459af066b
      https://github.com/llvm/llvm-project/commit/fc7087b7b7fa410e00f7abce5ea379a459af066b
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M libc/test/src/__support/CMakeLists.txt
    A libc/test/src/__support/big_int_test.cpp
    R libc/test/src/__support/uint_test.cpp
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/BUILD.bazel

  Log Message:
  -----------
  [libc][NFC] Rename `uint_test` into `big_int_test` for consistency (#87875)


  Commit: b88a1dd6c75754ace4abe18c8ea16a019f7b5529
      https://github.com/llvm/llvm-project/commit/b88a1dd6c75754ace4abe18c8ea16a019f7b5529
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M libc/src/__support/FPUtil/dyadic_float.h
    M libc/src/__support/big_int.h
    M libc/test/src/__support/big_int_test.cpp

  Log Message:
  -----------
  [libc] Make `BigInt` bitwise shift consistent with regular integral semantics. (#87874)

This patch removes the test for cases where the shift operand is greater
or equal to the bit width of the number. This is done for two reasons,
first it makes `BigInt` consistent with regular integral bitwise shift
semantics, and second it makes the shift operation faster. The shift
operation is on the critical path for `exp` and `log` operations, see
https://github.com/llvm/llvm-project/pull/86137#issuecomment-2034133868.


  Commit: 7f9f82e3de94040ca6124a43f2d737201bd4a595
      https://github.com/llvm/llvm-project/commit/7f9f82e3de94040ca6124a43f2d737201bd4a595
  Author: Hristo Hristov <hghristov.rmm at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/include/ostream
    M libcxx/include/print
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.formatted.print/locale-specific_form.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.formatted.print/println.pass.cpp
    M libcxx/test/std/input.output/iostream.format/print.fun/no_file_description.pass.cpp
    A libcxx/test/std/input.output/iostream.format/print.fun/println.blank_line.sh.cpp
    M libcxx/test/std/input.output/iostream.format/print.fun/println.file.pass.cpp

  Log Message:
  -----------
  [libc++][format] P3142R0: Printing Blank Lines with `println` (#87277)

Implements https://wg21.link/P3142R0

Applied retroactively as DR, same as stdlibc++ and MS STL:

https://github.com/orgs/microsoft/projects/1143?pane=issue&itemId=57457187


  Commit: bd589f5c7a079d8829fcf994b746634eaaea24ff
      https://github.com/llvm/llvm-project/commit/bd589f5c7a079d8829fcf994b746634eaaea24ff
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M libc/src/__support/big_int.h

  Log Message:
  -----------
  [libc] Move statement inside #ifdef/#endif to prevent unused variable warning

This is a fix forward for arm32
`/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/big_int.h:259:20: error: unused variable 'TOTAL_BITS' [-Werror,-Wunused-variable]`

https://lab.llvm.org/buildbot/#/builders/229/builds/24791


  Commit: 4cb110a84f587d3c65b85d79ab6fc8aa5489fb86
      https://github.com/llvm/llvm-project/commit/4cb110a84f587d3c65b85d79ab6fc8aa5489fb86
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/CodeGen/AtomicExpandPass.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/test/Assembler/atomic.ll
    A llvm/test/Assembler/invalid-atomicrmw-scalable.ll
    A llvm/test/Assembler/invalid-atomicrmw-xchg-fp-vector.ll
    A llvm/test/CodeGen/AArch64/atomicrmw-fadd-fp-vector.ll
    A llvm/test/CodeGen/X86/atomicrmw-fadd-fp-vector.ll
    A llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomicrmw-fp-vector.ll
    M llvm/unittests/IR/VerifierTest.cpp

  Log Message:
  -----------
  [RFC] IR: Support atomicrmw FP ops with vector types (#86796)

Allow using atomicrmw fadd, fsub, fmin, and fmax with vectors of
floating-point type. AMDGPU supports atomic fadd for <2 x half> and <2 x
bfloat> on some targets and address spaces.

Note this only supports the proper floating-point operations; float
vector typed xchg is still not supported. cmpxchg still only supports
integers, so this inserts bitcasts for the loop expansion.

I have support for fp vector typed xchg, and vector of int/ptr
separately implemented but I don't have an immediate need for those
beyond feature consistency.


  Commit: d38bff460acb4fe3156d90ec739da49344db14ca
      https://github.com/llvm/llvm-project/commit/d38bff460acb4fe3156d90ec739da49344db14ca
  Author: Sizov Nikita <s.nikita.v at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/aarch64-known-bits-hadd.ll

  Log Message:
  -----------
  [AArch64] SimplifyDemandedBitsForTargetNode - add AArch64ISD::BICi handling (#76644)

Fold BICi if all destination bits are already known to be zeroes

```llvm
define <8 x i16> @haddu_known(<8 x i8> %a0, <8 x i8> %a1) {
  %x0 = zext <8 x i8> %a0 to <8 x i16>
  %x1 = zext <8 x i8> %a1 to <8 x i16>
  %hadd = call <8 x i16> @llvm.aarch64.neon.uhadd.v8i16(<8 x i16> %x0, <8 x i16> %x1)
  %res = and <8 x i16> %hadd, <i16 511, i16 511, i16 511, i16 511,i16 511, i16 511, i16 511, i16 511>
  ret <8 x i16> %res
}
declare <8 x i16> @llvm.aarch64.neon.uhadd.v8i16(<8 x i16>, <8 x i16>)
```

```
haddu_known:                            // @haddu_known
        ushll   v0.8h, v0.8b, #0
        ushll   v1.8h, v1.8b, #0
        uhadd   v0.8h, v0.8h, v1.8h
        bic     v0.8h, #254, lsl #8 <-- this one will be removed as we know high bits are zero extended
        ret
```

Fixes #53881
Fixes #53622


  Commit: bd9486b4ec7dc24f73f32474fa38b522a7cce085
      https://github.com/llvm/llvm-project/commit/bd9486b4ec7dc24f73f32474fa38b522a7cce085
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/call-arg-reduced-by-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/cmp-after-intrinsic-call-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/store-abs-minbitwidth.ll

  Log Message:
  -----------
  Revert "[SLP]Improve minbitwidth analysis for abs/smin/smax/umin/umax intrinsics."

This reverts commit 66b528078e4852412769375e35d2a672bf36a0ec.

This commit caused miscompilations, breaking tests in the libyuv
testsuite - see
https://github.com/llvm/llvm-project/pull/86135#issuecomment-2041049709
for more details.


  Commit: 5f7b133e320b4d856463c87da3167f70477ada63
      https://github.com/llvm/llvm-project/commit/5f7b133e320b4d856463c87da3167f70477ada63
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M libc/src/math/generic/log1p.cpp
    M libc/test/src/math/log1p_test.cpp

  Log Message:
  -----------
  [libc][math] Update error bound for log1p to compensate for directional rounding. (#87893)


  Commit: 7248c9feb9023335ae45265f59a8752da42fb4c4
      https://github.com/llvm/llvm-project/commit/7248c9feb9023335ae45265f59a8752da42fb4c4
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M libc/hdr/math_macros.h

  Log Message:
  -----------
  [libc] Adding FP_INT_* macro constants if missing in overlay mode. (#87880)


  Commit: 8e98435ae9eb34f04c4b1b97975f152c4ba63ba3
      https://github.com/llvm/llvm-project/commit/8e98435ae9eb34f04c4b1b97975f152c4ba63ba3
  Author: darkbuck <michael.hliao at gmail.com>
  Date:   2024-04-06 (Sat, 06 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-extract-vec-elt.mir

  Log Message:
  -----------
  [GISel][Combine] Enhance combining on G_BUILD_VECTOR



Reviewers: aemerson, arsenm

Reviewed By: arsenm

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


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

  Changed paths:
    M llvm/test/Transforms/Attributor/nofpclass.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for non-constant idx for fpclass of `insertelement`; NFC


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

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/Attributor/nofpclass.ll

  Log Message:
  -----------
  [ValueTracking] Support non-constant idx for `computeKnownFPClass` of `insertelement`

Its same logic as before, we just need to intersect what we know about
the new Elt and the entire pre-existing Vec.

Closes #87708


  Commit: c459a366d3e07ae220b96fb1aa4f69375d4b72ba
      https://github.com/llvm/llvm-project/commit/c459a366d3e07ae220b96fb1aa4f69375d4b72ba
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Arith/IR/ValueBoundsOpInterfaceImpl.cpp
    M mlir/test/Dialect/Arith/value-bounds-op-interface-impl.mlir

  Log Message:
  -----------
  [mlir][Arith] `ValueBoundsOpInterface`: Support `arith.select` (#87870)

This commit adds a `ValueBoundsOpInterface` implementation for
`arith.select`. The implementation is almost identical to `scf.if`
(#85895), but there is one special case: if the condition is a shaped
value, the selection is applied element-wise and the result shape can be
inferred from either operand.

Note: This is a re-upload of #86383.


  Commit: 8389b3bf60ef3fbd04c6efc5ff4d4605d10e7fc5
      https://github.com/llvm/llvm-project/commit/8389b3bf60ef3fbd04c6efc5ff4d4605d10e7fc5
  Author: AtariDreams <gfunni234 at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86SelectionDAGInfo.cpp
    M llvm/test/CodeGen/X86/memset-minsize.ll

  Log Message:
  -----------
  [X86] Fix typo: QWORD alignment is greater than or equal to 8, not greater than 8 (#87819)

Align(8) is QWORD aligned, but this was checking to see if alignment was
greater than that, when it should have been checking for being greater
than OR EQUAL to Align(8).

This bug was introduced in
https://github.com/llvm/llvm-project/commit/6a6af30d433d7 during the
transition to the Align type.


  Commit: d08a76d1ac1ba6b376faa908ccbaaabc999dfbc5
      https://github.com/llvm/llvm-project/commit/d08a76d1ac1ba6b376faa908ccbaaabc999dfbc5
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  Log Message:
  -----------
  Fix warnings discovered by #87348 [-Wunused-but-set-variable]


  Commit: ba5dad35fbefec456eb9da0f7c5a0ad983a268b2
      https://github.com/llvm/llvm-project/commit/ba5dad35fbefec456eb9da0f7c5a0ad983a268b2
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/config.h
    M utils/bazel/llvm_configs/config.h.cmake

  Log Message:
  -----------
  [Bazel] Enable LLVM_VERSION_PRINTER_SHOW_BUILD_CONFIG (for #87585)


  Commit: bc8726b16bacc1790cee9a27302f556f5ca7ba39
      https://github.com/llvm/llvm-project/commit/bc8726b16bacc1790cee9a27302f556f5ca7ba39
  Author: Jianjian Guan <jacquesguan at me.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/test/CodeGen/RISCV/rvv/vfmv.v.f.ll

  Log Message:
  -----------
  [RISCV] Support codegen of vfmv.v.f for bfloat vector with both Zvfbfmin and Zfbfmin (#87318)

vfmv, vfmerge should support bfloat vector when we have both Zvfbfmin
and Zfbfmin, this patch tries to support vfmv first.


  Commit: ccc02563f4d620d4d29a1cbd2c463871cc54745b
      https://github.com/llvm/llvm-project/commit/ccc02563f4d620d4d29a1cbd2c463871cc54745b
  Author: Aviad Cohen <aviadcohen7 at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
    M mlir/lib/Dialect/Utils/StructuredOpsUtils.cpp

  Log Message:
  -----------
  [mlir][linalg]: Fixed possible memory leak in cloneToCollapsedOp (#87595)

* Direct call to `clone` function leads to memory leak. Instead, we should use `RewriterBase` clone function instead.


  Commit: a2c4b7c8e2740a83f141dcf06cf50359588190b9
      https://github.com/llvm/llvm-project/commit/a2c4b7c8e2740a83f141dcf06cf50359588190b9
  Author: Fabian Mora <fmora.dev at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Target/LLVMIR/LLVMImportInterface.h
    M mlir/lib/Target/LLVMIR/ModuleImport.cpp
    A mlir/test/Target/LLVMIR/Import/test.ll
    M mlir/test/lib/Dialect/Test/CMakeLists.txt
    A mlir/test/lib/Dialect/Test/TestFromLLVMIRTranslation.cpp
    M mlir/tools/mlir-translate/mlir-translate.cpp

  Log Message:
  -----------
  [mlir] Add `convertInstruction` and `getSupportedInstructions` to `LLVMImportInterface` (#86799)

This patch adds the `convertInstruction` and `getSupportedInstructions`
to `LLVMImportInterface`, allowing any non-LLVM dialect to specify how
to import LLVM IR instructions and overriding the default import of LLVM instructions.


  Commit: 869797daca38941e0af3bcd8ae5300bcebf7b1a9
      https://github.com/llvm/llvm-project/commit/869797daca38941e0af3bcd8ae5300bcebf7b1a9
  Author: David Green <david.green at arm.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

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

  Log Message:
  -----------
  [VectorCombine] Add a debug message for foldShuffleOfCastop. NFC

This optimization, much like the existing foldShuffleOfBinops can cause a
lot of regressions. Add a quick debug message to make the costs are more
obvious.


  Commit: da5a86b53e7d6e7ff7407b16c2c869894493ee99
      https://github.com/llvm/llvm-project/commit/da5a86b53e7d6e7ff7407b16c2c869894493ee99
  Author: Jacob Lifshay <programmerjake at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M llvm/docs/LangRef.rst

  Log Message:
  -----------
  [IR] Fix typo in trunc nuw semantics; NFC (#87285)


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

  Changed paths:
    M libcxx/docs/Status/FormatIssues.csv
    M libcxx/docs/Status/FormatPaper.csv

  Log Message:
  -----------
  [libc++][doc] Updates format status page.


  Commit: 7a4e89761a13bfad27a2614ecea5e8698f50336c
      https://github.com/llvm/llvm-project/commit/7a4e89761a13bfad27a2614ecea5e8698f50336c
  Author: Danny Mösch <danny.moesch at icloud.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/readability/AvoidReturnWithVoidValueCheck.cpp
    M clang-tools-extra/clang-tidy/readability/BracesAroundStatementsCheck.cpp
    M clang-tools-extra/clang-tidy/readability/BracesAroundStatementsCheck.h
    A clang-tools-extra/clang-tidy/utils/BracesAroundStatement.cpp
    A clang-tools-extra/clang-tidy/utils/BracesAroundStatement.h
    M clang-tools-extra/clang-tidy/utils/CMakeLists.txt
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/readability/avoid-return-with-void-value.cpp

  Log Message:
  -----------
  [clang-tidy] Add fix-its to `readability-avoid-return-with-void-value` check (#81420)


  Commit: 298f8f73e1d861f8b839477c6edc941ca994922d
      https://github.com/llvm/llvm-project/commit/298f8f73e1d861f8b839477c6edc941ca994922d
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/utils/TableGen/MveEmitter.cpp

  Log Message:
  -----------
  [clang][NFC] Remove "Sema" prefix from Sema-related functions (#87914)

@AaronBallman once noted that this prefix is a historical accident, and
shouldn't be there. I agree.


  Commit: a61252419779a6d4a5ebf71e7e2fc4adc75cfddd
      https://github.com/llvm/llvm-project/commit/a61252419779a6d4a5ebf71e7e2fc4adc75cfddd
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/RISCV/reductions.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-drop-wrapping-flags.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-transformed-operand.ll

  Log Message:
  -----------
  [SLP]Fix the cost of the reduction result to the final type.

Need to fix the way the cost is calculated, otherwise wrong cast opcode
can be selected and lead to the over-optimistic vector cost. Plus, need
to take into account reduction type size.

Reviewers: RKSimon

Reviewed By: RKSimon

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


  Commit: c91254db1dcace869f4d3f1ac659bdd7700a1459
      https://github.com/llvm/llvm-project/commit/c91254db1dcace869f4d3f1ac659bdd7700a1459
  Author: Alexander Richardson <alexrichardson at google.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M compiler-rt/CMakeLists.txt
    M compiler-rt/cmake/Modules/AddCompilerRT.cmake
    M compiler-rt/test/CMakeLists.txt
    M compiler-rt/test/fuzzer/lit.cfg.py
    M compiler-rt/test/lit.common.cfg.py
    M compiler-rt/test/lit.common.configured.in
    M compiler-rt/test/safestack/lit.cfg.py

  Log Message:
  -----------
  [compiler-rt] Allow running tests without installing first

Currently, the testsuite uses the default runtimes path to find the
runtimes libraries which may or may not match the just-built runtimes.
This change uses the `-resource-dir` flag for clang whenever
`COMPILER_RT_TEST_STANDALONE_BUILD_LIBS` is set to ensure that we are
actually testing the currently built libraries rather than the ones
bundled with `${COMPILER_RT_TEST_COMPILER}`.

The existing logic works fine when clang and compiler-rt share the same
build directory ``-DLLVM_ENABLE_PROJECTS=clang;compiler-rt`, but when
building compiler-rt separately we need to tell the compiler used for
the tests where it can find the just-built libraries.

This reduces the fixes check-all failures to one in my configuration:
```
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -G Ninja
-DCMAKE_C_COMPILER=$HOME/output/upstream-llvm/bin/clang
-DCMAKE_CXX_COMPILER=$HOME/output/upstream-llvm/bin/clang++
-DCOMPILER_RT_INCLUDE_TESTS=ON
-DLLVM_EXTERNAL_LIT=$HOME/build/upstream-llvm-project-build/bin/llvm-lit
-DLLVM_CMAKE_DIR=$HOME/output/upstream-llvm
-DCOMPILER_RT_DEBUG=OFF
-S $HOME/src/upstream-llvm-project/compiler-rt
-B $HOME/src/upstream-llvm-project/compiler-rt/cmake-build-all-sanitizers
```

Reviewed By: vitalybuka, delcypher, MaskRay

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


  Commit: d57d09477996e50237e2fc949bd5b747259b0012
      https://github.com/llvm/llvm-project/commit/d57d09477996e50237e2fc949bd5b747259b0012
  Author: David Green <david.green at arm.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    A llvm/test/Analysis/CostModel/AArch64/shuffle-store.ll

  Log Message:
  -----------
  [AArch64] Add test for LD2/LD3/LD4 shuffle cost models. NFC


  Commit: 10b1864dff816174cd83fb2d3bc622e25fcf0f8a
      https://github.com/llvm/llvm-project/commit/10b1864dff816174cd83fb2d3bc622e25fcf0f8a
  Author: Alex Richardson <alexrichardson at google.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M compiler-rt/CMakeLists.txt

  Log Message:
  -----------
  [compiler-rt] Do not add -rpath to linker args on Windows

This is not supported. Should hopefully fix Windows CI after
commit c91254db1dcace869f4d3f1ac659bdd7700a1459.


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

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

  Log Message:
  -----------
  [cmake] Prevent implicitly passing `-no_exported_symbols` (#87846)

* It is possible to setup llvm-project builds without going through
`llvm/CMakeList.txt` so the fatal error handling should be smarter.
* Disable option on Apple style lldb-linux builds.


  Commit: 3f16ff4e68552951cf39b2f1c707df64d7c8ec59
      https://github.com/llvm/llvm-project/commit/3f16ff4e68552951cf39b2f1c707df64d7c8ec59
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M llvm/lib/ProfileData/MemProf.cpp

  Log Message:
  -----------
  [memprof] Use static instead of anonymous namespaces (#87889)

This patch replaces anonymous namespaces with static as per LLVM
Coding Standards.


  Commit: 15d11a4de9f62fd8fc6bdb888e32c9e4b86d0cdd
      https://github.com/llvm/llvm-project/commit/15d11a4de9f62fd8fc6bdb888e32c9e4b86d0cdd
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp

  Log Message:
  -----------
  [VPlan] Track IsOrdered in VPReductionRecipe, remove use of ILV (NFCI).

Instead of using ILV.useOrderedReductions during ::execute, instead
store the information at recipe construction.

Another step towards making recipe'::execute independent of legacy ILV.


  Commit: 943db678dadd6088629d08ec3e582bea0595f2d2
      https://github.com/llvm/llvm-project/commit/943db678dadd6088629d08ec3e582bea0595f2d2
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M clang/lib/Format/FormatTokenSource.h
    M clang/lib/Format/UnwrappedLineParser.cpp

  Log Message:
  -----------
  [clang-format][NFC] Add getNextNonComment() to FormatTokenSource (#87868)


  Commit: 649523f6f7b67604034a8af5d8ca6830fcd64aab
      https://github.com/llvm/llvm-project/commit/649523f6f7b67604034a8af5d8ca6830fcd64aab
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

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

  Log Message:
  -----------
  [ORC] Add an ExecutionSession state verifier.

Add an ExecutionSession state verifier, enabled under EXPENSIVE_CHECKS, that can
be used to identify inconsistent session state to assist in tracking down bugs.

This initial version was motivated by investigation of the EDU-update bug that
was fixed in a671ceec334.

rdar://125376708


  Commit: 4d1bb7699bfa62ca113dcfabe6da8eae74fe7372
      https://github.com/llvm/llvm-project/commit/4d1bb7699bfa62ca113dcfabe6da8eae74fe7372
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    M llvm/lib/ProfileData/InstrProfWriter.cpp
    A llvm/test/tools/llvm-profdata/memprof-merge-v0.test

  Log Message:
  -----------
  [memprof] Fix a typo in writeMemProfV1 (#87890)

This patch borrows memprof-merge.test to test --memprof-version.


  Commit: da675b922cca3dc9a76642d792e882979a3d8c82
      https://github.com/llvm/llvm-project/commit/da675b922cca3dc9a76642d792e882979a3d8c82
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

  Changed paths:
    A llvm/test/CodeGen/RISCV/prolog-epilogue.ll
    A llvm/test/CodeGen/RISCV/stack-offset.ll

  Log Message:
  -----------
  [RISCV] Expand test coverage of stack offsets between 2^11 and 2^15

Adds two sets of tests.  First, one for prolog/epilogue insertions where
the second stack adjustment can be done with shNadd for zba.  Second, a
set of tests with offsets off SP in the same ranges, but also adding
varying alignments.


  Commit: cebf77fb936a7270c7e3fa5c4a7e76216321d385
      https://github.com/llvm/llvm-project/commit/cebf77fb936a7270c7e3fa5c4a7e76216321d385
  Author: Haohai Wen <haohai.wen at intel.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/MachineBasicBlock.cpp
    M llvm/test/CodeGen/X86/fsafdo_test1.ll

  Log Message:
  -----------
  [CodeGen][DebugInfo] Add missing DebugLoc for SplitCriticalEdge (#72192)

In SplitCriticalEdge, DebugLoc of the branch instruction in new created
MBB was set to empty. It should be set and we can find proper DebugLoc
for it in most cases. This patch set it to non empty merged DebugLoc of
current MBB branches.


  Commit: 739fa1c84b92b8af7dceedf2e5ad808a64e85a57
      https://github.com/llvm/llvm-project/commit/739fa1c84b92b8af7dceedf2e5ad808a64e85a57
  Author: Carlos Alberto Enciso <carlos.alberto.enciso at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Support/GenericLoopInfo.h
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    A llvm/test/Transforms/IndVarSimplify/pr51735-1.ll
    A llvm/test/Transforms/IndVarSimplify/pr51735-2.ll
    A llvm/test/Transforms/IndVarSimplify/pr51735-3.ll
    A llvm/test/Transforms/IndVarSimplify/pr51735.ll

  Log Message:
  -----------
  [indvars] Missing variables at Og: (#69920)

https://bugs.llvm.org/show_bug.cgi?id=51735
https://github.com/llvm/llvm-project/issues/51077

In the given test case:
 ```
4 ...
 5 void bar() {
 6   int End = 777;
 7   int Index = 27;
 8   char Var = 1;
 9   for (; Index < End; ++Index)
10     ;
11   nop(Index);
12 }
13 ...
```
Missing local variable `Index` after loop `Induction Variable Elimination`. When adding a breakpoint at line `11`, LLDB does not have information on the variable. But it has info on `Var` and `End`.


  Commit: f3b55973645d551d67af7662b815a5f415874ff7
      https://github.com/llvm/llvm-project/commit/f3b55973645d551d67af7662b815a5f415874ff7
  Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/test/CodeGen/RISCV/rvv/vmv-copy.mir
    M llvm/test/CodeGen/RISCV/rvv/zvlsseg-copy.mir

  Log Message:
  -----------
  [RISCV] Use larger copies when register tuples are aligned

When the encoding of register tuples are aligned, we can use a copy
with larger LMUL to reduce copies.

Reviewers: preames, topperc, lukel97

Reviewed By: topperc, lukel97

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


  Commit: 006aaf32258fc27656c936f6aad729e4c77e3847
      https://github.com/llvm/llvm-project/commit/006aaf32258fc27656c936f6aad729e4c77e3847
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-04-07 (Sun, 07 Apr 2024)

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

  Log Message:
  -----------
  [ORC] Replace some KV loop variables with structured bindings.

This allows us to remove a lot of boilerplate .first and .second references
and improve readability.

Coding my way home: 1.58814S, 91.93889W


  Commit: 91189afef5fb887699da88e0ed46bdf3421d4bce
      https://github.com/llvm/llvm-project/commit/91189afef5fb887699da88e0ed46bdf3421d4bce
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Support/GenericLoopInfo.h
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    R llvm/test/Transforms/IndVarSimplify/pr51735-1.ll
    R llvm/test/Transforms/IndVarSimplify/pr51735-2.ll
    R llvm/test/Transforms/IndVarSimplify/pr51735-3.ll
    R llvm/test/Transforms/IndVarSimplify/pr51735.ll

  Log Message:
  -----------
  Revert "[indvars] Missing variables at Og: (#69920)"

This reverts commit 739fa1c84b92b8af7dceedf2e5ad808a64e85a57.

This introduces a layering violation by using IR in Support headers.


  Commit: 73ddb2a7471986a7ed600dbea14efc60f0d0db47
      https://github.com/llvm/llvm-project/commit/73ddb2a7471986a7ed600dbea14efc60f0d0db47
  Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.h
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.h
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.td

  Log Message:
  -----------
  [RISCV] Store VLMul/NF into RegisterClass's TSFlags

This TSFlags was introduced by https://reviews.llvm.org/D108767.

A base class of all RISCV RegisterClass is added and we store
IsVRegClass/VLMul/NF into TSFlags and add helpers to get them.

This can reduce some lines and I think there will be more usages.

Reviewers: preames, topperc

Reviewed By: topperc

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


  Commit: b80e51ce4d90a3443f98fe5413171392ae768597
      https://github.com/llvm/llvm-project/commit/b80e51ce4d90a3443f98fe5413171392ae768597
  Author: Christian Sigg <csigg at google.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  [mlir][bazel] Fix BUILD after a2c4b7c8e2740a83f141dcf06cf50359588190b9.


  Commit: fdd023612ce401d7a1a310fcad2477d19e1d0a5e
      https://github.com/llvm/llvm-project/commit/fdd023612ce401d7a1a310fcad2477d19e1d0a5e
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  Revert "[ORC] Replace some KV loop variables with structured bindings."

This reverts commit 006aaf32258fc27656c936f6aad729e4c77e3847 while I
investigate some bot failures (See e.g.
https://lab.llvm.org/buildbot/#/builders/109/builds/86659).


  Commit: 9ffecef1c651a5c1a3f284b3257ec01ff526b49c
      https://github.com/llvm/llvm-project/commit/9ffecef1c651a5c1a3f284b3257ec01ff526b49c
  Author: Prashant Kumar <pk5561 at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td

  Log Message:
  -----------
  [mlir][vector][NFC] Fix typo temp -> tmp. (#87878)


  Commit: eaa063f0c6d51a3b561bc2007fe95420949f42d1
      https://github.com/llvm/llvm-project/commit/eaa063f0c6d51a3b561bc2007fe95420949f42d1
  Author: Wang Pengcheng <wangpengcheng.pp at bytedance.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/test/Driver/riscv-profiles.c

  Log Message:
  -----------
  [RISCV] Remove duplicated --target


  Commit: 110c22fe127f0c8c0d8acfddd123b9e9423d087a
      https://github.com/llvm/llvm-project/commit/110c22fe127f0c8c0d8acfddd123b9e9423d087a
  Author: Bevin Hansson <59652494+bevin-hansson at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/ExpandLargeFpConvert.cpp
    M llvm/test/CodeGen/AMDGPU/fptoi.i128.ll
    A llvm/test/CodeGen/AMDGPU/itofp.i128.bf.ll
    M llvm/test/CodeGen/AMDGPU/itofp.i128.ll

  Log Message:
  -----------
  [ExpandLargeFpConvert] Support bfloat. (#87619)

The conversion expansions did not properly handle bfloat types.

I'm not certain that these expansions are completely correct;
I don't have any experience with AMDGPU or the ability to run
anything to test it.

Note that it doesn't seem like AMDGPU with GlobalISel can
handle fptrunc of float to bfloat, which is needed for itofp.
I've omitted the GISEL run for the bfloat case.

This fixes #85379.


  Commit: 2084a07087a55b55bb3c2a8aafbe1c4464fdf796
      https://github.com/llvm/llvm-project/commit/2084a07087a55b55bb3c2a8aafbe1c4464fdf796
  Author: Saiyedul Islam <Saiyedul.Islam at amd.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M compiler-rt/CMakeLists.txt
    M compiler-rt/cmake/Modules/AddCompilerRT.cmake
    M compiler-rt/test/CMakeLists.txt
    M compiler-rt/test/fuzzer/lit.cfg.py
    M compiler-rt/test/lit.common.cfg.py
    M compiler-rt/test/lit.common.configured.in
    M compiler-rt/test/safestack/lit.cfg.py

  Log Message:
  -----------
  Revert "[compiler-rt] Allow running tests without installing first"

This reverts commit c91254db1dcace869f4d3f1ac659bdd7700a1459.

It was throwing error:
 g++: error: unrecognized command line option ‘-resource-dir=


  Commit: ac321cbb0350996ceef4e6d9e8a1035880609288
      https://github.com/llvm/llvm-project/commit/ac321cbb0350996ceef4e6d9e8a1035880609288
  Author: David Green <david.green at arm.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
    M llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/lib/CodeGen/MachineVerifier.cpp
    M llvm/lib/Target/AArch64/AArch64Combine.td
    M llvm/lib/Target/AArch64/AArch64InstrAtomics.td
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-build-vector.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-extract-vec-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-icmp-to-lhs-known-bits.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-insert-vec-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-cmp.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-extract-vector-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-insert-vector-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-phi.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-lowering-shuffle-splat.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/prelegalizer-combiner-icmp-to-true-false-known-bits.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/regbank-insert-vector-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/select-insert-vector-elt.mir
    M llvm/test/CodeGen/AArch64/aarch64-bit-gen.ll
    M llvm/test/CodeGen/AArch64/aarch64-minmaxv.ll
    M llvm/test/CodeGen/AArch64/arm64-neon-copy.ll
    M llvm/test/CodeGen/AArch64/insertextract.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-extract-vector-load.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-non-integral-address-spaces-vectors.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extract-vector-elt.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extractelement-crash.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-insert-vector-elt.mir
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/insertelement.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/shufflevector.ll

  Log Message:
  -----------
  [AArch64][GlobalISel] Legalize Insert vector element (#81453)

This attempts to standardize and extend some of the insert vector
element lowering. Most notably:
- More types are handled by splitting illegal vectors.
- The index type for G_INSERT_VECTOR_ELT is canonicalized to
  TLI.getVectorIdxTy(), similar to extact_vector_element.
- Some of the existing patterns now have the index type specified to
  make sure they can apply to GISel too.
- The C++ selection code has been removed, relying on tablegen patterns.
- G_INSERT_VECTOR_ELT with small GPR input elements are pre-selected to
  use a i32 type, allowing the existing patterns to apply.
- Variable index inserts are lowered in post-legalizer lowering,
  expanding into a stack store and reload.


  Commit: 9fd2e2c2fd0dbd5d11a5899bd6bb4db0fd3f2c35
      https://github.com/llvm/llvm-project/commit/9fd2e2c2fd0dbd5d11a5899bd6bb4db0fd3f2c35
  Author: David Green <david.green at arm.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/test/CodeGen/AArch64/sve-nontemporal-masked-ldst.ll

  Log Message:
  -----------
  [DAG][AArch64] Support masked loads/stores with nontemporal flags (#87608)

SVE has some non-temporal masked loads and stores. The metadata coming
from the nodes is not copied to the MMO at the moment though, meaning it
will generate a normal instruction. This patch ensures that the right
flags are set if the instruction has non-temporal metadata.


  Commit: 81a7b6454e195f2051b76d9e5b1f0c430df0f502
      https://github.com/llvm/llvm-project/commit/81a7b6454e195f2051b76d9e5b1f0c430df0f502
  Author: Billy Zhu <billyzhu at modular.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M mlir/lib/Target/LLVMIR/DebugImporter.cpp
    M mlir/lib/Target/LLVMIR/DebugImporter.h
    M mlir/lib/Target/LLVMIR/DebugTranslation.cpp
    M mlir/test/Target/LLVMIR/Import/debug-info.ll
    M mlir/test/Target/LLVMIR/llvmir-debug.mlir

  Log Message:
  -----------
  [MLIR][LLVM] Recursion importer handle repeated self-references (#87295)

Followup to this discussion:
https://github.com/llvm/llvm-project/pull/80251#discussion_r1535599920.

The previous debug importer was correct but inefficient. For cases with
mutual recursion that contain more than one back-edge, each back-edge
would result in a new translated instance. This is because the previous
implementation never caches any translated result with unbounded
self-references. This means all translation inside a recursive context
is performed from scratch, which will incur repeated run-time cost as
well as repeated attribute sub-trees in the translated IR (differing
only in their `recId`s).

This PR refactors the importer to handle caching inside a recursive
context.
- In the presence of unbound self-refs, the translation result is cached
in a separate cache that keeps track of the set of dependent unbound
self-refs.
- A dependent cache entry is valid only when all the unbound self-refs
are in scope. Whenever a cached entry goes out of scope, it will be
removed the next time it is looked up.


  Commit: 8ddfb66903969224ebd4e10c1461d2be323f4798
      https://github.com/llvm/llvm-project/commit/8ddfb66903969224ebd4e10c1461d2be323f4798
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Builder/FIRBuilder.h
    M flang/lib/Lower/ConvertVariable.cpp
    M flang/lib/Lower/DirectivesCommon.h
    M flang/lib/Optimizer/Builder/FIRBuilder.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp
    M flang/test/Lower/Intrinsics/maskl.f90
    M flang/test/Lower/Intrinsics/maskr.f90

  Log Message:
  -----------
  [flang] Fix MASKR/MASKL lowering for INTEGER(16) (#87496)

The all one masks was not properly created for i128 types because
builder.createIntegerConstant ended-up truncating -1 to something
positive.

Add a builder.createAllOnesInteger/createMinusOneInteger helpers and use
them where createIntegerConstant(..., -1) was used.
Add an assert in createIntegerConstant to catch negative numbers for
i128 type.


  Commit: 3c210d1cfdf4d8cd56de70fa40d01398e29044dc
      https://github.com/llvm/llvm-project/commit/3c210d1cfdf4d8cd56de70fa40d01398e29044dc
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/docs/Extensions.md

  Log Message:
  -----------
  [flang][NFC] document BOZ error in DIM, MOD, MODULO, and SIGN (#87779)

It is highly ambiguous to what type BOZ should be resolved in DIM, MOD,
MODULO, and SIGN intrinsic arguments. Some other compilers accept them,
but none agree. See table below.

List them explicitly as non supported extensions (semantics already
reject them, this is an NFC).

Table listing the resolved types of the intrinsic results when there is
a BOZ argument:

|                     | gfortran | nvfortran | ifort | nagfor | xlf    |
| ------------------- | -------- | --------- | ----- | ------ | ------ |
|  DIM(INT4, BOZ)     |  INT16   |  INT4     |  INT8 | crash  |  INT4  |
|  DIM(BOZ, REAL4)    | error    |  INT8     | error | error  |  REAL4 |
|  DIM(REAL4, BOZ)    | error    |  REAL4    | error | error  |  REAL4 |
|  DIM(BOZ, INT4)     |  INT16   |  INT8     |  INT8 | INT8   |  INT4  |
|  DIM(BOZ, BOZ)      |  INT16   |  INT8     |  INT8 | INT8   |  REAL4 |
|  MOD(INT4, BOZ)     |  INT16   |  INT4     |  INT8 | crash  |  INT4  |
|  MOD(BOZ, REAL4)    | error    |  INT8     | error | error  |  REAL4 |
|  MOD(REAL4, BOZ)    | error    |  REAL4    | error | error  |  REAL4 |
|  MOD(BOZ, INT4)     |  INT16   |  INT8     |  INT8 | INT8   |  INT4  |
|  MOD(BOZ, BOZ)      |  INT16   |  INT8     |  INT8 | INT8   |  INT4  |
|  MODULO(INT4, BOZ)  |  INT16   |  INT4     |  INT8 | crash  |  INT4  |
|  MODULO(BOZ, REAL4) | error    |  INT8     | error | error  |  REAL4 |
|  MODULO(REAL4, BOZ) | error    |  REAL4    | error | error  |  REAL4 |
|  MODULO(BOZ, INT4)  |  INT16   |  INT8     |  INT8 | INT8   |  INT4  |
|  MODULO(BOZ, BOZ)   |  INT16   |  INT8     |  INT8 | INT8   |  INT8  |
|  SIGN(INT4, BOZ)    | error    |  INT4     |  INT8 | INT4   |  INT4  |
|  SIGN(BOZ, REAL4)   | error    |  INT8     | error | error  |  REAL4 |
|  SIGN(REAL4, BOZ)   | error    |  REAL4    | error | error  |  REAL4 |
|  SIGN(BOZ, INT4)    | error    |  INT8     |  INT8 | INT8   |  INT4  |
|  SIGN(BOZ, BOZ)     |  INT16   |  INT8     |  INT8 | INT8   |  REAL4 |


  Commit: 0bfea40101c10f80ee35d7fbfd4459e98cdb289c
      https://github.com/llvm/llvm-project/commit/0bfea40101c10f80ee35d7fbfd4459e98cdb289c
  Author: David Green <david.green at arm.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/Analysis/CostModel/AArch64/shuffle-other.ll
    M llvm/test/Analysis/CostModel/AArch64/shuffle-store.ll

  Log Message:
  -----------
  [AArch64] More shuffle-store test cases. NFC


  Commit: 6a7da2e30dc38ba92875bfe1da5520c950bab1e3
      https://github.com/llvm/llvm-project/commit/6a7da2e30dc38ba92875bfe1da5520c950bab1e3
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/lib/Lower/Allocatable.cpp
    A flang/test/Lower/allocate-source-allocatables-2.f90

  Log Message:
  -----------
  [flang] Fix source allocation to explicit length after deferred length object (#87785)

Flang supports source allocation to allocatable or pointers with a non
deferred length that do not match the source length. This documented at:
https://github.com/llvm/llvm-project/blob/9708d0900311503aa4685d6810d8caf0412e15d7/flang/docs/Extensions.md?plain=1#L312

The current lowering code was bugged when such explicit length allocate
object appeared after a deferred length object in the source allocation
list:

Since "lenParams" had been computed when generating allocation of the
deferred length object, the call to genSetDeferredLengthParameters was
not a no-op on when lowering the explicit length allocation, and the
explicit length was overridden with the source length.

The output of the program added in test was:

```
ZZheZZ
ZZhelloZZ
ZZhelloZZ
```

Instead of:

```
ZZheZZ
ZZhelloZZ
ZZhello  ZZ
```

Skip genSetDeferredLengthParameters when the allocate object has non
deferred length.


  Commit: 364028a1a51689d2b33d3ec50c426fbeac269679
      https://github.com/llvm/llvm-project/commit/364028a1a51689d2b33d3ec50c426fbeac269679
  Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/test/Driver/riscv-profiles.c
    M clang/test/Preprocessor/riscv-target-features.c
    M llvm/docs/RISCVUsage.rst
    M llvm/lib/Support/RISCVISAInfo.cpp
    M llvm/lib/Target/RISCV/RISCVFeatures.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZcmop.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZimop.td
    M llvm/test/CodeGen/RISCV/attributes.ll
    M llvm/test/CodeGen/RISCV/rv32zimop-intrinsic.ll
    M llvm/test/CodeGen/RISCV/rv64zimop-intrinsic.ll
    M llvm/test/MC/RISCV/attribute-arch.s
    M llvm/test/MC/RISCV/compressed-zicfiss.s
    M llvm/test/MC/RISCV/rv32zcmop-invalid.s
    M llvm/test/MC/RISCV/rv32zimop-invalid.s
    M llvm/test/MC/RISCV/rvzcmop-valid.s
    M llvm/test/MC/RISCV/rvzimop-valid.s
    M llvm/unittests/Support/RISCVISAInfoTest.cpp

  Log Message:
  -----------
  [RISCV] Zimop/Zcmop are ratified

Remove them from experimental.

See also:
https://github.com/riscv/riscv-isa-manual/blob/main/src/zimop.adoc

Reviewers: kito-cheng

Reviewed By: kito-cheng

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


  Commit: 221f438af1c1292d787b58da99a5a7b371888456
      https://github.com/llvm/llvm-project/commit/221f438af1c1292d787b58da99a5a7b371888456
  Author: Mats Petersson <mats.petersson at arm.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/ReductionProcessor.cpp
    M flang/lib/Lower/OpenMP/ReductionProcessor.h
    A flang/test/Lower/OpenMP/parallel-reduction-complex-mul.f90
    A flang/test/Lower/OpenMP/parallel-reduction-complex.f90

  Log Message:
  -----------
  [flang][OpenMP] Add support for complex reductions (#87488)

This adds support for complex type to the OpenMP reductions. 

Note that some more work would be needed to give decent error messages when complex 
is used in ways that need client supplied functions (e.g. MAX or MIN). It does fail these with
a not so user friendly message at present.


  Commit: cf7d36fe342c5c5ac39150ca0b4b70a3d17ae66b
      https://github.com/llvm/llvm-project/commit/cf7d36fe342c5c5ac39150ca0b4b70a3d17ae66b
  Author: Zentrik <Zentrik at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
    M llvm/lib/Transforms/Scalar/NewGVN.cpp

  Log Message:
  -----------
  [NFC] Fix misspellings of effects (#87795)


  Commit: 170c525d79a4ab3659041b0655ac9697768fc915
      https://github.com/llvm/llvm-project/commit/170c525d79a4ab3659041b0655ac9697768fc915
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/avx512-insert-extract.ll
    M llvm/test/CodeGen/X86/insertelement-var-index.ll
    M llvm/test/CodeGen/X86/movmsk-cmp.ll
    M llvm/test/CodeGen/X86/pr63439.ll
    M llvm/test/CodeGen/X86/pr64439.ll
    M llvm/test/CodeGen/X86/vec_cast.ll

  Log Message:
  -----------
  [X86] combineExtractVectorElt - fold extract(trunc(x),c) -> trunc(extract(x,c))


  Commit: 8461d901a770516cf2069fe3bce979a6f8fc8d76
      https://github.com/llvm/llvm-project/commit/8461d901a770516cf2069fe3bce979a6f8fc8d76
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M libclc/CMakeLists.txt

  Log Message:
  -----------
  [libclc] Restore linking against dynamic libLLVM for out-of-tree builds

This fixes a regression where building against an installation without
the static libraries would fail. This just reinstates the old behaviour
for out-of-tree builds, assuming that in-tree builds (which still aren't
officially supported) will have the static libraries available. We can
refine this as we move towards supporting in-tree builds.


  Commit: c2067c1f471ac54312cb5e1e0efd4ea5fd21cc79
      https://github.com/llvm/llvm-project/commit/c2067c1f471ac54312cb5e1e0efd4ea5fd21cc79
  Author: Balázs Kéri <balazs.keri at ericsson.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/docs/analyzer/checkers.rst
    M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
    M clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
    M clang/test/Analysis/analyzer-config.c
    M clang/test/Analysis/std-c-library-functions-vs-stream-checker.c
    M clang/test/Analysis/stream-errno-note.c
    M clang/test/Analysis/stream-errno.c
    M clang/test/Analysis/stream-error.c
    M clang/test/Analysis/stream-note.c
    A clang/test/Analysis/stream-pedantic.c
    M clang/test/Analysis/stream-stdlibraryfunctionargs.c
    M clang/test/Analysis/stream.c

  Log Message:
  -----------
  [clang][analyzer] Add "pedantic" mode to StreamChecker. (#87322)

The checker may create failure branches for all stream write operations
only if the new option "pedantic" is set to true.
Result of the write operations is often not checked in typical code. If
failure branches are created the checker will warn for unchecked write
operations and generate a lot of "false positives" (these are valid
warnings but the programmer does not care about this problem).


  Commit: 2abd71ec51079d84a29639389dc9a66edd4909e5
      https://github.com/llvm/llvm-project/commit/2abd71ec51079d84a29639389dc9a66edd4909e5
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M mlir/lib/Target/LLVMIR/DebugImporter.cpp

  Log Message:
  -----------
  [mlir] Fix -Wunused-variable in DebugImporter.cpp (NFC)

llvm-project/mlir/lib/Target/LLVMIR/DebugImporter.cpp:377:10:
error: unused variable '[_, inserted]' [-Werror,-Wunused-variable]
    auto [_, inserted] = dependentCache.try_emplace(
         ^
1 error generated.


  Commit: 8b3b4a92adee40483c27f26c478a384cd69c6f05
      https://github.com/llvm/llvm-project/commit/8b3b4a92adee40483c27f26c478a384cd69c6f05
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  [RISCV] Fix canFoldToVWWithSameExtension allowing different FP extensions (#87978)


  Commit: 5a855d51272608e2122c45d86676aa2247a11d19
      https://github.com/llvm/llvm-project/commit/5a855d51272608e2122c45d86676aa2247a11d19
  Author: Hirofumi Nakamura <k.nakamura.hirofumi at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/unittests/Format/FormatTestTableGen.cpp

  Log Message:
  -----------
  [clang-format] Added unittest of TableGen formatting w.r.t. block type calculation. (#87924)


  Commit: 86b0918e8e5f8e1aacebf4ba8901fc66aed3412f
      https://github.com/llvm/llvm-project/commit/86b0918e8e5f8e1aacebf4ba8901fc66aed3412f
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp

  Log Message:
  -----------
  [LinkerWrapper] Do not include config files for device linking (#87659)

Summary:
The device linking phase only wants to create the necessary commands to
emit the device binary. There were issues where the user's default
config file was being used and passing incompatible arguments to the
device compilation step. Simply disable this since we do not want any
additional arguments to these clang invocations.


  Commit: acb2a475766b621fe7e5d792ff7948a5794c3e87
      https://github.com/llvm/llvm-project/commit/acb2a475766b621fe7e5d792ff7948a5794c3e87
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-fdiv.ll

  Log Message:
  -----------
  AMDGPU: Regenerate test checks


  Commit: fc9a5076c31139878da2fa12ef16090a58d55782
      https://github.com/llvm/llvm-project/commit/fc9a5076c31139878da2fa12ef16090a58d55782
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/tools/llvm-reduce/reduce-flags.ll
    M llvm/tools/llvm-reduce/deltas/ReduceInstructionFlags.cpp

  Log Message:
  -----------
  llvm-reduce: Reduce nuw/nsw flags from trunc


  Commit: 38f996bb2bc4f922c7b441d730ab3a3ad2fa1506
      https://github.com/llvm/llvm-project/commit/38f996bb2bc4f922c7b441d730ab3a3ad2fa1506
  Author: Malay Sanghi <malay.sanghi at intel.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/MachinePipeliner.cpp

  Log Message:
  -----------
  Replace copy with a reference. (#87975)


  Commit: 8cb642bf18bfd3e6e8576f4f090fa584f68bb0cc
      https://github.com/llvm/llvm-project/commit/8cb642bf18bfd3e6e8576f4f090fa584f68bb0cc
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/AArch64/GlobalISel/call-translator-tail-call-sret.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/constant-dbg-loc.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-store-metadata.ll
    M llvm/test/CodeGen/X86/GlobalISel/irtranslator-callingconv.ll

  Log Message:
  -----------
  GlobalISel: Regenerate test checks


  Commit: 95f984f37e390a6d2e8a4b0852ea4d5a83126287
      https://github.com/llvm/llvm-project/commit/95f984f37e390a6d2e8a4b0852ea4d5a83126287
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  ValueTracking: Don't use unnecessary null checked dyn_cast


  Commit: 8c6e0459c49da298f3b911fc3699c2254a20d882
      https://github.com/llvm/llvm-project/commit/8c6e0459c49da298f3b911fc3699c2254a20d882
  Author: bahareh-farhadi <53280095+bahareh-farhadi at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/unittests/Interpreter/InterpreterExtensionsTest.cpp

  Log Message:
  -----------
  [zOS] Turn CLANG_INTERPRETER_PLATFORM_CANNOT_CREATE_LLJIT on for zOS (#87797)

PR
[https://github.com/llvm/llvm-project/pull/84461](https://github.com/llvm/llvm-project/pull/84461)
disabled `clang/unittests/Interpreter/InterpreterExtensionsTest.cpp` for
AIX by turning on `CLANG_INTERPRETER_PLATFORM_CANNOT_CREATE_LLJIT`.
This PR turns `CLANG_INTERPRETER_PLATFORM_CANNOT_CREATE_LLJIT` on for
zOS as well, since LLJIT cannot be created on zOS either.

Co-authored-by: Bahareh <bahareh.farhadi at ibm.com>


  Commit: eb07600f8eff793664a4d6b181e6f31de1f5f973
      https://github.com/llvm/llvm-project/commit/eb07600f8eff793664a4d6b181e6f31de1f5f973
  Author: paperchalice <liujunchang97 at outlook.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Passes/CodeGenPassBuilder.h

  Log Message:
  -----------
  [NewPM] support `disablePass`, `insertPass` in `CodeGenPassBuilder` (#87147)

Currently only machine function passes support `insertPass`, but it
seems to be enough, all targets tune their pipelines when adding machine
function passes.


  Commit: 662c62609e8ee2dc996da69e11c0d594e799c299
      https://github.com/llvm/llvm-project/commit/662c62609e8ee2dc996da69e11c0d594e799c299
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    M mlir/test/Dialect/Arith/invalid.mlir

  Log Message:
  -----------
  [mlir][arith] Refine the verifier for arith.constant (#86178)

Disallows initialization of scalable vectors with an attribute of
arbitrary values, e.g.:
```mlir
  %c = arith.constant dense<[0, 1]> : vector<[2] x i32>
```

Initialization using vector splats remains allowed (i.e. when all the
init values are identical):
```mlir
  %c = arith.constant dense<[1, 1]> : vector<[2] x i32>
```


  Commit: 4308c7422d12c8a7efe6cf1c5c6136e54ba410ce
      https://github.com/llvm/llvm-project/commit/4308c7422d12c8a7efe6cf1c5c6136e54ba410ce
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M bolt/lib/Core/Relocation.cpp

  Log Message:
  -----------
  [BOLT][NFC] Refactor relocation arch selection (#87829)

Convert the relocation routines to switch on architecture and have an explicit unreachable default.


  Commit: f6357bb4283e72d1248b9c7eb67d98bea71d5f50
      https://github.com/llvm/llvm-project/commit/f6357bb4283e72d1248b9c7eb67d98bea71d5f50
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/docs/CMake.rst

  Log Message:
  -----------
  [llvm][docs] Resort cmake macros (#87551)

The cmake macro documentation had once again become unsorted. For names
of the form 'PREFIX_{list-or-category}_SUFFIX' I collate as 'PREFIX_SUFFIX'.


  Commit: 2921a0928c71f4ee652a2478283e47ab5ffebf58
      https://github.com/llvm/llvm-project/commit/2921a0928c71f4ee652a2478283e47ab5ffebf58
  Author: Jefferson Le Quellec <jefferson.lequellec at codeplay.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Cuda.cpp
    M clang/test/Driver/cuda-external-tools.cu

  Log Message:
  -----------
  Make the argument -Xcuda-ptxas visible to the driver in cl-mode

It has been noticed that the arguments are being passed twice to ptxas.
This also has been fixed by filtering out the arguments before appending
them to the new DAL created by CudaToolChain::TranslateArgs.

github:https://github.com/llvm/llvm-project/pull/86807


  Commit: a4c84d6ac1014b00257618663a243419630ff626
      https://github.com/llvm/llvm-project/commit/a4c84d6ac1014b00257618663a243419630ff626
  Author: Adrian Kuegel <akuegel at google.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M mlir/test/mlir-tblgen/op-decl-and-defs.td
    M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp

  Log Message:
  -----------
  [mlir] Only inline if properties are used.

This is a followup to 0f52f4ddd909eb38f2a691ffed8469263fe5f635
It breaks dialects that don't use properties yet.


  Commit: 0832b85e0f5b684ad2e5eaf29911ca806eb0db3d
      https://github.com/llvm/llvm-project/commit/0832b85e0f5b684ad2e5eaf29911ca806eb0db3d
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/Attributor/nofpclass.ll

  Log Message:
  -----------
  ValueTracking: Add baseline tests for vector fpclass handling


  Commit: 2bc637b1ce935550b6e09618c76474253943a7cc
      https://github.com/llvm/llvm-project/commit/2bc637b1ce935550b6e09618c76474253943a7cc
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/Attributor/nofpclass.ll
    M llvm/unittests/Analysis/ValueTrackingTest.cpp

  Log Message:
  -----------
  ValueTracking: Handle ConstantAggregateZero in computeKnownFPClass


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

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

  Log Message:
  -----------
  TextNodeDumper.cpp - remove empty switch to fix MSVC "switch statement contains 'default' but no 'case' labels" warning. NFC.


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

  Changed paths:
    M clang/lib/InstallAPI/DiagnosticBuilderWrappers.cpp

  Log Message:
  -----------
  Fix MSVC "not all control paths return a value" warning. NFC.


  Commit: bdf428af9825e684d9ed22d0137a456c131389f7
      https://github.com/llvm/llvm-project/commit/bdf428af9825e684d9ed22d0137a456c131389f7
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/Attributor/nofpclass.ll

  Log Message:
  -----------
  ValueTracking: Consider demanded elts for vector constants in computeKnownFPClass


  Commit: 40327a628ace90870c7caa0db448a0f2d9863df0
      https://github.com/llvm/llvm-project/commit/40327a628ace90870c7caa0db448a0f2d9863df0
  Author: Andrzej Warzynski <andrzej.warzynski at arm.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    M mlir/test/Dialect/Arith/invalid.mlir

  Log Message:
  -----------
  Revert "[mlir][arith] Refine the verifier for arith.constant (#86178)"

This reverts commit 662c62609e8ee2dc996da69e11c0d594e799c299.

Broken both:
  * https://lab.llvm.org/buildbot/#/builders/61/builds/56565


  Commit: 8ccf1c117b0dc08f7e9c24fe98f45ebe32e95cd1
      https://github.com/llvm/llvm-project/commit/8ccf1c117b0dc08f7e9c24fe98f45ebe32e95cd1
  Author: Kevin P. Neal <kevin.neal at sas.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/strict-fadd-combines.ll
    M llvm/test/CodeGen/X86/strict-fsub-combines.ll

  Log Message:
  -----------
  [FPEnv][X86] Correct strictfp tests. (#87791)

Correct strictfp tests to follow the rules documented in the LangRef:
https://llvm.org/docs/LangRef.html#constrained-floating-point-intrinsics

These tests needed the strictfp attribute added to some function
definitions. FP wait instructions now appear as a result.

Test changes verified with D146845.


  Commit: f46f6465062bd6ddc96e3838c50e1a0f85f92dd4
      https://github.com/llvm/llvm-project/commit/f46f6465062bd6ddc96e3838c50e1a0f85f92dd4
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M libclc/CMakeLists.txt

  Log Message:
  -----------
  [libclc] Fix spirv build dependencies

These were accidentally broken in 61efea7.

Thanks to @mgorny and @rjodinchr for spotting this.


  Commit: 4c718fdbeacfc3385a493349b66b61c857b8e772
      https://github.com/llvm/llvm-project/commit/4c718fdbeacfc3385a493349b66b61c857b8e772
  Author: Yusra Syeda <99052248+ysyeda at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Object/GOFF.h
    M llvm/include/llvm/Object/GOFFObjectFile.h
    M llvm/lib/Object/GOFFObjectFile.cpp
    M llvm/unittests/Object/GOFFObjectFileTest.cpp

  Log Message:
  -----------
   [SystemZ][z/OS] TXT records in the GOFF reader (#87648)

This PR adds handling for TXT records in the GOFF reader.

---------

Co-authored-by: Yusra Syeda <yusra.syeda at ibm.com>


  Commit: 1107b47dcd145518c7b811bf10e2b848782b0478
      https://github.com/llvm/llvm-project/commit/1107b47dcd145518c7b811bf10e2b848782b0478
  Author: Edwin Vane <revane at google.com>
  Date:   2024-04-08 (Mon, 08 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] rename designated initializers (#86976)

readability-identifier-naming now supports renaming designated
initializers.


  Commit: 312b9297bb9284bddb36980f64661c24c876eef0
      https://github.com/llvm/llvm-project/commit/312b9297bb9284bddb36980f64661c24c876eef0
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M libc/test/UnitTest/LibcDeathTestExecutors.cpp

  Log Message:
  -----------
  [libc] Increase timeout for death tests. (#87959)

Fix test timeout on RISCV bots.
Fixes https://github.com/llvm/llvm-project/issues/87096


  Commit: ed1b24bf8b76871ab00f365d8dc066b3f7f76202
      https://github.com/llvm/llvm-project/commit/ed1b24bf8b76871ab00f365d8dc066b3f7f76202
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/include/flang/Runtime/freestanding-tools.h
    M flang/lib/Decimal/decimal-to-binary.cpp

  Log Message:
  -----------
  [flang][runtime] Added simplified std::toupper implementation. (#87850)


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/call-arg-reduced-by-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/cmp-after-intrinsic-call-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/store-abs-minbitwidth.ll

  Log Message:
  -----------
  [SLP]Improve minbitwidth analysis for abs/smin/smax/umin/umax intrinsics.

https://alive2.llvm.org/ce/z/ivPZ26 for the abs transformations.

Reviewers: RKSimon

Reviewed By: RKSimon

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


  Commit: b439140e2982dd77ef28a9069e16ae77bbe2bc5a
      https://github.com/llvm/llvm-project/commit/b439140e2982dd77ef28a9069e16ae77bbe2bc5a
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M libclc/CMakeLists.txt

  Log Message:
  -----------
  [libclc] Fix more spirv build dependencies

The last fix was incomplete.


  Commit: 26fee0ff1251fa70babaf419c08383e7ec71c56c
      https://github.com/llvm/llvm-project/commit/26fee0ff1251fa70babaf419c08383e7ec71c56c
  Author: Erich Keane <ekeane at nvidia.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/SemaOpenACC.h
    M clang/lib/Parse/ParseOpenACC.cpp
    M clang/lib/Sema/SemaOpenACC.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/test/ParserOpenACC/parse-clauses.c
    M clang/test/ParserOpenACC/parse-clauses.cpp
    M clang/test/ParserOpenACC/parse-wait-clause.c

  Log Message:
  -----------
  [OpenACC] Implement Sema work for OpenACC Clauses (#87821)

Now that we have AST nodes for OpenACC Clauses, this patch adds their
creation to Sema and makes the Parser call all the required functions.
This also redoes TreeTransform to work with the clauses/make sure they
are transformed.

Much of this is NFC, since there is no clause we can test this behavior
with. However, there IS one noticable change; we are now no longer
diagnosing that a clause is 'not implemented' unless it there was no
errors parsing its parameters. This is because it cleans up how we
create and diagnose clauses.


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

  Changed paths:
    M clang/lib/Parse/ParseOpenACC.cpp

  Log Message:
  -----------
  Fix build issue committed in 26fee0ff12

I brain-farted on how assert works :)


  Commit: f6315a957232b2f5c27476138e3f4e552861f956
      https://github.com/llvm/llvm-project/commit/f6315a957232b2f5c27476138e3f4e552861f956
  Author: Min-Yih Hsu <min.hsu at sifive.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64LoopIdiomTransform.cpp
    M llvm/test/Transforms/LoopIdiom/AArch64/byte-compare-index.ll

  Log Message:
  -----------
  [AArch64][LoopIdiom] Disable LoopIdiomTransform when NoImplicitFloat is present (#87677)

This behavior is aligned with both LoopVectorizer and SLPVectorizer.


  Commit: 78c50bbd45de595e9992bf97aa097f7f589f8370
      https://github.com/llvm/llvm-project/commit/78c50bbd45de595e9992bf97aa097f7f589f8370
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  [SLP][NFC]Remove unused variable, NFC.


  Commit: 54c24ec976a52f6ad8499a1a337d7ae2ab84e88d
      https://github.com/llvm/llvm-project/commit/54c24ec976a52f6ad8499a1a337d7ae2ab84e88d
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M libc/cmake/modules/LLVMLibCCheckMPFR.cmake
    M libc/utils/MPFRWrapper/CMakeLists.txt

  Log Message:
  -----------
  [libc] remove MPFR and related tests in full build (#87693)

In full build mode, the fuzzing tests fail to build. This PR disabled MPFR related tests in full build
```
[2/4] Building CXX object projects/libc/fuzzing/stdio/CMakeFiles/libc.fuzzing.stdio.printf_float_conv_fuzz.dir/printf_float_conv_fuzz.cpp.o
FAILED: projects/libc/fuzzing/stdio/CMakeFiles/libc.fuzzing.stdio.printf_float_conv_fuzz.dir/printf_float_conv_fuzz.cpp.o 
/usr/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_19_0_0_git -I/home/schrodingerzy/Documents/llvm/llvm-project/build/projects/libc/fuzzing/stdio -I/home/schrodingerzy/Documents/llvm/llvm-project/libc/fuzzing/stdio -I/home/schrodingerzy/Documents/llvm/llvm-project/libc -isystem /home/schrodingerzy/Documents/llvm/llvm-project/build/projects/libc/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fsanitize=fuzzer -O2 -g -DNDEBUG -std=c++17 -MD -MT projects/libc/fuzzing/stdio/CMakeFiles/libc.fuzzing.stdio.printf_float_conv_fuzz.dir/printf_float_conv_fuzz.cpp.o -MF projects/libc/fuzzing/stdio/CMakeFiles/libc.fuzzing.stdio.printf_float_conv_fuzz.dir/printf_float_conv_fuzz.cpp.o.d -o projects/libc/fuzzing/stdio/CMakeFiles/libc.fuzzing.stdio.printf_float_conv_fuzz.dir/printf_float_conv_fuzz.cpp.o -c /home/schrodingerzy/Documents/llvm/llvm-project/libc/fuzzing/stdio/printf_float_conv_fuzz.cpp
In file included from /home/schrodingerzy/Documents/llvm/llvm-project/libc/fuzzing/stdio/printf_float_conv_fuzz.cpp:19:
In file included from /home/schrodingerzy/Documents/llvm/llvm-project/libc/utils/MPFRWrapper/mpfr_inc.h:21:
In file included from /usr/include/mpfr.h:53:
In file included from /usr/include/gmp.h:35:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/iosfwd:38:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/requires_hosted.h:31:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/x86_64-pc-linux-gnu/bits/c++config.h:679:
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/x86_64-pc-linux-gnu/bits/os_defines.h:44:5: error: function-like macro '__GLIBC_PREREQ' is not defined
   44 | #if __GLIBC_PREREQ(2,15) && defined(_GNU_SOURCE)
      |     ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/x86_64-pc-linux-gnu/bits/os_defines.h:55:5: error: function-like macro '__GLIBC_PREREQ' is not defined
   55 | #if __GLIBC_PREREQ(2, 26) \
      |     ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/x86_64-pc-linux-gnu/bits/os_defines.h:66:6: error: function-like macro '__GLIBC_PREREQ' is not defined
   66 | # if __GLIBC_PREREQ(2, 27)
      |      ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/x86_64-pc-linux-gnu/bits/os_defines.h:78:6: error: function-like macro '__GLIBC_PREREQ' is not defined
   78 | # if __GLIBC_PREREQ(2, 34)
      |      ^
In file included from /home/schrodingerzy/Documents/llvm/llvm-project/libc/fuzzing/stdio/printf_float_conv_fuzz.cpp:19:
In file included from /home/schrodingerzy/Documents/llvm/llvm-project/libc/utils/MPFRWrapper/mpfr_inc.h:21:
In file included from /usr/include/mpfr.h:53:
In file included from /usr/include/gmp.h:35:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/iosfwd:42:
In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/postypes.h:40:
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:64:11: error: no member named 'mbstate_t' in the global namespace
   64 |   using ::mbstate_t;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:143:11: error: no member named 'btowc' in the global namespace
  143 |   using ::btowc;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:144:11: error: no member named 'fgetwc' in the global namespace
  144 |   using ::fgetwc;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:145:11: error: no member named 'fgetws' in the global namespace
  145 |   using ::fgetws;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:146:11: error: no member named 'fputwc' in the global namespace
  146 |   using ::fputwc;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:147:11: error: no member named 'fputws' in the global namespace
  147 |   using ::fputws;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:148:11: error: no member named 'fwide' in the global namespace
  148 |   using ::fwide;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:149:11: error: no member named 'fwprintf' in the global namespace
  149 |   using ::fwprintf;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:150:11: error: no member named 'fwscanf' in the global namespace
  150 |   using ::fwscanf;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:151:11: error: no member named 'getwc' in the global namespace
  151 |   using ::getwc;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:152:11: error: no member named 'getwchar' in the global namespace
  152 |   using ::getwchar;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:153:11: error: no member named 'mbrlen' in the global namespace
  153 |   using ::mbrlen;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:154:11: error: no member named 'mbrtowc' in the global namespace
  154 |   using ::mbrtowc;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:155:11: error: no member named 'mbsinit' in the global namespace
  155 |   using ::mbsinit;
      |         ~~^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/cwchar:156:11: error: no member named 'mbsrtowcs' in the global namespace
  156 |   using ::mbsrtowcs;
      |         ~~^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
```


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

  Changed paths:
    M flang/lib/Semantics/check-cuda.cpp
    M flang/test/Semantics/cuf09.cuf

  Log Message:
  -----------
  [flang][cuda] Allow list-directed PRINT and WRITE stmt in device code (#87415)

The specification allow list-directed PRINT and WRITE statements to
appear in device code. This patch relax the semantic check to allow
them.

3.6.11.
List-directed PRINT and WRITE statements to the default unit may be used
when compiling for compute capability 2.0 and higher; all other uses of
PRINT and WRITE are disallowed.


  Commit: 39f6d015ddd69717ff1f9b817bce84d621d37731
      https://github.com/llvm/llvm-project/commit/39f6d015ddd69717ff1f9b817bce84d621d37731
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.h
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp

  Log Message:
  -----------
  [RISCV] Eliminate getVLENFactoredAmount and expose muladd [nfc] (#87881)

This restructures the code to make the fact that most of
getVLENFactoredAmount is just a generic multiply w/immediate more
obvious and prepare for a couple of upcoming enhancements to this code.

Note that I plan to switch mulImm to early return, but decided I'd do
that as a separate commit to keep this diff readable.

---------

Co-authored-by: Luke Lau <luke_lau at icloud.com>


  Commit: d345f6a25343f926f55e70b442dfa507ba31b597
      https://github.com/llvm/llvm-project/commit/d345f6a25343f926f55e70b442dfa507ba31b597
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    A clang/include/clang/Sema/SemaHLSL.h
    M clang/lib/Parse/ParseHLSL.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaHLSL.cpp

  Log Message:
  -----------
  [clang] Introduce `SemaHLSL` (#87912)

This patch introduces `SemaHLSL` class, and moves some HLSL-related
functions there. No functional changes intended.

Removing "HLSL" from function names inside `SemaHLSL` is left for a
subsequent PR by HLSL contributors, if they deem that desirable.

This is a part of the effort to split `Sema` into smaller manageable
parts, and follows the example of OpenACC. See #82217, #84184, #87634
for additional context.


  Commit: 93e2a9ab1b28e1b89d30b89dc2d5bb6f8cc66dc9
      https://github.com/llvm/llvm-project/commit/93e2a9ab1b28e1b89d30b89dc2d5bb6f8cc66dc9
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    A clang/test/CXX/drs/dr605.cpp
    A clang/test/CXX/drs/dr650.cpp
    A clang/test/CXX/drs/dr653.cpp
    A clang/test/CXX/drs/dr658.cpp
    A clang/test/CXX/drs/dr661.cpp
    A clang/test/CXX/drs/dr672.cpp
    M clang/test/CXX/drs/dr6xx.cpp
    M clang/www/cxx_dr_status.html

  Log Message:
  -----------
  [clang] Add CodeGen tests for CWG 6xx issues (#87876)

This patch covers
[CWG605](https://cplusplus.github.io/CWG/issues/605.html) "Linkage of
explicit specializations",
[CWG650](https://cplusplus.github.io/CWG/issues/650.html) "Order of
destruction for temporaries bound to the returned value of a function",
[CWG653](https://cplusplus.github.io/CWG/issues/653.html) "Copy
assignment of unions",
[CWG658](https://cplusplus.github.io/CWG/issues/658.html) "Defining
`reinterpret_cast` for pointer types",
[CWG661](https://cplusplus.github.io/CWG/issues/661.html) "Semantics of
arithmetic comparisons",
[CWG672](https://cplusplus.github.io/CWG/issues/672.html) "Sequencing of
initialization in _new-expression_s".

[CWG624](https://cplusplus.github.io/CWG/issues/624.html) "Overflow in
calculating size of allocation" and
[CWG668](https://cplusplus.github.io/CWG/issues/668.html) "Throwing an
exception from the destructor of a local static object" are marked as
requiring libc++abi tests.


  Commit: ea2392ed33f765018002f833da9a04cd0571ab83
      https://github.com/llvm/llvm-project/commit/ea2392ed33f765018002f833da9a04cd0571ab83
  Author: Hristo Hristov <hghristov.rmm at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M libcxx/test/std/input.output/iostream.format/print.fun/println.blank_line.sh.cpp

  Log Message:
  -----------
  [libc++][format] Fixed `println.blank_line.sh.cpp` test on llvm-clang-win-x-* configurations (#88011)

Fix for issue:
https://github.com/llvm/llvm-project/pull/87277#issuecomment-2041864530

The test fails on the windows to linux cross builders. The proposed
resolution is to print some text. The issue is possibly due to the
original test outputting a single `\n` character.


  Commit: 977c0a6d29fe836f75b64a6f08a58cb3c00a56d9
      https://github.com/llvm/llvm-project/commit/977c0a6d29fe836f75b64a6f08a58cb3c00a56d9
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    A llvm/test/Analysis/LoopAccessAnalysis/non-constant-strides-backward.ll
    A llvm/test/Analysis/LoopAccessAnalysis/non-constant-strides-forward.ll
    A llvm/test/Analysis/LoopAccessAnalysis/positive-dependence-distance-different-access-sizes.ll
    A llvm/test/Transforms/LoopLoadElim/non-const-distance.ll

  Log Message:
  -----------
  [LAA] Add tests with non-constant strides & distances.

Add a number of LAA test cases with both forward and backward
dependences with non-constant strides and dependence distances.

This includes test coverage for
https://github.com/llvm/llvm-project/issues/87336

Also includes a LoopLoadElimination test to make sure the pass does not
crash on non-constant dependence distances.


  Commit: 125c9cf1b2f5d1b33884ddcd33ce983b2e927d2f
      https://github.com/llvm/llvm-project/commit/125c9cf1b2f5d1b33884ddcd33ce983b2e927d2f
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    A clang/test/CXX/drs/dr593.cpp
    M clang/test/CXX/drs/dr5xx.cpp
    M clang/www/cxx_dr_status.html

  Log Message:
  -----------
  [clang] Add test for CWG593 (#87752)

[CWG593](https://cplusplus.github.io/CWG/issues/593.html) "Falling off
the end of a destructor's function-try-block handler". As usual with CWG
issues resolved as NAD, we test for status-quo confirmed by CWG.


  Commit: fd2ffc1cbf51a75884369ec9253f47ae2fdba83c
      https://github.com/llvm/llvm-project/commit/fd2ffc1cbf51a75884369ec9253f47ae2fdba83c
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  [clang] Reject incomplete types in `__is_layout_compatible()` (#87869)

This is a follow-up to #81506. As discussed in #87737, we're rejecting
incomplete types, save for exceptions listed in the C++ standard (`void`
and arrays of unknown bound). Note that arrays of unknown bound of
incomplete types are accepted.

Since we're happy with the current behavior of this intrinsic for
flexible array members
(https://github.com/llvm/llvm-project/pull/87737#discussion_r1553652570),
I added a couple of tests for that as well.


  Commit: eeedb1e962977caeb699ef9aa714c8878c4d62d2
      https://github.com/llvm/llvm-project/commit/eeedb1e962977caeb699ef9aa714c8878c4d62d2
  Author: Kevin P. Neal <kevin.neal at sas.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/i128-fpconv-win64-strict.ll

  Log Message:
  -----------
  [FPEnv][X86] Correct one more strictfp test.

Correct a strictfp test to follow the rules documented in the
LangRef:
https://llvm.org/docs/LangRef.html#constrained-floating-point-intrinsics

This test needed the strictfp attribute added to some function
definitions. FP wait instructions now appear as a result. The need
for the wait instructions is explained by Andy Kaylor in PR#87791:
https://github.com/llvm/llvm-project/pull/87791

Test changes verified with D146845.


  Commit: 92ecc22b8d18ad937053177533bd23c775556be6
      https://github.com/llvm/llvm-project/commit/92ecc22b8d18ad937053177533bd23c775556be6
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/lib/Semantics/resolve-names.cpp

  Log Message:
  -----------
  [flang] Fix crash in semantics on bad program (#87199)

Don't accept a putative statement function definition for a symbol that
is a subprogram but can't possibly be a statement function.

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


  Commit: b685597c0373882e58dabf587581d00989e40f71
      https://github.com/llvm/llvm-project/commit/b685597c0373882e58dabf587581d00989e40f71
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/lib/Evaluate/fold-reduction.h
    A flang/test/Evaluate/folding32.f90

  Log Message:
  -----------
  [flang] Fix crash in reduction folding (#87201)

A reduction folding template assumed lower bounds were 1.

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


  Commit: af61d08280a90becb5a710a812f0d3d6485737a8
      https://github.com/llvm/llvm-project/commit/af61d08280a90becb5a710a812f0d3d6485737a8
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/lib/Semantics/resolve-names.cpp
    M flang/test/Semantics/resolve29.f90

  Log Message:
  -----------
  [flang] Handle forward reference to shadowing derived type from IMPLICIT (#87280)

A derived type name in an IMPLICIT statement might be a host association
or it might be a forward reference to a local derived type, which may be
shadowing a host-associated name. Add a scan over the specification part
in search of derived type definitions to determine the right
interpretation.

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


  Commit: aace1e1719a1610ce9fa93c7dae38a4272d7b6bf
      https://github.com/llvm/llvm-project/commit/aace1e1719a1610ce9fa93c7dae38a4272d7b6bf
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/include/flang/Parser/char-block.h
    M flang/lib/Semantics/resolve-names.cpp
    M flang/test/Semantics/resolve21.f90

  Log Message:
  -----------
  [flang] Improve error message with declaration (#87294)

When a program attempts to use a non-object entity as the base of a
component reference or type parameter inquiry, the message is somewhat
uninformative and the position of the entity's declaration will not
reflect any updates made to the symbol during name resolution.

Includes some NFC C++17 style clean-up on some code noticed while
debugging (missing mandatory braces).


  Commit: 97e3f605d5b574899d9f012032349bbf84c4dcfb
      https://github.com/llvm/llvm-project/commit/97e3f605d5b574899d9f012032349bbf84c4dcfb
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/docs/Extensions.md
    M flang/lib/Semantics/check-call.cpp
    A flang/test/Semantics/intrinsics04.f90

  Log Message:
  -----------
  [flang] Don't allow non-standard data conversions of potentially abse… (#87391)

…nt arguments

Arguments to the intrinsic functions MAX and MIN after the first two are
optional. When these actual arguments might not be present at run time,
emit a compilation time error if they require data conversion (a
non-standard but nearly universal language extension); such a conversion
would crash if the argument was absent.

Other compilers either disallow data conversions entirely on MAX/MIN or
crash at run time if a converted argument is absent.

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


  Commit: e1ad2735c3e7b0af94159f585458c7383255f03e
      https://github.com/llvm/llvm-project/commit/e1ad2735c3e7b0af94159f585458c7383255f03e
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/include/flang/Evaluate/common.h
    M flang/lib/Evaluate/check-expression.cpp
    M flang/lib/Evaluate/fold-implementation.h
    M flang/lib/Evaluate/fold-integer.cpp
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Semantics/mod-file.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/module/iso_fortran_env.f90
    A flang/test/Semantics/numeric_storage_size.f90
    M flang/tools/f18/CMakeLists.txt

  Log Message:
  -----------
  [flang] Clean up ISO_FORTRAN_ENV, fix NUMERIC_STORAGE_SIZE (#87566)

Address TODOs in the intrinsic module ISO_FORTRAN_ENV, and extend the
implementation of NUMERIC_STORAGE_SIZE so that the calculation of its
value is deferred until it is needed so that the effects of
-fdefault-integer-8 or -fdefault-real-8 are reflected. Emit a warning
when NUMERIC_STORAGE_SIZE is used from the module file and the default
integer and real sizes do not match.

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


  Commit: 89eb1a5a8e35a3bb77e4a1ca4fcac6757efc9339
      https://github.com/llvm/llvm-project/commit/89eb1a5a8e35a3bb77e4a1ca4fcac6757efc9339
  Author: Daniil Kovalev <dkovalev at accesssoftek.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/AArch64/elf-globals-static.ll
    M llvm/test/CodeGen/AArch64/tagged-globals-pic.ll

  Log Message:
  -----------
  [test][AArch64][CodeGen] Delete redundant check lines (#87965)

llvm/test/CodeGen/AArch64/elf-globals-pic.ll:

Since https://reviews.llvm.org/D91734, elf-globals-static.ll test
contains several `CHECK-PIC` lines. They do not seem to bring any value
since there are no FileCheck run lines checking against this prefix. The
right place for such tests should be elf-globals-pic.ll, which already
contains check lines being deleted in this commit. Both
elf-globals-pic.ll and elf-globals-static.ll were created after
splitting arm64-elf-globals.ll in 6dbd0ea, and having `CHECK-PIC` lines
in elf-globals-static.ll seems like an issue occurred because of git
thinking that elf-globals-pic.ll is a new file and elf-global-static.ll
is a rename of arm64-elf-globals.ll.

llvm/test/CodeGen/AArch64/tagged-globals-pic.ll:

Similar to elf-globals-pic.ll, contains unneeded
`CHECK-SELECTIONDAGISEL` and `CHECK-GLOBALISEL` directives not checked
by any FileCheck invocation. These directives are present in
tagged-globals-static.ll. Both tests are present in the code tree since
fd32639 when tagged-globals.ll was splitted into
tagged-globals-{pic|static}.ll.


  Commit: 708c8cd7435002027a2cc9b99a0916a3dc255d63
      https://github.com/llvm/llvm-project/commit/708c8cd7435002027a2cc9b99a0916a3dc255d63
  Author: Axel Lundberg <19574357+Zonotora at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/docs/UndefinedBehaviorSanitizer.rst
    M clang/include/clang/Basic/Sanitizers.def
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/test/CodeGen/catch-implicit-conversions-basics.c
    M clang/test/CodeGen/catch-implicit-conversions-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-arithmetic-value-change-basics.c
    M clang/test/CodeGen/catch-implicit-integer-arithmetic-value-change-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-conversions-basics.c
    M clang/test/CodeGen/catch-implicit-integer-conversions-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes-CompoundAssignOperator.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes-basics.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes-incdec.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes.c
    M clang/test/CodeGen/catch-implicit-integer-truncations-CompoundAssignOperator.c
    M clang/test/CodeGen/catch-implicit-integer-truncations-basics-negatives.c
    M clang/test/CodeGen/catch-implicit-integer-truncations-basics.c
    M clang/test/CodeGen/catch-implicit-integer-truncations-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-truncations.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncation-or-sign-change-CompoundAssignOperator.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncation-or-sign-change.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncations-basics-negatives.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncations-basics.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncations-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncations-incdec.c
    M clang/test/CodeGen/catch-implicit-unsigned-integer-truncations-basics-negatives.c
    M clang/test/CodeGen/catch-implicit-unsigned-integer-truncations-basics.c
    A clang/test/CodeGen/ubsan-bitfield-conversion.c
    A clang/test/CodeGenCXX/ubsan-bitfield-conversion.cpp
    M clang/test/Driver/fsanitize.c
    M compiler-rt/lib/ubsan/ubsan_handlers.cpp
    M compiler-rt/lib/ubsan/ubsan_handlers.h
    A compiler-rt/test/ubsan/TestCases/ImplicitConversion/bitfield-conversion.c

  Log Message:
  -----------
  Fix "[clang][UBSan] Add implicit conversion check for bitfields" (#87761)

Fix since #75481 got reverted.

- Explicitly set BitfieldBits to 0 to avoid uninitialized field member
for the integer checks:
```diff
-       llvm::ConstantInt::get(Builder.getInt8Ty(), Check.first)};
+      llvm::ConstantInt::get(Builder.getInt8Ty(), Check.first),
+      llvm::ConstantInt::get(Builder.getInt32Ty(), 0)};
```
- `Value **Previous` was erroneously `Value *Previous` in
`CodeGenFunction::EmitWithOriginalRHSBitfieldAssignment`, fixed now.
- Update following:
```diff
-     if (Kind == CK_IntegralCast) {
+     if (Kind == CK_IntegralCast || Kind == CK_LValueToRValue) {
```
CK_LValueToRValue when going from, e.g., char to char, and
CK_IntegralCast otherwise.
- Make sure that `Value *Previous = nullptr;` is initialized (see
https://github.com/llvm/llvm-project/commit/1189e87951e59a81ee097eae847c06008276fef1)
- Add another extensive testcase
`ubsan/TestCases/ImplicitConversion/bitfield-conversion.c`

---------

Co-authored-by: Vitaly Buka <vitalybuka at gmail.com>


  Commit: aa6a089c367e024921bae050b8999a7bc4d58f76
      https://github.com/llvm/llvm-project/commit/aa6a089c367e024921bae050b8999a7bc4d58f76
  Author: Mike Rice <michael.p.rice at intel.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    A clang/test/OpenMP/Inputs/nesting_of_regions.cpp
    R clang/test/OpenMP/nesting_of_regions.cpp
    A clang/test/OpenMP/nesting_of_regions_45.cpp
    A clang/test/OpenMP/nesting_of_regions_50.cpp
    A clang/test/OpenMP/nesting_of_regions_51.cpp
    A clang/test/OpenMP/nesting_of_regions_simd_45.cpp
    A clang/test/OpenMP/nesting_of_regions_simd_50.cpp

  Log Message:
  -----------
  [NFC][OpenMP] Split nesting_of_regions test (#87842)

This test is the bottleneck for OpenMP lit tests, running about twice as
long as the others. Break it into five tests based on run lines with the
same version.


  Commit: 01d9528ef989610e968386ea1f270698015d2410
      https://github.com/llvm/llvm-project/commit/01d9528ef989610e968386ea1f270698015d2410
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/extractelements-to-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/trunc-to-large-than-bw.ll
    M llvm/test/Transforms/SLPVectorizer/X86/int-bitcast-minbitwidth.ll

  Log Message:
  -----------
  [SLP]Improve final minbitwidth analysis attempt.

Added part for demanded bits analysis in the IsPotentiallyTruncated to
improve minbitwidth analysis final attempts.

Metric: size..text

Program                                                                                                                                                size..text
                                                                                                                                                       results     results0    diff
                                                                           test-suite :: MultiSource/Benchmarks/MiBench/telecomm-gsm/telecomm-gsm.test    43069.00    42973.00 -0.2%
                                                                                  test-suite :: MultiSource/Benchmarks/mediabench/gsm/toast/toast.test    43066.00    42970.00 -0.2%

Extra trunc instructions are emitted to operate with <32 x i8> instead
of <32 x i16>, will be removed in the next patches.

Reviewers: RKSimon

Reviewed By: RKSimon

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


  Commit: c23135c5488fbfaf6439433a10b3ddef33ff112c
      https://github.com/llvm/llvm-project/commit/c23135c5488fbfaf6439433a10b3ddef33ff112c
  Author: Leonard Grey <lgrey at chromium.org>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/AsmPrinter.h
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/test/CodeGen/AArch64/func-sanitizer.ll
    M llvm/test/CodeGen/X86/func-sanitizer.ll

  Log Message:
  -----------
  -fsanitize=function: fix .subsections_via_symbols (#87527)

-fsanitize=function emits a signature and function hash before a
function. Similar to 7f6e2c9, these can be sheared off when
`.subsections_via_symbols` is used.

This change uses the same technique 7f6e2c9 introduced for prefixes:
emitting a symbol for the metadata, then marking the actual function
entry as an .alt_entry symbol.


  Commit: 3b43ae9a68256a77e8879a32a1670fd4b327802f
      https://github.com/llvm/llvm-project/commit/3b43ae9a68256a77e8879a32a1670fd4b327802f
  Author: Christopher Ferris <cferris1000 at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/tests/report_test.cpp

  Log Message:
  -----------
  [scudo] Remove end of line checks. (#88022)

The regex to verify that there is nothing else at the end of the line
doesn't work in all cases, so remove it.


  Commit: e276dcec173bc0123444c162c3becb2354382248
      https://github.com/llvm/llvm-project/commit/e276dcec173bc0123444c162c3becb2354382248
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    M mlir/test/Dialect/Arith/invalid.mlir
    M mlir/test/Dialect/Vector/linearize.mlir

  Log Message:
  -----------
  [mlir][arith] Refine the verifier for arith.constant (#87999)

Disallows initialization of scalable vectors with an attribute of
arbitrary values, e.g.:
```mlir
  %c = arith.constant dense<[0, 1]> : vector<[2] x i32>
```

Initialization using vector splats remains allowed (i.e. when all the
init values are identical):
```mlir
  %c = arith.constant dense<[1, 1]> : vector<[2] x i32>
```

Note: This is a re-upload of #86178


  Commit: 8671429151d5e67d3f21a737809953ae8bdfbfde
      https://github.com/llvm/llvm-project/commit/8671429151d5e67d3f21a737809953ae8bdfbfde
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/test/Headers/Inputs/include/stdint.h
    M openmp/runtime/src/CMakeLists.txt

  Log Message:
  -----------
  [Libomp] Place generated OpenMP headers into build resource directory (#88007)

Summary:
These headers are a part of the compiler's resource directory once
installed. However, they are currently placed in the binary directory
temporarily. This makes it more difficult to use the compiler out of the
build directory and will cause issues when moving to `liboffload`. This
patch changes the logic to write these instead to the copmiler's
resource directory inside of the build tree.

NOTE: This doesn't change the Fortran headers, I don't know enough about
those and it won't use the same directory.


  Commit: 1e6ce5e284f5c0e8d64eee21af727bb164eb3caf
      https://github.com/llvm/llvm-project/commit/1e6ce5e284f5c0e8d64eee21af727bb164eb3caf
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M libc/src/__support/FPUtil/generic/CMakeLists.txt
    M libc/src/__support/FPUtil/generic/FMod.h
    M libc/src/math/generic/CMakeLists.txt
    M libc/src/math/generic/exp_utils.cpp
    M libc/src/math/generic/explogxf.h
    R libc/src/math/generic/math_utils.cpp
    R libc/src/math/generic/math_utils.h
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc] Clean up unused math_utils.(h|cpp). (#88036)


  Commit: 119b9cdb388f33e78fbb2a73e244ec3031c7f84c
      https://github.com/llvm/llvm-project/commit/119b9cdb388f33e78fbb2a73e244ec3031c7f84c
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/ReductionProcessor.h

  Log Message:
  -----------
  [flang][omp] Heed valid build warning (#88015)

Address a bug found by a compiler warning, and thereby also fix -Werror
builds.


  Commit: ac8ed7f16e5355d7062535afc08ff4be15875c47
      https://github.com/llvm/llvm-project/commit/ac8ed7f16e5355d7062535afc08ff4be15875c47
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M libc/test/src/CMakeLists.txt
    M libc/test/src/math/CMakeLists.txt
    M libc/test/src/math/FmaTest.h
    R libc/test/src/math/RandUtils.cpp
    R libc/test/src/math/RandUtils.h

  Log Message:
  -----------
  [libc] Remove RandUtils.(h|cpp). (#88044)


  Commit: 50a6738636d1b1dda0c5887cf0623ee084854272
      https://github.com/llvm/llvm-project/commit/50a6738636d1b1dda0c5887cf0623ee084854272
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CodeGenTBAA.cpp
    M clang/lib/CodeGen/CodeGenTBAA.h

  Log Message:
  -----------
  [clang][NFC] Adjust TBAA Base Info API (#73263)

A couple of cleanups.

1) remove an unnecessary check from isValidBaseType.

2) Add a new internal entrypoint 'getValidBaseTypeInfo', for uses where the type is known to be valid.


  Commit: f5cf98c02655de50401f6547ea181efed6a4c1f1
      https://github.com/llvm/llvm-project/commit/f5cf98c02655de50401f6547ea181efed6a4c1f1
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/prolog-epilogue.ll

  Log Message:
  -----------
  [RISCV] Improve test coverage for #87950

Noticed in review that we want both the LUI and LUI/ADDI cases
with different behavior for each.


  Commit: eb26edbbf8479aacac0b03413159c8836994a734
      https://github.com/llvm/llvm-project/commit/eb26edbbf8479aacac0b03413159c8836994a734
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
    M llvm/test/CodeGen/RISCV/prolog-epilogue.ll
    M llvm/test/CodeGen/RISCV/stack-offset.ll

  Log Message:
  -----------
  [RISCV] Exploit sh3add/sh2add for stack offsets by shifted 12-bit constants (#87950)

If we're falling back to generic constant formation in a register +
add/sub, we can check if we have a constant which is 12-bits but left
shifted by 2 or 3. If so, we can use a sh2add or sh3add to perform the
shift and add in a single instruction.

This is profitable when the unshifted constant would require two
instructions (LUI/ADDI) to form, but is never harmful since we're going
to need at least two instructions regardless of the constant value.

Since stacks are aligned to 16 bytes by default, sh3add allows addresing
(aligned) data out to 2^14 (i.e. 16kb) in at most two instructions
w/zba.


  Commit: 16b3e43a030b0322e0d81debba3d63f145c8fd0b
      https://github.com/llvm/llvm-project/commit/16b3e43a030b0322e0d81debba3d63f145c8fd0b
  Author: Danny Mösch <danny.moesch at icloud.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/missing-std-forward.cpp

  Log Message:
  -----------
  [clang-tidy] Ignore non-forwarded arguments if they are unused (#87832)


  Commit: 1950ebd17bbf1f2ad2a3799cd5966412ccfee9c4
      https://github.com/llvm/llvm-project/commit/1950ebd17bbf1f2ad2a3799cd5966412ccfee9c4
  Author: Eli Friedman <efriedma at quicinc.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/lib/Headers/intrin.h
    M clang/lib/Headers/intrin0.h
    M clang/test/Headers/ms-intrin.cpp

  Log Message:
  -----------
  [ARM64EC] Fix compilation of intrin.h in ARM64EC mode. (#87717)

intrin.h checks for x86_64. But the "x86_64" define is also defined for
ARM64EC, and we don't support all the intrinsics in ARM64EC mode. Fix
the preprocessor checks to handle this correctly. (If we actually need
some of these intrinsics in ARM64EC mode, we can revisit later.)

Not exactly sure how I didn't run into this issue before now... I think
I've built code that requires these headers, but maybe not since the
define fix landed.


  Commit: ff9b63f8d0487b69b35cf90a7089ad075f7fab88
      https://github.com/llvm/llvm-project/commit/ff9b63f8d0487b69b35cf90a7089ad075f7fab88
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M compiler-rt/test/ubsan/TestCases/ImplicitConversion/bitfield-conversion.c

  Log Message:
  -----------
  [test][UBSAN] Fix windows after #87761


  Commit: 7ad481e76c9bee5b9895ebfa0fdb52f31cb7de77
      https://github.com/llvm/llvm-project/commit/7ad481e76c9bee5b9895ebfa0fdb52f31cb7de77
  Author: Eli Friedman <efriedma at quicinc.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/Arch/AArch64.cpp
    M clang/test/Driver/aarch64-fixed-x-register.c
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/test/CodeGen/AArch64/arm64-platform-reg.ll

  Log Message:
  -----------
  Revert "[AArch64] Add support for -ffixed-x30" (#88019)

This reverts commit e770153865c53c4fd72a68f23acff33c24e42a08.

This wasn't reviewed, and the functionality in question was
intentionally rejected the last time it was discussed in
https://reviews.llvm.org/D56305 .


  Commit: 96bba13bd6bfb4ff0635972723adcd9c72b65bae
      https://github.com/llvm/llvm-project/commit/96bba13bd6bfb4ff0635972723adcd9c72b65bae
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M compiler-rt/test/ubsan/TestCases/ImplicitConversion/bitfield-conversion.c

  Log Message:
  -----------
  [test][UBSAN] Fix Solaris after #87761


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

  Changed paths:
    M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
    M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel

  Log Message:
  -----------
  [bazel] Add `nobuildkite` tags for incompatible targets


  Commit: f94bbfed7cf08f60e20756dce8965d2c6ed70ea1
      https://github.com/llvm/llvm-project/commit/f94bbfed7cf08f60e20756dce8965d2c6ed70ea1
  Author: Max Winkler <max.enrico.winkler at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGClass.cpp
    M clang/test/CodeGenCXX/skip-vtable-pointer-initialization.cpp

  Log Message:
  -----------
  [Clang][CodeGen] Fix `CanSkipVTablePointerInitialization` for dynamic classes with a trivial anonymous union (#84651)

Hit this when trying upgrade an old project of mine. I couldn't find a
corresponding existing issue for this when spelunking the open issues
here on github.
Thankfully I can work-around it today with the `[[clang::no_destroy]]`
attribute for my use case. However it should still be properly fixed.

### Issue and History ###

https://godbolt.org/z/EYnhce8MK for reference.
All subsequent text below refers to the example in the godbolt above.

Anonymous unions never have their destructor invoked automatically.
Therefore we can skip vtable initialization of the destructor of a
dynamic class if that destructor effectively does no work.

This worked previously as the following check would be hit and return
true for the trivial anonymous union,
https://github.com/llvm/llvm-project/blob/release/18.x/clang/lib/CodeGen/CGClass.cpp#L1348,
resulting in the code skipping vtable initialization.

This was broken here
https://github.com/llvm/llvm-project/commit/982bbf404eba2d968afda5c674d4821652159c53
in relation to comments made on this review here
https://reviews.llvm.org/D10508.

### Fixes ###

The check the code is doing is correct however the return value is
inverted. We want to return true here since a field with anonymous union
never has its destructor invoked and thus effectively has a trivial
destructor body from the perspective of requiring vtable init in the
parent dynamic class.

Also added some extra missing unit tests to test for this use case and a
couple others.


  Commit: 59aba90ab6648b968b67677ce445ba11c05a3823
      https://github.com/llvm/llvm-project/commit/59aba90ab6648b968b67677ce445ba11c05a3823
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M compiler-rt/test/ubsan/TestCases/ImplicitConversion/bitfield-conversion.c

  Log Message:
  -----------
  [test][UBSAN] Simplify regex in the test


  Commit: e27c3736f975ca463476223c465e4777186f603f
      https://github.com/llvm/llvm-project/commit/e27c3736f975ca463476223c465e4777186f603f
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Target/TargetMachine.cpp
    M llvm/test/CodeGen/X86/code-model-elf-text-sections.ll

  Log Message:
  -----------
  [X86] Change how we treat functions with explicit sections as small/large (#87838)

Following #78348, we should treat functions with an explicit section as
small, unless the section name is (or has the prefix) ".ltext".

Clang emits global initializers into a ".text.startup" section on Linux.
If we mix small/medium code model object files with large code model
object files, we'll end up mixing sections with and without the large
section flag.


  Commit: 50b937331ff44ac4b4ee70c3bfc0c4da51a02855
      https://github.com/llvm/llvm-project/commit/50b937331ff44ac4b4ee70c3bfc0c4da51a02855
  Author: Corentin Ferry <corentin.ferry at amd.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M mlir/lib/Conversion/MathToLibm/MathToLibm.cpp
    M mlir/test/Conversion/MathToLibm/convert-to-libm.mlir

  Log Message:
  -----------
  [mlir] Add missing libm member operations to MathToLibm (#87981)

This PR adds support for lowering the following Math operations to
`libm` calls:
* `math.absf` -> `fabsf, fabs`
* `math.exp` -> `expf, exp`
* `math.exp2` -> `exp2f, exp2`
* `math.fma` -> `fmaf, fma`
* `math.log` -> `logf, log`
* `math.log2` -> `log2f, log2`
* `math.log10` -> `log10f, log10`
* `math.powf` -> `powf, pow`
* `math.sqrt` -> `sqrtf, sqrt`

These operations are direct members of `libm`, and do not seem to
require any special manipulations on their operands.


  Commit: 89ebb56152192e8ad535ddd11ae0f60334fd748a
      https://github.com/llvm/llvm-project/commit/89ebb56152192e8ad535ddd11ae0f60334fd748a
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsll.ll

  Log Message:
  -----------
  [RISCV] Resolve CHECK prefix conflict in fixed-vectors-vwsll.ll. NFC

riscv32 and riscv64 generate different code for one test case so we need
RV32 and RV64 CHECK lines.


  Commit: 279c758b5d681eb7b24d5e3a1da64a7571e61903
      https://github.com/llvm/llvm-project/commit/279c758b5d681eb7b24d5e3a1da64a7571e61903
  Author: Zander Dumont-Strom <zdumonts at ucsc.edu>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    A libc/docs/ctype.rst
    M libc/docs/index.rst
    M libc/utils/docgen/ctype.json

  Log Message:
  -----------
  [libc][docs] generate docs for ctype.h (#87946)


Fixes #87833


  Commit: e127997155a1cd1c5692c42aad074064c8dad099
      https://github.com/llvm/llvm-project/commit/e127997155a1cd1c5692c42aad074064c8dad099
  Author: Nick Desaulniers <ndesaulniers at google.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M libc/docs/ctype.rst

  Log Message:
  -----------
  [libc][docs] fix missing include

Fixes #87946


  Commit: 922700df44b7fd93dfaf642567283b2b7482e5df
      https://github.com/llvm/llvm-project/commit/922700df44b7fd93dfaf642567283b2b7482e5df
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Target/TargetMachine.cpp
    M llvm/test/CodeGen/X86/code-model-elf-text-sections.ll

  Log Message:
  -----------
  Revert "[X86] Change how we treat functions with explicit sections as small/large (#87838)"

This reverts commit e27c3736f975ca463476223c465e4777186f603f.

Breaks ExecutionEngine/MCJIT/test-global-ctors.ll on windows, e.g. https://lab.llvm.org/buildbot/#/builders/117/builds/18749.


  Commit: afc7cc7b123666a8917b26c7e483d78cbb79ff8d
      https://github.com/llvm/llvm-project/commit/afc7cc7b123666a8917b26c7e483d78cbb79ff8d
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-lrint-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-lrint.ll
    M llvm/test/CodeGen/RISCV/rvv/lrint-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/lrint-vp.ll

  Log Message:
  -----------
  [RISCV] Fix missing CHECK prefixes in vector lrint test files. NFC

All of these test cases had iXLen in their name which got replaced
by sed. This prevented FileCheck from finding the function. The other
test cases in these files do not have that issue.


  Commit: 472ea6e0159342107ca240018b0c5ad868bf16fe
      https://github.com/llvm/llvm-project/commit/472ea6e0159342107ca240018b0c5ad868bf16fe
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vitofp-constrained-sdnode.ll

  Log Message:
  -----------
  [RISCV] Resolve CHECK prefix conflict in fixed-vectors-vitofp-constrained-sdnode.ll. NFC


  Commit: 4e98adf677fe6eb9aea5606c44ccc97f02d2f48a
      https://github.com/llvm/llvm-project/commit/4e98adf677fe6eb9aea5606c44ccc97f02d2f48a
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/interrupt-attr.ll

  Log Message:
  -----------
  [RISCV] Add tests for F/D with non-FP ABI to interrupt-attr.ll. NFC

Without a floating point aware ABI for callees, an interrupt handler
needs to save all floating point registers even normally callee saved.

We are currently unnecessarily saving callee saved FP registers when
a floating point ABI is used by the callee. This is different than gcc
as noted in this discourse
post https://discourse.llvm.org/t/has-bugs-when-optimizing-save-restore-csrs-by-changing-csr-xlen-f32-interrupt/78200/1


  Commit: 79343fa8c3575be12ec4d543f4aebebd1ba4f47f
      https://github.com/llvm/llvm-project/commit/79343fa8c3575be12ec4d543f4aebebd1ba4f47f
  Author: Evgenii Stepanov <eugenis at google.com>
  Date:   2024-04-08 (Mon, 08 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: 22b1f1bc695b8fd3263b709ce9761bf3bb2f8ee9
      https://github.com/llvm/llvm-project/commit/22b1f1bc695b8fd3263b709ce9761bf3bb2f8ee9
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M libc/include/llvm-libc-macros/math-macros.h

  Log Message:
  -----------
  [libc] Remove `#ifdef __cplusplus` part from `include/llvm-libc-macros/math-macros.h`. (#87864)

Now with the proxy header `hdr/math_macros.h`, the header
`include/llvm-libc-macros/math-macros.h` will not be included in overlay
mode, and the extra definitions for `__cplusplus` mode is not needed any
more.


  Commit: 118a5d8236d8a483dd401fa35c8b1fcd058eacc1
      https://github.com/llvm/llvm-project/commit/118a5d8236d8a483dd401fa35c8b1fcd058eacc1
  Author: Evgenii Stepanov <eugeni.stepanov at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/test/Instrumentation/MemorySanitizer/overflow.ll
    M llvm/test/Instrumentation/MemorySanitizer/saturating.ll

  Log Message:
  -----------
  Overflow and saturating intrinsics (#88068)


  Commit: f28c8339c12917b11c99432de6609e7d46e17e2b
      https://github.com/llvm/llvm-project/commit/f28c8339c12917b11c99432de6609e7d46e17e2b
  Author: Chris Apple <cja-private at pm.me>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M compiler-rt/cmake/config-ix.cmake

  Log Message:
  -----------
  Fix issue where MACOSX_VERSION_MIN_FLAG was not set on subsequent runs of CMake in compiler-rt (#87580)

As discussed here:

https://github.com/llvm/llvm-project/pull/74394#issuecomment-2035264683

An unintentional change of behavior was introduced in #74394 

This code introduced in #74394 :

The first time through
* SANITIZER_MIN_OSX_VERSION is not set
* parse -mmacosx-version-min and set MACOSX_VERSION_MIN_FLAG
* Set and cache SANITIZER_MIN_OSX_VERSION

Subsequent times through:
* SANITIZER_MIN_OSX_VERSION is cached 
* (BUG!!) you don't parse -mmacosx-version-min, and don't set
MACOSX_VERSION_MIN_FLAG


MACOSX_VERSION_MIN_FLAG is used later in the file on this line:

https://github.com/llvm/llvm-project/blob/63c925ca808f216f805b76873743450456e350f2/compiler-rt/cmake/config-ix.cmake#L517


Hoisting this assignment outside the if block returns us to the previous
behavior before this commit, while maintaining the flexibility
introduced with the cache variable


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

  Changed paths:
    M clang/lib/Driver/ToolChain.cpp
    M clang/test/Driver/arm-compiler-rt.c
    M clang/test/Driver/cl-link.c
    M clang/test/Driver/compiler-rt-unwind.c
    M clang/test/Driver/coverage-ld.c
    M clang/test/Driver/instrprof-ld.c
    M clang/test/Driver/linux-ld.c
    M clang/test/Driver/mingw-sanitizers.c
    M clang/test/Driver/msp430-toolchain.c
    M clang/test/Driver/print-libgcc-file-name-clangrt.c
    M clang/test/Driver/print-runtime-dir.c
    M clang/test/Driver/riscv32-toolchain-extra.c
    M clang/test/Driver/riscv32-toolchain.c
    M clang/test/Driver/riscv64-toolchain-extra.c
    M clang/test/Driver/riscv64-toolchain.c
    M clang/test/Driver/sanitizer-ld.c
    M clang/test/Driver/wasm-toolchain.c
    M clang/test/Driver/wasm-toolchain.cpp
    M clang/test/Driver/windows-cross.c
    M clang/test/Driver/zos-ld.c
    M flang/test/Driver/msvc-dependent-lib-flags.f90

  Log Message:
  -----------
  [Driver] Ensure ToolChain::LibraryPaths is not empty for non-Darwin

Follow-up to #81037.

ToolChain::LibraryPaths holds the new compiler-rt library directory
(e.g. `/tmp/Debug/lib/clang/19/lib/x86_64-unknown-linux-gnu`). However,
it might be empty when the directory does not exist (due to the `if
(getVFS().exists(P))` change in https://reviews.llvm.org/D158475).

If neither the old/new compiler-rt library directories exists, we would
suggest the undesired old compiler-rt file name:

```
% /tmp/Debug/bin/clang++ a.cc -fsanitize=memory -o a
ld.lld: error: cannot open /tmp/Debug/lib/clang/19/lib/linux/libclang_rt.msan-x86_64.a: No such file or directory
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
```

With this change, we will correctly suggest the new compiler-rt file name.

Fix #87150

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


  Commit: ec1af63dde58c735fe60d6f2aafdb10fa93f410d
      https://github.com/llvm/llvm-project/commit/ec1af63dde58c735fe60d6f2aafdb10fa93f410d
  Author: Alexandre Ganea <37383324+aganea at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86MCInstLower.cpp
    M llvm/test/CodeGen/X86/patchable-prologue.ll

  Log Message:
  -----------
  [Codegen][X86] Fix /HOTPATCH with clang-cl and inline asm (#87639)

This fixes an edge case where functions starting with inline assembly
would assert while trying to lower that inline asm instruction.

After this PR, for now we always add a no-op (xchgw in this case) without
considering the size of the next inline asm instruction. We might want
to revisit this in the future.

This fixes Unreal Engine 5.3.2 compilation with clang-cl and /HOTPATCH.

Should close https://github.com/llvm/llvm-project/issues/56234


  Commit: 5bc87dac75762027e614da31b968c67a94f0e7b1
      https://github.com/llvm/llvm-project/commit/5bc87dac75762027e614da31b968c67a94f0e7b1
  Author: Evgenii Stepanov <eugenis at google.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/test/Instrumentation/MemorySanitizer/overflow.ll
    M llvm/test/Instrumentation/MemorySanitizer/saturating.ll

  Log Message:
  -----------
  Revert "Overflow and saturating intrinsics (#88068)"

This reverts commit 118a5d8236d8a483dd401fa35c8b1fcd058eacc1.


  Commit: 3b74f8c1de72aa90445249f55923690301da024a
      https://github.com/llvm/llvm-project/commit/3b74f8c1de72aa90445249f55923690301da024a
  Author: Evgenii Stepanov <eugenis at google.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

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

This reverts commit 79343fa8c3575be12ec4d543f4aebebd1ba4f47f.


  Commit: be006372f3bbcab1e2e51af93dd3302398dac9a4
      https://github.com/llvm/llvm-project/commit/be006372f3bbcab1e2e51af93dd3302398dac9a4
  Author: Andrei Golubev <andrey.golubev at intel.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M mlir/include/mlir/IR/OperationSupport.h
    M mlir/lib/IR/AsmPrinter.cpp

  Log Message:
  -----------
  [mlir][OpPrintingFlags] Allow to disable ElementsAttr hex printing (#85766)

At present, large ElementsAttr is unconditionally printed with a hex
string. This means that in IR large constant values often look like:
dense<"0x000000000004000000080000000004000000080000000..."> :
tensor<10x10xi32>

Hoisting hex printing control to the user level for tooling means that
one can disable the feature and get human-readable values when
necessary:
dense<[16, 32, 48, 500...]> : tensor<10x10xi32>

Note: AsmPrinterOptions::printElementsAttrWithHexIfLarger is not always
possible to be used as it requires that one exposes MLIR's command-line
options in user tooling (including an actual compiler).

Co-authored-by: Harald Rotuna <harald.razvan.rotuna at intel.com>


  Commit: b2f8172d721d9e1cdaf052155aea880d731b1bf7
      https://github.com/llvm/llvm-project/commit/b2f8172d721d9e1cdaf052155aea880d731b1bf7
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

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

  Log Message:
  -----------
  [gn build] Port 27b2d7d4bb79


  Commit: 65c57bf2429e395aed811c05f35d28a6123a5965
      https://github.com/llvm/llvm-project/commit/65c57bf2429e395aed811c05f35d28a6123a5965
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/clang-tools-extra/clang-tidy/utils/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 7a4e89761a13


  Commit: 1c4ec8def6bb18934f300f6e630e92e7efdb60be
      https://github.com/llvm/llvm-project/commit/1c4ec8def6bb18934f300f6e630e92e7efdb60be
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

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

  Log Message:
  -----------
  [gn build] Port d2884444472e


  Commit: 064634406277e4786ce12caac94f7fa57ed5973e
      https://github.com/llvm/llvm-project/commit/064634406277e4786ce12caac94f7fa57ed5973e
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/LowerAllowCheckPass.cpp
    M llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out.ll
    M llvm/test/Transforms/lower-builtin-allow-check.ll

  Log Message:
  -----------
  [HWASAN][UBSAN] Reverse random logic (#88070)

It feels more intuitive to make higher P to keep more checks.


  Commit: 4a812b5912d3149592cae195c9007b05649d9b41
      https://github.com/llvm/llvm-project/commit/4a812b5912d3149592cae195c9007b05649d9b41
  Author: Matthias Braun <matze at braunis.de>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/lib/IR/Verifier.cpp
    M llvm/test/Transforms/HipStdPar/unsupported-thread-local-indirect-use.ll
    M mlir/test/Target/LLVMIR/Import/intrinsic.ll
    M mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir

  Log Message:
  -----------
  Verify threadlocal_address constraints (#87841)

Check invariants for `llvm.threadlocal.address` intrinsic in IR
Verifier.


  Commit: 925b7d6f62bf8f0b204cc1cb24a4a75c7bc5e0ae
      https://github.com/llvm/llvm-project/commit/925b7d6f62bf8f0b204cc1cb24a4a75c7bc5e0ae
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  [ORC] Replace some KV loop variables with structured bindings.

Same idea as 006aaf32258 -- reduce boilerplate and improve readability. This
time updates will be piecemeal to make it easier to identify errors.

Coding my way home: 2.18555S, 93.78063W


  Commit: e35fb3fb8bfcb732ace3738f9589989b3fac1508
      https://github.com/llvm/llvm-project/commit/e35fb3fb8bfcb732ace3738f9589989b3fac1508
  Author: Jason Molenda <jmolenda at apple.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i
    M lldb/bindings/interface/SBProcessDocstrings.i
    M lldb/bindings/interface/SBQueueDocstrings.i
    M lldb/bindings/interface/SBThreadDocstrings.i

  Log Message:
  -----------
  [lldb] [NFC] Fix swig docstring annotations (#88073)

Some of the SB API method description docstrings for swing are annotated
as `%feature("autodoc")` - but `"autodoc"` annotations are only to
substitute a string showing the arguments and return variables - either
in a single line, or in multiple lines. SBMemoryRegionInfo used
`"autodoc"` correctly describing the parameters and return type, but
then it added a description too which is not correct either.

Change all of these that are adding a method description to use
`%feature("docstring")` instead. There were a half dozen instances where
`"autodoc"` was correctly being used and we have overriden the parameter
and return types with a more readable version.


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

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Frontend/FrontendActions.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateInstantiate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp

  Log Message:
  -----------
  [Sema][NFC] Cleanups after 843cc474f (#87996)

I forgot to tidy up these lines that should've been done in the previous
commit, specifically:

1. Merge two `CodeSynthesisContext`s into one in `CheckTemplateIdType`.
2. Remove some gratuitous `Sema::` specifiers.
3. Rename the parameter `Template` to `Entity` to avoid confusion.


  Commit: 41dc04e5283adef9979cad2b126ab3e6c156034a
      https://github.com/llvm/llvm-project/commit/41dc04e5283adef9979cad2b126ab3e6c156034a
  Author: Jason Molenda <jason at molenda.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M lldb/bindings/interface/SBProcessDocstrings.i

  Log Message:
  -----------
  [lldb] Add swig doc for SBProcess address mask methods

Add descriptions of `GetAddressMask`, `SetAddressMask`,
`SetAddressableBits`, and `FixAddress` SBProcess methods.


  Commit: 71eda17a0674317b05975be79ed4a2c8ee99c43c
      https://github.com/llvm/llvm-project/commit/71eda17a0674317b05975be79ed4a2c8ee99c43c
  Author: Qiu Chaofan <qiucofan at cn.ibm.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
    M llvm/test/CodeGen/PowerPC/ppcsoftops.ll

  Log Message:
  -----------
  [Legalizer] Soften EXTRACT_ELEMENT on ppcf128 (#77412)

ppc_fp128 values are always split into two f64. Implement soften
operation in soft-float mode to handle output f64 correctly.


  Commit: 0e5a53cc01e406436cb7c703c84598e474d635de
      https://github.com/llvm/llvm-project/commit/0e5a53cc01e406436cb7c703c84598e474d635de
  Author: Uday Bondhugula <uday at polymagelabs.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M mlir/include/mlir/IR/AffineExprVisitor.h
    M mlir/test/IR/affine-walk.mlir

  Log Message:
  -----------
  [MLIR] Fix typo bug in AffineExprVisitor for WalkResult return case (#86138)

Fix typo bug in AffineExprVisitor for the WalkResult return case. This
didn't show up immmediately because most walks in the tree didn't
use walk result.


  Commit: 25e3d2b0fc1e2b4df19d7f18fbdd04c154e1d0e8
      https://github.com/llvm/llvm-project/commit/25e3d2b0fc1e2b4df19d7f18fbdd04c154e1d0e8
  Author: Pete Steinfeld <47540744+psteinfeld at users.noreply.github.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/test/Headers/Inputs/include/stdint.h
    M openmp/runtime/src/CMakeLists.txt

  Log Message:
  -----------
  Revert "[Libomp] Place generated OpenMP headers into build resource d… (#88083)

…irectory (#88007)"

This reverts commit 8671429151d5e67d3f21a737809953ae8bdfbfde.

This commit broke the flang build, so I'm reverting it. See the comments
in merge request #88007 for more information.


  Commit: 74c085fcfc8fab7822127cb46ff82a6f0d3597f3
      https://github.com/llvm/llvm-project/commit/74c085fcfc8fab7822127cb46ff82a6f0d3597f3
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/docs/RISCVUsage.rst

  Log Message:
  -----------
  [RISCV] Add Zcmop and Zimop to RISCVUsage.rst. NFC (#88033)

These extensions are ratified so they were removed from the experimental
section, but not added to the non-experimental section.


  Commit: 04f33a3ac2e8ca96840606f812eaef974ff61c80
      https://github.com/llvm/llvm-project/commit/04f33a3ac2e8ca96840606f812eaef974ff61c80
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M llvm/lib/Support/APInt.cpp

  Log Message:
  -----------
  [APInt] Use a std::move() to avoid a copy in the loop in multiplicativeInverse. (#87655)

This allows the subtract to reuse the storage of T. T will be assigned
over by the condition on the next iteration. I think assigning over a
moved from value should be ok.


  Commit: a30662fc2acdd73ca1a9217716299a4676999fb4
      https://github.com/llvm/llvm-project/commit/a30662fc2acdd73ca1a9217716299a4676999fb4
  Author: Vassil Vassilev <v.g.vassilev at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/CMakeLists.txt
    M clang/lib/AST/DeclPrinter.cpp
    M clang/lib/AST/StmtPrinter.cpp
    M clang/test/AST/ast-print-method-decl.cpp
    M clang/test/AST/ast-print-no-sanitize.cpp
    M clang/test/AST/attr-print-emit.cpp
    M clang/test/Analysis/scopes-cfg-output.cpp
    M clang/test/OpenMP/assumes_codegen.cpp
    M clang/test/OpenMP/assumes_print.cpp
    M clang/test/OpenMP/assumes_template_print.cpp
    M clang/test/OpenMP/declare_simd_ast_print.cpp
    M clang/test/SemaCXX/attr-no-sanitize.cpp
    M clang/test/SemaCXX/cxx11-attr-print.cpp
    M clang/utils/TableGen/ClangAttrEmitter.cpp
    M clang/utils/TableGen/TableGen.cpp
    M clang/utils/TableGen/TableGenBackends.h

  Log Message:
  -----------
  Rework the printing of attributes (#87281)

Commit https://github.com/llvm/llvm-project/commit/46f3ade introduced a
notion of printing the attributes on the left to improve the printing of
attributes attached to variable declarations. The intent was to produce
more GCC compatible code because clang tends to print the attributes on
the right hand side which is not accepted by gcc.

This approach has increased the complexity in tablegen and the
attrubutes themselves as now the are supposed to know where they could
appear. That lead to mishandling of the `override` keyword which is
modelled as an attribute in clang.

This patch takes an inspiration from the existing approach and tries to
keep the position of the attributes as they were written. To do so we
use simpler heuristic which checks if the source locations of the
attribute precedes the declaration. If so, it is considered to be
printed before the declaration.

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


  Commit: 5c056b32350e834924356b1af78504d261d24e42
      https://github.com/llvm/llvm-project/commit/5c056b32350e834924356b1af78504d261d24e42
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

  Changed paths:
    M clang/unittests/Format/FormatTest.cpp

  Log Message:
  -----------
  [clang-format] Clean up unit tests from commit 13be0d4a34c4

- Use 1-parameter verifyFormat() to verify formatted input in LLVM style.
- Pass string literal instead of constructed StringRef to verifyFormat().
- Don't include trailing newlines if not needed.


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

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

  Log Message:
  -----------
  [ValueTracking] Add comment clarifying missing `usub.sat` in `isKnownNonZero`; NFC

Closes #87700


  Commit: d10983b8a39abdbfaffd207720f67f96227b5ac9
      https://github.com/llvm/llvm-project/commit/d10983b8a39abdbfaffd207720f67f96227b5ac9
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-04-08 (Mon, 08 Apr 2024)

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

  Log Message:
  -----------
  [ORC] Replace KV loop variables with structured bindings, fix typo.

Coding my way home: 2.29247S, 94.15173W


  Commit: 62e92573d28d62ab7e6438ac34d513b07c51ce09
      https://github.com/llvm/llvm-project/commit/62e92573d28d62ab7e6438ac34d513b07c51ce09
  Author: Vassil Vassilev <v.g.vassilev at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/CMakeLists.txt
    M clang/lib/AST/DeclPrinter.cpp
    M clang/lib/AST/StmtPrinter.cpp
    M clang/test/AST/ast-print-method-decl.cpp
    M clang/test/AST/ast-print-no-sanitize.cpp
    M clang/test/AST/attr-print-emit.cpp
    M clang/test/Analysis/scopes-cfg-output.cpp
    M clang/test/OpenMP/assumes_codegen.cpp
    M clang/test/OpenMP/assumes_print.cpp
    M clang/test/OpenMP/assumes_template_print.cpp
    M clang/test/OpenMP/declare_simd_ast_print.cpp
    M clang/test/SemaCXX/attr-no-sanitize.cpp
    M clang/test/SemaCXX/cxx11-attr-print.cpp
    M clang/utils/TableGen/ClangAttrEmitter.cpp
    M clang/utils/TableGen/TableGen.cpp
    M clang/utils/TableGen/TableGenBackends.h

  Log Message:
  -----------
  Revert "Rework the printing of attributes (#87281)"

This reverts commit a30662fc2acdd73ca1a9217716299a4676999fb4 due to bot failures.


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

  Changed paths:
    M clang/lib/AST/Interp/Pointer.cpp
    M clang/test/AST/Interp/arrays.cpp

  Log Message:
  -----------
  [clang][Interp] Fix "Initializing" zero-size arrays

getIndex() returns 0 here, so we were trying to initalize the 0th
element.

Fixes #88018


  Commit: 03ffb82c9e0d363c97ca37ede46719236616c88e
      https://github.com/llvm/llvm-project/commit/03ffb82c9e0d363c97ca37ede46719236616c88e
  Author: Haohai Wen <haohai.wen at intel.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Support/ToolOutputFile.h
    M llvm/lib/Support/ToolOutputFile.cpp

  Log Message:
  -----------
  [Support] Make CleanupInstaller public (NFC) (#86758)

This can be used by others to automatically remove temp files.


  Commit: c7db450e5c1a83ea768765dcdedfd50f3358d418
      https://github.com/llvm/llvm-project/commit/c7db450e5c1a83ea768765dcdedfd50f3358d418
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/lib/Sema/SemaExprCXX.cpp

  Log Message:
  -----------
  [clang][NFC] Refactor `EvaluateBinaryTypeTrait` to accept `TypeSourceInfo`

Some type traits issue diagnostics that would benefit from additional source location information.


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

  Changed paths:
    M clang/lib/AST/Interp/Interp.h
    M clang/lib/AST/Interp/Opcodes.td

  Log Message:
  -----------
  [clang][Interp][NFC] Add Dump debug op

This is often useful for debugging and dumps the current stack
contents.


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

  Changed paths:
    M clang/lib/AST/Interp/Disasm.cpp
    M clang/lib/AST/Interp/Record.cpp
    M clang/lib/AST/Interp/Record.h

  Log Message:
  -----------
  [clang][Interp][NFC] Improve Record debugging

Add Record::dump() and return the diagnostic name from getName()


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

  Changed paths:
    M clang/lib/AST/Interp/Interp.h

  Log Message:
  -----------
  [clang][Interp][NFC] Add sanity checks to This op

The instance pointer must be casted to the right base.


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

  Changed paths:
    M llvm/test/Transforms/InstCombine/insertelement.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for non-constant idx in `computeKnownBits` of `insertelement`; NFC


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

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/insertelement.ll

  Log Message:
  -----------
  [ValueTracking] Support non-constant idx for `computeKnownBits` of `insertelement`

Its same logic as before, we just need to intersect what we know about
the new Elt and the entire pre-existing Vec.

Closes #87707


  Commit: 51089e360e37962c7841fe0a494ba9fb5368bab2
      https://github.com/llvm/llvm-project/commit/51089e360e37962c7841fe0a494ba9fb5368bab2
  Author: Kai Sasaki <lewuathe at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

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

  Log Message:
  -----------
  [mlir][complex] Support fast math flag for complex.tan op (#87919)

See
https://discourse.llvm.org/t/rfc-fastmath-flags-support-in-complex-dialect/71981


  Commit: dbb9749862481ad6aa82c96f6889b2ebba6f6062
      https://github.com/llvm/llvm-project/commit/dbb9749862481ad6aa82c96f6889b2ebba6f6062
  Author: Ding Fei <fding at feysh.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/ASTMatchers/ASTMatchers.h
    M clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp

  Log Message:
  -----------
  [ASTMatchers] fix captureVars assertion failure on capturesVariables (#76619)

Matcher `capturesVar` should check for `capturesVariables()` before
calling `getCaptureVar()` since it asserts this `LambdaCapture` does
capture a variable.

Fixes #76425


  Commit: 9391ff8c86007562d40c240ea082b7c0cbf35947
      https://github.com/llvm/llvm-project/commit/9391ff8c86007562d40c240ea082b7c0cbf35947
  Author: Vassil Vassilev <v.g.vassilev at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/CMakeLists.txt
    M clang/lib/AST/DeclPrinter.cpp
    M clang/lib/AST/StmtPrinter.cpp
    M clang/test/APINotes/retain-count-convention.m
    M clang/test/APINotes/versioned.m
    M clang/test/AST/ast-print-method-decl.cpp
    M clang/test/AST/ast-print-no-sanitize.cpp
    M clang/test/AST/attr-print-emit.cpp
    M clang/test/Analysis/scopes-cfg-output.cpp
    M clang/test/OpenMP/assumes_codegen.cpp
    M clang/test/OpenMP/assumes_print.cpp
    M clang/test/OpenMP/assumes_template_print.cpp
    M clang/test/OpenMP/declare_simd_ast_print.cpp
    M clang/test/SemaCXX/attr-no-sanitize.cpp
    M clang/test/SemaCXX/cxx11-attr-print.cpp
    M clang/utils/TableGen/ClangAttrEmitter.cpp
    M clang/utils/TableGen/TableGen.cpp
    M clang/utils/TableGen/TableGenBackends.h

  Log Message:
  -----------
  Reland "Rework the printing of attributes (#87281)"

Original commit message:
"

Commit https://github.com/llvm/llvm-project/commit/46f3ade introduced a notion
of printing the attributes on the left to improve the printing of attributes
attached to variable declarations. The intent was to produce more GCC compatible
code because clang tends to print the attributes on the right hand side which is
not accepted by gcc.

This approach has increased the complexity in tablegen and the attrubutes
themselves as now the are supposed to know where they could appear. That lead to
mishandling of the `override` keyword which is modelled as an attribute in
clang.

This patch takes an inspiration from the existing approach and tries to keep the
position of the attributes as they were written. To do so we use simpler
heuristic which checks if the source locations of the attribute precedes the
declaration. If so, it is considered to be printed before the declaration.

Fixes https://github.com/llvm/llvm-project/issues/87151
"

The reason for the bot breakage is that attributes coming from ApiNotes are not
marked implicit even though they do not have source locations. This caused an
assert to trigger. This patch forces attributes with no source location
information to be printed on the left. That change is consistent to the overall
intent of the change to increase the chances for attributes to compile across
toolchains and at the same time the produced code to be as close as possible to
the one written by the user.


  Commit: d8d131dfa99762ccdd2116661980b7d0493cd7b5
      https://github.com/llvm/llvm-project/commit/d8d131dfa99762ccdd2116661980b7d0493cd7b5
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/abs-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/bitreverse-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/bswap-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/ceil-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/cmp-folds.ll
    M llvm/test/CodeGen/RISCV/rvv/combine-sats.ll
    M llvm/test/CodeGen/RISCV/rvv/combine-splats.ll
    M llvm/test/CodeGen/RISCV/rvv/constant-folding.ll
    M llvm/test/CodeGen/RISCV/rvv/ctlz-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/ctpop-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/cttz-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/extractelt-fp.ll
    M llvm/test/CodeGen/RISCV/rvv/extractelt-int-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/extractelt-int-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-abs-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-bitreverse-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-bswap-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ceil-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctlz-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctpop-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-floor-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fmaximum-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fminimum-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-splat.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fpext-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fptosi-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fptosi-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fptoui-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fptoui-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fptrunc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-setcc.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-splat.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-gather.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-nearbyint-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-peephole-vmerge-vops.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-rint-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-round-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-roundeven-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-roundtozero-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-int-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-sext-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-sext-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-sitofp-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-sitofp-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpload.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-strided-vpstore.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-uitofp-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-uitofp-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vaaddu.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vand-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vcopysign-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vdiv-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vdivu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfabs-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfclass-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfdiv-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfma-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmacc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmax-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmin-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmsac-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmul-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmuladd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfneg-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfnmacc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfnmsac-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfrdiv-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfrsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfsqrt-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmacc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmax-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmaxu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmin-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vminu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmul-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vnmsac-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vor-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpgather.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpload.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpmerge.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpscatter.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpstore.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vrem-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vremu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vror.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vrsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsadd.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsaddu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsaddu.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vselect.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vshl-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsra-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsrl-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vssub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vssub.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vssubu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vssubu.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vxor-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-zext-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-zext-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/floor-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fmaximum-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fminimum-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fold-vp-fadd-and-vp-fmul.ll
    M llvm/test/CodeGen/RISCV/rvv/masked-load-int.ll
    M llvm/test/CodeGen/RISCV/rvv/masked-store-int.ll
    M llvm/test/CodeGen/RISCV/rvv/mgather-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/mscatter-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/narrow-shift-extend.ll
    M llvm/test/CodeGen/RISCV/rvv/nearbyint-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/rint-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/round-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/roundeven-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/roundtozero-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-masked-vops.ll
    M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops-mir.ll
    M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll
    M llvm/test/CodeGen/RISCV/rvv/rvv-vmerge-to-vmv.ll
    M llvm/test/CodeGen/RISCV/rvv/setcc-int-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/setcc-integer.ll
    M llvm/test/CodeGen/RISCV/rvv/sink-splat-operands.ll
    M llvm/test/CodeGen/RISCV/rvv/stepvector.ll
    M llvm/test/CodeGen/RISCV/rvv/strided-load-store.ll
    M llvm/test/CodeGen/RISCV/rvv/strided-vpload.ll
    M llvm/test/CodeGen/RISCV/rvv/strided-vpstore.ll
    M llvm/test/CodeGen/RISCV/rvv/urem-seteq-vec.ll
    M llvm/test/CodeGen/RISCV/rvv/vaaddu-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vadd-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vand-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vand-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vandn-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vcopysign-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vdiv-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vdiv-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vdivu-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vdivu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfabs-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfadd-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vfadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfclass-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfdiv-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vfdiv-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfma-vp-combine.ll
    M llvm/test/CodeGen/RISCV/rvv/vfma-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmacc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmax-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmin-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmsac-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmul-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmul-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmuladd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfneg-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfnmacc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfnmsac-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfrdiv-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfrsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfsqrt-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfsub-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vfsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwmacc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwmsac-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwnmacc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwnmsac-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vmacc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vmadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vmarith-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vmax-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vmax-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vmaxu-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vmaxu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vmin-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vmin-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vminu-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vminu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vmul-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vmul-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vmulh-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vmulhu-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vnmsac-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vnsra-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vnsra-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vnsrl-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vnsrl-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vor-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vor-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-reverse-float-fixed-vectors.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-reverse-float.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-reverse-int-fixed-vectors.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-reverse-int.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-reverse-mask-fixed-vectors.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-reverse-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-splice-fixed-vectors.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-splice-mask-fixed-vectors.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-splice-mask-vectors.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-splice.ll
    M llvm/test/CodeGen/RISCV/rvv/vpgather-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vpload.ll
    M llvm/test/CodeGen/RISCV/rvv/vpmerge-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vpscatter-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vpstore.ll
    M llvm/test/CodeGen/RISCV/rvv/vrem-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vrem-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vremu-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vremu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vrsub-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vrsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vsadd-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vsadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vsaddu-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vsaddu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vselect-fp.ll
    M llvm/test/CodeGen/RISCV/rvv/vselect-int.ll
    M llvm/test/CodeGen/RISCV/rvv/vshl-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vshl-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vsplats-fp.ll
    M llvm/test/CodeGen/RISCV/rvv/vsplats-i1.ll
    M llvm/test/CodeGen/RISCV/rvv/vsplats-i64.ll
    M llvm/test/CodeGen/RISCV/rvv/vsplats-zfa.ll
    M llvm/test/CodeGen/RISCV/rvv/vsra-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vsra-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vsrl-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vsrl-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vssub-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vssub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vssubu-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vssubu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vsub-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vwadd-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vwmacc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vwmaccsu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vwmaccu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vxor-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vxor-vp.ll

  Log Message:
  -----------
  [RISCV] Convert more constant splats in tests to splat shorthand. NFC (#87616)

A handy shorthand for specifying the shufflevector(insertelement(poison,
foo, 0), poison, zeroinitializer) splat pattern was introduced in
#74620.

Some of the RISC-V tests were converted over to use this new form in
dbb65dd330cc1696d7ca3dedc7aa9fa12c55a075, this patch handles the rest
which didn't have any codegen diffs.

This not only converts some constant expressions to the new form, but
also instruction sequences that weren't previously constant expressions
to constant expressions as well. In some cases this affects codegen, but
these have been omitted here and will be handled in a separate PR.


  Commit: 0f20b9b92f5333a90cf7cd19d7ec2e27ee3eac06
      https://github.com/llvm/llvm-project/commit/0f20b9b92f5333a90cf7cd19d7ec2e27ee3eac06
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/vwadd-vp.ll

  Log Message:
  -----------
  [RISCV] Don't require mask or VL to be the same in combineBinOp_VLToVWBinOp_VL (#87997)

In NodeExtensionHelper we keep track of the VL and mask of the operand
being extended and check that they are the same as the root node's.
However for the nodes that we support, none of them have a passthru
operand with the exception of RISCV::VMV_V_X_VL, but we check that it's
passthru is undef anyway.

So it's safe to just discard the extend node's VL and mask and just use
the root's instead. (This is the same type of reasoning we use to treat
any vmset_vl as an all ones mask)

This allows us to match some more cases where we mix VP/non-VP/VL nodes,
but these don't seem to appear in practice. The main benefit from this
would be to simplify the code.


  Commit: 9c660362c4fb05c0198b9d3ed65b2344706129bd
      https://github.com/llvm/llvm-project/commit/9c660362c4fb05c0198b9d3ed65b2344706129bd
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vwsll.ll
    M llvm/test/CodeGen/RISCV/rvv/vwsll-sdnode.ll

  Log Message:
  -----------
  [RISCV] Support vwsll in combineBinOp_VLToVWBinOp_VL (#87620)

If the subtarget has +zvbb then we can attempt folding shl and shl_vl to
vwsll nodes.

There are few test cases where we still don't pick up the vwsll:
- For fixed vector vwsll.vi on RV32, see the FIXME for VMV_V_X_VL in
fillUpExtensionSupport for support implicit sign extension
- For scalable vector vwsll.vi we need to support ISD::SPLAT_VECTOR, see
#87249


  Commit: 9c58f3a234a5eb24db97290d1abc71f8bf181c3a
      https://github.com/llvm/llvm-project/commit/9c58f3a234a5eb24db97290d1abc71f8bf181c3a
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
    M llvm/lib/Target/AMDGPU/GCNSubtarget.h
    M llvm/test/CodeGen/AMDGPU/dpp_combine_gfx11.mir
    M llvm/test/CodeGen/AMDGPU/optimize-exec-mask-pre-ra-non-empty-but-used-interval.mir
    M llvm/test/CodeGen/AMDGPU/optimize-negated-cond-exec-masking-wave32.mir
    M llvm/test/CodeGen/AMDGPU/sgpr-spill-overlap-wwm-reserve.mir
    M llvm/test/CodeGen/AMDGPU/si-lower-i1-copies-order-of-phi-incomings.mir
    M llvm/test/CodeGen/AMDGPU/verify-vopd-gfx12.mir
    M llvm/test/CodeGen/AMDGPU/verify-vopd.mir
    M llvm/test/CodeGen/AMDGPU/vopc_dpp.mir
    M llvm/test/CodeGen/AMDGPU/vopd-combine.mir

  Log Message:
  -----------
  [AMDGPU] Fix implicit $vcc operands after parsing MIR (#87781)

MIParser checks that implicit operands match the instruction definition,
so they have to be $vcc even in wave32 mode. Use the mirFileLoaded hook
to fix them after MIParser's checks, converting them to $vcc_lo which is
what that rest of CodeGen expects.

This is all just extending the fixImplicitOperands hack which was
introduced with GFX10, but at least it makes it possible to write a MIR
test which creates the same instructions that normal CodeGen would
generate.


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

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

  Log Message:
  -----------
  [VPlan] Use getEdgeMask when constructing VPBlendRecipe (NFCI).

After 2d0d65b3babe, block-in and edge masks are create up-front. Only
retrieve the cached edge-mask here.


  Commit: a4558a4a53eda8d170bbd2c358d383bb0a13f91f
      https://github.com/llvm/llvm-project/commit/a4558a4a53eda8d170bbd2c358d383bb0a13f91f
  Author: Qiu Chaofan <qiucofan at cn.ibm.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/test/CodeGen/PowerPC/builtins-ppc-xlcompat-error.c
    M llvm/include/llvm/IR/IntrinsicsPowerPC.td
    M llvm/test/CodeGen/PowerPC/rldimi.ll

  Log Message:
  -----------
  [PowerPC] Implement 32-bit expansion for rldimi (#86783)

rldimi is 64-bit instruction, due to backward compatibility, it needs to
be expanded into series of rotate and masking in 32-bit environment. In
the future, we may improve bit permutation selector and remove such
direct codegen.


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

  Changed paths:
    M llvm/lib/Object/GOFFObjectFile.cpp

  Log Message:
  -----------
  Fix MSVC "result of 32-bit shift implicitly converted to 64 bits" warning. NFC.


  Commit: 4ae33c52f794dbd64924dd006570cdc409c297bc
      https://github.com/llvm/llvm-project/commit/4ae33c52f794dbd64924dd006570cdc409c297bc
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/lib/Sema/SemaOpenACC.cpp

  Log Message:
  -----------
  Fix MSVC "switch statement contains 'default' but no 'case' labels" warning. NFC.


  Commit: 24e8c6a09b7d226dbe706aeae7aebf479a1e5087
      https://github.com/llvm/llvm-project/commit/24e8c6a09b7d226dbe706aeae7aebf479a1e5087
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-gather.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-scatter.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmax-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmaxu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmin-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vminu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsaddu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vssub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vssubu-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fmaximum-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fminimum-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/nearbyint-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/rint-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/round-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/roundeven-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/roundtozero-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vcopysign-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfabs-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfdiv-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmax-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmin-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmul-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfneg-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfsqrt-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfsub-vp.ll

  Log Message:
  -----------
  [RISCV] Convert remaining constant splats in tests to use splat shorthand. NFC (#88099)

This follows on from #87616, but includes the tests with codegen
differences. These are presumably due to the fact that the splat is now
a constant expression. They don't seem to affect anything that we were
specifically testing for.


  Commit: 45aec9a0b54e6d87abf75e960c96f59408edc706
      https://github.com/llvm/llvm-project/commit/45aec9a0b54e6d87abf75e960c96f59408edc706
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/include/clang/Serialization/ASTReader.h
    M clang/lib/Serialization/ASTReaderDecl.cpp

  Log Message:
  -----------
  [NFC] [Serialization] Remove redundant hasPendingBody member

The hasPendingBody member is redundant with the
PendingBodies.count(Decl*) method. This patch removes the redundant
hasPendingBody member and the corresponding InterestingDecl struct.


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

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/vector-half-conversions.ll

  Log Message:
  -----------
  [X86] Fold extract_subvector(cvtps2dq(x),c) -> cvtps2dq(extract_subvector(x,c))

Help unblock #83402


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-reductions.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/divrem.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/select-cmp-reduction.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/uniform-load-store.ll
    M llvm/test/Transforms/LoopVectorize/X86/drop-poison-generating-flags.ll
    M llvm/test/Transforms/LoopVectorize/X86/imprecise-through-phis.ll
    M llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll
    M llvm/test/Transforms/LoopVectorize/X86/x86-predication.ll
    M llvm/test/Transforms/LoopVectorize/if-pred-non-void.ll
    M llvm/test/Transforms/LoopVectorize/if-reduction.ll
    M llvm/test/Transforms/LoopVectorize/load-deref-pred-align.ll
    M llvm/test/Transforms/LoopVectorize/reduction-small-size.ll
    M llvm/test/Transforms/LoopVectorize/select-cmp-predicated.ll
    M llvm/test/Transforms/LoopVectorize/single-value-blend-phis.ll
    M llvm/test/Transforms/LoopVectorize/uniform-blend.ll
    A llvm/test/Transforms/LoopVectorize/unused-blend-mask-for-first-operand.ll
    M llvm/test/Transforms/LoopVectorize/vplan-printing.ll
    M llvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge.ll
    M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp

  Log Message:
  -----------
  [VPlan] Remove unused first mask op from VPBlendRecipe. (#87770)

VPBlendRecipe does not use the first mask operand. Removing it allows
VPlan-based DCE to remove unused mask computations.

This also fixes #87410, where unused Not VPInstructions are considered
having only their first lane demanded, but some of their operands
providing a vector value due to other users.

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

PR: https://github.com/llvm/llvm-project/pull/87770


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

  Changed paths:
    M clang/lib/AST/Interp/Interp.h
    A clang/test/AST/Interp/weak.cpp

  Log Message:
  -----------
  [clang][Interp] Diagnose comparisons with weak pointers


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

  Changed paths:
    M clang/unittests/AST/Interp/CMakeLists.txt
    A clang/unittests/AST/Interp/toAPValue.cpp

  Log Message:
  -----------
  [clang][Interp] Add toAPValue unittests


  Commit: 8795822f6ae2e82e23f7fd87a84d6d273e6c04ac
      https://github.com/llvm/llvm-project/commit/8795822f6ae2e82e23f7fd87a84d6d273e6c04ac
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/lib/Target/AArch64/SVEInstrFormats.td

  Log Message:
  -----------
  [NFC][LLVM][CodeGen] Refactor SVE unpredicated binop isel patterns. (#84045)

Create PatFrags for fadd, fmul, fsub, mul, smulh and umulh so that a
single set of patterns can be used. Patch then removes unused classes
and some redundant whitespace.


  Commit: 040e0d4fa45f3606fb584c2923dd111cca675feb
      https://github.com/llvm/llvm-project/commit/040e0d4fa45f3606fb584c2923dd111cca675feb
  Author: Mats Petersson <mats.petersson at arm.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M flang/include/flang/Parser/parse-tree.h
    M flang/lib/Parser/Fortran-parsers.cpp
    M flang/test/Parser/compiler-directives.f90

  Log Message:
  -----------
  [flang]Accept directive inside type definition (#87804)

Some applications have alignment directives for members inside types.

This allows those to be present, but generally getting ignored [with a warning]
later on in the processing. This is just to allow the compilation to complete.


  Commit: bf0b21aa685264c65a2d7fd4a8b86e3c42dfd729
      https://github.com/llvm/llvm-project/commit/bf0b21aa685264c65a2d7fd4a8b86e3c42dfd729
  Author: Hirofumi Nakamura <k.nakamura.hirofumi at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/unittests/Format/FormatTestTableGen.cpp

  Log Message:
  -----------
  [clang-format] Remove trailing newlines in TableGen formatting test. (#87983)


  Commit: 4023329bbfab5f2abc5c035aad05820724a484cf
      https://github.com/llvm/llvm-project/commit/4023329bbfab5f2abc5c035aad05820724a484cf
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-8.ll

  Log Message:
  -----------
  [X86] collectConcatOps - add ability to recurse through insert_subvector chains

Allows us to match insert_subvector(insert_subvector(undef, insert_subvector(insert_subvector(undef, x, 0), y, 1), 0), 0),
                                    insert_subvector(insert_subvector(undef, z, 0), w, 1), 2)


  Commit: 866a1bc814b4d4cb9aa3890eae56ffa05431741d
      https://github.com/llvm/llvm-project/commit/866a1bc814b4d4cb9aa3890eae56ffa05431741d
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/shuffle-vs-trunc-128.ll

  Log Message:
  -----------
  [X86] Add test coverage for #88030


  Commit: 4657ab1c968e486e9f45329daa07340ebcf3bffd
      https://github.com/llvm/llvm-project/commit/4657ab1c968e486e9f45329daa07340ebcf3bffd
  Author: Krystian Stasiowski <sdkrystian at gmail.com>
  Date:   2024-04-09 (Tue, 09 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:
  -----------
  [Clang][Sema] Fix crash when 'this' is used in a dependent class scope function template specialization that instantiates to a static member function (#87541)

This patch fixes a crash that happens when '`this`' is referenced
(implicitly or explicitly) in a dependent class scope function template
specialization that instantiates to a static member function. For
example:
```
template<typename T>
struct A 
{
    template<typename U>
    static void f();

    template<>
    void f<int>() 
    {
        this; // causes crash during instantiation
    }
};

template struct A<int>;
```
This happens because during instantiation of the function body,
`Sema::getCurrentThisType` will return a null `QualType` which we
rebuild the `CXXThisExpr` with. A similar problem exists for implicit
class member access expressions in such contexts (which shouldn't really
happen within templates anyways per [class.mfct.non.static]
p2, but changing that is non-trivial). This patch fixes the crash by building
`UnresolvedLookupExpr`s instead of `MemberExpr`s for these implicit
member accesses, which will then be correctly rebuilt as `MemberExpr`s
during instantiation.


  Commit: 6528f103663af2f08474c16a1bb9ca0f1c2ad31d
      https://github.com/llvm/llvm-project/commit/6528f103663af2f08474c16a1bb9ca0f1c2ad31d
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    A mlir/include/mlir/Dialect/OpenMP/OpenMPClauseOperands.h
    M mlir/include/mlir/Dialect/OpenMP/OpenMPDialect.h
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp

  Log Message:
  -----------
  [MLIR][OpenMP] Group clause operands into structures and use them to define simplified op builders (#86797)

This patch introduces a set of composable structures grouping the MLIR
operands associated to each OpenMP clause. This makes it easier to keep
the MLIR representation for the same clause consistent throughout all
operations that accept it.

The relevant clause operand structures are grouped into per-operation
structures using a mixin pattern and used to define new operation
constructors. These constructors can be used to avoid having to get the
order of a possibly large list of operands right.

Missing clauses are documented as TODOs, as well as operands which are
part of the relevant operation's operand structure but cannot be
attached to the associated operation yet, due to missing op arguments to
its MLIR definition.

A follow-up patch will update Flang lowering to make use of these
structures, simplifying the passing of information from clause
processing to operation-generating functions and also simplifying the
creation of operations through the use of the new operation
constructors.


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

  Changed paths:
    M llvm/test/CodeGen/X86/shuffle-vs-trunc-128.ll

  Log Message:
  -----------
  [X86] shuffle-vs-trunc-128.ll - add BWVL-ONLY/VBMI/VBMI-FAST/VBMI-SLOW check prefixes to recover missing test checks

It is VERY annoying that update_llc_test_checks.py silently fails instead of correctly warning when this happens :(


  Commit: 38824f285f1459cb890337d2df1a3cafd3fd109d
      https://github.com/llvm/llvm-project/commit/38824f285f1459cb890337d2df1a3cafd3fd109d
  Author: Sirraide <aeternalmail at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/ExprCXX.h
    M clang/include/clang/AST/Stmt.h
    M clang/lib/AST/ComputeDependence.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    M clang/test/CodeGenCXX/cxx2b-deducing-this.cpp
    A clang/test/PCH/cxx23-deducing-this-lambda.cpp
    M clang/test/SemaCXX/cxx2b-deducing-this.cpp

  Log Message:
  -----------
  [Clang] [Sema] Fix dependence of DREs in lambdas with an explicit object parameter (#84473)

This fixes some problems wrt dependence of captures in lambdas with
an explicit object parameter.

[temp.dep.expr] states that
> An id-expression is type-dependent if [...] its terminal name is
>   - associated by name lookup with an entity captured by copy
>     ([expr.prim.lambda.capture]) in a lambda-expression that has
>     an explicit object parameter whose type is dependent [dcl.fct].

There were several issues with our implementation of this:
1. we were treating by-reference captures as dependent rather than
   by-value captures;
2. tree transform wasn't checking whether referring to such a
   by-value capture should make a DRE dependent;
3. when checking whether a DRE refers to such a by-value capture, we
   were only looking at the immediately enclosing lambda, and not
   at any parent lambdas;
4. we also forgot to check for implicit by-value captures;
5. lastly, we were attempting to determine whether a lambda has an
   explicit object parameter by checking the `LambdaScopeInfo`'s
   `ExplicitObjectParameter`, but it seems that that simply wasn't
   set (yet) by the time we got to the check.

All of these should be fixed now.

This fixes #70604, #79754, #84163, #84425, #86054, #86398, and #86399.


  Commit: 961d91abd375100a498807a5a0da8003a2878284
      https://github.com/llvm/llvm-project/commit/961d91abd375100a498807a5a0da8003a2878284
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/shuffle-vs-trunc-128.ll

  Log Message:
  -----------
  [X86] shuffle-vs-trunc-128.ll - add common AVX2 check prefix


  Commit: 6f6336858e4588ebd113ebcc930f6384a4edca54
      https://github.com/llvm/llvm-project/commit/6f6336858e4588ebd113ebcc930f6384a4edca54
  Author: Billy Zhu <billyzhu at modular.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M flang/lib/Optimizer/Transforms/AddDebugFoundation.cpp
    M mlir/include/mlir-c/Dialect/LLVM.h
    M mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
    M mlir/include/mlir/Dialect/LLVMIR/LLVMEnums.td
    M mlir/lib/CAPI/Dialect/LLVM.cpp
    M mlir/lib/Dialect/LLVMIR/Transforms/DIScopeForLLVMFuncOp.cpp
    M mlir/lib/Target/LLVMIR/DebugImporter.cpp
    M mlir/lib/Target/LLVMIR/DebugTranslation.cpp
    M mlir/test/CAPI/llvm.c
    M mlir/test/Target/LLVMIR/Import/debug-info.ll
    M mlir/test/Target/LLVMIR/llvmir-debug.mlir

  Log Message:
  -----------
  [MLIR][LLVM] Add DebugNameTableKind to DICompileUnit (#87974)

Add the DebugNameTableKind field to DICompileUnit, along with its
importer & exporter.


  Commit: 1e44d9ac5e9d1ff8baa99fd5495477f3f2f1abe6
      https://github.com/llvm/llvm-project/commit/1e44d9ac5e9d1ff8baa99fd5495477f3f2f1abe6
  Author: Natalie Chouinard <sudonatalie at google.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/fmax.ll
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/fmin.ll

  Log Message:
  -----------
  [SPIR-V] Map llvm.{min,max}num to GL::N{Min,Max} (#88009)

SPIR-V intsruction selection was mapping the LLVM float min/max
intrinsics to FMin and FMax respectively for GL/Vulkan environments,
which does not match the intrinsics' documented treatment of NaN
operands. This patch switches the mapping to the correctly matched NMin
and NMax operations.

Fixes #87072


  Commit: 0c92f8646a765174b68797ad3c0842215c77752f
      https://github.com/llvm/llvm-project/commit/0c92f8646a765174b68797ad3c0842215c77752f
  Author: Charalampos Mitrodimas <charmitro at posteo.net>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaExpr.cpp
    A clang/test/SemaTemplate/instantiate-pure-virtual-function.cpp

  Log Message:
  -----------
  [clang] Disable missing definition warning on pure virtual functions (#74510)

Warning '-Wundefined-func-template' incorrectly indicates that no
definition is available for a pure virtual function. However, a
definition is not needed for a pure virtual function.

Fixes #74016


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

  Changed paths:
    M clang/test/Headers/Inputs/include/stdint.h
    M openmp/runtime/src/CMakeLists.txt

  Log Message:
  -----------
  [Libomp] Place generated OpenMP headers into build resource directory (#88007)

Summary:
These headers are a part of the compiler's resource directory once
installed. However, they are currently placed in the binary directory
temporarily. This makes it more difficult to use the compiler out of the
build directory and will cause issues when moving to `liboffload`. This
patch changes the logic to write these instead to the copmiler's
resource directory inside of the build tree.

NOTE: This doesn't change the Fortran headers, I don't know enough about
those and it won't use the same directory.


  Commit: 2875e2448c147d8a2335882819acdd4c8eb97ea6
      https://github.com/llvm/llvm-project/commit/2875e2448c147d8a2335882819acdd4c8eb97ea6
  Author: Erich Keane <ekeane at nvidia.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Frontend/InitPreprocessor.cpp
    M clang/test/Lexer/cxx-features.cpp
    M clang/www/cxx_status.html

  Log Message:
  -----------
  Update __cpp_concepts macro (#87998)

After discussion with a few others, and seeing the state of our concepts
support, I believe it is worth trying to see if we can update this for
Clang19. The forcing function is that libstdc++'s `<expected>` header is
guarded by this macro, so we need to update it to support that.


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

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/test/AST/Interp/ms.cpp

  Log Message:
  -----------
  [clang][Interp] Handle __unaligned in alignof expressions


  Commit: 23b058cb7f2da7778eb66dbe44d5e60390264e4b
      https://github.com/llvm/llvm-project/commit/23b058cb7f2da7778eb66dbe44d5e60390264e4b
  Author: Vyacheslav Levytskyy <vyacheslav.levytskyy at intel.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.h
    M llvm/lib/Target/SPIRV/SPIRVPreLegalizer.cpp
    M llvm/test/CodeGen/SPIRV/branching/OpSwitchUnreachable.ll
    A llvm/test/CodeGen/SPIRV/branching/switch-range-check.ll

  Log Message:
  -----------
  [SPIR-V] Re-implement switch and improve validation of forward calls (#87823)

This PR fixes issue https://github.com/llvm/llvm-project/issues/87763
and preserves valid CFG in cases when previous scheme failed to generate
valid code for a switch statement. The PR hardens one existing test case
and adds one more test case as a validation of a new switch generation.
Tests are passing spirv-val now.

This PR also improves validation of forward calls.


  Commit: e47fd09f8eece712707f9611992cf6cfcd66605e
      https://github.com/llvm/llvm-project/commit/e47fd09f8eece712707f9611992cf6cfcd66605e
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
    M llvm/test/CodeGen/RISCV/rvv/allocate-lmul-2-4-8.ll

  Log Message:
  -----------
  [RISCV] Use shNadd for scalable stack offsets (#88062)

If we need to multiply VLENB by 2, 4, or 8 and add it to the stack
pointer, we can do so with a shNadd instead of separate shift and add
instructions.


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

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/test/Misc/warning-flags.c
    A clang/test/Sema/tentative-array-decl.c

  Log Message:
  -----------
  Add a diagnostic group for tentative array definitions

This diagnostic is one of the ones that GCC also does not have a
warning group for, but a user requested adding a group to control
selectively turning off this diagnostic. So this adds the diagnostic
to a new group, -Wtentative-definition-array

Fixes #87766


  Commit: 3bfd5c64240c1a812c596dd2bcd480b7607155de
      https://github.com/llvm/llvm-project/commit/3bfd5c64240c1a812c596dd2bcd480b7607155de
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/test/Analysis/CostModel/AArch64/masked_ldst.ll
    M llvm/test/Analysis/CostModel/AArch64/mem-op-cost-model.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-gather.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-intrinsics.ll
    M llvm/test/Analysis/CostModel/RISCV/fixed-vector-gather.ll
    M llvm/test/Analysis/CostModel/RISCV/fixed-vector-scatter.ll
    M llvm/test/Analysis/CostModel/RISCV/masked_ldst.ll
    M llvm/test/Analysis/CostModel/RISCV/rvv-intrinsics.ll
    M llvm/test/Analysis/CostModel/X86/intrinsic-cost-kinds.ll
    M llvm/test/Analysis/CostModel/X86/masked-intrinsic-codesize.ll
    M llvm/test/Analysis/CostModel/X86/masked-intrinsic-latency.ll
    M llvm/test/Analysis/CostModel/X86/masked-intrinsic-sizelatency.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/masked-op-cost.ll

  Log Message:
  -----------
  [TTI] getCommonMaskedMemoryOpCost - consistently use getScalarizationOverhead instead of ExtractElement costs for address/mask extraction. (#87771)

These aren't unknown extraction indices, we will be extracting every address/mask element in sequence.


  Commit: c8917048e3aa2be03b6588b817730abdbce23c85
      https://github.com/llvm/llvm-project/commit/c8917048e3aa2be03b6588b817730abdbce23c85
  Author: Jakub Mazurkiewicz <mazkuba3 at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/Status/Cxx23.rst
    M libcxx/docs/Status/Cxx23Papers.csv
    M libcxx/include/__functional/bind_back.h
    M libcxx/include/functional
    M libcxx/include/version
    M libcxx/modules/std/functional.inc
    M libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    A libcxx/test/std/utilities/function.objects/func.bind.partial/bind_back.pass.cpp
    A libcxx/test/std/utilities/function.objects/func.bind.partial/bind_back.verify.cpp
    A libcxx/test/std/utilities/function.objects/func.bind.partial/types.h
    M libcxx/test/std/utilities/function.objects/func.bind_front/bind_front.pass.cpp
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++] Implement `bind_back` (#81055)

Implement `std::bind_back` function from P2387R3 "Pipe support for
user-defined range adaptors".


  Commit: fb8dbd1fb67ef4d1417f279df7f9a99b29468527
      https://github.com/llvm/llvm-project/commit/fb8dbd1fb67ef4d1417f279df7f9a99b29468527
  Author: Sam Tebbs <samuel.tebbs at arm.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/AArch64RegisterInfo.td
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    M llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
    M llvm/lib/Target/AArch64/SMEInstrFormats.td
    M llvm/lib/Target/AArch64/SVEInstrFormats.td
    M llvm/test/CodeGen/AArch64/GlobalISel/regbank-inlineasm.mir
    M llvm/test/CodeGen/AArch64/emit_fneg_with_non_register_operand.mir
    M llvm/test/CodeGen/AArch64/peephole-insvigpr.mir
    M llvm/test/CodeGen/AArch64/spillfill-sve.mir
    M llvm/test/MC/AArch64/SVE/pfalse-diagnostics.s

  Log Message:
  -----------
  [AArch64] Remove copy in SVE/SME predicate spill and fill (#81716)

7dc20ab introduced an extra COPY when spilling and filling a PNR
register, which can't be elided as the input (PNR predicate) and output
(PPR predicate) register classes differ. The patch adds a new register
class that covers both PPR and PNR so that STR_PXI and LDR_PXI can
take either of them, removing the need for the copy.


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

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

  Log Message:
  -----------
  [bazel][clang] Remove gen-clang-*-left-list attributes from tablegen

For both 9391ff8c86007562d40c240ea082b7c0cbf35947 and a30662fc2acdd73ca1a9217716299a4676999fb4.


  Commit: 568ec1340c1260c36a490d10c38366ed00f63209
      https://github.com/llvm/llvm-project/commit/568ec1340c1260c36a490d10c38366ed00f63209
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/ProfileData/InstrProfWriter.cpp
    M llvm/lib/ProfileData/RawMemProfReader.cpp

  Log Message:
  -----------
  [memprof] Use structured binding (NFC) (#88096)


  Commit: e280407a4865542c4bb6cfa148edbe1ea67023d6
      https://github.com/llvm/llvm-project/commit/e280407a4865542c4bb6cfa148edbe1ea67023d6
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/include/__expected/bad_expected_access.h
    A libcxx/test/std/utilities/expected/expected.bad/base.compile.pass.cpp
    A libcxx/test/std/utilities/expected/expected.bad/void-specialization.pass.cpp
    R libcxx/test/std/utilities/expected/expected.bad/what.noexcept.compile.pass.cpp
    A libcxx/test/std/utilities/expected/expected.bad/what.pass.cpp

  Log Message:
  -----------
  [libc++] Add test coverage for our implementation of LWG4031 (#87508)

This was actually already implemented in the initial version of
std::expected, but this patch adds test coverage and makes it more
explicit that we intend to make these functions noexcept.


  Commit: 4ac2721e51131b3a160fee5ae0fcbd695d090e86
      https://github.com/llvm/llvm-project/commit/4ac2721e51131b3a160fee5ae0fcbd695d090e86
  Author: David Green <david.green at arm.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
    M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.h
    M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
    M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
    M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
    M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/lib/Target/X86/X86TargetTransformInfo.h
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/test/Analysis/CostModel/AArch64/shuffle-store.ll

  Log Message:
  -----------
  [AArch64] Add costs for ST3 and ST4 instructions, modelled as store(shuffle). (#87934)

This tries to add some costs for the shuffle in a ST3/ST4 instruction,
which are represented in LLVM IR as store(interleaving shuffle). In
order to detect the store, it needs to add a CxtI context instruction to
check the users of the shuffle. LD3 and LD4 are added, LD2 should be a
zip1 shuffle, which will be added in another patch.

It should help fix some of the regressions from #87510.


  Commit: e8e67957fa48fd7611adccef1a0449b83649c9f4
      https://github.com/llvm/llvm-project/commit/e8e67957fa48fd7611adccef1a0449b83649c9f4
  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
    A llvm/test/Transforms/SLPVectorizer/X86/extractelement-vecop-vectorized.ll

  Log Message:
  -----------
  [SLP]Fix PR88123: use vectorized operands consistently.

Need to use vectorized operands, not the vecop of the extractelement
instructions, to avoid false detection of the extra vector operand in
the extractelements shuffling.


  Commit: 8a8ab8f70cbb5507d1aa55efcd9c6e61ad4e891c
      https://github.com/llvm/llvm-project/commit/8a8ab8f70cbb5507d1aa55efcd9c6e61ad4e891c
  Author: Schuyler Eldridge <schuyler.eldridge at sifive.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M .github/workflows/release-lit.yml

  Log Message:
  -----------
  [lit][ci] Publish lit wheels (#88072)

Add wheel publishing in addition to existing source distribution
publishing of lit.

Fixes #63369. This also uses the exact fix proposed by @EFord36 in
#63369.

Signed-off-by: Schuyler Eldridge <schuyler.eldridge at sifive.com>


  Commit: 4bb5d48584818646a31a1ba4bfbbd658b7dfbe67
      https://github.com/llvm/llvm-project/commit/4bb5d48584818646a31a1ba4bfbbd658b7dfbe67
  Author: Michael Liao <michael.hliao at gmail.com>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M clang/test/Driver/cuda-external-tools.cu

  Log Message:
  -----------
  [clang][NFC] Fix CUDA clang-cl tests

- Add '--' argument to prevent interpreting intput files as options
  starting with '/'. Fix test failure after
  2921a0928c71f4ee652a2478283e47ab5ffebf58.


  Commit: 614a5780347ff0c8f82b8867660ea7fb4d9fdccb
      https://github.com/llvm/llvm-project/commit/614a5780347ff0c8f82b8867660ea7fb4d9fdccb
  Author: Peter Lafreniere <peter at n8pjl.ca>
  Date:   2024-04-09 (Tue, 09 Apr 2024)

  Changed paths:
    M llvm/lib/Target/M68k/M68kInstrArithmetic.td
    A llvm/test/CodeGen/M68k/Arith/unary.ll
    M llvm/test/CodeGen/M68k/Atomics/rmw.ll
    M llvm/test/MC/Disassembler/M68k/arithmetic.txt
    A llvm/test/MC/M68k/Arith/Classes/MxNOT.s

  Log Message:
  -----------
  [M68k] Add support for bitwise NOT instruction (#88049)

Currently the bitwise NOT instruction is not recognized. Add support for
using NOT on data registers. This is a partial implementation that puts
NOT at the same level of support as NEG currently enjoys.

Using not rather than eori cuts the length of the encoded instruction
in half or in thirds, leading to a reduction of 4-10 cycles per
instruction, on the original 68000.

This change includes tests for both bitwise and arithmetic negation.


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

  Changed paths:
    M libc/test/src/math/CMakeLists.txt
    M libc/test/src/math/FmaTest.h

  Log Message:
  -----------
  [libc] Initialize rand for fma tests (#88055)

Summary:
The GPU build will have some random garbage here since we do not support
initializers for the underlying implementation. Manually set the seed to
1.


  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: 5ae9ffbd18fd93edbbc8efebe140aeb24cd763c2
      https://github.com/llvm/llvm-project/commit/5ae9ffbd18fd93edbbc8efebe140aeb24cd763c2
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

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

  Log Message:
  -----------
  [RISCV] Address review comment from 88062

As pointed out by Fraser, KillSrcReg is always false at this point in
code, and having the inconcistency on whether we check the flag between
the if and else blocks is confusing.


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

  Changed paths:
    M openmp/libomptarget/plugins-nextgen/amdgpu/src/rtl.cpp
    M openmp/libomptarget/src/interface.cpp

  Log Message:
  -----------
  [Libomptarget][NFC] Fix unused variable warnings

Summary:
This patch fixes a few warnings that would show up while building.


  Commit: 2bf48892ab0ce5d53126c7b114070bba18521501
      https://github.com/llvm/llvm-project/commit/2bf48892ab0ce5d53126c7b114070bba18521501
  Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/docs/HIPSupport.rst

  Log Message:
  -----------
  [HIP] document difference with CUDA (#86838)


  Commit: 6ca5a410d26262f06f954e91200eefe0cbfb7fb8
      https://github.com/llvm/llvm-project/commit/6ca5a410d26262f06f954e91200eefe0cbfb7fb8
  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
    A llvm/test/Transforms/SLPVectorizer/X86/extractlements-gathered-first-node.ll

  Log Message:
  -----------
  [SLP]Fix PR87358: broken module, Instruction does not dominate all uses.

If the first node is a gather node with extractelement instructions,
still need to put the vector value after all instructions, not after the
very first one.


  Commit: 7f1b9adfc8d86c77ee87a268b3d30e0eda8ed493
      https://github.com/llvm/llvm-project/commit/7f1b9adfc8d86c77ee87a268b3d30e0eda8ed493
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachineCombinerPattern.h
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/test/CodeGen/RISCV/rv64zba.ll

  Log Message:
  -----------
  [RISCV] Add MachineCombiner to fold (sh3add Z, (add X, (slli Y, 6))) -> (sh3add (sh3add Y, Z), X). (#87884)

This improves a pattern that occurs in 531.deepsjeng_r. Reducing the
dynamic instruction count by 0.5%.

This may be possible to improve in SelectionDAG, but given the special
cases around shXadd formation, it's not obvious it can be done in a
robust way without adding multiple special cases.

I've used a GEP with 2 indices because that mostly closely resembles the
motivating case. Most of the test cases are the simplest GEP case. One
test has a logical right shift on an index which is closer to the
deepsjeng code. This requires special handling in isel to reverse a
DAGCombiner canonicalization that turns a pair of shifts into (srl (and
X, C1), C2).


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

  Changed paths:
    A llvm/test/Transforms/InstCombine/vector-reduce-min-max-known.ll

  Log Message:
  -----------
  [InstCombine] Add tests for non-zero/knownbits of `vector_reduce_{s,u}{min,max}`; NFC


  Commit: 77d668451ad2e6370eb595c171779429e9becdf2
      https://github.com/llvm/llvm-project/commit/77d668451ad2e6370eb595c171779429e9becdf2
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/vector-reduce-min-max-known.ll

  Log Message:
  -----------
  [ValueTracking] Add support for `vector_reduce_{s,u}{min,max}` in `isKnownNonZero`

Previously missing, proofs for all implementations:
https://alive2.llvm.org/ce/z/G8wpmG


  Commit: 41c52217b003ce9435ae534251b0d0d035495262
      https://github.com/llvm/llvm-project/commit/41c52217b003ce9435ae534251b0d0d035495262
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/vector-reduce-min-max-known.ll

  Log Message:
  -----------
  [ValueTracking] Add support for `vector_reduce_{s,u}{min,max}` in `computeKnownBits`

Previously missing. We compute by just applying the reduce function on
the knownbits of each element.

Closes #88169


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

  Changed paths:
    M llvm/test/Transforms/InstCombine/known-bits.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for overflow detection functions is `isKnownNonZero`; NFC


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

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

  Log Message:
  -----------
  [ValueTracking] Split `isNonZero(mul)` logic to a helper; NFC


  Commit: 37ca6fa1e26e86c85c544023b18695be420e80dd
      https://github.com/llvm/llvm-project/commit/37ca6fa1e26e86c85c544023b18695be420e80dd
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/known-bits.ll

  Log Message:
  -----------
  [ValueTracking] Add support for overflow detection functions is `isKnownNonZero`

Adds support for: `{s,u}{add,sub,mul}.with.overflow`

The logic is identical to the the non-overflow binops, we where just
missing the cases.

Closes #87701


  Commit: 2ff82c2c6490a1478e4311f60f1ce80af0957403
      https://github.com/llvm/llvm-project/commit/2ff82c2c6490a1478e4311f60f1ce80af0957403
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/InstSimplify/known-non-zero.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for improving `isKnownNonZero` of `smax`; NFC


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

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstSimplify/known-non-zero.ll

  Log Message:
  -----------
  [ValueTracking] improve `isKnownNonZero` precision for `smax`

Instead of relying on known-bits for strictly positive, use the
`isKnownPositive` API. This will use `isKnownNonZero` which is more
accurate.

Closes #88170


  Commit: 7d60232b38b66138dae1b31027d73ee5b9df5c58
      https://github.com/llvm/llvm-project/commit/7d60232b38b66138dae1b31027d73ee5b9df5c58
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/docs/tools/clang-formatted-files.txt
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Flang.cpp
    M flang/include/flang/Frontend/PreprocessorOptions.h
    M flang/include/flang/Parser/parsing.h
    A flang/include/flang/Parser/preprocessor.h
    A flang/include/flang/Parser/token-sequence.h
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Frontend/FrontendActions.cpp
    M flang/lib/Parser/parsing.cpp
    M flang/lib/Parser/preprocessor.cpp
    R flang/lib/Parser/preprocessor.h
    M flang/lib/Parser/prescan.cpp
    M flang/lib/Parser/prescan.h
    M flang/lib/Parser/token-sequence.cpp
    R flang/lib/Parser/token-sequence.h
    M flang/test/Driver/driver-help-hidden.f90
    M flang/test/Driver/driver-help.f90
    A flang/test/Preprocessing/show-macros1.F90
    A flang/test/Preprocessing/show-macros2.F90
    A flang/test/Preprocessing/show-macros3.F90

  Log Message:
  -----------
  [flang][Frontend] Implement printing defined macros via -dM (#87627)

This should work the same way as in clang.


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

  Changed paths:
    M clang/test/Driver/lld-repro.c

  Log Message:
  -----------
  [clang][test] Avoid writing to a potentially write-protected dir (#88258)

This test just checks for the stdout/stderr of clang, but it
incidentally tries to write to `a.out` in the current directory, which
may be write protected. Typically one would write `clang -o %t.o` for a
writeable dir, but since we only care about stdout/stderr, throw away
the object file and just write to /dev/null instead.


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

  Changed paths:
    M libcxx/include/__algorithm/simd_utils.h
    M libcxx/include/__config
    M libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp
    M libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp
    M libcxx/test/std/utilities/format/format.arguments/format.arg/visit.pass.cpp
    M libcxx/test/std/utilities/format/format.arguments/format.arg/visit.return_type.pass.cpp
    M libcxx/test/std/utilities/format/format.arguments/format.arg/visit_format_arg.deprecated.verify.cpp
    M libcxx/test/std/utilities/variant/variant.visit.member/robust_against_adl.pass.cpp
    M libcxx/test/std/utilities/variant/variant.visit.member/visit.pass.cpp
    M libcxx/test/std/utilities/variant/variant.visit.member/visit_return_type.pass.cpp

  Log Message:
  -----------
  [libc++] Removes Clang-16 support. (#87810)

With the release of Clang-18 we no longer officially support Clang-16.


  Commit: fc3dff9b4637bb5960fe70add90cd27e6842d58b
      https://github.com/llvm/llvm-project/commit/fc3dff9b4637bb5960fe70add90cd27e6842d58b
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/lib/Serialization/ASTReader.cpp
    A clang/test/Modules/home-is-cwd-search-paths.c

  Log Message:
  -----------
  [clang][modules] Stop eagerly reading files with diagnostic pragmas (#87442)

This makes it so that the importer doesn't need to stat all input files
of a module that contain diagnostic pragmas, reducing file system
traffic.


  Commit: 51786eb5bfc30e7eff998323a9ce433ec4620383
      https://github.com/llvm/llvm-project/commit/51786eb5bfc30e7eff998323a9ce433ec4620383
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/lib/Serialization/ASTWriter.cpp

  Log Message:
  -----------
  [clang][modules] Only compute affecting module maps with implicit search (#87849)

When writing out a PCM, we compute the set of module maps that did
affect the compilation and we strip the rest to make the output
independent of them. The most common way to read a module map that is
not affecting is with implicit module map search. The other option is to
pass a bunch of unnecessary `-fmodule-map-file=<path>` arguments on the
command-line, in which case the client should probably not give those to
Clang anyway.

This makes serialization of explicit modules faster, mostly due to
reduced file system traffic.


  Commit: 323d3ab2574ba9d371926bb1b5c67dbe7b2b4ec3
      https://github.com/llvm/llvm-project/commit/323d3ab2574ba9d371926bb1b5c67dbe7b2b4ec3
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/vector-interleave.ll

  Log Message:
  -----------
  [RISCV] Optimize undef Even vector in getWideningInterleave. (#88221)

We recently optimized the code when the Odd vector was undef to fix a
poison bug.

There are additional optimizations we can do if the even vector is
undef. With Zvbb, we can use a single vwsll. Without Zvbb, we can use a
vzext.vf2 and a vsll.


  Commit: e72c949c15208ba3dd53a9cebfee02734965a678
      https://github.com/llvm/llvm-project/commit/e72c949c15208ba3dd53a9cebfee02734965a678
  Author: Evgenii Stepanov <eugeni.stepanov at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/test/Instrumentation/MemorySanitizer/overflow.ll

  Log Message:
  -----------
  [msan] Overflow intrinsics. (#88210)


  Commit: 43b2b2ebce635bec1e3c060092ea75db858ee3fd
      https://github.com/llvm/llvm-project/commit/43b2b2ebce635bec1e3c060092ea75db858ee3fd
  Author: Mehdi Amini <joker.eph at gmail.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:
  -----------
  Revert "Fix complex log1p accuracy with large abs values." (#88290)

Reverts llvm/llvm-project#88260

The test fails on the GCC7 buildbot.


  Commit: 48c5c70fdd3bec2929e2e903e3bf4494a65f7a92
      https://github.com/llvm/llvm-project/commit/48c5c70fdd3bec2929e2e903e3bf4494a65f7a92
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/lib/Sema/SemaOpenACC.cpp

  Log Message:
  -----------
  [NFC] Update SemaRef.Diag to just Diag in OpenACC implementation

I missed these two in my last patch as the two patches crossed in
review, so correct this now.


  Commit: 3d468566eb395995ac54fcf90d3afb9b9f822eb3
      https://github.com/llvm/llvm-project/commit/3d468566eb395995ac54fcf90d3afb9b9f822eb3
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/lib/Serialization/ASTReader.cpp

  Log Message:
  -----------
  [NFC] Remove unneeded 'maybe_unused' attributes

This was added while we only had a partial implementation of clauses, so
we don't need these anymore.


  Commit: f388a3a446ef2566d73b6a73ba300738f8c2c002
      https://github.com/llvm/llvm-project/commit/f388a3a446ef2566d73b6a73ba300738f8c2c002
  Author: Aart Bik <ajcbik at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorOps.td
    M mlir/test/Dialect/SparseTensor/invalid.mlir
    M mlir/test/Dialect/SparseTensor/roundtrip.mlir
    M mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_pack.mlir

  Log Message:
  -----------
  [mlir][sparse] update doc and examples of the [dis]assemble operations (#88213)

The doc and examples of the [dis]assemble operations did not reflect all
the recent changes on order of the operands. Also clarified some of the
text.


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

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

  Log Message:
  -----------
  Fix MSVC "not all control paths return a value" warning. NFC.


  Commit: 335d5d5f47b883055e676ffe5f981469a5f5f4f6
      https://github.com/llvm/llvm-project/commit/335d5d5f47b883055e676ffe5f981469a5f5f4f6
  Author: Vyacheslav Levytskyy <vyacheslav.levytskyy at intel.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
    M llvm/test/CodeGen/SPIRV/SampledImageRetType.ll

  Log Message:
  -----------
  [SPIRV] Tweak parsing of base type name in builtins (#88255)

This PR is a small improvement of parsing of base type name in builtins,
allowing to understand `unsigned ...` types. The test case that fails
without the fix is attached.


  Commit: 4dcf33b6c2806216dfe8c5e1e3582a45516dbc69
      https://github.com/llvm/llvm-project/commit/4dcf33b6c2806216dfe8c5e1e3582a45516dbc69
  Author: David Green <david.green at arm.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/AArch64/lrint-conv.ll
    M llvm/test/CodeGen/AArch64/vector-lrint.ll

  Log Message:
  -----------
  [AArch64] Cleanup and GISel coverage for lrint tests. NFC


  Commit: 04bf1a4090c535e3a1033ab9a8ef92068166461f
      https://github.com/llvm/llvm-project/commit/04bf1a4090c535e3a1033ab9a8ef92068166461f
  Author: Kojo Acquah <KoolJBlack at users.noreply.github.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/ArmNeon/Transforms/LowerContractionToSMMLAPattern.cpp
    M mlir/test/Dialect/ArmNeon/lower-to-arm-neon.mlir

  Log Message:
  -----------
  Update `LowerContractionToSMMLAPattern` to ingnore matvec (#88288)

Patterns in `LowerContractionToSMMLAPattern` are designed to handle
vector-to-matrix multiplication but not matrix-to-vector. This leads to
the following error when processing `rhs` with rank < 2:

```
iree-compile: /usr/local/google/home/kooljblack/code/iree-build/llvm-project/tools/mlir/include/mlir/IR/BuiltinTypeInterfaces.h.inc:268: int64_t mlir::detail::ShapedTypeTrait<mlir::VectorType>::getDimSize(unsigned int) const [ConcreteType = mlir::VectorType]: Assertion `idx < getRank() && "invalid index for shaped type"' failed.
```

Updates to explicitly check the rhs rank and fail cases that cannot
process.


  Commit: c54afe5c33ca6159841d909fb8fe20e5d4e0069b
      https://github.com/llvm/llvm-project/commit/c54afe5c33ca6159841d909fb8fe20e5d4e0069b
  Author: higher-performance <113926381+higher-performance at users.noreply.github.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/AST/ParentMapContext.cpp

  Log Message:
  -----------
  Fix quadratic slowdown in AST matcher parent map generation (#87824)

Avoids the need to linearly re-scan all seen parent nodes to check for
duplicates, which previously caused a slowdown for ancestry checks in
Clang AST matchers.

Fixes: #86881


  Commit: f27f3697108470c3e995cf3cb454641c22ec1fa9
      https://github.com/llvm/llvm-project/commit/f27f3697108470c3e995cf3cb454641c22ec1fa9
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
    M llvm/test/CodeGen/RISCV/interrupt-attr-nocall.ll
    M llvm/test/CodeGen/RISCV/interrupt-attr.ll

  Log Message:
  -----------
  [RISCV] Remove interrupt handler special case from RISCVFrameLowering::determineCalleeSaves. (#88069)

This code was trying to save temporary argument registers in interrupt
handler functions that contain calls. With the exception that all FP
registers are saved including the normally callee saved registers.

If all of the callees use an FP ABI and the interrupt handler doesn't
touch the normally callee saved FP registers, we don't need to save
them.

It doesn't appear that we need to special case functions with calls. The
normal callee saved register handling will already check each of the calls
and consider a register clobbered if the call doesn't explicitly say it is preserved.

All of the test changes are from the removal of the FP callee saved
registers. There are tests for interrupt handlers with F and D extension
that use ilp32 or lp64 ABIs that are not affected by this change. They
still save the FP callee saved registers as they should.

gcc appears to have a bug where the D extension being enabled with the
ilp32f or lp64f ABI does not save the FP callee saved regs. The callee
would only save/restore the lower 32 bits and clobber the upper bits.
LLVM saves the FP callee saved regs in this case and there is an
unchanged test for it.

The unnecessary save/restore was raised in this thread
https://discourse.llvm.org/t/has-bugs-when-optimizing-save-restore-csrs-by-changing-csr-xlen-f32-interrupt/78200/1


  Commit: 86842e1f724fba5abae50ce438553895e69b8141
      https://github.com/llvm/llvm-project/commit/86842e1f724fba5abae50ce438553895e69b8141
  Author: Jun Wang <jwang86 at yahoo.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/AMDGPU.cpp
    M clang/test/Driver/amdgpu-features.c
    M llvm/lib/Target/AMDGPU/AMDGPU.td
    M llvm/lib/Target/AMDGPU/GCNSubtarget.h
    M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
    A llvm/test/CodeGen/AMDGPU/insert_waitcnt_for_precise_memory.ll

  Log Message:
  -----------
  [AMDGPU] New clang option for emitting a waitcnt instruction after each memory instruction (#79236)

This patch introduces a new command-line option for clang, namely,
amdgpu-precise-mem-op (or precise-memory in the backend). When this option is specified, a waitcnt
instruction is generated after each memory load/store instruction. The
counter values are always 0, but which counters are involved depends on
the memory instruction.

---------

Co-authored-by: Jun Wang <jun.wang7 at amd.com>


  Commit: 4d80dff819d1164775d0d55fc68bffedb90ba53c
      https://github.com/llvm/llvm-project/commit/4d80dff819d1164775d0d55fc68bffedb90ba53c
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/lib/AST/Interp/FunctionPointer.h

  Log Message:
  -----------
  int -> uintptr_t to silence diagnostics

'int' may not be sufficiently large to store a pointer representation
anyway, so this is also a correctness fix.


  Commit: 21009f466ece9f21b18e1bb03bd74b566188bae5
      https://github.com/llvm/llvm-project/commit/21009f466ece9f21b18e1bb03bd74b566188bae5
  Author: martinboehme <mboehme at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
    M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
    M clang/lib/Analysis/FlowSensitive/Transfer.cpp
    M clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp
    M clang/unittests/Analysis/FlowSensitive/DataflowEnvironmentTest.cpp
    M clang/unittests/Analysis/FlowSensitive/TransferTest.cpp

  Log Message:
  -----------
  [clang][dataflow] Propagate locations from result objects to initializers. (#87320)

Previously, we were propagating storage locations the other way around,
i.e.
from initializers to result objects, using `RecordValue::getLoc()`. This
gave
the wrong behavior in some cases -- see the newly added or fixed tests
in this
patch.

In addition, this patch now unblocks removing the `RecordValue` class
entirely,
as we no longer need `RecordValue::getLoc()`.

With this patch, the test `TransferTest.DifferentReferenceLocInJoin`
started to
fail because the framework now always uses the same storge location for
a
`MaterializeTemporaryExpr`, meaning that the code under test no longer
set up
the desired state where a variable of reference type is mapped to two
different
storage locations in environments being joined. Rather than trying to
modify
this test to set up the test condition again, I have chosen to replace
the test
with an equivalent test in DataflowEnvironmentTest.cpp that sets up the
test
condition directly; because this test is more direct, it will also be
less
brittle in the face of future changes.


  Commit: b9a3551c905573df456ee52fa1051e49fa956c65
      https://github.com/llvm/llvm-project/commit/b9a3551c905573df456ee52fa1051e49fa956c65
  Author: Kevin P. Neal <kevin.neal at sas.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/unittests/Bitcode/BitReaderTest.cpp

  Log Message:
  -----------
  [FPEnv][BitcodeReader] Correct strictfp test.

Correct a strictfp test to follow the rules documented in the LangRef:
https://llvm.org/docs/LangRef.html#constrained-floating-point-intrinsics

This test needed the strictfp attribute added to a function definition.

Test changes verified with D146845.


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

  Changed paths:
    M llvm/test/Transforms/InstSimplify/known-non-zero.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for `shufflevector` in `isKnownNonZero`


  Commit: 87528bfefbb50ed6560b9b8482fc7c9f86ca34cd
      https://github.com/llvm/llvm-project/commit/87528bfefbb50ed6560b9b8482fc7c9f86ca34cd
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstSimplify/known-non-zero.ll

  Log Message:
  -----------
  [ValueTracking] Add support for `shufflevector` in `isKnownNonZero`

Shuffles don't modify the data, so if all elements that end up in the
destination are non-zero the result is non-zero.

Closes #87702


  Commit: 8a28b9b8ec1686426a4b43c8431570eaa1da77d9
      https://github.com/llvm/llvm-project/commit/8a28b9b8ec1686426a4b43c8431570eaa1da77d9
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/InstSimplify/known-non-zero.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for `insertelement` in `isKnownNonZero`; NFC


  Commit: 9c545a14c09051b011358854655c1f466d656e79
      https://github.com/llvm/llvm-project/commit/9c545a14c09051b011358854655c1f466d656e79
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstSimplify/known-non-zero.ll

  Log Message:
  -----------
  [ValueTracking] Add support for `insertelement` in `isKnownNonZero`

Inserts don't modify the data, so if all elements that end up in the
destination are non-zero the result is non-zero.

Closes #87703


  Commit: 195d278d502308655edb1e9ff1c6f0c9256d0d15
      https://github.com/llvm/llvm-project/commit/195d278d502308655edb1e9ff1c6f0c9256d0d15
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/InstSimplify/icmp.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for `xor`/`disjoint or` in `getInvertibleOperands`; NFC


  Commit: 0c57a2e4b4e5a6e5dda78a313fc8d8e3c91797f5
      https://github.com/llvm/llvm-project/commit/0c57a2e4b4e5a6e5dda78a313fc8d8e3c91797f5
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstSimplify/icmp.ll

  Log Message:
  -----------
  [ValueTracking] Add support for `xor`/`disjoint or` in `getInvertibleOperands`

This strengthens our `isKnownNonEqual` logic with some fairly
trivial cases.

Proofs: https://alive2.llvm.org/ce/z/4pxRTj

Closes #87705


  Commit: 2646790155f73d6cfb28ec0ee472056740e4658e
      https://github.com/llvm/llvm-project/commit/2646790155f73d6cfb28ec0ee472056740e4658e
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/InstSimplify/icmp.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for `xor`/`disjoint or` in `isKnownNonZero`; NFC


  Commit: 81cdd35c0c8db22bfdd1f06cb2118d17fd99fc07
      https://github.com/llvm/llvm-project/commit/81cdd35c0c8db22bfdd1f06cb2118d17fd99fc07
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstSimplify/icmp.ll

  Log Message:
  -----------
  [ValueTracking] Add support for `xor`/`disjoint or` in `isKnownNonZero`

Handles cases like `X ^ Y == X` / `X disjoint| Y == X`.

Both of these cases have identical logic to the existing `add` case,
so just converting the `add` code to a more general helper.

Proofs: https://alive2.llvm.org/ce/z/Htm7pe

Closes #87706


  Commit: 2b00a73f62605fcaeaedd358ba8b55fad06571aa
      https://github.com/llvm/llvm-project/commit/2b00a73f62605fcaeaedd358ba8b55fad06571aa
  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
    M llvm/test/Transforms/SLPVectorizer/AArch64/extractelements-to-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/ext-int-reduced-not-operand.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gather-move-out-of-loop.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gathered-delayed-nodes-with-reused-user.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-scheduled-inst-reused-as-last-inst.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder_with_external_users.ll
    M llvm/test/Transforms/SLPVectorizer/alternate-non-profitable.ll

  Log Message:
  -----------
  [SLP]Buildvector for alternate instructions with non-profitable gather operands.

If the operands of the potentially alternate node are going to produce
buildvector sequences, which result in more instructions, than the
original code, then suhinstructions should be vectorized as alternate
node, better to end up with the buildvector node.

Left column - experimental, Right - reference.

Metric: size..text

Program                                                                                                                                                size..text
                                                                                                                                                       results     results0    diff
                                                                                      test-suite :: SingleSource/Benchmarks/Adobe-C++/loop_unroll.test   413680.00   416272.00  0.6%
                                                                              test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test 12351788.00 12354844.00  0.0%
                                                                                  test-suite :: External/SPEC/CINT2017speed/625.x264_s/625.x264_s.test   664901.00   664949.00  0.0%
                                                                                   test-suite :: External/SPEC/CINT2017rate/525.x264_r/525.x264_r.test   664901.00   664949.00  0.0%
                                                                                test-suite :: External/SPEC/CFP2017rate/511.povray_r/511.povray_r.test  1171371.00  1171355.00 -0.0%
                                                                                         test-suite :: MultiSource/Benchmarks/7zip/7zip-benchmark.test  1036396.00  1036284.00 -0.0%
                                                                         test-suite :: MultiSource/Benchmarks/MiBench/consumer-jpeg/consumer-jpeg.test   111280.00   111248.00 -0.0%
                                                                              test-suite :: External/SPEC/CFP2017rate/538.imagick_r/538.imagick_r.test  1392113.00  1391361.00 -0.1%
                                                                             test-suite :: External/SPEC/CFP2017speed/638.imagick_s/638.imagick_s.test  1392113.00  1391361.00 -0.1%
                                                                        test-suite :: MultiSource/Benchmarks/Prolangs-C/TimberWolfMC/timberwolfmc.test   281676.00   281452.00 -0.1%
                                                                                    test-suite :: MultiSource/Benchmarks/VersaBench/ecbdes/ecbdes.test     3025.00     3019.00 -0.2%
                                                                                test-suite :: MultiSource/Benchmarks/Prolangs-C/plot2fig/plot2fig.test     6351.00     6335.00 -0.3%

Metric: SLP.NumVectorInstructions

Program                                                                                                                                                SLP.NumVectorInstructions
                                                                                                                                                       results                   results0 diff
                                                                                    test-suite :: MultiSource/Benchmarks/VersaBench/ecbdes/ecbdes.test    15.00                     16.00   6.7%
                                                                                   test-suite :: External/SPEC/CINT2017rate/525.x264_r/525.x264_r.test  1703.00                   1707.00   0.2%
                                                                                  test-suite :: External/SPEC/CINT2017speed/625.x264_s/625.x264_s.test  1703.00                   1707.00   0.2%
                                                                              test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test 26241.00                  26239.00  -0.0%
                                                                                test-suite :: External/SPEC/CFP2017rate/510.parest_r/510.parest_r.test 11761.00                  11754.00  -0.1%
                                                                        test-suite :: MultiSource/Benchmarks/Prolangs-C/TimberWolfMC/timberwolfmc.test   824.00                    822.00  -0.2%
                                                                             test-suite :: External/SPEC/CFP2017speed/638.imagick_s/638.imagick_s.test  5668.00                   5654.00  -0.2%
                                                                              test-suite :: External/SPEC/CFP2017rate/538.imagick_r/538.imagick_r.test  5668.00                   5654.00  -0.2%
                                                                                     test-suite :: External/SPEC/CINT2017rate/502.gcc_r/502.gcc_r.test   792.00                    790.00  -0.3%
                                                                                    test-suite :: External/SPEC/CINT2017speed/602.gcc_s/602.gcc_s.test   792.00                    790.00  -0.3%
                                                                                       test-suite :: MultiSource/Benchmarks/FreeBench/pifft/pifft.test  1389.00                   1384.00  -0.4%
                                                                                         test-suite :: MultiSource/Benchmarks/7zip/7zip-benchmark.test   596.00                    590.00  -1.0%
                                                                                test-suite :: MultiSource/Benchmarks/Prolangs-C/plot2fig/plot2fig.test     6.00                      5.00 -16.7%

Metric: exec_time

Program                                                                                                                                                exec_time
                                                                                                                                                       results   results0  diff
                                                                               test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test     99.14    100.00    0.9%

Other changes are not significant (less than 0.1% percent with exectime
less 5 secs).

SingleSource/Benchmarks/Adobe-C++/loop_unroll - same small patterns
remain scalar, smaller code.
External/SPEC/CFP2017rate/526.blender_r/526.blender_r - many small
changes, some extra stores gets vectorized.
External/SPEC/CINT2017speed/625.x264_s/625.x264_s
External/SPEC/CINT2017rate/525.x264_r/525.x264_r
x264 has one change in a loop body, in function ssim_end4, some code
remain scalar, resulting in less code size.
External/SPEC/CFP2017rate/511.povray_r/511.povray_r - some extra code
gets vectorized, looks like some other patterns were matched.
MultiSource/Benchmarks/7zip/7zip-benchmark - extra stores were
vectorized (looks like the graphs become profitable)
MultiSource/Benchmarks/MiBench/consumer-jpeg/consumer-jpeg - small
changes in vectorized code (some small part remain scalar).
External/SPEC/CFP2017rate/538.imagick_r/538.imagick_r
External/SPEC/CFP2017speed/638.imagick_s/638.imagick_s
Many changes cause by the fact that the code of one function becomes
smaller (onvertLCHabToRGB) and this functions gets inlined after that.
MultiSource/Benchmarks/Prolangs-C/TimberWolfMC/timberwolfmc - some small
changes here and there, some extra code is vectorized, some remain
scalar (2 x vectors)
MultiSource/Benchmarks/VersaBench/ecbdes/ecbdes - emits 2 scalars
+ 2 insertelems instead of insert, broadcast, alt code (3 instructions,
  total 5 insts)
MultiSource/Benchmarks/Prolangs-C/plot2fig/plot2fig - small graph
becomes profitable and gets vectorized.
External/SPEC/CINT2017rate/502.gcc_r/502.gcc_r
External/SPEC/CINT2017speed/602.gcc_s/602.gcc_s
Some small graph becomes profitable and gets vectorized.
MultiSource/Benchmarks/FreeBench/pifft/pifft - no changes in final code.

Reviewers: RKSimon, dtcxzyw

Reviewed By: RKSimon

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


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

  Changed paths:
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__chrono/leap_second.h
    M libcxx/include/__chrono/time_zone_link.h
    M libcxx/include/__locale
    M libcxx/include/__stop_token/stop_callback.h
    A libcxx/include/__utility/private_constructor_tag.h
    M libcxx/include/module.modulemap
    M libcxx/src/CMakeLists.txt
    R libcxx/src/include/tzdb/leap_second_private.h
    R libcxx/src/include/tzdb/time_zone_link_private.h
    M libcxx/src/locale.cpp
    M libcxx/src/tzdb.cpp
    A libcxx/test/libcxx/utilities/utility/private_constructor_tag.compile.pass.cpp
    M libcxx/test/std/time/time.zone/time.zone.leap/assign.copy.pass.cpp
    M libcxx/test/std/time/time.zone/time.zone.leap/cons.copy.pass.cpp
    M libcxx/test/std/time/time.zone/time.zone.leap/members/date.pass.cpp
    M libcxx/test/std/time/time.zone/time.zone.leap/members/value.pass.cpp
    M libcxx/test/std/time/time.zone/time.zone.leap/nonmembers/comparison.pass.cpp
    M libcxx/test/support/test_chrono_leap_second.h
    M libcxx/utils/generate_iwyu_mapping.py

  Log Message:
  -----------
  [libc++] Adds a global private constructor tag. (#87920)

This removes the similar tags used in the chrono tzdb implementation.

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


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

  Changed paths:
    M openmp/libomptarget/DeviceRTL/CMakeLists.txt
    M openmp/libomptarget/DeviceRTL/src/LibC.cpp

  Log Message:
  -----------
  [Libomptarget] Add RPC-based printf implementation for OpenMP #85638

Summary:
Relanding after reverting, only applies to AMDGPU for now.

This patch adds an implementation of printf that's provided by the GPU
C library runtime. This pritnf currently implemented using the same
wrapper handling that OpenMP sets up. This will be removed once we have
proper varargs support.

This printf differs from the one CUDA offers in that it is synchronous
and uses a finite size. Additionally we support pretty much every
format specifier except the %n option.

Depends on #85331


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

  Changed paths:
    M libc/docs/gpu/building.rst

  Log Message:
  -----------
  [libc] Add note to use `LIBC_GPU_BUILD=ON` as another form

Summary:
This is a shorthand to enable GPU support so it should be listed in the
docs.


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

  Changed paths:
    M lld/ELF/SyntheticSections.cpp

  Log Message:
  -----------
  [ELF] Avoid unneeded config->isLE and config->wordsize. NFC


  Commit: e3ef4612c18845876cda9a13c3435e102f74a3aa
      https://github.com/llvm/llvm-project/commit/e3ef4612c18845876cda9a13c3435e102f74a3aa
  Author: shamithoke <152091883+shamithoke at users.noreply.github.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/bitreverse.ll
    M llvm/test/CodeGen/X86/vector-bitreverse.ll

  Log Message:
  -----------
  Perform bitreverse using AVX512 GFNI for i32 and i64. (#81764)

Currently, the lowering operation for bitreverse using Intel AVX512 GFNI only supports byte vectors

Extend the operation to i32 and i64.

---------

Co-authored-by: shami <shami_thoke at yahoo.com>


  Commit: 7549b45825a05fc24fcdbacf006461165aa042cb
      https://github.com/llvm/llvm-project/commit/7549b45825a05fc24fcdbacf006461165aa042cb
  Author: martinboehme <mboehme at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
    M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
    M clang/lib/Analysis/FlowSensitive/Transfer.cpp
    M clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp
    M clang/unittests/Analysis/FlowSensitive/DataflowEnvironmentTest.cpp
    M clang/unittests/Analysis/FlowSensitive/TransferTest.cpp

  Log Message:
  -----------
  Revert "[clang][dataflow] Propagate locations from result objects to initializers." (#88315)

Reverts llvm/llvm-project#87320

This is causing buildbots to fail because
`isOriginalRecordConstructor()` is now unused.


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

  Changed paths:
    M clang/lib/Parse/ParseOpenACC.cpp

  Log Message:
  -----------
  [NFC] Remove a pair of incorrect comments from ParseOpenACC

We attempt to continue parsing, but the comment says the opposite.  Just
remove the inaccurate comments in this patch.


  Commit: b3792ae42a4adda5cb51d53f3d6a4b9b025b11fd
      https://github.com/llvm/llvm-project/commit/b3792ae42a4adda5cb51d53f3d6a4b9b025b11fd
  Author: Xing Xue <xingxue at outlook.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M openmp/runtime/test/lit.cfg

  Log Message:
  -----------
  [OpenMP][AIX] Fix test config for AIX (#88272)

This patch fixes the test config so that it works for
`tasking/omp50_taskdep_depobj.c` which uses different flags to test with
compiler's `omp.h`.
* set test environment variable `OBJECT_MODE` to `64` if it is set
explicitly to `64` in the AIX environment. `OBJECT_MODE` is default to
`32` and is recognized by AIX compilers and toolchain. In this way, we
don't need to set `-m64` for all compiler flags for 64-bit mode
* add option `-Wl,-bmaxdata` to 32-bit `test_openmp_flags` used by
`tasking/omp50_taskdep_depobj.c`


  Commit: a12836647e08c4ad203b9834ac55892fa0b9f2d3
      https://github.com/llvm/llvm-project/commit/a12836647e08c4ad203b9834ac55892fa0b9f2d3
  Author: David Pagan <dave.pagan at amd.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/include/clang/AST/StmtOpenMP.h
    M clang/lib/AST/StmtOpenMP.cpp
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    M clang/test/OpenMP/nvptx_target_teams_generic_loop_codegen.cpp
    M clang/test/OpenMP/nvptx_target_teams_generic_loop_generic_mode_codegen.cpp
    M clang/test/OpenMP/target_teams_generic_loop_codegen.cpp
    A clang/test/OpenMP/target_teams_generic_loop_codegen_as_distribute.cpp
    A clang/test/OpenMP/target_teams_generic_loop_codegen_as_parallel_for.cpp
    M clang/test/OpenMP/target_teams_generic_loop_if_codegen.cpp
    M clang/test/OpenMP/target_teams_generic_loop_private_codegen.cpp
    M clang/test/OpenMP/teams_generic_loop_codegen-1.cpp
    M clang/test/OpenMP/teams_generic_loop_codegen.cpp
    M clang/test/OpenMP/teams_generic_loop_collapse_codegen.cpp
    M clang/test/OpenMP/teams_generic_loop_private_codegen.cpp
    M clang/test/OpenMP/teams_generic_loop_reduction_codegen.cpp

  Log Message:
  -----------
  [OpenMP][CodeGen] Improved codegen for combined loop directives (#87278)

IR for 'target teams loop' is now dependent on suitability of associated
loop-nest.

If a loop-nest:

- does not contain a function call, or
- the -fopenmp-assume-no-nested-parallelism has been specified,
- or the call is to an OpenMP API AND
- does not contain nested loop bind(parallel) directives

then it can be emitted as 'target teams distribute parallel for', which
is the current default. Otherwise, it is emitted as 'target teams
distribute'.

Added debug output indicating how 'target teams loop' was emitted. Flag
is -mllvm -debug-only=target-teams-loop-codegen

Added LIT tests explicitly verifying 'target teams loop' emitted as a
parallel loop and a distribute loop.

Updated other 'loop' related tests as needed to reflect change in IR.
- These updates account for most of the changed files and
additions/deletions.


  Commit: d347235bddbeba2a72d94ebe9d8f98dc675c3776
      https://github.com/llvm/llvm-project/commit/d347235bddbeba2a72d94ebe9d8f98dc675c3776
  Author: Christopher Di Bella <cjdb at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/Flang.cpp

  Log Message:
  -----------
  [Flang] responds to Clang Tidy feedback (#87847)

Line 267: performance-unnecessary-copy-initialization
Line 592: readability-container-size-empty


  Commit: 05093e243859a371f96ffa1c320a4b51579c3da7
      https://github.com/llvm/llvm-project/commit/05093e243859a371f96ffa1c320a4b51579c3da7
  Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/all.ll

  Log Message:
  -----------
  [Spirv][HLSL] Add OpAll lowering and float vec support (#87952)

The main point of this change was to add support for HLSL's all
intrinsic.
In the process of doing that I found a few issues around creating an
`OpConstantComposite` via `buildZerosVal`.

First the current code didn't support floats so the process of adding
`buildZerosValF` meant I needed a
float version of `getOrCreateIntConstVector`. After doing so I renamed
both versions to `getOrCreateConstVector`. That meant I needed to create
a float type version of `getOrCreateIntCompositeOrNull`. Luckily the
type information was low for this function so was able to split it out
into a helpwe and rename `getOrCreateIntCompositeOrNull` to
`getOrCreateCompositeOrNull` With the exception of type handling
differences of the code and Null vs 0 Constant Op codes these functions
should be identical.

To handle scalar floats I could not use `buildConstantFP` like this PR
did:
https://github.com/llvm/llvm-project/commit/0a2aaab5aba46#diff-733a189c5a8c3211f3a04fd6e719952a3fa231eadd8a7f11e6ecf1e584d57411R1603
because that would create too many superfluous registers (that causes
problems in the validator), I had to create a float version of
`getOrCreateConstInt` which I called `getOrCreateConstFP`.
similar problems with doing it like this:
https://github.com/llvm/llvm-project/blob/main/llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp#L1540.

`buildZerosValF` also has a use of a function `getZeroFP`. This is
because half, float, and double scalar values of 0 would collide in
`SPIRVDuplicatesTracker<Constant> CT` if you use `APFloat(0.0f)`.

`getORCreateConstFP` needed its own version of `getOrCreateConstIntReg`
which I called `getOrCreateConstFloatReg` The one difference in this
function is `getOrCreateConstFloatReg` returns a bit width so we don't
have to call `getScalarOrVectorBitWidth` twice ie when it is used again
in `getOrCreateConstFP` for `OpConstantF` `addNumImm`.

`getOrCreateConstFloatReg` needed an `assignFloatTypeToVReg` helper
which called a `getOrCreateSPIRVFloatType` helper. There was no
equivalent IntegerType::get for floats so I handled this with a switch
statement on bit widths to get the right LLVM float type.

Finally, there is the use of `bool ZeroAsNull = STI.isOpenCLEnv();` This
is partly a cosmetic change. When Zeros are treated as nulls, we don't
create `OpConstantComposite` vectors which is something we do in the
DXCs SPIRV backend. The DXC SPIRV backend also does not use
`OpConstantNull`. Finally, I needed a means to test the behavior of the
OpConstantNull and `OpConstantComposite` changes and this was one way I
could do that via the same tests.


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

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

  Log Message:
  -----------
  [ELF] Move createSyntheticSections from Writer.cpp to SyntheticSections.cpp. NFC

SyntheticSections.cpp is more appropriate. This change enables
elimination of many explicit template instantiations.

Due to `make<SymbolTableSection<ELFT>>(*strtab)` in Arch/ARM.cpp,
we do not remove explicit template instantiations for SymbolTableSection.


  Commit: 8cfa72ade9f2f7df81a008efea84f833b73494b9
      https://github.com/llvm/llvm-project/commit/8cfa72ade9f2f7df81a008efea84f833b73494b9
  Author: Nick Desaulniers <ndesaulniers at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M libc/hdr/CMakeLists.txt

  Log Message:
  -----------
  [libc] fix typo in hdr/CMakeLists

Fixes #87896


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

  Changed paths:
    M mlir/lib/Bytecode/Writer/IRNumbering.cpp

  Log Message:
  -----------
  [mlir] Slightly optimize bytecode op numbering (#88310)

If the bytecode encoding supports properties, then the dictionary
attribute is always the raw dictionary attribute of the operation,
regardless of what it contains. Otherwise, get the dictionary attribute
from the op: if the op does not have properties, then it returns the raw
dictionary, otherwise it returns the combined inherent and discardable
attributes.


  Commit: af7c196fb8d10f58a704b5a8d142feacf2f0236d
      https://github.com/llvm/llvm-project/commit/af7c196fb8d10f58a704b5a8d142feacf2f0236d
  Author: Chelsea Cassanova <chelsea_cassanova at apple.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M lldb/include/lldb/API/SBDebugger.h
    M lldb/include/lldb/lldb-enumerations.h
    M lldb/test/API/functionalities/diagnostic_reporting/TestDiagnosticReporting.py
    M lldb/test/API/functionalities/progress_reporting/TestProgressReporting.py
    M lldb/test/API/functionalities/progress_reporting/clang_modules/TestClangModuleBuildProgress.py
    M lldb/test/API/macosx/rosetta/TestRosetta.py

  Log Message:
  -----------
  [lldb][sbdebugger] Move SBDebugger Broadcast bit enum into lldb-enumerations.h (#87409)

When the `eBroadcastBitProgressCategory` bit was originally added to
Debugger.h and SBDebugger.h, each corresponding bit was added in order
of the other bits that were previously there. Since `Debugger.h` has an
enum bit that `SBDebugger.h` does not, this meant that their offsets did
not match.

Instead of trying to keep the bit offsets in sync between the two, it's
preferable to just move SBDebugger's enum into the main enumerations
header and use the bits from there. This also requires that API tests using the bits from SBDebugger update their usage.


  Commit: 2fdfea088c8d78119b74116b94bc6729ce0e3efe
      https://github.com/llvm/llvm-project/commit/2fdfea088c8d78119b74116b94bc6729ce0e3efe
  Author: Stanislav Mekhanoshin <rampitec at users.noreply.github.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIInstructions.td
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.td

  Log Message:
  -----------
  [AMDGPU] Add v2i32 to the VS_64 types. NFCI. (#88318)

I am trying to use VOP3Inst with intrinsic taking v2i32 operand and it
fails to create patterm without it.


  Commit: 9f6d08f2566a26144ea1753f80aebb1f2ecfdc63
      https://github.com/llvm/llvm-project/commit/9f6d08f2566a26144ea1753f80aebb1f2ecfdc63
  Author: Chelsea Cassanova <chelsea_cassanova at apple.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M lldb/include/lldb/API/SBDebugger.h
    M lldb/include/lldb/lldb-enumerations.h
    M lldb/test/API/functionalities/diagnostic_reporting/TestDiagnosticReporting.py
    M lldb/test/API/functionalities/progress_reporting/TestProgressReporting.py
    M lldb/test/API/functionalities/progress_reporting/clang_modules/TestClangModuleBuildProgress.py
    M lldb/test/API/macosx/rosetta/TestRosetta.py

  Log Message:
  -----------
  Revert "[lldb][sbdebugger] Move SBDebugger Broadcast bit enum into lldb-enumerations.h" (#88324)

Reverts llvm/llvm-project#87409 due a missed update to the broadcast bit
causing a build failure on the x86_64 Debian buildbot.


  Commit: d8f1e5d2894f7f4edc2e85e63def456c7f430f34
      https://github.com/llvm/llvm-project/commit/d8f1e5d2894f7f4edc2e85e63def456c7f430f34
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Support/APInt.cpp

  Log Message:
  -----------
  [APInt] Remove accumulator initialization from tcMultiply and tcFullMultiply. NFCI (#88202)

The tcMultiplyPart routine has a flag that says whether to add to the
accumulator or overwrite it. By using the overwrite mode on the first
iteration we don't need to initialize the accumulator to zero.

Note, the initialization in tcFullMultiply was only initializing the
first rhsParts of dst. tcMultiplyPart always overwrites the rhsParts+1
part that just contains the last carry. The first write to each part of
dst past rhsParts is a carry write so that's how the upper part of dst
is initialized.


  Commit: a9d4ddd98a0bc495126027122fdca751b6841ceb
      https://github.com/llvm/llvm-project/commit/a9d4ddd98a0bc495126027122fdca751b6841ceb
  Author: Oskar Wirga <oskar.wirga at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/IPO/MergeFunctions.cpp
    M llvm/test/Transforms/MergeFunc/cfi-thunk-merging.ll

  Log Message:
  -----------
  [MergeFuncs/CFI] Ensure all type metadata is propogated for CFI (#88218)

I noticed that we weren't propagating ALL type metadata that was
attached to CFI functions:

# BEFORE

```
; Function Attrs: minsize nounwind optsize ssp uwtable(sync)
define internal void @foo(ptr nocapture noundef readonly %0) #0 !dbg !62311 !type !34028 !type !34029 !type !34030
... fn merging
; Function Attrs: minsize nounwind optsize ssp uwtable(sync)
define internal void @foo(ptr nocapture noundef readonly %0) #0 !type !34028
```

# AFTER

```
; Function Attrs: minsize nounwind optsize ssp uwtable(sync)
define internal void @foo(ptr nocapture noundef readonly %0) #0 !dbg !62311 !type !34028 !type !34029 !type !34030
... fn merging
; Function Attrs: minsize nounwind optsize ssp uwtable(sync)
define internal void @foo(ptr nocapture noundef readonly %0) #0 !type !type !34028 !type !34029 !type !34030
```

This patch makes sure that the entire vector of metadata is copied over.


  Commit: 8136ac1c42dcfdd070f0bcba0f06424093df22db
      https://github.com/llvm/llvm-project/commit/8136ac1c42dcfdd070f0bcba0f06424093df22db
  Author: Daniel Chen <cdchen at ca.ibm.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/module/iso_c_binding.f90
    A flang/test/Driver/predefined-macros-powerpc2.f90

  Log Message:
  -----------
  [Flang] Define c_int_fast16_t and c_int_fast32_t for PowerPC. (#88292)

On Linux, PowerPC defines `int_fast16_t` and `int_fast32_t` as `long`.
Need to update the corresponding type, `c_int_fast16_t` and
`c_int_fast32_t` in `iso_c_binding` module so they are interoparable.


  Commit: acb7ddc5cf2f23416f65dcdc6c7fd08850ad961d
      https://github.com/llvm/llvm-project/commit/acb7ddc5cf2f23416f65dcdc6c7fd08850ad961d
  Author: Matthias Braun <matze at braunis.de>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
    M llvm/test/CodeGen/WebAssembly/tls-general-dynamic.ll
    M llvm/test/CodeGen/WebAssembly/tls-local-exec.ll

  Log Message:
  -----------
  [WebAssembly] Remove threadlocal.address when disabling TLS (#88209)

Remove `llvm.threadlocal.address` intrinsic usage when disabling TLS.
This fixes errors revealed by the stricter IR verification introduced in
PR #87841.


  Commit: d927d1867fa760836538beef2c4531c1a0b04e24
      https://github.com/llvm/llvm-project/commit/d927d1867fa760836538beef2c4531c1a0b04e24
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/lib/IR/DiagnosticInfo.cpp
    M llvm/lib/Transforms/Instrumentation/LowerAllowCheckPass.cpp
    A llvm/test/Transforms/lower-builtin-allow-check-remarks.ll

  Log Message:
  -----------
  [UBSAN] Emit optimization remarks (#88304)


  Commit: 6ef4450705473e5cccb025219e8980999f456b71
      https://github.com/llvm/llvm-project/commit/6ef4450705473e5cccb025219e8980999f456b71
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGStmtOpenMP.cpp

  Log Message:
  -----------
  [clang] Fix -Wunused-function in CGStmtOpenMP.cpp (NFC)

llvm-project/clang/lib/CodeGen/CGStmtOpenMP.cpp:7959:13:
error: unused function 'emitTargetTeamsLoopCodegenStatus' [-Werror,-Wunused-function]
static void emitTargetTeamsLoopCodegenStatus(CodeGenFunction &CGF,
            ^
1 error generated.


  Commit: 19e516fbed809af094ce195a6a5baa2e1f30f3cd
      https://github.com/llvm/llvm-project/commit/19e516fbed809af094ce195a6a5baa2e1f30f3cd
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

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

  Log Message:
  -----------
  [gn build] Port 1fda1776e32b


  Commit: 402706668362fee8f9a9d29fb6d4628df4d4fc42
      https://github.com/llvm/llvm-project/commit/402706668362fee8f9a9d29fb6d4628df4d4fc42
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

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

  Log Message:
  -----------
  [gn build] Port 59e66c515a47


  Commit: 233edab8765686bd44611f9f7319d3ffbc12fbab
      https://github.com/llvm/llvm-project/commit/233edab8765686bd44611f9f7319d3ffbc12fbab
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/clang/unittests/AST/Interp/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 5d7d6ad663f8


  Commit: 9786a3b4cf9d050a6f87358e3295da3d32fade5c
      https://github.com/llvm/llvm-project/commit/9786a3b4cf9d050a6f87358e3295da3d32fade5c
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

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

  Log Message:
  -----------
  [gn build] Port 0a1317564a6b


  Commit: be10070f91b86a6f126d2451852242bfcb2cd366
      https://github.com/llvm/llvm-project/commit/be10070f91b86a6f126d2451852242bfcb2cd366
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/lib/Driver/ToolChain.cpp
    M clang/test/Driver/arm-compiler-rt.c
    M clang/test/Driver/cl-link.c
    M clang/test/Driver/compiler-rt-unwind.c
    M clang/test/Driver/coverage-ld.c
    M clang/test/Driver/instrprof-ld.c
    M clang/test/Driver/linux-ld.c
    M clang/test/Driver/mingw-sanitizers.c
    M clang/test/Driver/msp430-toolchain.c
    M clang/test/Driver/print-libgcc-file-name-clangrt.c
    M clang/test/Driver/print-runtime-dir.c
    M clang/test/Driver/riscv32-toolchain-extra.c
    M clang/test/Driver/riscv32-toolchain.c
    M clang/test/Driver/riscv64-toolchain-extra.c
    M clang/test/Driver/riscv64-toolchain.c
    M clang/test/Driver/sanitizer-ld.c
    M clang/test/Driver/wasm-toolchain.c
    M clang/test/Driver/wasm-toolchain.cpp
    M clang/test/Driver/windows-cross.c
    M clang/test/Driver/zos-ld.c
    M flang/test/Driver/msvc-dependent-lib-flags.f90

  Log Message:
  -----------
  Revert "[Driver] Ensure ToolChain::LibraryPaths is not empty for non-Darwin"

This reverts commit ccdebbae4d77d3efc236af92c22941de5d437e01.

Causes test failures in the presence of Android runtime libraries in resource-dir.
See comments on https://github.com/llvm/llvm-project/pull/87866.


  Commit: fca51911d4668b3a6b79eb956327eb81fad3f40c
      https://github.com/llvm/llvm-project/commit/fca51911d4668b3a6b79eb956327eb81fad3f40c
  Author: Bill Wendling <5993918+bwendling at users.noreply.github.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/Decl.h
    M clang/include/clang/AST/DeclObjC.h
    M clang/include/clang/AST/DeclTemplate.h
    M clang/include/clang/AST/ExprCXX.h
    M clang/include/clang/AST/ExternalASTSource.h
    M clang/include/clang/AST/NestedNameSpecifier.h
    M clang/include/clang/Analysis/SelectorExtras.h
    M clang/include/clang/Basic/IdentifierTable.h
    M clang/include/clang/Lex/ExternalPreprocessorSource.h
    M clang/include/clang/Lex/MacroInfo.h
    M clang/include/clang/Lex/Preprocessor.h
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/CodeCompleteConsumer.h
    M clang/include/clang/Sema/DeclSpec.h
    M clang/include/clang/Sema/ParsedTemplate.h
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Serialization/ASTReader.h
    M clang/lib/ARCMigrate/ObjCMT.cpp
    M clang/lib/ARCMigrate/TransAPIUses.cpp
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/ASTImporter.cpp
    M clang/lib/AST/Decl.cpp
    M clang/lib/AST/DeclObjC.cpp
    M clang/lib/AST/DeclTemplate.cpp
    M clang/lib/AST/NSAPI.cpp
    M clang/lib/AST/NestedNameSpecifier.cpp
    M clang/lib/AST/SelectorLocationsKind.cpp
    M clang/lib/AST/StmtPrinter.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/Analysis/ObjCNoReturn.cpp
    M clang/lib/Basic/IdentifierTable.cpp
    M clang/lib/CodeGen/CGBlocks.cpp
    M clang/lib/CodeGen/CGCUDANV.cpp
    M clang/lib/CodeGen/CGDecl.cpp
    M clang/lib/CodeGen/CGObjC.cpp
    M clang/lib/CodeGen/CGObjCMac.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
    M clang/lib/Lex/HeaderSearch.cpp
    M clang/lib/Lex/MacroInfo.cpp
    M clang/lib/Lex/PPLexerChange.cpp
    M clang/lib/Lex/PPMacroExpansion.cpp
    M clang/lib/Lex/Preprocessor.cpp
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/lib/Parse/ParseExprCXX.cpp
    M clang/lib/Parse/ParseObjc.cpp
    M clang/lib/Parse/ParseTemplate.cpp
    M clang/lib/Sema/CodeCompleteConsumer.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaCodeComplete.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaDeclObjC.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaExprObjC.cpp
    M clang/lib/Sema/SemaObjCProperty.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Sema/SemaPseudoObject.cpp
    M clang/lib/Sema/SemaStmt.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Serialization/ASTCommon.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
    M clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp
    M clang/tools/libclang/CIndexCodeCompletion.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h
    M lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp
    M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp

  Log Message:
  -----------
  [NFC][Clang] Improve const correctness for IdentifierInfo (#79365)

The IdentifierInfo isn't typically modified. Use 'const' wherever
possible.


  Commit: 51f1681424f1a8ccf1e3432d71c341e799597171
      https://github.com/llvm/llvm-project/commit/51f1681424f1a8ccf1e3432d71c341e799597171
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/lib/Format/FormatToken.h
    M clang/lib/Format/UnwrappedLineFormatter.cpp
    M clang/lib/Format/UnwrappedLineParser.cpp
    M clang/unittests/Format/BracesRemoverTest.cpp
    M clang/unittests/Format/FormatTest.cpp
    M clang/unittests/Format/FormatTestMacroExpansion.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp

  Log Message:
  -----------
  [clang-format] Don't merge a short block for SBS_Never (#88238)

Also fix unit tests.

Fixes #87484.


  Commit: 6b46166ef2612d2a58767447b3db8f0343afb552
      https://github.com/llvm/llvm-project/commit/6b46166ef2612d2a58767447b3db8f0343afb552
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Support/raw_socket_stream.cpp

  Log Message:
  -----------
  [llvm][NFC] Suppress `-Wunused-result` call to `write`

Commit 87e6f87fe7e343eb656e9b49d30cbb065c086651 adds a call to `::write()`, which may be annotated w/ `warn_unused_result`, leading to `-Wunused-result` failures.


  Commit: f4509cf284ced95f31dc7eb63144b4bc47899c43
      https://github.com/llvm/llvm-project/commit/f4509cf284ced95f31dc7eb63144b4bc47899c43
  Author: Freddy Ye <freddy.ye at intel.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
    M llvm/lib/Target/X86/X86InstrAsmAlias.td
    M llvm/lib/Target/X86/X86InstrCMovSetCC.td
    M llvm/lib/Target/X86/X86InstrControl.td
    M llvm/test/MC/Disassembler/X86/apx/evex-format.txt
    A llvm/test/MC/Disassembler/X86/apx/setcc.txt
    A llvm/test/MC/Disassembler/X86/apx/setzucc.txt
    M llvm/test/MC/X86/apx/evex-format-att.s
    M llvm/test/MC/X86/apx/evex-format-intel.s
    A llvm/test/MC/X86/apx/setcc-att.s
    A llvm/test/MC/X86/apx/setcc-intel.s
    A llvm/test/MC/X86/apx/setzucc-att.s
    A llvm/test/MC/X86/apx/setzucc-intel.s
    M llvm/test/TableGen/x86-fold-tables.inc
    M llvm/utils/TableGen/AsmMatcherEmitter.cpp

  Log Message:
  -----------
  [X86][MC] Support enc/dec for SETZUCC and promoted SETCC. (#86473)

apx-spec: https://cdrdv2.intel.com/v1/dl/getContent/784266
apx-syntax-recommendation:
https://cdrdv2.intel.com/v1/dl/getContent/817241


  Commit: fd50151180498f0de4fe26ff21d3e3b8accc4de0
      https://github.com/llvm/llvm-project/commit/fd50151180498f0de4fe26ff21d3e3b8accc4de0
  Author: Jianjian Guan <jacquesguan at me.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/vsplats-fp.ll

  Log Message:
  -----------
  [RISCV] Only support SPLAT_VECTOR for Zvfhmin when also enable the scalar extension of half fp (#88275)


  Commit: 999b9e6ddb4324600a46c8f7006acec81fe3af0f
      https://github.com/llvm/llvm-project/commit/999b9e6ddb4324600a46c8f7006acec81fe3af0f
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

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

  Log Message:
  -----------
  [RISCV] Use vector getConstant instead of getSplatVector+getConstant. NFC


  Commit: dda73336ad22bd0b5ecda17040c50fb10fcbe5fb
      https://github.com/llvm/llvm-project/commit/dda73336ad22bd0b5ecda17040c50fb10fcbe5fb
  Author: Mingming Liu <mingmingl at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/test/CodeGen/thinlto-distributed-cfi-devirt.ll
    M clang/test/CodeGen/thinlto-distributed-cfi.ll
    M clang/test/CodeGen/thinlto-funcattr-prop.ll
    M lld/test/ELF/lto/comdat-nodeduplicate.ll
    M llvm/include/llvm/AsmParser/LLParser.h
    M llvm/include/llvm/AsmParser/LLToken.h
    M llvm/include/llvm/IR/ModuleSummaryIndex.h
    M llvm/include/llvm/IR/ModuleSummaryIndexYAML.h
    M llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
    M llvm/lib/AsmParser/LLLexer.cpp
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/lib/IR/AsmWriter.cpp
    M llvm/lib/IR/ModuleSummaryIndex.cpp
    M llvm/test/Assembler/thinlto-memprof-summary.ll
    M llvm/test/Assembler/thinlto-multiple-summaries-for-guid.ll
    M llvm/test/Assembler/thinlto-summary-visibility.ll
    M llvm/test/Assembler/thinlto-summary.ll
    M llvm/test/Assembler/thinlto-vtable-summary.ll
    M llvm/test/Bitcode/thinlto-alias.ll
    M llvm/test/Bitcode/thinlto-func-summary-vtableref-pgo.ll
    M llvm/test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll
    M llvm/test/Bitcode/thinlto-function-summary-callgraph-relbf.ll
    M llvm/test/Bitcode/thinlto-function-summary-refgraph.ll
    M llvm/test/Bitcode/thinlto-index-disassembled-by-llvm-dis.ll
    M llvm/test/Bitcode/thinlto-type-tests.ll
    M llvm/test/Bitcode/thinlto-type-vcalls.ll
    M llvm/test/ThinLTO/X86/dot-dumper.ll
    M llvm/test/ThinLTO/X86/funcattrs-prop-maythrow.ll
    M llvm/test/ThinLTO/X86/funcimport_alwaysinline.ll
    M llvm/test/ThinLTO/X86/load-store-caching.ll
    M llvm/test/Transforms/LowerTypeTests/import-unsat.ll
    M llvm/test/Transforms/WholeProgramDevirt/Inputs/import-indir.yaml
    M llvm/test/Transforms/WholeProgramDevirt/import-indir.ll

  Log Message:
  -----------
  [ThinLTO]Record import type in GlobalValueSummary::GVFlags (#87597)

The motivating use case is to support import the function declaration
across modules to construct call graph edges for indirect calls [1]
when importing the function definition costs too much compile time
(e.g., the function is too large has no `noinline` attribute).
1. Currently, when the compiled IR module doesn't have a function
definition but its postlink combined summary contains the function
summary or a global alias summary with this function as aliasee, the
function definition will be imported from source module by IRMover. The
implementation is in FunctionImporter::importFunctions [2]
2. In order for FunctionImporter to import a declaration of a function,
both function summary and alias summary need to carry the def / decl
state. Specifically, all existing summary fields doesn't differ across
import modules, but the def / decl state of is decided by
`<ImportModule, Function>`.

This change encodes the def/decl state in `GlobalValueSummary::GVFlags`.

In the subsequent changes
1. The indexing step `computeImportForModule` [3]
will compute the set of definitions and the set of declarations for each
module, and passing on the information to bitcode writer.
2. Bitcode writer will look up the def/decl state and sets the state
when it writes out the flag value. This is demonstrated in
https://github.com/llvm/llvm-project/pull/87600
3. Function importer will read the def/decl state when reading the
combined summary to figure out two sets of global values, and IRMover
will be updated to import the declaration (aka linkGlobalValuePrototype [4])
into the destination module.

- The next change is https://github.com/llvm/llvm-project/pull/87600

[1] mentioned in rfc https://discourse.llvm.org/t/rfc-for-better-call-graph-sort-build-a-more-complete-call-graph-by-adding-more-indirect-call-edges/74029#support-cross-module-function-declaration-import-5
[2] https://github.com/llvm/llvm-project/blob/3b337242ee165554f0017b00671381ec5b1ba855/llvm/lib/Transforms/IPO/FunctionImport.cpp#L1608-L1764
[3] https://github.com/llvm/llvm-project/blob/3b337242ee165554f0017b00671381ec5b1ba855/llvm/lib/Transforms/IPO/FunctionImport.cpp#L856
[4] https://github.com/llvm/llvm-project/blob/3b337242ee165554f0017b00671381ec5b1ba855/llvm/lib/Linker/IRMover.cpp#L605


  Commit: 75edf0c18c777d69df7cfc6462e5233649bd47d4
      https://github.com/llvm/llvm-project/commit/75edf0c18c777d69df7cfc6462e5233649bd47d4
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang/include/clang/Serialization/ASTReader.h
    M clang/lib/Serialization/ASTReaderDecl.cpp

  Log Message:
  -----------
  [NFC] [Serialization] Avoid accessing PendingBodies as much as possible

The 'HaveBody' parameter in isConsumerInterestedIn is only used for the function decl if it
doesn't have a body already. It should be relatively less frequent than
the call to isConsumerInterestedIn. So we can delay the computing of
`HaveBdoy` to make it more efficient.


  Commit: 026165fad70420d85defb5fc9109c138250058ee
      https://github.com/llvm/llvm-project/commit/026165fad70420d85defb5fc9109c138250058ee
  Author: paperchalice <liujunchang97 at outlook.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Passes/StandardInstrumentations.h
    M llvm/lib/Passes/StandardInstrumentations.cpp
    A llvm/test/Other/ChangePrinters/DotCfg/print-changed-dot-cfg.mir
    A llvm/test/Other/change-printer.mir

  Log Message:
  -----------
  [Instrumentation] Support MachineFunction in ChangeReporter (#80946)


  Commit: 53003e36e9f4574d06c22611f61f68de32c89c6b
      https://github.com/llvm/llvm-project/commit/53003e36e9f4574d06c22611f61f68de32c89c6b
  Author: Sacha Coppey <sacha.coppey at oracle.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/test/CodeGen/RISCV/rv64-patchpoint.ll
    A llvm/test/CodeGen/RISCV/rv64-statepoint-call-lowering-x1.ll
    A llvm/test/CodeGen/RISCV/rv64-statepoint-call-lowering-x2.ll
    A llvm/test/CodeGen/RISCV/rv64-statepoint-call-lowering.ll

  Log Message:
  -----------
  [RISCV] Implement Statepoint and Patchpoint lowering to call instructions (#77337)

This patch adds stackmap support for RISC-V with call targets.

Based on patch from https://reviews.llvm.org/D129848.


  Commit: b5640369337e98e573c949080ed4a4061ec6ec9a
      https://github.com/llvm/llvm-project/commit/b5640369337e98e573c949080ed4a4061ec6ec9a
  Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachineCombinerPattern.h
    M llvm/include/llvm/CodeGen/TargetInstrInfo.h
    M llvm/lib/CodeGen/MachineCombiner.cpp
    M llvm/lib/CodeGen/TargetInstrInfo.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.h
    M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
    M llvm/lib/Target/PowerPC/PPCInstrInfo.h
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.h
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86InstrInfo.h

  Log Message:
  -----------
  [MachineCombiner][NFC] Split target-dependent patterns

We split target-dependent MachineCombiner patterns into their target
folder.

This makes MachineCombiner much more target-independent.

Reviewers:
davemgreen, asavonic, rotateright, RKSimon, lukel97, LuoYuanke, topperc, mshockwave, asi-sc

Reviewed By: topperc, mshockwave

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


  Commit: efb8cc5ddb03897795dc153a03d0c1548c8ee4a7
      https://github.com/llvm/llvm-project/commit/efb8cc5ddb03897795dc153a03d0c1548c8ee4a7
  Author: paperchalice <liujunchang97 at outlook.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/test/Other/ChangePrinters/DotCfg/print-changed-dot-cfg.mir

  Log Message:
  -----------
  [NewPM] Fix print-changed-dot-cfg failure (#88351)

Fix failure in #80946.


  Commit: 3197f9d8b0efc3efdc531421bd11c16305d9b1ff
      https://github.com/llvm/llvm-project/commit/3197f9d8b0efc3efdc531421bd11c16305d9b1ff
  Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/InstructionSimplify.cpp
    A llvm/test/Transforms/InstSimplify/pr87042.ll

  Log Message:
  -----------
  [InstSimplify] Make sure the simplified value doesn't generate poison in threadBinOpOverSelect (#87075)

Alive2: https://alive2.llvm.org/ce/z/y_Jmdn
Fix https://github.com/llvm/llvm-project/issues/87042.


  Commit: 2bede6873dbe7021b306d3e5bec59d0fba2dd26c
      https://github.com/llvm/llvm-project/commit/2bede6873dbe7021b306d3e5bec59d0fba2dd26c
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    A llvm/include/llvm/ProfileData/MemProfReader.h
    M llvm/include/llvm/ProfileData/RawMemProfReader.h
    M llvm/lib/ProfileData/CMakeLists.txt
    A llvm/lib/ProfileData/MemProfReader.cpp
    R llvm/lib/ProfileData/RawMemProfReader.cpp
    M llvm/tools/llvm-profdata/llvm-profdata.cpp
    M llvm/unittests/ProfileData/MemProfTest.cpp
    M llvm/utils/gn/secondary/llvm/lib/ProfileData/BUILD.gn

  Log Message:
  -----------
  [memprof] Rename RawMemProfReader.{cpp,h} to MemProfReader.{cpp,h} (NFC) (#88200)

This patch renames RawMemProfReader.{cpp,h} to MemProfReader.{cpp,h},
respectively.  Also, it re-creates RawMemProfReader.h just to include
MemProfReader.h for compatibility with out-of-tree users.


  Commit: bd32aaa8c9ec2094f605315b3989adc2a567ca98
      https://github.com/llvm/llvm-project/commit/bd32aaa8c9ec2094f605315b3989adc2a567ca98
  Author: Cyrill Leutwiler <bigcyrill at hotmail.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M compiler-rt/lib/builtins/riscv/restore.S
    M compiler-rt/lib/builtins/riscv/save.S

  Log Message:
  -----------
  [RISCV] Support rv{32, 64}e in the compiler builtins (#88252)

Register spills (save/restore) in RISC-V embedded work differently
because there are less registers and different stack alignment.

[GCC equivalent
](https://github.com/gcc-mirror/gcc/blob/master/libgcc/config/riscv/save-restore.S#L298C16-L336)

Follow up from #76777.

---------

Signed-off-by: xermicus <cyrill at parity.io>


  Commit: 5964c944bfe74cee2872cddb66eff22866cdb6ee
      https://github.com/llvm/llvm-project/commit/5964c944bfe74cee2872cddb66eff22866cdb6ee
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang-tools-extra/clangd/unittests/HoverTests.cpp

  Log Message:
  -----------
  [clangd] Fix test case due to clang-format bug fix (#88352)

See commit 51f1681424f1.


  Commit: 45146082e693415f37413c656e0a0fd13d0e3136
      https://github.com/llvm/llvm-project/commit/45146082e693415f37413c656e0a0fd13d0e3136
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M lld/ELF/ICF.cpp
    M lld/ELF/InputSection.cpp

  Log Message:
  -----------
  [ELF] relocateNonAlloc & ICF: replace random access iterators of relocations with input iterators. NFC

Also replace one `this->file` with a local variable as some function
calls are opaque to the compiler, causing unneeded reload.


  Commit: 71f1932b842793e5dc7b17051452e8ff2f9219aa
      https://github.com/llvm/llvm-project/commit/71f1932b842793e5dc7b17051452e8ff2f9219aa
  Author: martinboehme <mboehme at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
    M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
    M clang/lib/Analysis/FlowSensitive/Transfer.cpp
    M clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp
    M clang/unittests/Analysis/FlowSensitive/DataflowEnvironmentTest.cpp
    M clang/unittests/Analysis/FlowSensitive/TransferTest.cpp

  Log Message:
  -----------
  [clang][dataflow] Reland #87320: Propagate locations from result objects to initializers. (#88316)

This relands #87320 and additionally removes the now-unused function
`isOriginalRecordConstructor()`, which was causing buildbots to fail.


  Commit: 297eca981ea1133388c82ddbfaf9d86391abac65
      https://github.com/llvm/llvm-project/commit/297eca981ea1133388c82ddbfaf9d86391abac65
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h
    M mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp
    M mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
    M mlir/test/Dialect/Affine/value-bounds-op-interface-impl.mlir
    M mlir/test/Dialect/SCF/value-bounds-op-interface-impl.mlir
    M mlir/test/Dialect/Tensor/value-bounds-op-interface-impl.mlir
    M mlir/test/lib/Dialect/Affine/TestReifyValueBounds.cpp

  Log Message:
  -----------
  [mlir][Interfaces] `ValueBoundsOpInterface`: Add API to compare values (#86915)

This commit adds a new public API to `ValueBoundsOpInterface` to compare
values/dims. Supported comparison operators are: LT, LE, EQ, GE, GT.

The new `ValueBoundsOpInterface::compare` API replaces and generalizes
`ValueBoundsOpInterface::areEqual`. Not only does it provide additional
comparison operators, it also works in cases where the difference
between the two values/dims is non-constant. The previous implementation
of `areEqual` used to compute a constant bound of `val1 - val2` (check
if it `== 0` or `!= 0`).

Note: This commit refactors, generalizes and adds a public API for
value/dim comparison. The comparison functionality itself was introduced
in #85895 and is already in use for analyzing `scf.if`.

In the long term, this improvement will allow for a more powerful
analysis of subset ops. A future commit will update
`areOverlappingSlices` to use the new comparison API.
(`areEquivalentSlices` is already using the new API.) This will improve
subset equivalence/disjointness checks with non-constant
offsets/sizes/strides.


  Commit: 21265f692e4b3b2146b6095cf23122b20e8fa0ed
      https://github.com/llvm/llvm-project/commit/21265f692e4b3b2146b6095cf23122b20e8fa0ed
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M mlir/lib/Interfaces/ValueBoundsOpInterface.cpp

  Log Message:
  -----------
  [mlir][Interfaces] `ValueBoundsOpInterface`: Fix typo (#87976)

This was likely a copy-and-paste typo.


  Commit: dc39028906ba4196c3ba544c43ef6b428cf47c51
      https://github.com/llvm/llvm-project/commit/dc39028906ba4196c3ba544c43ef6b428cf47c51
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M mlir/lib/Interfaces/ValueBoundsOpInterface.cpp

  Log Message:
  -----------
  [mlir] Fix -Wsign-compare in ValueBoundsOpInterface.cpp (NFC)

/llvm-project/mlir/lib/Interfaces/ValueBoundsOpInterface.cpp:762:16:
error: comparison of integers of different signs: 'int64_t' (aka 'long') and 'size_t' (aka 'unsigned long') [-Werror,-Wsign-compare]
        rhsPos >= cstr.positionToValueDim.size())
        ~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/llvm-project/mlir/lib/Interfaces/ValueBoundsOpInterface.cpp:761:16:
error: comparison of integers of different signs: 'int64_t' (aka 'long') and 'size_t' (aka 'unsigned long') [-Werror,-Wsign-compare]
    if (lhsPos >= cstr.positionToValueDim.size() ||
        ~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 errors generated.


  Commit: 3f7f446d3803a699f5964a7429c6e1de0d783452
      https://github.com/llvm/llvm-project/commit/3f7f446d3803a699f5964a7429c6e1de0d783452
  Author: Haohai Wen <haohai.wen at intel.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/tools/llvm-profgen/PerfReader.cpp
    M llvm/tools/llvm-profgen/PerfReader.h

  Log Message:
  -----------
  [llvm-profgen] Remove temporary perf script files (#86668)

The temporary perf script files converted from perf data will occupy
lots
of space for large project. This patch removes them when llvm-profgen
exits normally or receives signals.


  Commit: a53674359da8507af539bf879e1b8292e3720eb8
      https://github.com/llvm/llvm-project/commit/a53674359da8507af539bf879e1b8292e3720eb8
  Author: David Green <david.green at arm.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64PerfectShuffle.h
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/AArch64/shuffle-other.ll
    M llvm/test/Analysis/CostModel/AArch64/shuffle-store.ll
    M llvm/test/Transforms/VectorCombine/AArch64/vecreduce-shuffle.ll

  Log Message:
  -----------
  [AArch64] Add ZIP and UZP shuffle costs. (#88150)

This adds some costs for the shuffle instructions that should be lowered
to zip1/zip2/uzp1/uzp2 instructions.


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

  Changed paths:
    M clang/lib/Tooling/CMakeLists.txt

  Log Message:
  -----------
  Revert "Use setup_host_tool for clang-ast-dump, fixes 76707"

This reverts commit b4adb42151bbfa80be4cf6d076cbe5edf680693e.

The original commit increased local rebuild times a lot. See
the discussion in
https://github.com/llvm/llvm-project/issues/76707


  Commit: d7e0ea205fa111fba46e08f3df2860f76b47acb6
      https://github.com/llvm/llvm-project/commit/d7e0ea205fa111fba46e08f3df2860f76b47acb6
  Author: Chen Zheng <czhengsz at cn.ibm.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    A llvm/test/CodeGen/PowerPC/xxinsertw.ll

  Log Message:
  -----------
  [PowerPC] add testcase for a xxinsertw bug, NFC


  Commit: 053750c3b42c126eb4620f62cbf4e665803b941d
      https://github.com/llvm/llvm-project/commit/053750c3b42c126eb4620f62cbf4e665803b941d
  Author: Chen Zheng <czhengsz at cn.ibm.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    M llvm/test/CodeGen/PowerPC/xxinsertw.ll

  Log Message:
  -----------
  [PowerPC] Fix the undef register for VECINSERT

If the V2 of the vector_shuffle is undef, the two vector inputs are
expected to be the same when do the VECINSERT transformation. For now
the first operand of VECINSERT is set to undef which is not right.
This patch fixes this bug.


  Commit: a1cd5e69544ad3e6a865f5e0593ac26195ccb4f7
      https://github.com/llvm/llvm-project/commit/a1cd5e69544ad3e6a865f5e0593ac26195ccb4f7
  Author: Michael Klemm <michael.klemm at amd.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M flang/docs/ModFiles.md
    M flang/tools/f18/CMakeLists.txt

  Log Message:
  -----------
  [flang] Do not create .f18.mod files for each compiled module (#85249)

The default CMake scripts had a copy operation to copy a compiled `.mod`
file to also be available with suffix `.f18.mod`. This seems no longer
needed. Also updated ModFiles.md to point to `-module-suffix`.

---------

Co-authored-by: Kiran Chandramohan <kiranchandramohan at gmail.com>


  Commit: 9c6e54b154cbbb7da0f45b4ae1e66bcf492151f1
      https://github.com/llvm/llvm-project/commit/9c6e54b154cbbb7da0f45b4ae1e66bcf492151f1
  Author: Maciej Gabka <maciej.gabka at arm.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td

  Log Message:
  -----------
  [AArch64] Fix to Neoverse V2 scheduling model (#88130)

The size of ROB was incorrecty copied from the Neoverse N2, while it has
actually higher value as descibed in

https://community.arm.com/arm-community-blogs/b/infrastructure-solutions-blog/posts/arm-neoverse-v2-platform-best-in-class-cloud-and-ai-ml-performance


  Commit: cd14e7132f18dccd5fc7ed5e60258460bc1352f8
      https://github.com/llvm/llvm-project/commit/cd14e7132f18dccd5fc7ed5e60258460bc1352f8
  Author: Ramkumar Ramachandra <ram.ramachandra at arm.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M lld/ELF/Arch/AArch64.cpp
    M lld/test/ELF/aarch64-reloc-implicit-addend.test

  Log Message:
  -----------
  lld/AArch64: handle more relocation addends (#87328)

The function getImplicitAddend() is incomplete, as it is possible to
cook up object files with other relocation addends. Although using
llvm-mc or the clang integrated assembler does not produce such object
files, a proprietary assembler known as armasm can:

https://developer.arm.com/documentation/101754/0622/armasm-Legacy-Assembler-Reference

armasm is in a frozen state, but it is still actively used in a lot of
legacy codebases as the directives, macros and operators are very
different from the clang integrated assembler. This makes porting a lot
of legacy code from armasm syntax impractical for a lot of projects.
Some internal testing of projects using open-source clang and lld fell
over at link time when legacy armasm objects were included in the link.

The goal of this patch is to enable people with legacy armasm objects to
be able to use lld as the linker. Sadly armasm uses SHT_REL format
relocations for AArch64 rather than SHT_RELA, which causes lld to reject
the objects. As a frozen project we know the small number of relocations
that the assembler officially supports and won't include (outside the
equivalent of the .reloc directive which I think we can rule out of
scope as that is not commonly used).

The benefit to lld is that it will ease migration from a proprietary to
an open-source toolchain. The drawback is the implementation of a small
number of SHT_REL relocations. Although this patch doesn't aim to
comprehensively cover all possible relocation addends, it does extend
lld to work with the relocation addends that armasm produces, using the
canonical aaelf64 document as a reference:

  https://github.com/ARM-software/abi-aa/blob/main/aaelf64/aaelf64.rst


  Commit: def6174d2a7a5a66b3871d4ce5035a71e513e6ef
      https://github.com/llvm/llvm-project/commit/def6174d2a7a5a66b3871d4ce5035a71e513e6ef
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M bolt/include/bolt/Core/BinaryFunction.h
    M bolt/test/X86/patch-entries.test

  Log Message:
  -----------
  [BOLT] Emit empty FDE for injected functions

This fixes an issue where `PatchEntries` overwrites function body but
keeps CFI untouched. Existing FDEs thus become invalid. This doesn't
affect unwinding because patched functions are transparent from
EH/unwinding perspective, but it breaks BOLT during disassembling those
functions.

Emit empty FDE for injected functions (emitted to the same address as
.org functions) that take precedence over the original FDE.

This adds eh_frame overhead, but restores the ability to disassemble
.org functions. Note that the overhead is avoided in `-use-old-text`
mode.

Test Plan: updated bolt/test/X86/patch-entries.test

Reviewers: rafaelauler, maksfb, dcci, ayermolo

Reviewed By: maksfb, dcci

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


  Commit: fe3b20d5ab4b47823fb48ad7cfbc47b8224ce826
      https://github.com/llvm/llvm-project/commit/fe3b20d5ab4b47823fb48ad7cfbc47b8224ce826
  Author: NagyDonat <donat.nagy at ericsson.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
    M clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp

  Log Message:
  -----------
  [analyzer] Use CDM::CLibrary instead of isGlobalCFunction() (#88267)

This commit updates several checkers to use call descriptions with the
matching mode `CDM::CLibrary` instead of checking
`Call.isGlobalCFunction()` after performing the match. This resolves
several TODOs in various checkers.

Note that both matching with `CDM::CLibrary` and calling
`isGlobalCFunction` leads to `CheckerContext::isCLibraryFunction()`
checks (so this change is close to being NFC), but if it is used via the
matching mode then the checker can automatically recognize the builtin
variants of the matched functions.

I'll also make similar changes in GenericTaintChecker, but that checker
has separate and inconsistent rules for handling the normal and the
builtin variant of several functions (e.g. `memcpy` and
`__builtin_memcpy`), so I'll put those changes into a separate commit.


  Commit: 5c9315f575370393ccc89ef0229743c05f6fe703
      https://github.com/llvm/llvm-project/commit/5c9315f575370393ccc89ef0229743c05f6fe703
  Author: Johannes Reifferscheid <jreiffers at google.com>
  Date:   2024-04-11 (Thu, 11 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. (#88364)

This ports openxla/xla#10503 by @pearu. In addition to the filecheck
test here, the accuracy was tested with XLA's complex_unary_op_test and
its MLIR emitters.

This is a fixed version of
https://github.com/llvm/llvm-project/pull/88260. The previous version
relied on implementation-specific behavior in the order of evaluation of
maxAbsOfRealPlusOneAndImagMinusOne's operands.


  Commit: db2fb3d96b217f0d2e139e7816c98d9f95974f25
      https://github.com/llvm/llvm-project/commit/db2fb3d96b217f0d2e139e7816c98d9f95974f25
  Author: Freddy Ye <freddy.ye at intel.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang/lib/Basic/Targets/X86.cpp
    M clang/test/Preprocessor/x86_target_features.c

  Log Message:
  -----------
  [X86] Define __APX_F__ when APX is enabled. (#88343)

Relate gcc patch:
https://gcc.gnu.org/pipermail/gcc-patches/2024-April/648789.html


  Commit: 32b95a37083d1fee1a638e292be0aac9a98792fd
      https://github.com/llvm/llvm-project/commit/32b95a37083d1fee1a638e292be0aac9a98792fd
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/VectorCombine/X86/shuffle-of-casts.ll

  Log Message:
  -----------
  [VectorCombine][X86] Extend shuffle(bitcast(x),bitcast(y)) test coverage

As discussed on #87510 the intention is to fold shuffle(bitcast(x),bitcast(y)) -> bitcast(shuffle(x,y)), but it must not interfere with existing bitcast(shuffle(bitcast(x),bitcast(y))) folds.


  Commit: 478c42004c2bd4c91a01c47450eca6cdb6b0982d
      https://github.com/llvm/llvm-project/commit/478c42004c2bd4c91a01c47450eca6cdb6b0982d
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.h

  Log Message:
  -----------
  [VPlan] Update recipe ::clone definitions to use cloned tys (NFC).

Update definitions on ::clone in recipe sub-types to use the sub-type as
return type. This avoids typecasts down to the cloned type in some
cases.


  Commit: 462e1023838703f1d3e763869afdd72ec5342a33
      https://github.com/llvm/llvm-project/commit/462e1023838703f1d3e763869afdd72ec5342a33
  Author: Poseydon42 <vvmposeydon at gmail.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

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

  Log Message:
  -----------
  [InstCombine] Fold (X / C) < X and (X >> C) < X into X > 0 (#85555)

Proofs: https://alive2.llvm.org/ce/z/52droC

This resolves #85313.


  Commit: 82ae646eb49cfd762db7db0a74b130970fe45d97
      https://github.com/llvm/llvm-project/commit/82ae646eb49cfd762db7db0a74b130970fe45d97
  Author: Thomas Preud'homme <thomas.preudhomme at arm.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/tools/llvm-mca/CMakeLists.txt

  Log Message:
  -----------
  [llvm-mca] Remove spurious include_directories() (#88277)

llvm-mca does not have an include directory so this commit removes the
spurious include_directories directive.


  Commit: e7bc53726459bba3a48b1f529f1fd9472ad9051c
      https://github.com/llvm/llvm-project/commit/e7bc53726459bba3a48b1f529f1fd9472ad9051c
  Author: Andreas Jonson <andjo403 at hotmail.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/SCCPSolver.h
    M llvm/lib/Transforms/IPO/SCCP.cpp
    M llvm/lib/Transforms/Utils/SCCPSolver.cpp
    A llvm/test/Transforms/SCCP/range-attribute.ll

  Log Message:
  -----------
  [IPSCCP] Add range attribute handling (#86747)

Support the new range attribute to infer ConstantRanges in IPSCCP.


  Commit: eef63d3c92766c6f8e78eefb9bb37ae01fbedbfc
      https://github.com/llvm/llvm-project/commit/eef63d3c92766c6f8e78eefb9bb37ae01fbedbfc
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Target/LLVMIR/openmp-parallel-reduction-cleanup.mlir
    M mlir/test/Target/LLVMIR/openmp-wsloop-reduction-cleanup.mlir

  Log Message:
  -----------
  [mlir][OpenMP] add missing load for reduction cleanup region (#88289)

I missed this before. For by-ref reductions, the private reduction
variable is a pointer to the pointer to the variable. So an extra load
is required to get the right value.

See the "red.private.value.n" loads in the reduction combiner region for
reference.


  Commit: 6f068b9cf1ac09945c096269f0c6c276d2ec95c4
      https://github.com/llvm/llvm-project/commit/6f068b9cf1ac09945c096269f0c6c276d2ec95c4
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/ReductionProcessor.cpp
    M flang/test/Lower/OpenMP/parallel-reduction-array.f90
    M flang/test/Lower/OpenMP/parallel-reduction-array2.f90
    M flang/test/Lower/OpenMP/parallel-reduction3.f90
    M flang/test/Lower/OpenMP/wsloop-reduction-array-assumed-shape.f90
    M flang/test/Lower/OpenMP/wsloop-reduction-array.f90
    M flang/test/Lower/OpenMP/wsloop-reduction-array2.f90

  Log Message:
  -----------
  [flang][OpenMP] Allocate array reduction variables on the heap (#87773)

Following up on a review comment:
https://github.com/llvm/llvm-project/pull/84958#discussion_r1527627848

Reductions might be inlined inside of a loop so stack allocations are
not safe.

Normally flang allocates arrays on the stack. Allocatable arrays have a
different type: fir.box<fir.heap<fir.array<...>>> instead of
fir.box<fir.array<...>>. This patch will allocate all arrays on the
heap.

Reductions on allocatable arrays still aren't supported (but I will get
to this soon).


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

  Changed paths:
    M llvm/lib/IR/AsmWriter.cpp

  Log Message:
  -----------
  Fix MSVC "not all control paths return a value" warning. NFC.


  Commit: 759422c6df2dfe42d01bb64b42f43ab57db6e59e
      https://github.com/llvm/llvm-project/commit/759422c6df2dfe42d01bb64b42f43ab57db6e59e
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

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

  Log Message:
  -----------
  [DAG] visitEXTRACT_SUBVECTOR - pull out repeated SDLoc. NFC.


  Commit: cca30dfb5935e05837e37cced4407a63393c6642
      https://github.com/llvm/llvm-project/commit/cca30dfb5935e05837e37cced4407a63393c6642
  Author: nikitalita <nikitalita at protonmail.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp

  Log Message:
  -----------
  [DebugInfo][ObjectYAML] Remove duplicate "Flags" field from LabelSym (#88194)

There was a duplicate flags field mistakenly left in LabelSym. [LabelSym
only has one flags
field](https://github.com/microsoft/microsoft-pdb/blob/805655a28bd8198004be2ac27e6e0290121a5e89/include/cvinfo.h#L3806)


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

  Changed paths:
    M llvm/test/Transforms/VectorCombine/X86/shuffle.ll

  Log Message:
  -----------
  [VectorCombine][X86] Extend bitcast(shuffle(x,y)) test coverage

As discussed on #87510 the intention is only to fold bitcast(shuffle(x,y)) -> shuffle(bitcast(x),bitcast(y)) if we won't actually increase the number of bitcasts (i.e. x or y is already bitcasted from the correct type).


  Commit: a8b461603b3fab3b229ea6552433cb359c30350c
      https://github.com/llvm/llvm-project/commit/a8b461603b3fab3b229ea6552433cb359c30350c
  Author: Adrian Kuegel <akuegel at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

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

  Log Message:
  -----------
  [mlir] Apply ClangTidy BugProne fix

forwarding reference passed to std::move(), which may unexpectedly cause
lvalues to be moved; use std::forward() instead.


  Commit: 962534c4b490239269bb2e11d036596826539046
      https://github.com/llvm/llvm-project/commit/962534c4b490239269bb2e11d036596826539046
  Author: Adrian Kuegel <akuegel at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

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

  Log Message:
  -----------
  [mlir] Apply ClangTidy BugProne patch

This time for real.


  Commit: 364963a0a3935ced1acb2e959ecd08aef39405ef
      https://github.com/llvm/llvm-project/commit/364963a0a3935ced1acb2e959ecd08aef39405ef
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M bolt/lib/Rewrite/RewriteInstance.cpp

  Log Message:
  -----------
  [BOLT][NFC] Do not assume text section name in more places (#88303)

Fixes a couple more places where ".text" is presumed for the main
code section name.


  Commit: e2d482395992d725663543d297f5ab3cc5918fcc
      https://github.com/llvm/llvm-project/commit/e2d482395992d725663543d297f5ab3cc5918fcc
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M bolt/lib/Rewrite/BinaryPassManager.cpp

  Log Message:
  -----------
  [BOLT][NFC] Make RepRet X86-specific (#88286)

Bolt's RepRet pass is x86-specific, no need to add it for non-x86
targets.


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/test/Transforms/VectorCombine/X86/shuffle.ll

  Log Message:
  -----------
  [VectorCombine] foldBitcastShuffle - limit bitcast(shuffle(x,y)) -> shuffle(bitcast(x),bitcast(y))

Only fold bitcast(shuffle(x,y)) -> shuffle(bitcast(x),bitcast(y)) if we won't actually increase the number of bitcasts (i.e. x or y is already bitcasted from the correct type).


  Commit: 717d3f3974f43d90c1b8829a4077bbc2a2413c83
      https://github.com/llvm/llvm-project/commit/717d3f3974f43d90c1b8829a4077bbc2a2413c83
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/test/Transforms/VectorCombine/X86/shuffle-of-casts.ll

  Log Message:
  -----------
  [VectorCombine] foldShuffleOfCastops - add initial shuffle(bitcast(x),bitcast(y)) -> bitcast(shuffle(x,y)) support

Just handle cases where the bitcast src/dst element counts are the same (future patches will add shuffle mask scaling)


  Commit: 9d9bb7b1b6e96dc833133dacf1e2c7d9792e640e
      https://github.com/llvm/llvm-project/commit/9d9bb7b1b6e96dc833133dacf1e2c7d9792e640e
  Author: Johannes Reifferscheid <jreiffers at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

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

  Log Message:
  -----------
  Fix complex abs corner cases. (#88373)

The current implementation fails for very small and very large values.
For example, (0, -inf) should return inf, but it returns -inf.

This ports the logic used in XLA. Tested with XLA's
exhaustive_binary_test_f32_f64.


  Commit: b1094776152b68efa05f69b7b833f9cbc0727efc
      https://github.com/llvm/llvm-project/commit/b1094776152b68efa05f69b7b833f9cbc0727efc
  Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang/test/CodeGen/ms-intrinsics-other.c
    M clang/test/CodeGen/ms-intrinsics.c
    M clang/test/CodeGenOpenCL/builtins-amdgcn.cl
    M clang/test/Headers/__clang_hip_math.hip
    M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
    M llvm/test/Transforms/InstCombine/RISCV/riscv-vsetvli-knownbits.ll
    M llvm/test/Transforms/InstCombine/RISCV/riscv-vsetvlimax-knownbits.ll
    M llvm/test/Transforms/InstCombine/add.ll
    M llvm/test/Transforms/InstCombine/binop-itofp.ll
    M llvm/test/Transforms/InstCombine/bswap-fold.ll
    M llvm/test/Transforms/InstCombine/bswap.ll
    M llvm/test/Transforms/InstCombine/cast.ll
    M llvm/test/Transforms/InstCombine/cmp-intrinsic.ll
    M llvm/test/Transforms/InstCombine/compare-signs.ll
    M llvm/test/Transforms/InstCombine/ctpop.ll
    M llvm/test/Transforms/InstCombine/extractelement-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/extractelement.ll
    M llvm/test/Transforms/InstCombine/ffs-1.ll
    M llvm/test/Transforms/InstCombine/fls.ll
    M llvm/test/Transforms/InstCombine/fold-log2-ceil-idiom.ll
    M llvm/test/Transforms/InstCombine/high-bit-signmask-with-trunc.ll
    M llvm/test/Transforms/InstCombine/icmp-mul-zext.ll
    M llvm/test/Transforms/InstCombine/icmp-of-trunc-ext.ll
    M llvm/test/Transforms/InstCombine/icmp-topbitssame.ll
    M llvm/test/Transforms/InstCombine/insert-trunc.ll
    M llvm/test/Transforms/InstCombine/insertelt-trunc.ll
    M llvm/test/Transforms/InstCombine/known-bits.ll
    M llvm/test/Transforms/InstCombine/known-non-zero.ll
    M llvm/test/Transforms/InstCombine/known-phi-recurse.ll
    M llvm/test/Transforms/InstCombine/logical-select-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/logical-select.ll
    M llvm/test/Transforms/InstCombine/lshr-trunc-sext-to-ashr-sext.ll
    M llvm/test/Transforms/InstCombine/lshr.ll
    M llvm/test/Transforms/InstCombine/merging-multiple-stores-into-successor.ll
    M llvm/test/Transforms/InstCombine/narrow.ll
    M llvm/test/Transforms/InstCombine/negated-bitmask.ll
    M llvm/test/Transforms/InstCombine/pr34349.ll
    M llvm/test/Transforms/InstCombine/reduction-add-sext-zext-i1.ll
    M llvm/test/Transforms/InstCombine/sadd_sat.ll
    M llvm/test/Transforms/InstCombine/select-cmp-cttz-ctlz.ll
    M llvm/test/Transforms/InstCombine/select-imm-canon.ll
    M llvm/test/Transforms/InstCombine/select.ll
    M llvm/test/Transforms/InstCombine/sext-of-trunc-nsw.ll
    M llvm/test/Transforms/InstCombine/sext.ll
    M llvm/test/Transforms/InstCombine/shift-add.ll
    M llvm/test/Transforms/InstCombine/shift-amount-reassociation-in-bittest-with-truncation-lshr.ll
    M llvm/test/Transforms/InstCombine/shift-amount-reassociation-with-truncation-ashr.ll
    M llvm/test/Transforms/InstCombine/shift-amount-reassociation-with-truncation-lshr.ll
    M llvm/test/Transforms/InstCombine/shift-shift.ll
    M llvm/test/Transforms/InstCombine/shift.ll
    M llvm/test/Transforms/InstCombine/shl-demand.ll
    M llvm/test/Transforms/InstCombine/sign-bit-test-via-right-shifting-all-other-bits.ll
    M llvm/test/Transforms/InstCombine/trunc-demand.ll
    M llvm/test/Transforms/InstCombine/trunc-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/trunc-shift-trunc.ll
    M llvm/test/Transforms/InstCombine/trunc.ll
    M llvm/test/Transforms/InstCombine/truncating-saturate.ll
    M llvm/test/Transforms/InstCombine/vector-trunc.ll
    M llvm/test/Transforms/InstCombine/xor-ashr.ll
    M llvm/test/Transforms/InstCombine/zext-ctlz-trunc-to-ctlz-add.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/deterministic-type-shrinkage.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/intrinsiccost.ll
    M llvm/test/Transforms/LoopVectorize/X86/intrinsiccost.ll
    M llvm/test/Transforms/LoopVectorize/reduction.ll
    M llvm/test/Transforms/PhaseOrdering/AArch64/quant_4x4.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr46983.ll

  Log Message:
  -----------
  [InstCombine] Infer nsw/nuw for trunc (#87910)

This patch adds support for inferring trunc's nsw/nuw flags.


  Commit: 496de32ee2c34880c7d3396bbd09e45d5d5c8a9e
      https://github.com/llvm/llvm-project/commit/496de32ee2c34880c7d3396bbd09e45d5d5c8a9e
  Author: paperchalice <liujunchang97 at outlook.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/DeadMachineInstructionElim.h
    M llvm/include/llvm/CodeGen/FreeMachineFunction.h
    M llvm/include/llvm/CodeGen/MIRPrinter.h
    M llvm/include/llvm/CodeGen/MachinePassManager.h
    M llvm/include/llvm/Passes/CodeGenPassBuilder.h
    M llvm/include/llvm/Passes/PassBuilder.h
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/unittests/MIR/PassBuilderCallbacksTest.cpp

  Log Message:
  -----------
  [NewPM] Remove `MachinePassInfoMixin` (#88243)

Unify the inheritance paths of IR and machine function.


  Commit: a6db20f2c39ecb5939890317068d5398c760746d
      https://github.com/llvm/llvm-project/commit/a6db20f2c39ecb5939890317068d5398c760746d
  Author: Marc Auberer <marc.auberer at chillibits.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M libcxx/include/__bit/countl.h
    M libcxx/include/__bit/countr.h
    M libcxx/include/__bit/popcount.h

  Log Message:
  -----------
  [libcxx] Use generic builtins for popcount, clz and ctz (#86563)

Fixes #86556

Use `__builtin_popcountg` instead of `__buildin_popcount{l|ll}`
Use `__builtin_clzg instead` of `__buildin_clz{l|ll}`
Use `__builtin_ctzg instead` of `__builtin_ctz{l|ll}`

The generic variant of the builtins can be used to simplify some logic
with >= Clang 19 or >= GCC 14, where these generic variants are
available. As for backwards compatibility reasons, we can't completely
remove the old logic. Therefore, I left ToDo comments to address this,
as soon as support for pre Clang 19 as well as pre GCC 14 is dropped.

---------

Co-authored-by: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>


  Commit: 402f15ea92061d94412807887c8115374974967e
      https://github.com/llvm/llvm-project/commit/402f15ea92061d94412807887c8115374974967e
  Author: martinboehme <mboehme at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang/docs/tools/clang-formatted-files.txt
    R clang/include/clang/Analysis/FlowSensitive/ControlFlowContext.h

  Log Message:
  -----------
  [clang][dataflow] Remove deprecated alias `ControlFlowContext`. (#88358)


  Commit: 6fd2fdccf2f28fc155f614eec41f785492aad618
      https://github.com/llvm/llvm-project/commit/6fd2fdccf2f28fc155f614eec41f785492aad618
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang/test/CodeGen/X86/avx-shuffle-builtins.c
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/test/Transforms/PhaseOrdering/X86/pr67803.ll
    M llvm/test/Transforms/VectorCombine/X86/shuffle-of-casts.ll
    M llvm/test/Transforms/VectorCombine/X86/shuffle.ll

  Log Message:
  -----------
  [VectorCombine] foldShuffleOfCastops - extend shuffle(bitcast(x),bitcast(y)) -> bitcast(shuffle(x,y)) support

Handle shuffle mask scaling handling for cases where the bitcast src/dst element counts are different


  Commit: 77dd43570bf7a4bad688de8d8326c34590a0fa94
      https://github.com/llvm/llvm-project/commit/77dd43570bf7a4bad688de8d8326c34590a0fa94
  Author: Johannes Reifferscheid <jreiffers at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

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

  Log Message:
  -----------
  Fix complex power for large inputs. (#88387)

For example, 1e30^1.2 currently overflows.

Also forward fastmath flags.

This ports XLA's logic and was verified with its test suite. Note that
rsqrt and sqrt are still broken.


  Commit: 599adf30afe5802fab80419ec5bb896036a1c8fb
      https://github.com/llvm/llvm-project/commit/599adf30afe5802fab80419ec5bb896036a1c8fb
  Author: kadir çetinkaya <kadircet at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang-tools-extra/include-cleaner/lib/FindHeaders.cpp
    M clang-tools-extra/include-cleaner/unittests/FindHeadersTest.cpp

  Log Message:
  -----------
  [include-cleaner] Dont apply name-match for non-owning headers (#82625)


  Commit: 61ea1bc23aa941714be3ec818c922e4ee5a279a3
      https://github.com/llvm/llvm-project/commit/61ea1bc23aa941714be3ec818c922e4ee5a279a3
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    A llvm/test/Transforms/VectorCombine/X86/pr67803.ll

  Log Message:
  -----------
  [VectorCombine][X86] Add test coverage for #67803

We are still missing a fold for shuffle(bitcast(sext(x)),bitcast(sext(y))) -> bitcast(sext(shuffle(x,y))) due to foldShuffleOfCastops failing to add new instructions back onto the worklist


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/test/Transforms/VectorCombine/X86/pr67803.ll

  Log Message:
  -----------
  [VectorCombine] foldShuffleOfCastops - ensure we add all new instructions onto the worklist

When creating cast(shuffle(x,y)) we were only adding the cast() to the worklist, not the new shuffle, preventing recursive combines.

foldShuffleOfBinops is also failing to do this, but I still need to add test coverage for this.


  Commit: 44718311dee486f1823876e8af9100afcc50041b
      https://github.com/llvm/llvm-project/commit/44718311dee486f1823876e8af9100afcc50041b
  Author: Jakub Kuderski <jakub at nod-labs.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/AMDGPU/CMakeLists.txt
    M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPU.td
    R mlir/include/mlir/Dialect/AMDGPU/TransformOps/AMDGPUTransformOps.h
    R mlir/include/mlir/Dialect/AMDGPU/TransformOps/AMDGPUTransformOps.td
    R mlir/include/mlir/Dialect/AMDGPU/TransformOps/CMakeLists.txt
    M mlir/include/mlir/Dialect/AMDGPU/Transforms/Passes.h
    M mlir/include/mlir/Dialect/AMDGPU/Transforms/Passes.td
    R mlir/include/mlir/Dialect/AMDGPU/Transforms/Transforms.h
    R mlir/include/mlir/Dialect/AMDGPU/Transforms/Utils.h
    M mlir/include/mlir/InitAllExtensions.h
    M mlir/lib/Dialect/AMDGPU/CMakeLists.txt
    M mlir/lib/Dialect/AMDGPU/IR/AMDGPUDialect.cpp
    R mlir/lib/Dialect/AMDGPU/TransformOps/AMDGPUTransformOps.cpp
    R mlir/lib/Dialect/AMDGPU/TransformOps/CMakeLists.txt
    M mlir/lib/Dialect/AMDGPU/Transforms/CMakeLists.txt
    R mlir/lib/Dialect/AMDGPU/Transforms/OptimizeSharedMemory.cpp
    R mlir/lib/Dialect/AMDGPU/Transforms/Utils.cpp
    R mlir/test/Dialect/AMDGPU/optimize_shmem_reads_writes.mlir
    R mlir/test/Dialect/AMDGPU/transform_optimize_shmem_reads_writes.mlir
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  -----------
  [mlir][amdgpu] Remove shared memory optimization pass (#88225)

This implementation has a number of issues and ultimately does not work
on gfx9.
* It does not reduce bank conflicts with wide memory accesses.
* It does not correctly account for when LDS bank conflicts occur on
amdgpu.
* The implementation is too fragile to be used on real-world code. For
example, the code bails out on any `memref.subview` in the root op, even
when the subview is not a user of any of the `memref.alloc` ops.

I do not see how these can be easily fixed, therefore I think it's
better to delete this code.


  Commit: 198ffb85314f7741ed048de67d68ca83bb30e16e
      https://github.com/llvm/llvm-project/commit/198ffb85314f7741ed048de67d68ca83bb30e16e
  Author: Krystian Stasiowski <sdkrystian at gmail.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaDecl.cpp
    M clang/test/CXX/dcl.decl/dcl.meaning/p1-0x.cpp
    M clang/test/CXX/drs/dr28xx.cpp
    M clang/test/Parser/cxx-class.cpp

  Log Message:
  -----------
  [Clang][Sema] Implement approved resolution for CWG2858 (#88042)

The approved resolution for CWG2858 changes
[expr.prim.id.qual] p2 sentence 2 to read:
> A declarative _nested-name-specifier_ shall not have a
_computed-type-specifier_.

This patch implements the approved resolution. Since we don't consider
_nested-name-specifiers_ in friend declarations to be declarative (yet),
it currently isn't possible to write a test that would produce this
diagnostic (`diagnoseQualifiedDeclaration` is never called if the
`DeclContext` can't be computed). Nevertheless, tests were added which
will produce the diagnostic once we start calling
`diagnoseQualifiedDeclaration` for friend declarations.


  Commit: 298ea9bfd50ca41c77e45065700df06adb6264ae
      https://github.com/llvm/llvm-project/commit/298ea9bfd50ca41c77e45065700df06adb6264ae
  Author: Raghu Maddhipatla <7686592+raghavendhra at users.noreply.github.com>
  Date:   2024-04-11 (Thu, 11 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/OpenMPClauseOperands.h
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir

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

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

Fixed build error caused by Squash merge which needs rebase


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

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/vector-bitreverse.ll

  Log Message:
  -----------
  [X86] LowerBITREVERSE - support SSE-only GFNI i32/i64 bitreverse

Support Tremont CPUs which don't have AVX but do have GFNI.

Noticed while trying to workout how to clean up the costmodel for GFNI bitreverse


  Commit: 7ab7e7a55f3fce08ccd3cbcae94dabe99dd9e94a
      https://github.com/llvm/llvm-project/commit/7ab7e7a55f3fce08ccd3cbcae94dabe99dd9e94a
  Author: Xu Zhang <simonzgx at gmail.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M libc/docs/index.rst
    A libc/docs/signal.rst
    M libc/utils/docgen/docgen.py
    A libc/utils/docgen/signal.json

  Log Message:
  -----------
  [libc][docs] Generate docs for signal.h & optimized is_implemented func (#88028)


Fixes #87835

This patch added the documentation for the POSIX functions according to
[n3096](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf)
Section 7.14, and gives the *docgen.py* script a more elegant *is_implemented*
function.


  Commit: b63fe0d72e2df3b3c4b9fcb91aea07b2582be195
      https://github.com/llvm/llvm-project/commit/b63fe0d72e2df3b3c4b9fcb91aea07b2582be195
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M libcxx/include/__type_traits/copy_cv.h

  Log Message:
  -----------
  [libc++][NFC] Reduce the memory footprint of __copy_cv a bit (#87718)

Instead of instantiating `__copy_cv` for every combination of `_From`
and `_To` this only instantiates `__copy_cv` for every `_From` type,
reducing the number of instantiations.


  Commit: 72f9881c3ffcf4be6361c3e4312d91c9c8d94a98
      https://github.com/llvm/llvm-project/commit/72f9881c3ffcf4be6361c3e4312d91c9c8d94a98
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M libclc/CMakeLists.txt
    R libclc/cmake/CMakeCLCCompiler.cmake.in
    R libclc/cmake/CMakeCLCInformation.cmake
    R libclc/cmake/CMakeDetermineCLCCompiler.cmake
    R libclc/cmake/CMakeDetermineLLAsmCompiler.cmake
    R libclc/cmake/CMakeLLAsmCompiler.cmake.in
    R libclc/cmake/CMakeLLAsmInformation.cmake
    R libclc/cmake/CMakeTestCLCCompiler.cmake
    R libclc/cmake/CMakeTestLLAsmCompiler.cmake
    A libclc/cmake/modules/AddLibclc.cmake
    M libclc/generic/lib/SOURCES
    M llvm/tools/CMakeLists.txt

  Log Message:
  -----------
  [libclc] Refactor build system to allow in-tree builds (#87622)

The previous build system was adding custom "OpenCL" and "LLVM IR"
languages in CMake to build the builtin libraries. This was making it
harder to build in-tree because the tool binaries needed to be present
at configure time.

This commit refactors the build system to use custom commands to build
the bytecode files one by one, and link them all together into the final
bytecode library. It also enables in-tree builds by aliasing the
clang/llvm-link/etc. tool targets to internal targets, which are
imported from the LLVM installation directory when building out of tree.

Diffing (with llvm-diff) all of the final bytecode libraries in an
out-of-tree configuration against those built using the current tip
system shows no changes. Note that there are textual changes to metadata
IDs which confuse regular diff, and that llvm-diff 14 and below may show
false-positives.

This commit also removes a file listed in one of the SOURCEs which
didn't exist and which was preventing the use of
ENABLE_RUNTIME_SUBNORMAL when configuring CMake.


  Commit: 0d96422768908a8235f05a5d3b1d43ecc6038004
      https://github.com/llvm/llvm-project/commit/0d96422768908a8235f05a5d3b1d43ecc6038004
  Author: Derek Schuff <dschuff at chromium.org>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    A llvm/test/Object/Wasm/bad-data-symbol.yaml
    A llvm/test/Object/Wasm/bad-metadata-version.yaml
    A llvm/test/Object/Wasm/bad-reloc-type.test
    A llvm/test/Object/Wasm/bad-relocation.yaml
    A llvm/test/Object/Wasm/bad-symbol-type.test
    A llvm/test/Object/Wasm/duplicate-name.test
    A llvm/test/Object/Wasm/invalid-file.yaml
    A llvm/test/Object/Wasm/invalid-section-order.test
    A llvm/test/Object/Wasm/invalid-start.test
    A llvm/test/Object/Wasm/linked-namesec-with-linkingsec.yaml
    A llvm/test/Object/Wasm/linked-symbol-table.yaml
    A llvm/test/Object/Wasm/missing-version.test
    A llvm/test/Object/Wasm/obj2yaml-tables.test
    A llvm/test/Object/Wasm/relocs-and-producers.yaml
    A llvm/test/Object/Wasm/string-outside-section.test
    R llvm/test/Object/wasm-bad-data-symbol.yaml
    R llvm/test/Object/wasm-bad-metadata-version.yaml
    R llvm/test/Object/wasm-bad-reloc-type.test
    R llvm/test/Object/wasm-bad-relocation.yaml
    R llvm/test/Object/wasm-bad-symbol-type.test
    R llvm/test/Object/wasm-duplicate-name.test
    R llvm/test/Object/wasm-invalid-file.yaml
    R llvm/test/Object/wasm-invalid-section-order.test
    R llvm/test/Object/wasm-invalid-start.test
    R llvm/test/Object/wasm-linked-namesec-with-linkingsec.yaml
    R llvm/test/Object/wasm-linked-symbol-table.yaml
    R llvm/test/Object/wasm-missing-version.test
    R llvm/test/Object/wasm-obj2yaml-tables.test
    R llvm/test/Object/wasm-relocs-and-producers.yaml
    R llvm/test/Object/wasm-string-outside-section.test

  Log Message:
  -----------
  [Object][Wasm] Move wasm Object tests into their own directory (NFC) (#81072)


  Commit: 3c4b673af05f53e8a4d1a382b5c86367ea512c9e
      https://github.com/llvm/llvm-project/commit/3c4b673af05f53e8a4d1a382b5c86367ea512c9e
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M libcxx/include/stddef.h

  Log Message:
  -----------
  [libc++] Fix -Wgnu-include-next in stddef.h (#88214)

As reported in #86843, we must have #pragma GCC system_header before we
use #include_next, otherwise the compiler may not understand that we're
in a system header and may issue a diagnostic for our usage of


  Commit: 357f6c7826437f6527db6f99f756a34fb5e0f716
      https://github.com/llvm/llvm-project/commit/357f6c7826437f6527db6f99f756a34fb5e0f716
  Author: abidh <haqadeer at amd.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    A flang/docs/DebugGeneration.md
    M flang/docs/index.md

  Log Message:
  -----------
  [flang] Add design document for debug info generation. (#86939)

This document discusses some options where the debug metadata can be
generated. It also goes through various language constructs and explains
how the debug metadata will look like for that construct and how we can
extract that information.

The real point of discussion is how and where to extract the information
about various language features to generate the debug metadata. The
structure of the metadata itself is mostly settled as that is dictated by
the DWARF and structure of LLVM IR metadata. The classic flang
and gfortran generate quite similar DWARF for the various language
constructs.

This document is based on what Kiran posted in
https://reviews.llvm.org/D138534.

---------

Co-authored-by: Tom Eccles <t at freedommail.info>
Co-authored-by: Kiran Chandramohan <kiranchandramohan at gmail.com>


  Commit: f135d224a6d078ca3b0722db94e1d772fdbd68ad
      https://github.com/llvm/llvm-project/commit/f135d224a6d078ca3b0722db94e1d772fdbd68ad
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    A llvm/test/Transforms/SLPVectorizer/X86/sitofp-minbitwidth-node.ll

  Log Message:
  -----------
  [SLP][NFC]Add a test with the zext feeding into sitofp instructions.


  Commit: 3749e0d43fb56cf22cc72274c287b7bfdda9821d
      https://github.com/llvm/llvm-project/commit/3749e0d43fb56cf22cc72274c287b7bfdda9821d
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/ProfileData/MemProfReader.cpp
    M llvm/tools/llvm-profdata/llvm-profdata.cpp

  Log Message:
  -----------
  [memprof] Use structured binding (NFC) (#88363)


  Commit: db9a17a4075d2ba4cf9edfa90018da6c11908e2a
      https://github.com/llvm/llvm-project/commit/db9a17a4075d2ba4cf9edfa90018da6c11908e2a
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/ProfileData/InstrProfReader.cpp
    M llvm/unittests/ProfileData/InstrProfTest.cpp

  Log Message:
  -----------
  [memprof] Use std::optional (NFC) (#88366)


  Commit: 8c3cb6b55b688b767e5d65bcc2891b17322e8d05
      https://github.com/llvm/llvm-project/commit/8c3cb6b55b688b767e5d65bcc2891b17322e8d05
  Author: Chelsea Cassanova <chelsea_cassanova at apple.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M lldb/include/lldb/API/SBDebugger.h
    M lldb/include/lldb/lldb-enumerations.h
    M lldb/test/API/functionalities/diagnostic_reporting/TestDiagnosticReporting.py
    M lldb/test/API/functionalities/progress_reporting/TestProgressReporting.py
    M lldb/test/API/functionalities/progress_reporting/clang_modules/TestClangModuleBuildProgress.py
    M lldb/test/API/macosx/rosetta/TestRosetta.py
    M lldb/tools/lldb-dap/lldb-dap.cpp

  Log Message:
  -----------
  Reland "[lldb][sbdebugger] Move SBDebugger Broadcast bit enum into ll… (#88331)

…db-enumerations.h" (#88324)"

This reverts commit 9f6d08f2566a26144ea1753f80aebb1f2ecfdc63. This broke
the build because of a usage of one of the original SBDebugger broadcast
bits that wasn't updated in the original commit.


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

  Changed paths:
    M clang/unittests/AST/Interp/toAPValue.cpp

  Log Message:
  -----------
  [clang][Interp][NFC] Expand pointer unittests

Test integral pointers as well.


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

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/Interp.cpp
    M clang/lib/AST/Interp/Program.cpp
    M clang/test/AST/Interp/cxx23.cpp
    M clang/test/AST/Interp/records.cpp

  Log Message:
  -----------
  [clang][Interp] Allow initializing static class members

We need to handle this when registering global variables.


  Commit: 5122a2c2320c7b14f6585e63b7fc43ac82a550c2
      https://github.com/llvm/llvm-project/commit/5122a2c2320c7b14f6585e63b7fc43ac82a550c2
  Author: Aart Bik <ajcbik at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/SparseTensor/Transforms/Passes.h
    M mlir/include/mlir/Dialect/SparseTensor/Transforms/Passes.td
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseAssembler.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorPasses.cpp
    A mlir/test/Dialect/SparseTensor/external_direct.mlir

  Log Message:
  -----------
  [mlir][sparse] allow for direct-out passing of sparse tensor buffers (#88327)

In order to support various external frameworks (JAX vs PyTorch) we need
a bit more flexibility in [dis]assembling external buffers to and from
sparse tensors in MLIR land. This PR adds a direct-out option that
avoids the rigid pre-allocated for copy-out semantics.

Note that over time, we expect the [dis]assemble operations to converge
into something that supports all sorts of external frameworks. Until
then, this option helps in experimenting with different options.


  Commit: f626a35086d90f25986e3f06e01a54cca91250d8
      https://github.com/llvm/llvm-project/commit/f626a35086d90f25986e3f06e01a54cca91250d8
  Author: Nick Desaulniers <nickdesaulniers at users.noreply.github.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M libc/docs/dev/code_style.rst
    M libc/docs/usage_modes.rst
    M libc/hdr/CMakeLists.txt
    A libc/hdr/types/CMakeLists.txt
    A libc/hdr/types/sigset_t.h
    A libc/hdr/types/struct_epoll_event.h
    A libc/hdr/types/struct_timespec.h
    M libc/src/signal/linux/CMakeLists.txt
    M libc/src/signal/linux/raise.cpp
    M libc/src/signal/linux/sigaction.cpp
    M libc/src/signal/linux/sigaddset.cpp
    M libc/src/signal/linux/sigdelset.cpp
    M libc/src/signal/linux/sigfillset.cpp
    M libc/src/signal/linux/signal_utils.h
    M libc/src/signal/linux/sigprocmask.cpp
    M libc/src/signal/sigaddset.h
    M libc/src/signal/sigdelset.h
    M libc/src/signal/sigemptyset.h
    M libc/src/signal/sigfillset.h
    M libc/src/signal/sigprocmask.h
    M libc/src/sys/epoll/epoll_pwait.h
    M libc/src/sys/epoll/epoll_pwait2.h
    M libc/src/sys/epoll/epoll_wait.h
    M libc/src/sys/epoll/linux/CMakeLists.txt
    M libc/src/sys/epoll/linux/epoll_pwait.cpp
    M libc/src/sys/epoll/linux/epoll_pwait2.cpp
    M libc/src/sys/epoll/linux/epoll_wait.cpp
    M libc/src/sys/select/linux/select.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc] Codify header inclusion policy (#87017)


When supporting "overlay" vs "fullbuild" modes, "what ABI are you
using?" becomes a fundamental question to have concrete answers for.
Overlay mode MUST match the ABI of the system being overlayed onto;
fullbuild more flexible (the only system ABI relevant is the OS kernel).

When implementing llvm-libc we generally prefer the include-what-you use
style of avoiding transitive dependencies (since that makes refactoring
headers more painful, and slows down build times). So what header do you
include for any given type or function declaration? For any given
userspace program, the answer is straightforward. But for llvm-libc
which is trying to support multiple ABIs (at least one per
configuration), the answer is perhaps less clear.

This proposal seeks to add one layer of indirection relative to what's
being done today.

It then converts users of sigset_t and struct epoll_event and the epoll
implemenations over to this convention as an example.


  Commit: 4e6d18f40642c2cc8e124bbe55810b2d9b2ac9c0
      https://github.com/llvm/llvm-project/commit/4e6d18f40642c2cc8e124bbe55810b2d9b2ac9c0
  Author: Krystian Stasiowski <sdkrystian at gmail.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/DeclTemplate.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/ASTImporter.cpp
    M clang/lib/AST/DeclPrinter.cpp
    M clang/lib/AST/DeclTemplate.cpp
    M clang/lib/Parse/ParseTemplate.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/unittests/AST/DeclPrinterTest.cpp

  Log Message:
  -----------
  [Clang][AST] Track whether template template parameters used the 'typename' keyword (#88139)

This patch adds a `Typename` bit-field to `TemplateTemplateParmDecl`
which stores whether the template template parameter was declared with
the `typename` keyword.


  Commit: 62fa12ad2405cbdf24d5daf489e276c67a38e482
      https://github.com/llvm/llvm-project/commit/62fa12ad2405cbdf24d5daf489e276c67a38e482
  Author: Peiming Liu <peiming at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorAttrDefs.td
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorType.h
    M mlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp

  Log Message:
  -----------
  [mlir][sparse] support querying sparse buffer types from sparse tenso… (#88308)

…r encodings.


  Commit: 877ecdf52f40472d31205f107d39097268d3e3e3
      https://github.com/llvm/llvm-project/commit/877ecdf52f40472d31205f107d39097268d3e3e3
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/InstCombine/known-bits.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for computing knownbits from `(icmp upred X (and/or X, Y))`; NFC


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

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/known-bits.ll

  Log Message:
  -----------
  [ValueTracking] compute knownbits from `(icmp upred X (and/or X, Y))`; NFC

`(icmp uge/ugt (and X, Y), C)` implies both `(icmp uge/ugt X, C)` and
`(icmp uge/ugt Y, C)`. We can use this to deduce leading ones in `X`.

`(icmp ule/ult (or X, Y), C)` implies both `(icmp ule/ult X, C)` and
`(icmp ule/ult Y, C)`. We can use this to deduce leading zeros in `X`.

Closes #86059


  Commit: f0ea888e01aabcb131a8931b9e1fe1c5212a6cba
      https://github.com/llvm/llvm-project/commit/f0ea888e01aabcb131a8931b9e1fe1c5212a6cba
  Author: Christopher Di Bella <cjdb at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/left_folds.pass.cpp
    M libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/requirements.compile.pass.cpp
    M libcxx/test/std/algorithms/algorithms.results/in_found_result.pass.cpp
    M libcxx/test/std/algorithms/algorithms.results/in_fun_result.pass.cpp
    M libcxx/test/std/algorithms/algorithms.results/in_in_out_result.pass.cpp
    M libcxx/test/std/algorithms/algorithms.results/in_in_result.pass.cpp
    M libcxx/test/std/algorithms/algorithms.results/in_out_out_result.pass.cpp
    M libcxx/test/std/algorithms/algorithms.results/in_out_result.pass.cpp
    M libcxx/test/std/algorithms/algorithms.results/in_value_result.pass.cpp
    M libcxx/test/std/algorithms/algorithms.results/min_max_result.pass.cpp

  Log Message:
  -----------
  [libcxx] applies changes regarding post-commit feedback to #75259 (#76534)

Some of the feedback was also relevant to other files, and has been
applied there too.


  Commit: f6749d8dcb9af5c30affd259f4c4160c54606d91
      https://github.com/llvm/llvm-project/commit/f6749d8dcb9af5c30affd259f4c4160c54606d91
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/sitofp-minbitwidth-node.ll

  Log Message:
  -----------
  [SLP]Consider unsigned nodes, feeding into sitofp, being converted using
uitofp.

Need to use uitofp for unsigned nodes, which are part of minbitwidth
analysis, to correctly handle signedness info.


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

  Changed paths:
    M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp

  Log Message:
  -----------
  [lldb] Fix call to TemplateTemplateParmDecl::Create after #88139 (#88417)

#88139 adds a parameter to `TemplateTemplateParmDecl::Create`, which is
called in LLDB. This adds the missing argument for that parameter.


  Commit: 03f619da077bca72bb3b0d978a1f50a2fade2750
      https://github.com/llvm/llvm-project/commit/03f619da077bca72bb3b0d978a1f50a2fade2750
  Author: Vincent Lee <thevinster at users.noreply.github.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Passes/StandardInstrumentations.h
    M llvm/lib/Passes/StandardInstrumentations.cpp
    M llvm/test/Other/print-at-pass-number.ll

  Log Message:
  -----------
  [StandardInstrumentations] Support -print-after-pass-number option (#87458)

There's already support for `-print-before-pass-number`, so it makes
sense that we also have a `-print-after-pass-number`. This is especially
useful if you want to print the IR after the very last pass without
resorting to `-print-after-all` and combing through stderr or the IR
file directory.


  Commit: 9029e6ebdfd98a58b5c5646fd534c6c849148cda
      https://github.com/llvm/llvm-project/commit/9029e6ebdfd98a58b5c5646fd534c6c849148cda
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/store-abs-minbitwidth.ll

  Log Message:
  -----------
  [libclc] Refactor build system to allow in-tree builds (#87622)

The previous build system was adding custom "OpenCL" and "LLVM IR"
languages in CMake to build the builtin libraries. This was making it
harder to build in-tree because the tool binaries needed to be present
at configure time.

This commit refactors the build system to use custom commands to build
the bytecode files one by one, and link them all together into the final
bytecode library. It also enables in-tree builds by aliasing the
clang/llvm-link/etc. tool targets to internal targets, which are
imported from the LLVM installation directory when building out of tree.

Diffing (with llvm-diff) all of the final bytecode libraries in an
out-of-tree configuration against those built using the current tip
system shows no changes. Note that there are textual changes to metadata
IDs which confuse regular diff, and that llvm-diff 14 and below may show
false-positives.

This commit also removes a file listed in one of the SOURCEs which
didn't exist and which was preventing the use of
ENABLE_RUNTIME_SUBNORMAL when configuring CMake.


  Commit: d7be9d23012c99b231bd3a4a9dd58ee15f1be5e7
      https://github.com/llvm/llvm-project/commit/d7be9d23012c99b231bd3a4a9dd58ee15f1be5e7
  Author: Sunil Srivastava <sunil.srivastava at sony.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/TargetLibraryInfo.cpp
    M llvm/test/tools/llvm-tli-checker/ps4-tli-check.yaml

  Log Message:
  -----------
  PS support for erf/erff/erfl. (#88412)

Co-authored-by: Sunil Srivastava <sunil.srivastava at sony.com>


  Commit: f7cc224044a5121191b7d96825988bd954ce49e2
      https://github.com/llvm/llvm-project/commit/f7cc224044a5121191b7d96825988bd954ce49e2
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/store-abs-minbitwidth.ll

  Log Message:
  -----------
  Revert "[libclc] Refactor build system to allow in-tree builds (#87622)"

This reverts commit 9029e6ebdfd98a58b5c5646fd534c6c849148cda, which was
committed by mistake with the wrong message and fails  https://lab.llvm.org/buildbot/#/builders/221/builds/21958.


  Commit: 9c4aca2b2ec46895761756e34b191593694e4c47
      https://github.com/llvm/llvm-project/commit/9c4aca2b2ec46895761756e34b191593694e4c47
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    M llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out.ll

  Log Message:
  -----------
  [HWASAN] Emit optimization remarks (#88332)

Similar to #88304

SelHWAsan is optimization. We may want to diagnose compiler decisions.
Remarks is the tool for that https://llvm.org/docs/Remarks.html.


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

  Changed paths:
    M clang/lib/AST/Interp/FunctionPointer.h
    M clang/unittests/AST/Interp/toAPValue.cpp

  Log Message:
  -----------
  [clang][Interp] Fix handling integral function pointers

As expected, we need to be a little more careful when the
Function* is created from an integer.


  Commit: fc52ee336b394d84110184d625cda1d4f84d8098
      https://github.com/llvm/llvm-project/commit/fc52ee336b394d84110184d625cda1d4f84d8098
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.h

  Log Message:
  -----------
  [lldb][ClangUserExpression][NFCI] Pass the most specific ExecutionContextScope possible into ClangExpressionParser (#87657)

The `ClangExpressionParser` takes an `ExecutionContextScope` which it
uses to query the `Process`/`Target`/`StackFrame` to set various
compiler options in preparation for parsing an expression.

However, `TryParse` constructs the parser with a `Process` or `Target`,
never a `StackFrame`. So when the parser tries to retrieve the current
`StackFrame` from the `exe_scope`, it doesn't succeed. In future patches
we want to query the `StackFrame` from within the
`ClangExpressionParser` constructor.

This patch simplifies `TryParse`, by removing the redundant `exe_scope`
parameter, and instead uses the `exe_ctx` to derive the most fitting
`exe_scope` to pass into `ClangExpressionParser`.

Not entirely sure how to test this. This patch is a prerequisite to get
subsequent patches that set `LangOpts` based on the current `StackFrame`
to work.


  Commit: 38f8fcea3455ef1d77faf9746579f52b4e18dacc
      https://github.com/llvm/llvm-project/commit/38f8fcea3455ef1d77faf9746579f52b4e18dacc
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
    M lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py
    M lldb/test/API/commands/expression/options/TestExprOptions.py
    M lldb/test/API/lang/objcxx/objc-builtin-types/TestObjCBuiltinTypes.py
    A lldb/test/API/lang/objcxx/objc-from-cpp-frames-without-debuginfo/Makefile
    A lldb/test/API/lang/objcxx/objc-from-cpp-frames-without-debuginfo/TestObjCFromCppFramesWithoutDebugInfo.py
    A lldb/test/API/lang/objcxx/objc-from-cpp-frames-without-debuginfo/main.cpp

  Log Message:
  -----------
  [lldb][ClangExpressionParser] Don't by default enable Objecitve-C support when evaluating C++ expressions (#87767)

This patch attempts to decouple C++ expression evaluation from
Objective-C support. We've previously enabled it by default (if a
runtime existed), but that meant we're opting into extra work we only
need to do for Objective-C, which complicates/slows down C++ expression
evaluation. Of course there's a valid use-case for this, which is
calling Objective-C APIs when stopped in C++ frames (which Objective-C++
developers might want to do). In those cases we should really prompt the
user to add the `expr --language objc++` flag. To accomodate a likely
frequent use-case where a user breaks in a system C++ library (without
debug-symbols) but their application is actually an Objective-C app, we
allow Objective-C support in C++ expressions if the current frame
doesn't have debug-info.

This fixes https://github.com/llvm/llvm-project/issues/75443 and allows
us to add more `LangOpts.ObjC` guards around the expression evaluator in
the future (e.g., we could avoid looking into the Objective-C runtime
during C++ expression evaluation, which we currently do
unconditionally).

Depends on https://github.com/llvm/llvm-project/pull/87657


  Commit: b1822ef311b79d409be6f60ce86fccd967d623bc
      https://github.com/llvm/llvm-project/commit/b1822ef311b79d409be6f60ce86fccd967d623bc
  Author: XChy <xxs_chy at outlook.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/SCCPSolver.cpp
    M llvm/test/Transforms/PhaseOrdering/ARM/arm_mult_q15.ll
    M llvm/test/Transforms/SCCP/conditions-ranges.ll
    M llvm/test/Transforms/SCCP/ip-ranges-casts.ll
    A llvm/test/Transforms/SCCP/trunc-nuw-nsw-flags.ll
    M llvm/test/Transforms/SCCP/widening.ll

  Log Message:
  -----------
  [SCCP] Refine trunc with nsw/nuw flags (#87926)

Following #85592, add support for nsw/nuw flags of trunc in SCCP.


  Commit: 5bed6afc21c9ff9dba4aabf5ac74cb12971f634f
      https://github.com/llvm/llvm-project/commit/5bed6afc21c9ff9dba4aabf5ac74cb12971f634f
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M bolt/lib/Rewrite/RewriteInstance.cpp

  Log Message:
  -----------
  [BOLT][NFC] Remove unneeded if (#88322)

No need need to special-case zero. Section 0 will map to section 0.


  Commit: 6b85fb1ef8586181fbdb02ca11a3bb0e9006aabd
      https://github.com/llvm/llvm-project/commit/6b85fb1ef8586181fbdb02ca11a3bb0e9006aabd
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/store-abs-minbitwidth.ll

  Log Message:
  -----------
  [SLP]Consider (f)sub, being operand of llvm.(f)abs/icmp eq/ne 0, commutative.

If (f)sub is only operand of llvm.(f)abs or icmp eq/ne 0 (int only), we can consider it as commutative operation, just need to drop wrapping flags for ineteger
operation.

https://alive2.llvm.org/ce/z/GxvxjB for correctness of abs with dropped
flags.

Reviewers: RKSimon

Reviewed By: RKSimon

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


  Commit: a5eaec83b3446f217169fdd94e03ec67823af058
      https://github.com/llvm/llvm-project/commit/a5eaec83b3446f217169fdd94e03ec67823af058
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

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

  Log Message:
  -----------
  [SLP]Fix variable redefinition error


  Commit: 8840992667180d327ff40ee24354ab8b49605aae
      https://github.com/llvm/llvm-project/commit/8840992667180d327ff40ee24354ab8b49605aae
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M bolt/include/bolt/Profile/DataAggregator.h
    M bolt/lib/Profile/DataAggregator.cpp
    M bolt/test/X86/yaml-secondary-entry-discriminator.s

  Log Message:
  -----------
  [BOLT][BAT] Fix handling of split functions

Move BAT parent function lookup outside `getLocationName`, to the
scope where we retrieve `FuncBranchData` linked with the function.

Previously DataAggregator would store branch profile recorded in the
split fragment in `FuncBranchData` associated with the fragment, and
perform name translation in `getLocationName` for symbol name only.
This works for fdata profile which is printed out as-is, but doesn't
work with BAT YAML profile writer which requires a combined profile.

The issue necessitated `fixupBATProfile` which partially addressed the
issue (reassigned inter-fragment calls back into intra-function
branches). However, `fixupBATProfile` fails to address disjoint
profiles (i.e. doesn't merge `FuncBranchData` for fragments back
into parent). This diff eliminates the need for `fixupBATProfile` by
removing the root cause of the issue.

Test Plan: NFC for existing tests

Reviewers: ayermolo, dcci, rafaelauler, maksfb

Reviewed By: maksfb

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


  Commit: 3997f0eb8199c89f8224cca1ecdd3d45c1bbe1fc
      https://github.com/llvm/llvm-project/commit/3997f0eb8199c89f8224cca1ecdd3d45c1bbe1fc
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M bolt/include/bolt/Profile/BoltAddressTranslation.h
    M bolt/lib/Profile/BoltAddressTranslation.cpp
    M bolt/lib/Profile/DataAggregator.cpp
    M bolt/test/X86/yaml-secondary-entry-discriminator.s

  Log Message:
  -----------
  [BOLT] Cover all call sites in writeBATYAML

Call site information setting was conditioned on branch information
presence for a given block. However, it's possible to have sampled
profile lacking one or the other for a given basic block.

Iterate over branch profiles and call profiles independently to cover
all recorded profile data.

Depends on https://github.com/llvm/llvm-project/pull/87569

Test Plan: Updated bolt/test/X86/yaml-secondary-entry-discriminator.s

Reviewers: ayermolo, dcci, maksfb, rafaelauler

Reviewed By: maksfb

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


  Commit: 41e8a9b1b2010b8111a0488a03b057cb8e33a199
      https://github.com/llvm/llvm-project/commit/41e8a9b1b2010b8111a0488a03b057cb8e33a199
  Author: Haojian Wu <hokein.wu at gmail.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:

  Log Message:
  -----------
  [HLSL] Remove an unnecessary .ll file in clang/test/SemaHLSL/. (#87346)

This file seemed to be added unintentionally in
9434c083475e42f47383f3067fe2a155db5c6a30.


  Commit: 5d6d8dcd292e0a107b11d378932eee9c2f9ccfc7
      https://github.com/llvm/llvm-project/commit/5d6d8dcd292e0a107b11d378932eee9c2f9ccfc7
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/test/CodeGen/clang-sections-attribute.c
    M clang/test/CodeGenCXX/clang-sections.cpp
    M llvm/lib/CodeGen/TargetInstrInfo.cpp
    M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
    M llvm/lib/IR/AutoUpgrade.cpp
    M llvm/lib/Target/TargetLoweringObjectFile.cpp
    A llvm/test/Bitcode/upgrade-implicit-section-name.ll
    R llvm/test/CodeGen/AArch64/clang-section-macho.ll
    M llvm/test/CodeGen/ARM/clang-section.ll
    M llvm/test/CodeGen/Generic/machine-function-splitter.ll
    M llvm/test/CodeGen/X86/basic-block-sections-pragma-sections.ll

  Log Message:
  -----------
  [clang][llvm] Remove "implicit-section-name" attribute (#87906)

D33412/D33413 introduced this to support a clang pragma to set section
names for a symbol depending on if it would be placed in
bss/data/rodata/text, which may not be known until the backend. However,
for text we know that only functions will go there, so just directly set
the section in clang instead of going through a completely separate
attribute.

Autoupgrade the "implicit-section-name" attribute to directly setting
the section on a Fuction.


  Commit: 20ed5b1f45871612570d3bd447121ac43e083c6a
      https://github.com/llvm/llvm-project/commit/20ed5b1f45871612570d3bd447121ac43e083c6a
  Author: Mingming Liu <mingmingl at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/test/tools/gold/X86/thinlto.ll

  Log Message:
  -----------
  [nfc]Fix test gold/x86/thinlto.ll with GV Summary change (#88429)

This gold thinlto test should have been updated in commit dda7333
(https://github.com/llvm/llvm-project/commit/dda73336ad22bd0b5ecda17040c50fb10fcbe5fb).

It's ok to keep {Inputs/emit-llvm.foo.ll, Inputs/emit-llvm.bar.ll} the
current way for `llvm-as` since the field is optional (see example in
https://github.com/llvm/llvm-project/blob/5d6d8dcd292e0a107b11d378932eee9c2f9ccfc7/llvm/test/Assembler/thinlto-summary.ll#L12-L16)


  Commit: aa80f3ec48419a73aafcc2ff947c6dd1e3734481
      https://github.com/llvm/llvm-project/commit/aa80f3ec48419a73aafcc2ff947c6dd1e3734481
  Author: Krystian Stasiowski <sdkrystian at gmail.com>
  Date:   2024-04-11 (Thu, 11 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/instantiate-using-decl.cpp
    M clang/test/SemaTemplate/ms-function-specialization-class-scope.cpp

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

Reapplies #87541 and addresses the bug which caused expressions naming
overload sets to be incorrectly rebuilt.


  Commit: 08e210c6af68005e1bd27488d92de2efba548f58
      https://github.com/llvm/llvm-project/commit/08e210c6af68005e1bd27488d92de2efba548f58
  Author: Mingming Liu <mingmingl at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/include/llvm/ProfileData/InstrProf.h
    M llvm/lib/ProfileData/InstrProf.cpp
    M llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp

  Log Message:
  -----------
  [NFC][IndirectCallProm] Refactor function-based conditional devirtualization and indirect call value profile update into one helper function (#80762)

* The motivation is to move indirect callee profile update inside the
function-based speculative indirect-call promotion, so that there are
fewer diffs the vtable-based transformation and profile update is
implemented in a follow-up patch.
* The Parent patch is https://github.com/llvm/llvm-project/pull/79381


  Commit: 4df854e1a98ed47c955838d2c94bf2913c50041f
      https://github.com/llvm/llvm-project/commit/4df854e1a98ed47c955838d2c94bf2913c50041f
  Author: Chelsea Cassanova <chelsea_cassanova at apple.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M lldb/test/API/lit.cfg.py
    M lldb/test/Shell/lit.cfg.py

  Log Message:
  -----------
  [lldb][lit] Add MallocNanoZone envvar to Darwin ASan builds (#88431)

When builds on Darwin are configured with ASan, running tests will emit
a warning about malloc's nano zone (`malloc: nano zone abandoned due to inability to reserve vm space`) that can interfere with the test
output and cause failures. Setting the environment variable
`MallocNanoZone` to 0 will remove this warning and allow the tests to
run as normal.


  Commit: 1f5d130df85c2d0550dc8687ad0fa1d96856c318
      https://github.com/llvm/llvm-project/commit/1f5d130df85c2d0550dc8687ad0fa1d96856c318
  Author: Chelsea Cassanova <chelsea_cassanova at apple.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M lldb/test/API/lit.cfg.py
    M lldb/test/Shell/lit.cfg.py

  Log Message:
  -----------
  Revert "[lldb][lit] Add MallocNanoZone envvar to Darwin ASan builds" (#88436)

Reverts llvm/llvm-project#88431. A config variable for the host OS is
unrecognized on the Linux builds and is causing a build failure.


  Commit: 44de2bb6949f0ca62a2e16506fe3d91be14e6d23
      https://github.com/llvm/llvm-project/commit/44de2bb6949f0ca62a2e16506fe3d91be14e6d23
  Author: Nathan Lanza <nathanlanza at gmail.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang/CMakeLists.txt
    A clang/include/clang/CIR/CMakeLists.txt
    M clang/include/clang/CMakeLists.txt
    M clang/include/clang/Config/config.h.cmake
    A clang/lib/CIR/CMakeLists.txt
    M clang/lib/CMakeLists.txt
    M clang/test/CMakeLists.txt
    M clang/test/lit.site.cfg.py.in

  Log Message:
  -----------
  [CIR][cmake] Add support for cmake variable CLANG_ENABLE_CIR

Introduce a cmake variable that guards the inclusion of ClangIR into the
build of clang. Guard that we aren't trying to build without MLIR. Add
two subdirectories that, as of now, don't do anything.

Reviewers: bcardosolopes, erichkeane, petrhosek, Ericson2314

Reviewed By: bcardosolopes

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


  Commit: a952c123880eb1168f1021b116485e27170d48ca
      https://github.com/llvm/llvm-project/commit/a952c123880eb1168f1021b116485e27170d48ca
  Author: Marius Brehler <marius.brehler at iml.fraunhofer.de>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M .github/workflows/pr-code-format.yml

  Log Message:
  -----------
  [GitHub] Set top level token permission (#87326)


  Commit: 84df7a09f8da5809b85fd097015e5ac6cc8a3f88
      https://github.com/llvm/llvm-project/commit/84df7a09f8da5809b85fd097015e5ac6cc8a3f88
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang-tools-extra/clangd/index/SymbolCollector.cpp
    M clang/include/clang/Lex/HeaderSearch.h
    M clang/lib/Lex/HeaderSearch.cpp
    M clang/lib/Serialization/ASTWriter.cpp

  Log Message:
  -----------
  [clang][modules] Do not resolve `HeaderFileInfo` externally in `ASTWriter` (#87848)

Clang uses the `HeaderFileInfo` struct to track bits of information on
header files, which gets used throughout the compiler. We also use this
to compute the set of affecting module maps in `ASTWriter` and in the
end serialize the information into the `HEADER_SEARCH_TABLE` record of a
PCM file, allowing clients to learn about headers from the module. In
doing so, Clang asks for existing `HeaderFileInfo` for all known
`FileEntries`. Note that this asks the loaded PCM files for the
information they have on each header file in question. This seems
unnecessary: we only want to serialize information on header files that
either belong to the current module or that got included textually.
Loaded PCM files can't provide us with any useful information.

For explicit modules with lazy loading (using `-fmodule-map-file=<path>`
with `-fmodule-file=<name>=<path>`) the compiler knows about header
files listed in the module map files on the command-line. This can be a
large number.

Asking for existing `HeaderFileInfo` can trigger deserialization of
`HEADER_SEARCH_TABLE` from loaded PCM files. Keys of the on-disk hash
table consist of the header file size and modification time. However,
with explicit modules Clang zeroes out the modification time. Moreover,
if you import lots of modules, some of their header files end up having
identical sizes. This means lots of hash collisions that can only be
resolved by running the serialized filename through `FileManager` and
comparing equality of the `FileEntry`. This ends up being super
expensive, essentially re-stating lots of the transitively loaded SDK
header files.

This patch cleans up the API for getting `HeaderFileInfo` and makes sure
`ASTWriter` uses the version that doesn't ask loaded PCM files for more
information. This removes the excessive stat traffic coming from
`ASTWriter` hopefully without changing observable behavior.


  Commit: 95fbd8d19dff10b5a734e3db1b29cba2da7a983f
      https://github.com/llvm/llvm-project/commit/95fbd8d19dff10b5a734e3db1b29cba2da7a983f
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang-tools-extra/clangd/index/SymbolCollector.cpp

  Log Message:
  -----------
  [clangd] Don't ignore external HFI in `SymbolCollector` (#88446)

The `FileEntry` corresponds to a `FileID` containing the
`SourceLocation` of a `NamedDecl` which (I think) might've been
deserialized from a PCM file. Considering external `HeaderFileInfo` here
is most likely the right thing to do here in order to get the correct
spelling in case the current compiler instance has not register this
file as a header yet.


  Commit: 9a36077e4db30c7da603620762036d4a430e4e62
      https://github.com/llvm/llvm-project/commit/9a36077e4db30c7da603620762036d4a430e4e62
  Author: jimingham <jingham at apple.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M lldb/bindings/interface/SBFrameExtensions.i
    M lldb/test/API/python_api/frame/TestFrames.py

  Log Message:
  -----------
  Fix error in unrecognized register name handling for "SBFrame.register" (#88047)

The code returned lldb.SBValue() when you passed in an unrecognized
register name. But referring to "lldb" is apparently not legal within
the module.

I changed this to just return SBValue(), but then this construct:

(lldb) script
>>> for reg_set in lldb.target.process.thread[0].frames[0].register
...    print(reg)

Runs forever printing "No Value". The __getitem__(key) gets called with
a monotonically increasing by 1 series of integers. I don't know why
Python decided the class we defined should have a generator that returns
positive integers in order, but we can add a more useful one here by
returning an iterator over the flattened list of registers.

Note, the not very aptly named "SBFrame.registers" is an iterator over
register sets, not registers, so the two are not redundant.


  Commit: 4036a6946e5420bb77a93037c83732be600b9b0b
      https://github.com/llvm/llvm-project/commit/4036a6946e5420bb77a93037c83732be600b9b0b
  Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGenHLSL/builtins/rcp.hlsl
    M llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp
    R llvm/test/CodeGen/DirectX/rcp.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/rcp.ll

  Log Message:
  -----------
  [HLSL] move rcp to cgbuiltins (#88401)

Removing the intrinsic because there is no opCodes for rcp in DXIL or
SPIR-V.
Moving means we don't have to re-implement this feature for each
backend.

fixes #87784

Co-authored-by: Farzon Lotfi <farzon at farzon.com>


  Commit: 00a4f091bad199053b33af983a5abbf2c5abe949
      https://github.com/llvm/llvm-project/commit/00a4f091bad199053b33af983a5abbf2c5abe949
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/AttrDocs.td
    M clang/test/Driver/mtargetos-darwin.c

  Log Message:
  -----------
  [clang][docs] Modernize attribute docs for darwin specifics (#88448)

* Generally recommend target triples. But replace `m*version-min` with
`mtargetos`.
* Also include test coverage for -mtargetos=visionos


  Commit: 43d0891d3bb1fc40ff5dcea91c28d1582978caff
      https://github.com/llvm/llvm-project/commit/43d0891d3bb1fc40ff5dcea91c28d1582978caff
  Author: Maksim Panchenko <maks at fb.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M bolt/lib/Core/BinaryContext.cpp
    A bolt/test/runtime/X86/jt-confusion.s

  Log Message:
  -----------
  [BOLT] Fix handling of trailing entries in jump tables (#88444)

If a jump table has entries at the end that are a result of
__builtin_unreachable() targets, BOLT can confuse them with function
pointers. In such case, we should exclude these targets from the table
as we risk incorrectly updating the function pointers. It is safe to
exclude them as branching on such targets is considered an undefined
behavior.


  Commit: 2f55056c89dd1ccb1aa69a9aed68048a59413d4d
      https://github.com/llvm/llvm-project/commit/2f55056c89dd1ccb1aa69a9aed68048a59413d4d
  Author: Mark Rowe <mrowe at bdash.net.nz>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M compiler-rt/cmake/Modules/AddCompilerRT.cmake

  Log Message:
  -----------
  [compiler-rt] Don't explicitly ad-hoc code sign dylibs if using Apple's new linker (#88323)

Apple's new linker reports itself as ld rather than ld64 and does not
match the version detection regex.

Invert the logic to look only for older versions of ld64. This ensures
the runtime dylibs are left with a linker-generated code signature that
tools such as `strip` will preserve.

Co-authored-by: Mark Rowe <markrowe at chromium.org>


  Commit: 5fb821560afd0543e4875c3c81d58f68f73eb03b
      https://github.com/llvm/llvm-project/commit/5fb821560afd0543e4875c3c81d58f68f73eb03b
  Author: Michael Jones <michaelrj at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/hdr/CMakeLists.txt
    A libc/hdr/signal_macros.h
    A libc/hdr/sys_epoll_macros.h
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-macros/CMakeLists.txt
    M libc/include/llvm-libc-macros/linux/CMakeLists.txt
    A libc/include/llvm-libc-macros/linux/sys-epoll-macros.h
    A libc/include/llvm-libc-macros/sys-epoll-macros.h
    M libc/include/llvm-libc-types/sigset_t.h
    M libc/include/llvm-libc-types/struct_epoll_event.h
    M libc/include/sys/epoll.h.def
    M libc/spec/posix.td
    M libc/src/sys/epoll/CMakeLists.txt
    A libc/src/sys/epoll/epoll_create.h
    A libc/src/sys/epoll/epoll_create1.h
    A libc/src/sys/epoll/epoll_ctl.h
    M libc/src/sys/epoll/epoll_pwait.h
    M libc/src/sys/epoll/linux/CMakeLists.txt
    A libc/src/sys/epoll/linux/epoll_create.cpp
    A libc/src/sys/epoll/linux/epoll_create1.cpp
    A libc/src/sys/epoll/linux/epoll_ctl.cpp
    M libc/src/sys/epoll/linux/epoll_pwait.cpp
    M libc/src/sys/epoll/linux/epoll_pwait2.cpp
    M libc/src/sys/epoll/linux/epoll_wait.cpp
    M libc/src/unistd/CMakeLists.txt
    M libc/src/unistd/linux/CMakeLists.txt
    A libc/src/unistd/linux/pipe.cpp
    A libc/src/unistd/pipe.h
    M libc/test/src/sys/epoll/linux/CMakeLists.txt
    A libc/test/src/sys/epoll/linux/epoll_create1_test.cpp
    A libc/test/src/sys/epoll/linux/epoll_create_test.cpp
    A libc/test/src/sys/epoll/linux/epoll_ctl_test.cpp
    M libc/test/src/sys/epoll/linux/epoll_pwait2_test.cpp
    M libc/test/src/sys/epoll/linux/epoll_pwait_test.cpp
    M libc/test/src/sys/epoll/linux/epoll_wait_test.cpp
    M libc/test/src/unistd/CMakeLists.txt
    A libc/test/src/unistd/pipe_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/sys/epoll/BUILD.bazel

  Log Message:
  -----------
  [libc] add remaining epoll functions, pipe (#84587)

The epoll_wait functions need the rest of the epoll functions (create,
ctl) to be available to actually test them, as well as pipe to create a
usable file descriptor. This patch adds epoll_create, epoll_create1,
epoll_ctl, and pipe. These have tests, and the tests for epoll_wait,
epoll_pwait, and epoll_pwait2 (currently disabled) are updated to use
these newly available functions.


  Commit: 7aa371687ace40b85f04e21956e03f1e93052b56
      https://github.com/llvm/llvm-project/commit/7aa371687ace40b85f04e21956e03f1e93052b56
  Author: Nathan Ridge <zeratul976 at hotmail.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang-tools-extra/clangd/CodeComplete.cpp
    M clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
    M clang-tools-extra/clangd/unittests/TestIndex.cpp
    M clang-tools-extra/clangd/unittests/TestIndex.h

  Log Message:
  -----------
  [clangd] Avoid using CompletionItemKind.Text for macro completions from the index (#88236)

This was fixed in https://github.com/clangd/clangd/issues/1484 for Sema
completions but the fix did not apply to index completions.

Fixes https://github.com/clangd/clangd/issues/2002


  Commit: c42a262560a659d1cfb9ec46712ad66420314f2d
      https://github.com/llvm/llvm-project/commit/c42a262560a659d1cfb9ec46712ad66420314f2d
  Author: Alexandre Eichenberger <alexe at us.ibm.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Affine/IR/AffineOps.cpp
    M mlir/test/Dialect/Affine/canonicalize.mlir

  Log Message:
  -----------
  [MLIR] Bug Fix: affine.prefetch replaceAffineOp invoked during canonicalization (#88346)

Signed-off-by: Alexandre Eichenberger <alexe at us.ibm.com>


  Commit: 56954a53e58282d7584e31ec14a2b1052cd861e8
      https://github.com/llvm/llvm-project/commit/56954a53e58282d7584e31ec14a2b1052cd861e8
  Author: pawelszczerbuk <153013546+pawelszczerbuk at users.noreply.github.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/SCF/Transforms/LoopPipelining.cpp
    M mlir/test/Dialect/SCF/loop-pipelining.mlir

  Log Message:
  -----------
  [MLIR][LoopPipelining] Improve schedule verifier, so it checks also operands of nested operations (#88450)

`verifySchedule` was not looking at the operands of nested operations,
which caused incorrect schedule to be allowed in some cases, potentially
leading to crash during expansion.
There is also minor fix in `cloneAndUpdateOperands` in the pipeline
expander that prevents double visit of the cloned op. This one has no
functional impact, so no test for it.


  Commit: bf1d7b8df287d69ee265b91be40dec37267b2d5c
      https://github.com/llvm/llvm-project/commit/bf1d7b8df287d69ee265b91be40dec37267b2d5c
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.td

  Log Message:
  -----------
  [RISCV] Give HWASAN_CHECK_MEMACCESS_SHORTGRANULES pseudo the same code size as PseudoCall.

This is converted to a PseudoCall in RISCVAsmPrinter.cpp so it should
have the same size of 8 bytes.


  Commit: 09d51a841dcfbc41c3d7f3274b109b5f9fb09bb0
      https://github.com/llvm/llvm-project/commit/09d51a841dcfbc41c3d7f3274b109b5f9fb09bb0
  Author: Felix (Ting Wang) <Ting.Wang.SH at ibm.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp
    M llvm/lib/Target/PowerPC/PPC.td
    M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    M llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
    M llvm/lib/Target/PowerPC/PPCSubtarget.cpp
    M llvm/test/CodeGen/PowerPC/aix-small-local-dynamic-tls-largeaccess.ll
    M llvm/test/CodeGen/PowerPC/aix-small-local-dynamic-tls-types.ll
    M llvm/test/CodeGen/PowerPC/check-aix-small-local-exec-tls-opt-IRattribute.ll
    M llvm/test/CodeGen/PowerPC/check-aix-small-local-exec-tls-opt.ll

  Log Message:
  -----------
  [PowerPC][AIX] Enable aix-small-local-dynamic-tls target attribute (#86641)

Following the aix-small-local-exec-tls target attribute, this patch adds
a target attribute for an AIX-specific option in llc that informs the
compiler that it can use a faster access sequence for the local-dynamic
TLS model (formally named aix-small-local-dynamic-tls) when TLS
variables are less than ~32KB in size.

The patch either produces an addi/la with a displacement off of module
handle (return value from .__tls_get_mod) when the address is
calculated, or it produces an addi/la followed by a load/store when the
address is calculated and used for further accesses.

---------

Co-authored-by: Amy Kwan <amy.kwan1 at ibm.com>


  Commit: 86df55efa1242e308535679cf05c2793ff38f3d9
      https://github.com/llvm/llvm-project/commit/86df55efa1242e308535679cf05c2793ff38f3d9
  Author: Phoebe Wang <phoebe.wang at intel.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

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

  Log Message:
  -----------
  [X86][BF16] Promote vector ADD/SUB/MUL/DIV to f32 (#87858)


  Commit: 27ce513788e15c95f8c623566fbfca9304bb1844
      https://github.com/llvm/llvm-project/commit/27ce513788e15c95f8c623566fbfca9304bb1844
  Author: Corbin Robeck <corbin.robeck at amd.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsAMDGPU.def
    M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx12.cl
    M llvm/include/llvm/IR/IntrinsicsAMDGPU.td

  Log Message:
  -----------
  [AMDGPU] Add Clang builtins for amdgcn s_ttrace intrinsics (#88076)


  Commit: 6b6f272f355a2cbc753e9057dd7aefb1a74a0409
      https://github.com/llvm/llvm-project/commit/6b6f272f355a2cbc753e9057dd7aefb1a74a0409
  Author: Feng Zou <feng.zou at intel.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    A llvm/test/CodeGen/X86/buildvec-bitcast.ll

  Log Message:
  -----------
  [DAGCombiner] Require same type of splat & element for build_vector (#88284)

Only allow to change build_vector to concat_vector when the splat type
and vector element type is same. It's to fix assertion of failing to
bitcast types of different sizes.


  Commit: 3a2817749eb8a2210320aa551fa20a5f9c8c32e3
      https://github.com/llvm/llvm-project/commit/3a2817749eb8a2210320aa551fa20a5f9c8c32e3
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M llvm/tools/llvm-exegesis/lib/X86/Target.cpp

  Log Message:
  -----------
  [llvm-exegesis] Let ArrayRef infer the array size (NFC) (#88241)


  Commit: 334e07f18e6f2fbc84579f7cac3cdd29d0d7cce0
      https://github.com/llvm/llvm-project/commit/334e07f18e6f2fbc84579f7cac3cdd29d0d7cce0
  Author: Piyou Chen <piyou.chen at sifive.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/lib/Sema/SemaDecl.cpp
    A clang/test/Sema/attr-target-riscv.c

  Log Message:
  -----------
  [RISCV] Disallow target attribute use in multiversioning (#85899)

For RISC-V target only `target_clones` and `target_version` can enable
function multiversion(FMV).

This patch make target attribute trigger redefinition instead of emit
FMV.

Here is spec
https://github.com/riscv-non-isa/riscv-c-api-doc/blob/master/riscv-c-api.md#__attribute__targetattr-string


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

  Changed paths:
    M clang/include/clang/Basic/DiagnosticInstallAPIKinds.td
    M clang/include/clang/InstallAPI/DylibVerifier.h
    M clang/lib/InstallAPI/DylibVerifier.cpp
    A clang/test/InstallAPI/Inputs/MacOSX13.0.sdk/SDKSettings.json
    A clang/test/InstallAPI/diagnostics-zippered.test
    M clang/test/InstallAPI/driver-invalid-options.test
    M clang/tools/clang-installapi/Options.cpp
    M clang/tools/clang-installapi/Options.h

  Log Message:
  -----------
  [InstallAPI] Handle zippered frameworks (#88205)

A zippered framework is a single framework that can be loaded in both
macOS and macatalyst processes. Broadly to InstallAPI, it means the same
interface can represent two separate platforms.

A dylib's symbol table does not distinguish between macOS/macCatalyst.
  `InstallAPI` provides the ability for the tbd file to distinct
symbols between them.
The verifier handles this special logic by tracking all unavailable and
obsoleted APIs in this context and checking against those when
determining dylib symbols with no matching declaration.

* If there exists an available decl for either platform, do not warn.
* If there is no available decl, emit a diagnostic and print the source
location for both decls.


  Commit: 9f14914753599f3879e4c273191959e2f1b3632c
      https://github.com/llvm/llvm-project/commit/9f14914753599f3879e4c273191959e2f1b3632c
  Author: Chelsea Cassanova <chelsea_cassanova at apple.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M lldb/bindings/interface/SBFrameExtensions.i
    M lldb/test/API/python_api/frame/TestFrames.py

  Log Message:
  -----------
  Revert "Fix error in unrecognized register name handling for "SBFrame.register"" (#88468)

Reverts llvm/llvm-project#88047. TestFrames.py is failing on x86_64
GreenDragon:
https://green.lab.llvm.org/job/llvm.org/view/LLDB/job/lldb-cmake/983/


  Commit: c1a44568911b75c98675a3c19a55b4741d861437
      https://github.com/llvm/llvm-project/commit/c1a44568911b75c98675a3c19a55b4741d861437
  Author: Chelsea Cassanova <chelsea_cassanova at apple.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M lldb/test/API/lit.cfg.py
    M lldb/test/Shell/lit.cfg.py

  Log Message:
  -----------
  Reland "[lldb][lit] Add MallocNanoZone envvar to Darwin ASan builds" … (#88442)

…(#88436)"

This reverts commit 1f5d130df85c2d0550dc8687ad0fa1d96856c318. The
original commit checks that the host system is "Darwin" before setting
the `MallocNanoZone` envvar, but on the Shell lit config this attribute
does not exist at the point where it is being checked which leads to a
build failure.

This commit checks the host OS correctly.


  Commit: b45c9c313c5107b1942cd325e8ab3b4235948a08
      https://github.com/llvm/llvm-project/commit/b45c9c313c5107b1942cd325e8ab3b4235948a08
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Sema/SemaHLSL.h
    M clang/lib/Parse/ParseHLSL.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaHLSL.cpp

  Log Message:
  -----------
  [clang][NFC] Move more functions to `SemaHLSL` (#88354)

A follow-up to #87912. I'm moving more HLSL-related functions from
`Sema` to `SemaHLSL`. I'm also dropping `HLSL` from their names in the
process.


  Commit: 505a9ae81d620b92284f7b2cbe874c936cf19583
      https://github.com/llvm/llvm-project/commit/505a9ae81d620b92284f7b2cbe874c936cf19583
  Author: Sirraide <aeternalmail at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/test/SemaCXX/cxx2b-deducing-this.cpp
    M clang/test/SemaCXX/lambda-expressions.cpp

  Log Message:
  -----------
  [Clang] Look through type sugar when accessing FunctionProtoType (#88428)

This fixes a bug introduced by #84473: if a lambda’s type is type sugar
(e.g. an `AttributedType`), we need to use `getAs()` instead of `cast()`
to retrieve the `FunctionProtoType`.


  Commit: f21ead06750b670cf8ce72d6666e3550b04056a2
      https://github.com/llvm/llvm-project/commit/f21ead06750b670cf8ce72d6666e3550b04056a2
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/include/clang/Serialization/ASTReader.h
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    A clang/test/CXX/module/module.glob.frag/cxx20-10-4-ex2.cppm
    M clang/test/Modules/inconsistent-deduction-guide-linkage.cppm
    M clang/test/Modules/named-modules-adl-2.cppm
    M clang/test/Modules/named-modules-adl.cppm
    M clang/test/Modules/placement-new-reachable.cpp
    M clang/test/Modules/polluted-operator.cppm
    M clang/test/Modules/pr62589.cppm
    M clang/test/Modules/preferred_name.cppm
    M clang/test/Modules/redundant-template-default-arg3.cpp
    M clang/test/Modules/template-function-specialization.cpp

  Log Message:
  -----------
  [C++20] [Modules] [Reduced BMI] Remove unreachable decls GMF in redued BMI (#88359)

Following of https://github.com/llvm/llvm-project/pull/76930

This follows the idea of "only writes what we writes", which I think is
the most natural and efficient way to implement this optimization.

We start writing the BMI from the first declaration in module purview
instead of the global module fragment, so that everything in the GMF
untouched won't be written in the BMI naturally.

The exception is, as I said in
https://github.com/llvm/llvm-project/pull/76930, when we write a
declaration we need to write its decl context, and when we write the
decl context, we need to write everything from it. So when we see
`std::vector`, we basically need to write everything under namespace
std. This violates our intention. To fix this, this patch delays the
writing of namespace in the GMF.

>From my local measurement, the size of the BMI decrease to 90M from 112M
for a local modules build. I think this is significant.

This feature will be covered under the experimental reduced BMI so that
it won't affect any existing users. So I'd like to land this when the CI
gets green.

Documents will be added seperately.


  Commit: 506ff547924ab81123865964b7d998a5a378330a
      https://github.com/llvm/llvm-project/commit/506ff547924ab81123865964b7d998a5a378330a
  Author: NimishMishra <42909663+NimishMishra at users.noreply.github.com>
  Date:   2024-04-11 (Thu, 11 Apr 2024)

  Changed paths:
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/test/Lower/OpenMP/default-clause.f90

  Log Message:
  -----------
  [flang][Semantics] Fix updating flags of threadprivate symbols in presence of default clause (#78283)

Current semantic checks of default clause incorrectly update symbol
flags related to threadprivate symbols. This patch adds an additional
check to skip such updation should a symbol be already declared
threadprivate.

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


  Commit: b502dc596ba3ed1e857e163e21ed6426125760ef
      https://github.com/llvm/llvm-project/commit/b502dc596ba3ed1e857e163e21ed6426125760ef
  Author: Sirraide <aeternalmail at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    A clang/test/SemaCXX/gh84473.cpp
    M clang/test/SemaCXX/lambda-expressions.cpp

  Log Message:
  -----------
  [Clang] Fix test broken due to unsupported calling convention (#88472)

#88428 ended up breaking CI because it included a test that uses the
`regcall` calling convention, which isn’t supported on all targets; I’ve
moved it into a separate file that sets the triple.


  Commit: 469758c944dfb492102ded9e50eac5e478f85f6a
      https://github.com/llvm/llvm-project/commit/469758c944dfb492102ded9e50eac5e478f85f6a
  Author: Dominik Adamski <dominik.adamski at amd.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Flang.cpp
    A flang/test/Driver/arch-specific-libdir-rpath.f95
    M flang/test/Driver/driver-help-hidden.f90
    M flang/test/Driver/driver-help.f90

  Log Message:
  -----------
  [Flang] Add options frtlib-add-rpath and resource-dir (#88280)

frtlib-add-rpath option is used by clang and should also be visible in
flang. It is already handled by the toolchains used by both clang and
flang.

Reported issue: https://github.com/llvm/llvm-project/issues/82553


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

  Changed paths:
    M clang/lib/AST/Interp/FunctionPointer.h
    M clang/lib/AST/Interp/Interp.h
    M clang/test/AST/Interp/c.c

  Log Message:
  -----------
  [clang][Interp] Fix comparing to integral function pointers

We need to account for the fact that the Function pointer is not
accessible here. Add FunctionPointer::isWeak() for that.


  Commit: ff9bc3a0fa4e3790c437e62450903bf399df37f9
      https://github.com/llvm/llvm-project/commit/ff9bc3a0fa4e3790c437e62450903bf399df37f9
  Author: Johannes Reifferscheid <jreiffers at google.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

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

  Log Message:
  -----------
  Fix overflows in complex sqrt lowering. (#88480)

This ports XLA's complex sqrt lowering. The accuracy was tested with its
exhaustive_unary_test_complex test.

Note: rsqrt is still broken.


  Commit: 1e7763557bbace002b6bb811167942ebebf50f99
      https://github.com/llvm/llvm-project/commit/1e7763557bbace002b6bb811167942ebebf50f99
  Author: wanglei <wanglei at loongson.cn>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.cpp
    M llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.h
    A llvm/test/Transforms/LoopVectorize/LoongArch/reg-usage.ll

  Log Message:
  -----------
  [LoongArch] Add support for getNumberOfRegisters() (#88372)

The `TTI` hooks are used during vectorization for calculating register
pressure. The default implementation defined wrong value for register
number (all register class are 8 registers).

This patch also defines LoongArch's own register classes.


  Commit: a5ed14bc8e122fa5ac0aa81f8d8390931bd6b4e4
      https://github.com/llvm/llvm-project/commit/a5ed14bc8e122fa5ac0aa81f8d8390931bd6b4e4
  Author: Phoebe Wang <phoebe.wang at intel.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrSSE.td

  Log Message:
  -----------
  [X86][BF16] Fix a typo, NFCI

VR128X is not enabled under AVXNECONVERT.


  Commit: ad4e1aba3fd12f81de71ce3985ae66ff80773d90
      https://github.com/llvm/llvm-project/commit/ad4e1aba3fd12f81de71ce3985ae66ff80773d90
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M flang/lib/Lower/CallInterface.cpp
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Lower/ConvertVariable.cpp
    M flang/test/Lower/call-by-value.f90

  Log Message:
  -----------
  [flang] Pass VALUE CHARACTER arg by register in BIND(C) calls (#87774)

Fortran mandates "CHARACTER(1), VALUE" be passed as a C "char" in calls
to BIND(C) procedures (F'2023 18.3.7 (4)). Lowering passed them by
memory instead. Update call interface lowering code to pass them by
register. Fix related test and update it to use HLFIR.


  Commit: d488b2225d484027eb2c21a06d27decf008e878b
      https://github.com/llvm/llvm-project/commit/d488b2225d484027eb2c21a06d27decf008e878b
  Author: Beal Wang <colorfishes at outlook.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
    M mlir/include/mlir/IR/OpDefinition.h
    M mlir/lib/IR/Operation.cpp
    M mlir/test/IR/properties.mlir
    M mlir/test/lib/Dialect/Test/TestOps.td
    M mlir/tools/mlir-tblgen/OpFormatGen.cpp

  Log Message:
  -----------
  [mlir][ods] Do not print default-valued properties when the value is equal to the default (#87970)

This diff causes the `tblgen`-erated printProperties() function to skip
printing a `DefaultValuedAttr` property when the value is equal to the
default.

Co-authored-by: Biao Wang <biaow at nvidia.com>


  Commit: d019b9aaaaa60c858ee82fdbaf5de16e048e9db2
      https://github.com/llvm/llvm-project/commit/d019b9aaaaa60c858ee82fdbaf5de16e048e9db2
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Sema/SemaAccess.cpp
    M clang/lib/Sema/SemaCUDA.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaLookup.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaTemplateInstantiate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/SemaType.cpp

  Log Message:
  -----------
  [clang][NFC] Refactor `CXXSpecialMember`

In preparation for `SemaCUDA`, which requires this enum to be forward-declarable.


  Commit: 9250aedb5cabf0e44c694f0c8e68ae03e937be89
      https://github.com/llvm/llvm-project/commit/9250aedb5cabf0e44c694f0c8e68ae03e937be89
  Author: Andreas Jonson <andjo403 at hotmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ScalarEvolution.cpp
    A llvm/test/Analysis/ScalarEvolution/range-attribute.ll

  Log Message:
  -----------
  [SCEV] Add range attribute handling (#88449)


  Commit: 5d6b00929bd026d1448a5dd3a8341ea99b3befe1
      https://github.com/llvm/llvm-project/commit/5d6b00929bd026d1448a5dd3a8341ea99b3befe1
  Author: AtariDreams <gfunni234 at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/InstructionSimplify.cpp
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  Log Message:
  -----------
  [NFC] Replace m_Sub(m_Zero(), X) with m_Neg(X) (#88461)


  Commit: 0e6367236413e50599b49aff15b086088f152769
      https://github.com/llvm/llvm-project/commit/0e6367236413e50599b49aff15b086088f152769
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir

  Log Message:
  -----------
  [MLIR][OpenMP] Add omp.loop_nest operation (#87083)

This patch introduces an operation intended to hold loop information
associated to the `omp.distribute`, `omp.simdloop`, `omp.taskloop` and
`omp.wsloop` operations. This is a stopgap solution to unblock work on
transitioning these operations to becoming wrappers, as discussed in
[this
RFC](https://discourse.llvm.org/t/rfc-representing-combined-composite-constructs-in-the-openmp-dialect/76986).

Long-term, this operation will likely be replaced by
`omp.canonical_loop`, which is being designed to address missing support
for loop transformations, etc.


  Commit: f5b2d24b59f168eaeed08b5f45bf0c8dfcc1c292
      https://github.com/llvm/llvm-project/commit/f5b2d24b59f168eaeed08b5f45bf0c8dfcc1c292
  Author: Benjamin Kramer <benny.kra at googlemail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
    M llvm/test/CodeGen/NVPTX/bf16-instructions.ll

  Log Message:
  -----------
  [NVPTX] Move roundeven on bf16 into the sm_90 has it but sm_80 doesn't bucket


  Commit: b24af43fdfa1b1242b7cb77540462212227c57c4
      https://github.com/llvm/llvm-project/commit/b24af43fdfa1b1242b7cb77540462212227c57c4
  Author: David Green <david.green at arm.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetSubtargetInfo.h
    M llvm/lib/CodeGen/MachinePipeliner.cpp
    M llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
    M llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
    M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
    M llvm/lib/Target/AArch64/AArch64Subtarget.h
    M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
    M llvm/lib/Target/AMDGPU/GCNSubtarget.h
    M llvm/lib/Target/Hexagon/HexagonSubtarget.cpp
    M llvm/lib/Target/Hexagon/HexagonSubtarget.h
    M llvm/test/CodeGen/AArch64/complex-deinterleaving-add-mull-scalable-fast.ll
    M llvm/test/CodeGen/AArch64/llvm-ir-to-intrinsic.ll
    M llvm/test/CodeGen/AArch64/misched-bundle.mir
    M llvm/test/CodeGen/AArch64/sve-fixed-length-build-vector.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-fp-arith.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-fp-fma.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-fp-minmax.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-int-arith.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-int-minmax.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-int-mulh.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-int-rem.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-int-shifts.ll
    M llvm/test/CodeGen/AArch64/sve-fpext-load.ll
    M llvm/test/CodeGen/AArch64/sve-fptosi-sat.ll
    M llvm/test/CodeGen/AArch64/sve-fptoui-sat.ll
    M llvm/test/CodeGen/AArch64/sve-gather-scatter-addr-opts.ll
    M llvm/test/CodeGen/AArch64/sve-masked-gather-legalize.ll
    M llvm/test/CodeGen/AArch64/sve-smulo-sdnode.ll
    M llvm/test/CodeGen/AArch64/sve-split-fcvt.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-extend-trunc.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-div.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-rem.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-to-fp.ll
    M llvm/test/CodeGen/AArch64/sve-umulo-sdnode.ll
    M llvm/test/CodeGen/AArch64/sve-vecreduce-dot.ll
    M llvm/test/CodeGen/AArch64/sve2-xar.ll

  Log Message:
  -----------
  [AArch64] Improve scheduling latency into Bundles (#86310)

By default the scheduling info of instructions into a BUNDLE are given a
latency of 0 as they operate on the implicit register of the bundle.
This modifies that for AArch64 so that the latency is adjusted to use
the latency from the instruction in the bundle instead. This essentially
assumes that the bundled instructions are executed in a single cycle,
which for AArch64 is probably OK considering they are mostly used for
MOVPFX bundles, where this can help create slightly better scheduling
especially for in-order cores.


  Commit: 5fc8a190b37906cba3f175440abd79dabd8acc73
      https://github.com/llvm/llvm-project/commit/5fc8a190b37906cba3f175440abd79dabd8acc73
  Author: wanglei <wanglei at loongson.cn>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    A llvm/test/Transforms/CodeGenPrepare/LoongArch/lit.local.cfg
    A llvm/test/Transforms/CodeGenPrepare/LoongArch/splitgep.ll

  Log Message:
  -----------
  [LoongArch] Pre commit test for #88371. NFC


  Commit: c39df496d73621238ba87de235d9a61e2b2203b9
      https://github.com/llvm/llvm-project/commit/c39df496d73621238ba87de235d9a61e2b2203b9
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Sema/SemaCUDA.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaStmt.cpp
    M clang/lib/Sema/SemaType.cpp

  Log Message:
  -----------
  [clang][NFC] Refactor `CUDAFunctionTarget`

Refactor `CUDAFunctionTarget` into a scoped enum at namespace scope, so that it can be forward declared. This is done in preparation for `SemaCUDA`.


  Commit: 3bb147e05365680d0a954d823a7c014f357448e7
      https://github.com/llvm/llvm-project/commit/3bb147e05365680d0a954d823a7c014f357448e7
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

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

  Log Message:
  -----------
  [X86] combine-sse41-intrinsics.ll - add AVX2 test coverage


  Commit: 8c0f52e9d5a99bf96bb64ac23b5893482c292527
      https://github.com/llvm/llvm-project/commit/8c0f52e9d5a99bf96bb64ac23b5893482c292527
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/X86/any_extend_vector_inreg_of_broadcast.ll
    M llvm/test/CodeGen/X86/dpbusd.ll
    M llvm/test/CodeGen/X86/dpbusd_i4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-7.ll
    M llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast.ll

  Log Message:
  -----------
  [DAG] Fold extract_subvector(insert_subvector(x,y,c1),c2) --> extract_subvector(y,c2-c1) (#87925)

If the extract_subvector is cheap, attempt to extract directly from an inserted subvector


  Commit: 78eac466095c205988ef1e2380033d042a169a3b
      https://github.com/llvm/llvm-project/commit/78eac466095c205988ef1e2380033d042a169a3b
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
    M flang/lib/Lower/OpenMP/ClauseProcessor.h
    M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
    M flang/lib/Lower/OpenMP/DataSharingProcessor.h
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M mlir/include/mlir/Dialect/OpenMP/OpenMPClauseOperands.h
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp

  Log Message:
  -----------
  [Flang][OpenMP][Lower] Use clause operand structures (#86802)

This patch updates Flang lowering to use the new set of OpenMP clause
operand structures and their groupings into directive-specific sets of
clause operands.

It simplifies the passing of information from the clause processor and
the creation of operations.

The `DataSharingProcessor` is slightly modified to not hold delayed
privatization state. Instead, optional arguments are added to
`processStep1` which are only passed when delayed privatization is used.
This enables using the clause operand structure for `private` and
removes the need for the ad-hoc `DelayedPrivatizationInfo` structure.

The processing of the `schedule` clause is updated to process the
`chunk` modifier rather than requiring two separate calls to the
`ClauseProcessor`.

Lowering of a block-associated `ordered` construct is updated to emit a
TODO error if the `simd` clause is specified, since it is not currently
supported by the `ClauseProcessor` or later compilation stages.

Removed processing of `schedule` from `omp.simdloop`, as it doesn't
apply to `simd` constructs.


  Commit: 33779b861d748ed18b8d4f9cbad3a84deaa95e9f
      https://github.com/llvm/llvm-project/commit/33779b861d748ed18b8d4f9cbad3a84deaa95e9f
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaExpr.cpp
    A clang/test/Sema/complex-inc-dec.c

  Log Message:
  -----------
  Reword a diagnostic; NFC

This diagnostic used to talk about complex integer types but is issued
for use of the increment or decrement operators on any complex type,
not just integral ones.

The diagnostic also had zero test coverage, so new coverage is added
along with the rewording.


  Commit: 5ebeaf211551f9410e17b1134126daadd8b163ac
      https://github.com/llvm/llvm-project/commit/5ebeaf211551f9410e17b1134126daadd8b163ac
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/test/CXX/drs/dr15xx.cpp
    M clang/test/CXX/drs/dr19xx.cpp
    M clang/test/CXX/drs/dr3xx.cpp
    M clang/test/CXX/drs/dr4xx.cpp
    M clang/test/CXX/drs/dr5xx.cpp
    M clang/www/cxx_dr_status.html

  Log Message:
  -----------
  [clang] Add tests for some CWG 5xx issues (#87909)

This patch covers
[CWG393](https://cplusplus.github.io/CWG/issues/393.html) "Pointer to
array of unknown bound in template argument list in parameter",
[CWG528](https://cplusplus.github.io/CWG/issues/528.html) "Why are
incomplete class types not allowed with `typeid`?",
[CWG550](https://cplusplus.github.io/CWG/issues/550.html) "Pointer to
array of unknown bound in parameter declarations",
[CWG553](https://cplusplus.github.io/CWG/issues/553.html) "Problems with
friend allocation and deallocation functions",
[CWG555](https://cplusplus.github.io/CWG/issues/555.html)
"Pseudo-destructor name lookup",
[CWG560](https://cplusplus.github.io/CWG/issues/560.html) "Use of the
`typename` keyword in return types".

CWG393 is on this list, because CWG550 is marked as a duplicate of
CWG393.

Test for CWG553 has been already written, but it was missing a status
comment. As a drive-by fix, I'm adding missing status comments to
CWG1584 and CWG1903 as well.

CWG555 used CWG466 test, and also a variation of that test to test
references. CWG466 is now testing non-reference non-pointer case.

CWG560 showcases again that converting warnings to errors in DR tests
via `-pedantic-errors` doesn't make things more clear. By default that
test is accepted with an extension warning since we implemented
[P0634R3](https://wg21.link/p0634r3) "Down with `typename`!" in Clang
16.


  Commit: ab037c4ff3452a680efb758ccacb6ee210ce333b
      https://github.com/llvm/llvm-project/commit/ab037c4ff3452a680efb758ccacb6ee210ce333b
  Author: SahilPatidar <patidarsahil2001 at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/test/CodeGen/AArch64/abd-combine.ll
    M llvm/test/CodeGen/AArch64/arm64-neon-aba-abd.ll

  Log Message:
  -----------
  [DAG] computeKnownBits - add ISD::ABDU/ISD::ABDS handling #84905 (#88253)

Resolve #84905


  Commit: 6ec467297db272d5ae8f76e695296bd4945dedc8
      https://github.com/llvm/llvm-project/commit/6ec467297db272d5ae8f76e695296bd4945dedc8
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M bolt/lib/Rewrite/RewriteInstance.cpp

  Log Message:
  -----------
  [BOLT][NFC] Adjust misleading comment & formatting (#88409)

This originally dealt with tbss, but now handles any bss-like section.
So the comment is inaccurate. Also, the `{}` on the messaging seem
unnecessary.


  Commit: f220d26eb1ab5b588215acf538ca82bb3c8798cc
      https://github.com/llvm/llvm-project/commit/f220d26eb1ab5b588215acf538ca82bb3c8798cc
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M flang/docs/Intrinsics.md
    M flang/include/flang/Runtime/extensions.h
    M flang/runtime/extensions.cpp
    A flang/unittests/Runtime/AccessTest.cpp
    M flang/unittests/Runtime/CMakeLists.txt

  Log Message:
  -----------
  [flang][runtime] Add ACCESS library procedure (#88395)

This is a GNU extension:
https://gcc.gnu.org/onlinedocs/gfortran/ACCESS.html

Used in SALMON:
https://salmon-tddft.jp/download.html

Unfortunately the intrinsic takes a file path to operate on so there
isn't an easy way to make the test robust. The unit test expects to be
able to create, set read write and execute permissions, and delete files
called
  `std::filesystem::temp_directory_path() / <test_name>.<pid>`

The test will fail if a file already exists with that name.

I have not implemented the intrinsic on Windows because this is wrapping
a POSIX system call and Windows doesn't support all of the permission
bits tested by the intrinsic. I don't have a Windows machine easily
available to check if Gfortran implements this intrinsic on Windows.


  Commit: 7e7468c9ed4e29fe8327525923fd8ab0169b1c07
      https://github.com/llvm/llvm-project/commit/7e7468c9ed4e29fe8327525923fd8ab0169b1c07
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M flang/docs/Intrinsics.md
    M flang/include/flang/Runtime/extensions.h
    M flang/runtime/extensions.cpp
    R flang/unittests/Runtime/AccessTest.cpp
    M flang/unittests/Runtime/CMakeLists.txt

  Log Message:
  -----------
  Revert "[flang][runtime] Add ACCESS library procedure" (#88507)

Reverts llvm/llvm-project#88395

This broke the powerpc buildbot. That build doesn't support using
`std::filesystem` in flang unit tests.


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/test/Transforms/VectorCombine/X86/shuffle-of-casts.ll

  Log Message:
  -----------
  [VectorCombine] foldShuffleOfCastops - ensure we can scale shuffle masks between bitcasted vector types

Don't just assert that the src/dst vector element counts are multiples of one another - in general IR this can actually happen.

Reported by @mikaelholmen


  Commit: 3fa830804e1b90d38d0a62084b5b65e70c83c345
      https://github.com/llvm/llvm-project/commit/3fa830804e1b90d38d0a62084b5b65e70c83c345
  Author: Brandon Wu <brandon.wu at sifive.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/test/CodeGen/RISCV/rvv/calling-conv.ll
    M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave-load.ll
    M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave.ll

  Log Message:
  -----------
  Revert "[RISCV] RISCV vector calling convention (2/2) (#79096)" (#88511)

This reverts commit 29e8bfc13c6078ed07e6474e8c9634c42aa2f6f4.
This patch didn't handle vector return type correctly.


  Commit: b4df0da9e8421c8026bd09980b8a6acd7a6ce8c9
      https://github.com/llvm/llvm-project/commit/b4df0da9e8421c8026bd09980b8a6acd7a6ce8c9
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
    A llvm/test/CodeGen/AMDGPU/half-alloca-promotion.ll

  Log Message:
  -----------
  [AMDGPU] Fix a potential wrong return value indicating whether a pass modifies a function (#88197)

When the alloca is too big for vectorization, the function could have
already
been modified in previous iteration of the `for` loop.


  Commit: 2a5ba4fb895931b7dc86f4304b0e64153a1175d4
      https://github.com/llvm/llvm-project/commit/2a5ba4fb895931b7dc86f4304b0e64153a1175d4
  Author: Xiaoyang Liu <siujoeng.lau at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M libcxx/docs/Status/Cxx23Issues.csv
    M libcxx/include/__iterator/counted_iterator.h
    M libcxx/test/std/iterators/predef.iterators/counted.iterator/increment.pass.cpp

  Log Message:
  -----------
  [libc++] LWG3643: Missing `constexpr` in `std::counted_iterator` (#87901)

This pull request implements LWG3643: Missing constexpr in
std::counted_iterator. Specifically, one overload of
std::counted_operator::operator++ was not marked as constexpr,
despite being eligible for it after the introduction of try-block
support in constexpr functions in C++20.


  Commit: 5fa58e28f34f4b5b41dd2869212ac917fb42b2e3
      https://github.com/llvm/llvm-project/commit/5fa58e28f34f4b5b41dd2869212ac917fb42b2e3
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
    M llvm/lib/Target/RISCV/RISCVScheduleV.td

  Log Message:
  -----------
  [RISCV] Split PseudoVFADD, PseudoVFSUB, and PseudoVFRSUB by SEW

Co-authored-by: Wang Pengcheng <wangpengcheng.pp at bytedance.com>


  Commit: aece68269c8cb28e16dc5c4ec9aabecb807a0438
      https://github.com/llvm/llvm-project/commit/aece68269c8cb28e16dc5c4ec9aabecb807a0438
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
    M llvm/lib/Target/RISCV/RISCVScheduleV.td

  Log Message:
  -----------
  [RISCV] Split PseudoVFWADD, PseudoVFWSUB, and PseudoVFWMUL by SEW

Co-authored-by: Wang Pengcheng <wangpengcheng.pp at bytedance.com>


  Commit: d309d7e4fe51a0ff0ce6430a8af585e2af2772a3
      https://github.com/llvm/llvm-project/commit/d309d7e4fe51a0ff0ce6430a8af585e2af2772a3
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
    M llvm/lib/Target/RISCV/RISCVScheduleV.td

  Log Message:
  -----------
  [RISCV] Split PseudoVFMUL by SEW

Co-authored-by: Wang Pengcheng <wangpengcheng.pp at bytedance.com>


  Commit: c6b7944be4dfbb1fb35301c670812726845acaa7
      https://github.com/llvm/llvm-project/commit/c6b7944be4dfbb1fb35301c670812726845acaa7
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
    M llvm/lib/Target/RISCV/RISCVScheduleV.td

  Log Message:
  -----------
  [RISCV] Split single width floating point fused multiple-add pseudo instructions by SEW

Co-authored-by: Wang Pengcheng <wangpengcheng.pp at bytedance.com>


  Commit: 43248ffea7b8de3a33b11768e8c21d2434252528
      https://github.com/llvm/llvm-project/commit/43248ffea7b8de3a33b11768e8c21d2434252528
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
    M llvm/lib/Target/RISCV/RISCVScheduleV.td
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fmf.ll
    M llvm/test/CodeGen/RISCV/rvv/pass-fast-math-flags-sdnode.ll

  Log Message:
  -----------
  [RISCV] Split widening floating point fused multiple-add pseudo instructions by SEW

Co-authored-by: Wang Pengcheng <wangpengcheng.pp at bytedance.com>


  Commit: b8e1ff322104e5445371328a4fbc9c1d2bf82f01
      https://github.com/llvm/llvm-project/commit/b8e1ff322104e5445371328a4fbc9c1d2bf82f01
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
    M llvm/lib/Target/RISCV/RISCVScheduleV.td

  Log Message:
  -----------
  [RISCV] Split PseudoVFRSQRT7 and PseudoVFREC7 by SEW

Co-authored-by: Wang Pengcheng <wangpengcheng.pp at bytedance.com>


  Commit: f4e3226a6c2bd89247192e4aae395a8deb3868b1
      https://github.com/llvm/llvm-project/commit/f4e3226a6c2bd89247192e4aae395a8deb3868b1
  Author: Xiaoyang Liu <siujoeng.lau at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M libcxx/docs/Status/Cxx23Issues.csv
    M libcxx/include/__iterator/move_iterator.h
    M libcxx/include/iterator
    A libcxx/test/std/iterators/predef.iterators/move.iterators/sized_sentinel.compile.pass.cpp

  Log Message:
  -----------
  [libc++][ranges] LWG3736: move_iterator missing disable_sized_sentinel_for specialization (#85611)

This pull request implements LWG3736: move_iterator missing
disable_sized_sentinel_for specialization.


  Commit: 9d8ccbc1be78fb4ba0ad1c6ead2dc04b24c66668
      https://github.com/llvm/llvm-project/commit/9d8ccbc1be78fb4ba0ad1c6ead2dc04b24c66668
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M lldb/test/API/lang/objcxx/objc-builtin-types/TestObjCBuiltinTypes.py
    M lldb/test/API/lang/objcxx/objc-builtin-types/main.cpp

  Log Message:
  -----------
  [lldb][test] Add tests for evaluating local variables whose name clashes with Objective-C types (#87807)

Depends on https://github.com/llvm/llvm-project/pull/87767


  Commit: bcf047a4ed9afc49f851156698a6d277ab2c00ea
      https://github.com/llvm/llvm-project/commit/bcf047a4ed9afc49f851156698a6d277ab2c00ea
  Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    A llvm/test/CodeGen/ARM/simplifysetcc_narrow_load.ll
    A llvm/test/CodeGen/PowerPC/simplifysetcc_narrow_load.ll

  Log Message:
  -----------
  [ARM][PowerPC] Add regression tests for narrowing load in TargetLowering::SimplifySetCC

These test cases show some miscomplies for big-endian when dealing
with non byte-sized loads. One part of the problem is that LLVM IR
isn't really telling where the padding goes for non byte-sized
loads/stores. So currently TargetLowering::SimplifySetCC can't assume
anything about it. But the implementation also do not consider that
the TypeStoreSize could be larger than the TypeSize, resulting in
the offset calculation being wrong for big-endian.

Pre-commit for https://github.com/llvm/llvm-project/pull/87646


  Commit: 33e6b488beda80dddb68016a132ee1f0a3c04aa1
      https://github.com/llvm/llvm-project/commit/33e6b488beda80dddb68016a132ee1f0a3c04aa1
  Author: Björn Pettersson <bjorn.a.pettersson at ericsson.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/test/CodeGen/ARM/simplifysetcc_narrow_load.ll
    M llvm/test/CodeGen/PowerPC/simplifysetcc_narrow_load.ll

  Log Message:
  -----------
  [SelectionDAG] Fix and improve TargetLowering::SimplifySetCC (#87646)

The load narrowing part of TargetLowering::SimplifySetCC is updated
according to this:

1) The offset calculation (for big endian) did not work properly for
   non byte-sized types. This is basically solved by an early exit
   if the memory type isn't byte-sized. But the code is also corrected
   to use the store size when calculating the offset.
2) To still allow some optimizations for non-byte-sized types the
   TargetLowering::isPaddedAtMostSignificantBitsWhenStored hook is
   added. By default it assumes that scalar integer types are padded
   starting at the most significant bits, if the type needs padding
   when being stored to memory.
3) Allow optimizing when isPaddedAtMostSignificantBitsWhenStored is
   true, as that hook makes it possible for TargetLowering to know
   how the non byte-sized value is aligned in memory.
4) Update the algorithm to always search for a narrowed load with
   a power-of-2 byte-sized type. In the past the algorithm started
   with the the width of the original load, and then divided it by
   two for each iteration. But for a type such as i48 that would
   just end up trying to narrow the load into a i24 or i12 load,
   and then we would fail sooner or later due to not finding a
   newVT that fulfilled newVT.isRound().
   With this new approach we can narrow the i48 load into either
   an i8, i16 or i32 load. By checking if such a load is allowed
(e.g. alignment wise) for any "multiple of 8 offset", then we can find
   more opportunities for the optimization to trigger. So even for a
   byte-sized type such as i32 we may now end up narrowing the load
   into loading the 16 bits starting at offset 8 (if that is allowed
   by the target). The old algorithm did not even consider that case.
5) Also start using getObjectPtrOffset instead of getMemBasePlusOffset
   when creating the new ptr. This way we get "nsw" on the add.


  Commit: 2c2377d3a9305b86ab110a4f8390b2d16bff9510
      https://github.com/llvm/llvm-project/commit/2c2377d3a9305b86ab110a4f8390b2d16bff9510
  Author: Adam Fowler <adamfowler71 at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

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

  Log Message:
  -----------
  Add lldb-dap to Swift distributions (#88482)

This includes the lldb-dap executable in the MacOS and Linux
distributions of Swift. Currently there is a commit in the Apple repo to
do this for just MacOS https://github.com/apple/llvm-project/pull/8176.
This PR extends this to both Linux and MacOS and brings the change
upstream.

@JDevlieghere @adrian-prantl


  Commit: 986d0dba85f3239671c5151d9817b73de08664a0
      https://github.com/llvm/llvm-project/commit/986d0dba85f3239671c5151d9817b73de08664a0
  Author: yronglin <yronglin777 at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/include/clang/AST/ASTNodeTraverser.h
    M clang/include/clang/AST/JSONNodeDumper.h
    M clang/lib/AST/JSONNodeDumper.cpp
    M clang/lib/AST/TextNodeDumper.cpp
    A clang/test/AST/ast-dump-default-arg-json.cpp
    A clang/test/AST/ast-dump-default-init-json.cpp
    A clang/test/AST/ast-dump-default-init.cpp
    M clang/test/AST/ast-dump-for-range-lifetime.cpp
    M clang/unittests/AST/ASTTraverserTest.cpp

  Log Message:
  -----------
  [Clang] Fix AST dump for {CXXDefaultArgExpr, CXXDefaultInitExpr} (#88269)

This PR fix a AST dump issue since
https://github.com/llvm/llvm-project/pull/80001

When Clang dumps `CXXDefaultArgExpr`/`CXXDefaultInitExpr`, there has no
recursively dump the complete `CXXDefaultArgExpr`/`CXXDefaultInitExpr`.

Since this PR, Clang will recursively dump a
`CXXDefaultArgExpr`/`CXXDefaultInitExpr` node, even if the node has no
rewritten init.

*Consider*:
```
struct A {
  int arr[1];
};

struct B {
  const A &a = A{{0}};
};

void test() {
  B b{};
}
```

*Before*:
```
`-FunctionDecl <line:9:1, line:11:1> line:9:6 test 'void ()'
  `-CompoundStmt <col:13, line:11:1>
    `-DeclStmt <line:10:3, col:8>
      `-VarDecl <col:3, col:7> col:5 b 'B' listinit
        `-InitListExpr <col:6, col:7> 'B'
          `-CXXDefaultInitExpr <col:7> 'const A' lvalue has rewritten init
            `-ExprWithCleanups <line:6:16, col:21> 'const A' lvalue
```

*After*:
```
`-FunctionDecl 0x15a9455a8 <line:9:1, line:11:1> line:9:6 test 'void ()'
  `-CompoundStmt 0x15a945850 <col:13, line:11:1>
    `-DeclStmt 0x15a945838 <line:10:3, col:8>
      `-VarDecl 0x15a945708 <col:3, col:7> col:5 b 'B' listinit
        `-InitListExpr 0x15a9457b0 <col:6, col:7> 'B'
          `-CXXDefaultInitExpr 0x15a9457f8 <col:7> 'const A' lvalue has rewritten init
            `-ExprWithCleanups 0x15a945568 <line:6:16, col:21> 'const A' lvalue
              `-MaterializeTemporaryExpr 0x15a945500 <col:16, col:21> 'const A' lvalue extended by Field 0x15a945160 'a' 'const A &'
                `-ImplicitCastExpr 0x15a9454e8 <col:16, col:21> 'const A' <NoOp>
                  `-CXXFunctionalCastExpr 0x15a9454c0 <col:16, col:21> 'A' functional cast to A <NoOp>
                    `-InitListExpr 0x15a9452c0 <col:17, col:21> 'A'
                      `-InitListExpr 0x15a945308 <col:18, col:20> 'int[1]'
                        `-IntegerLiteral 0x15a945210 <col:19> 'int' 0
```

---------

Signed-off-by: yronglin <yronglin777 at gmail.com>


  Commit: a27ab3f54377a0addeef1ec9ba7c826fd885a304
      https://github.com/llvm/llvm-project/commit/a27ab3f54377a0addeef1ec9ba7c826fd885a304
  Author: Dominik Adamski <dominik.adamski at amd.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/asanrtl.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/hip.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/ockl.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_correctly_rounded_sqrt_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_correctly_rounded_sqrt_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_daz_opt_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_daz_opt_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_finite_only_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_finite_only_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_1010.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_1011.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_1012.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_803.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_900.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_908.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_unsafe_math_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_unsafe_math_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_wavefrontsize64_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_wavefrontsize64_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/ocml.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/opencl.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/asanrtl.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/hip.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/ockl.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_abi_version_400.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_abi_version_500.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_abi_version_600.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_correctly_rounded_sqrt_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_correctly_rounded_sqrt_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_daz_opt_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_daz_opt_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_finite_only_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_finite_only_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_1010.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_1011.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_1012.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_803.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_900.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_908.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_unsafe_math_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_unsafe_math_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_wavefrontsize64_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_wavefrontsize64_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/ocml.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/opencl.bc
    A flang/test/Driver/Inputs/rocm/bin/.hipVersion
    A flang/test/Driver/Inputs/rocm/include/hip/hip_runtime.h
    A flang/test/Driver/Inputs/rocm/share/hip/hipVersion
    M flang/test/Driver/driver-help-hidden.f90
    M flang/test/Driver/driver-help.f90
    M flang/test/Driver/omp-driver-offload.f90

  Log Message:
  -----------
  [Flang][AMDGPU] Add rocm-path flag (#88190)

ROCm installation path is used for finding and automatically linking
required bitcode libraries for OpenMP AMDGPU offload.

Reported issue: https://github.com/llvm/llvm-project/issues/82553


  Commit: 5752e3196bc52fdac70e3650abc703570ff6209b
      https://github.com/llvm/llvm-project/commit/5752e3196bc52fdac70e3650abc703570ff6209b
  Author: Vincent Belliard <81770341+v-bulle at users.noreply.github.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M lldb/source/DataFormatters/TypeCategoryMap.cpp

  Log Message:
  -----------
  [lldb] fix dead lock in TypeCategoryMap.cpp (#87540)

FormatManager::GetCategoryForLanguage and
FormatManager::GetCategory(can_create = true) can be called concurrently
and they both take the TypeCategory::m_map_mutex and the
FormatManager::m_language_categories_mutex but in reverse order.

On one thread, GetCategoryForLanguage takes m_language_categories_mutex
and then ends calling TypeCategoryMap::Get which takes m_map_mutex

On another thread GetCategory calls TypeCategoryMap::Add which takes
m_map_mutex and then calls FormatManager::Changed() which takes
m_language_categories_mutex

If both threads are running concurrently, we have a dead lock.

The patch releases the m_map_mutex before calling Changed which avoids
the dead lock.

---------

Co-authored-by: Vincent Belliard <v-bulle at github.com>


  Commit: 4dd20b0728223ff20f4817edc2f89901385cb990
      https://github.com/llvm/llvm-project/commit/4dd20b0728223ff20f4817edc2f89901385cb990
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M bolt/lib/Rewrite/RewriteInstance.cpp

  Log Message:
  -----------
  [BOLT][NFC] Refactor relocation loop (#88424)

Use the std `if () continue;` idiom before falling into the
processing.


  Commit: 040efafa9fef101924d3cf67db20f6429ce1c871
      https://github.com/llvm/llvm-project/commit/040efafa9fef101924d3cf67db20f6429ce1c871
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    A llvm/test/CodeGen/RISCV/pr88365.ll

  Log Message:
  -----------
  [RISCV] Support uimm32 immediates in RISCVInstrInfo::movImm for RV32. (#88464)

This allows us to support larger stack offsets for FrameLowering.

Fixes #88365.


  Commit: 72dfee114bd38dc4b424d392bc14cd6b7dfb79e5
      https://github.com/llvm/llvm-project/commit/72dfee114bd38dc4b424d392bc14cd6b7dfb79e5
  Author: Francis Visoiu Mistrih <890283+francisvm at users.noreply.github.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoA.td

  Log Message:
  -----------
  [RISCV] Remove mayLoad = 1 from store-conditional (#88470)

lr.[wd]: mayLoad = 1, mayStore = 0
sc.[wd]: mayLoad = 0, mayStore = 1

all other AMOs: mayLoad = 1, mayStore = 1


  Commit: e0a628715a8464e220c8ba9e9aaaf2561139198a
      https://github.com/llvm/llvm-project/commit/e0a628715a8464e220c8ba9e9aaaf2561139198a
  Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGCall.cpp
    M llvm/include/llvm/Analysis/ValueTracking.h
    M llvm/lib/Analysis/BasicAliasAnalysis.cpp
    M llvm/lib/Analysis/InstructionSimplify.cpp
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/lib/Analysis/Loads.cpp
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
    M llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
    M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/test/Transforms/InstCombine/icmp-dom.ll
    M llvm/unittests/Analysis/ValueTrackingTest.cpp

  Log Message:
  -----------
  [ValueTracking] Convert `isKnownNonZero` to use SimplifyQuery (#85863)

This patch converts `isKnownNonZero` to use SimplifyQuery. Then we can
use the context information from `DomCondCache`.

Fixes https://github.com/llvm/llvm-project/issues/85823.
Alive2: https://alive2.llvm.org/ce/z/QUvHVj


  Commit: 6f1e23b47d428d792866993ed26f4173d479d43d
      https://github.com/llvm/llvm-project/commit/6f1e23b47d428d792866993ed26f4173d479d43d
  Author: Kunwar Grover <groverkss at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp
    M mlir/test/Dialect/Bufferization/Transforms/tensor-copy-insertion.mlir
    M mlir/test/Dialect/SparseTensor/sparse_sddmm.mlir

  Log Message:
  -----------
  [MLIR][Bufferization] Choose default memory space in tensor copy insertion (#88500)

Tensor copy insertion currently uses memory_space = 0 when creating a
tensor copy using alloc_tensor. This memory space should instead be the
default memory space provided in bufferization options.


  Commit: b614e5b0340f783ad355899248c52cb22a04b014
      https://github.com/llvm/llvm-project/commit/b614e5b0340f783ad355899248c52cb22a04b014
  Author: Dominik Steenken <dost at de.ibm.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/test/MC/Disassembler/SystemZ/insns.txt
    M llvm/test/MC/Disassembler/SystemZ/invalid-regs.txt
    M llvm/test/MC/SystemZ/insn-good.s

  Log Message:
  -----------
  [SystemZ] Add missing (dis-)assembly tests. (#88498)

### Assembly Tests
This adds assembly tests for 
```
lcdfr, lndfr, lpdfr
```

### Disassembly Tests
This also adds a number of disassembly tests for the following
menmonics:
```
cgit, cgrt, cit, clfit, clgit, clgrt, clgt, clrt, clt, crt, lcdfr, lndfr, lpdfr
```
For `cutfu` / `cu12`, it also adds a check for bad register choice.


  Commit: b794dc23255505dd7735f995b8ff1192305a072e
      https://github.com/llvm/llvm-project/commit/b794dc23255505dd7735f995b8ff1192305a072e
  Author: Dominik Steenken <dost at de.ibm.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
    M llvm/lib/Target/SystemZ/SystemZISelLowering.h
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
    M llvm/test/Analysis/CostModel/SystemZ/reduce-add.ll
    A llvm/test/CodeGen/SystemZ/vec-reduce-add-01.ll

  Log Message:
  -----------
  [SystemZ] Add custom handling of legal vectors with reduce-add. (#88495)

This commit skips the expansion of the `vector.reduce.add` intrinsic on
vector-enabled SystemZ targets in order to introduce custom handling of
`vector.reduce.add` for legal vector types using the VSUM instructions.
This is limited to full vectors with scalar types up to `i32` due to
performance concerns.

It also adds testing for the generation of such custom handling, and
adapts the related cost computation, as well as the testing for that.

The expected result is a performance boost in certain benchmarks that
make heavy use of `vector.reduce.add` with other benchmarks remaining
constant.

For instance, the assembly for `vector.reduce.add<4 x i32>` changes from
```hlasm
        vmrlg   %v0, %v24, %v24
        vaf     %v0, %v24, %v0
        vrepf   %v1, %v0, 1
        vaf     %v0, %v0, %v1
        vlgvf   %r2, %v0, 0
```
to
```hlasm
        vgbm    %v0, 0
        vsumqf  %v0, %v24, %v0
        vlgvf   %r2, %v0, 3
```


  Commit: 8d468c132eed7ffe34d601b224220efd51655eb3
      https://github.com/llvm/llvm-project/commit/8d468c132eed7ffe34d601b224220efd51655eb3
  Author: Evan Wilde <etceterawilde at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/lib/Headers/CMakeLists.txt

  Log Message:
  -----------
  NFC: Make clang resource headers an interface library (#88317)

Making the clang resource headers into an interface library instead of a
custom target means that we can attach the header search paths to the
library. Targets that "link" against this library will automatically
have the appropriate paths added to their header search paths to find
them. Then downstream projects that embed a copy of clang can query the
generated `ClangTargets.cmake` file for the header location instead of
attempting to compute them.


  Commit: 05d8b5e62d7a1cf2f94582346d6fd2d39667a26b
      https://github.com/llvm/llvm-project/commit/05d8b5e62d7a1cf2f94582346d6fd2d39667a26b
  Author: JOSTAR <52376093+shenjunjiekoda at users.noreply.github.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/lib/StaticAnalyzer/Checkers/ContainerModeling.cpp
    M clang/test/Analysis/invalidated-iterator.cpp

  Log Message:
  -----------
  [analyzer] Support `PointerType` in `getCXXRecordDecl` for `ContainerModeling` (#87787)


  Commit: 37575f5262d0e37a1e0b10c59fb8f59182cfe951
      https://github.com/llvm/llvm-project/commit/37575f5262d0e37a1e0b10c59fb8f59182cfe951
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

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

  Log Message:
  -----------
  [NFC][ValueTracking] Fix Wunused-variable

For e0a628715a8464e220c8ba9e9aaaf2561139198a


  Commit: 54a6798e0a3630e705ed32dbbd63414a16331085
      https://github.com/llvm/llvm-project/commit/54a6798e0a3630e705ed32dbbd63414a16331085
  Author: Edwin Vane <revane at google.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
    M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.h

  Log Message:
  -----------
  [clang-tidy] Simplify RenamerClangTidyCheck API (#88268)

Some functions allow a null SourceManager, no SourceManager, or a
SourceManager in an inconsistent argument position. Since SourceManager
is generally not null and it doesn't make sense to apply renaming
without one, these inconsistencies are now gone.


  Commit: 3652b2a877c3691b524a19bc38b338f1ba1dde37
      https://github.com/llvm/llvm-project/commit/3652b2a877c3691b524a19bc38b338f1ba1dde37
  Author: Mike Rice <michael.p.rice at intel.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGAtomic.cpp
    M clang/test/OpenMP/atomic_update_codegen.cpp

  Log Message:
  -----------
  [clang][CodeGen][OpenMP] Fix casting of atomic update of ptr types (#88215)

In 4d5e834c5b7f0ccccd90a6d543e182df602f6bc8, casts were removed for
pointers but one case was missed. Add missing check.


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

  Changed paths:
    M clang/lib/Format/ContinuationIndenter.cpp
    M clang/unittests/Format/FormatTestComments.cpp

  Log Message:
  -----------
  [clang-format] Fix a regression in ContinuationIndenter (#88414)

Commit d06b92391513 caused a regression that breaks after a block
comment adjacent to a function paramter that follows.

Fixes #86573.


  Commit: dcd097c475163b9bd41ff009a9157e86c6f2f171
      https://github.com/llvm/llvm-project/commit/dcd097c475163b9bd41ff009a9157e86c6f2f171
  Author: Stanislav Mekhanoshin <rampitec at users.noreply.github.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/lib/IR/Function.cpp

  Log Message:
  -----------
  Add IIT_V6 to support 6-element vectors in intrinsics. (#88196)

Needed for the future patch.


  Commit: 6a85cf8fc0437d4885fc829948befe32c1e5a21d
      https://github.com/llvm/llvm-project/commit/6a85cf8fc0437d4885fc829948befe32c1e5a21d
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

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

  Log Message:
  -----------
  [SelectionDAG] Verify SPLAT_VECTOR nodes when they are created. (#88305)

This applies the same rules we have for the scalar operands of a
BUILD_VECTOR where the scalar type must match the element type or for
integer vectors we allow the scalar type to be larger than the element
type. Hexagon uses i32 for an FP zero vector so we allow that as an
exception.


  Commit: 7cafe04e0d74c1e9f7e3871a0bcdf4ccb1c89f0c
      https://github.com/llvm/llvm-project/commit/7cafe04e0d74c1e9f7e3871a0bcdf4ccb1c89f0c
  Author: Xiaoyang Liu <siujoeng.lau at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/include/__mdspan/mdspan.h
    M libcxx/include/mdspan
    M libcxx/include/span
    M libcxx/test/std/containers/views/mdspan/mdspan/deduction.pass.cpp
    M libcxx/test/std/containers/views/views.span/span.cons/deduct.pass.cpp

  Log Message:
  -----------
  [libc++] P3029R1: Better `mdspan`'s CTAD (#87873)

## Abstract

This pull request implements [P3029R1](https://wg21.link/P3029R1). The
paper discusses the current behavior of `mdspan`'s most common
pointer-indices CTAD, where the `Extents` template parameter is deduced
as `dextents` (dynamic extents), even when passing compile-time constant
values. The author believes this behavior is suboptimal, as it doesn't
take advantage of the compile-time information. The proposed change
suggests deducing static extents if `integral_constant`-like constants
are passed, resulting in more intuitive syntax and less error-prone
code.

## Reference

- [P3029R1](https://wg21.link/P3029R1)
- [Draft C++ Standard: [span.syn]](https://eel.is/c++draft/span.syn)
- [Draft C++ Standard: [mdspan.syn]](https://eel.is/c++draft/mdspan.syn)


  Commit: fe59cb256289d9f2f6ebe75571389f3cc90bbdec
      https://github.com/llvm/llvm-project/commit/fe59cb256289d9f2f6ebe75571389f3cc90bbdec
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h
    M clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp

  Log Message:
  -----------
  [clang][deps] NFCI: Extract `FilenameForLookup` into new function

This is an NFC change split from https://github.com/llvm/llvm-project/pull/68645.


  Commit: edd7fed9da48c0e708cce9bd4d305ae43d8bd77c
      https://github.com/llvm/llvm-project/commit/edd7fed9da48c0e708cce9bd4d305ae43d8bd77c
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Support/VirtualFileSystem.h
    M llvm/lib/Support/FileCollector.cpp
    M llvm/lib/Support/VirtualFileSystem.cpp
    M llvm/unittests/Support/VirtualFileSystemTest.cpp

  Log Message:
  -----------
  [llvm][vfs] NFCI: Remove `const` from `VFS::getRealPath()`

This is an NFC change split from https://github.com/llvm/llvm-project/pull/68645.


  Commit: c11976f525f3b9b9dc6080f0b23d2ef1ec5fe8fd
      https://github.com/llvm/llvm-project/commit/c11976f525f3b9b9dc6080f0b23d2ef1ec5fe8fd
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/unittests/Tooling/CMakeLists.txt
    R clang/unittests/Tooling/DependencyScannerTest.cpp
    A clang/unittests/Tooling/DependencyScanning/DependencyScannerTest.cpp

  Log Message:
  -----------
  [clang][deps] Create separate unittest directory

This is an NFC change split from https://github.com/llvm/llvm-project/pull/68645.


  Commit: a11a4324bb27c01e7a005e1a7f49fb8284098e8c
      https://github.com/llvm/llvm-project/commit/a11a4324bb27c01e7a005e1a7f49fb8284098e8c
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h
    M clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
    M clang/unittests/Tooling/CMakeLists.txt
    A clang/unittests/Tooling/DependencyScanning/DependencyScanningFilesystemTest.cpp

  Log Message:
  -----------
  [clang][deps] Cache `VFS::getRealPath()` (#68645)

This PR starts caching calls to
`DependencyScanningWorkerFilesystem::getRealPath()` that we use whenever
we canonicalize module map path. In the case of the real VFS, this
functions performs an expensive syscall that we'd like to do as rarely
as possible.

This PR keeps the real path out of `CachedFileSystemEntry`, since that's
**immutable**; populating the real path on creation of this data
structure (every stat/open) would be expensive.


  Commit: 2620ccc3cdebcaa53b96b5f4d79ffe3951534e07
      https://github.com/llvm/llvm-project/commit/2620ccc3cdebcaa53b96b5f4d79ffe3951534e07
  Author: Kalesh Singh <kaleshsingh96 at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/Linux.cpp
    M clang/test/Driver/android-link.cpp

  Log Message:
  -----------
  ANDROID: x86_64: Set default max-page-size to 16kB (#87413)

Android now supports both 4kB and 16kB page sizes. The vast majority of
android apps are developed on x86_64 machines. In order to provide
emulators that support larger page sizes, Android emulates the page-size
in x86_64 to support testing apps for large page size support.

For this reason, update Android x86_64 ELFs default max-page-size to
16384 to support both 4kB and 16kB page-size devices.

Increase max-page-size raises concerns of increased disk space and extra
VMA slab memory.

In Android, RO partitions use sparse images, so that the holes on ELFs
don't allocate blocks on disk; and PackageManager ensures to punch holes
in ELF-paddings on the /data partition when apps are installed.

Extra VMA slab memory is addressed by the bionic loader, which extends
segment VMAs to cover the gaps between consecutive segment mappings, to
avoid the extra VMAs needed for the gap PROT_NONE mappings (---p). This
optimization is done in the crt_pad_segment note [1] is present in the
ELF.

[1]
https://cs.android.com/android/platform/superproject/main/+/189e480390ef13199d59e1fb54078e8b78ea6f79:bionic/libc/arch-common/bionic/crt_pad_segment.S

---------

Signed-off-by: Kalesh Singh <kaleshsingh at google.com>
Co-authored-by: Kalesh Singh <kaleshsingh at google.com>


  Commit: 446d38c65f72fd5d242a64182b05683577f683d3
      https://github.com/llvm/llvm-project/commit/446d38c65f72fd5d242a64182b05683577f683d3
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M lldb/unittests/Host/FileSystemTest.cpp

  Log Message:
  -----------
  [lldb] Fix test build failure

Caused by commit edd7fed9da48c0e708cce9bd4d305ae43d8bd77c


  Commit: 9022d9c102a8c47616fbeb6a45b015db6bd2c17a
      https://github.com/llvm/llvm-project/commit/9022d9c102a8c47616fbeb6a45b015db6bd2c17a
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M compiler-rt/lib/xray/xray_trampoline_AArch64.S
    M compiler-rt/lib/xray/xray_trampoline_x86_64.S

  Log Message:
  -----------
  [xray] Apply default visibility to __xray_CustomEvent/__xray_TypedEvent

`__xray_customevent` and `__xray_typedevent` are built-in functions in
Clang. With -fxray-instrument, they are lowered to `__xray_CustomEvent`
(with 2 arguments) or `__xray_TypedEvent` (with 3 arguments).

xray patching is supported for shared objects, but they may contain
`__xray_customevent` and `__xray_typedevent` references that need to be
satisfied by default visibility definitions exported by the executable.

lld since df54f627fad789ccb11c72a9fddf116decbeba0e, like GNU ld, catches
the scenario at link time.


  Commit: 4b0beb4f5ec42aea58461df7994e2fa40f335bb6
      https://github.com/llvm/llvm-project/commit/4b0beb4f5ec42aea58461df7994e2fa40f335bb6
  Author: jimingham <jingham at apple.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M lldb/bindings/interface/SBFrameExtensions.i
    M lldb/test/API/python_api/frame/TestFrames.py

  Log Message:
  -----------
  Reapply "Fix error in unrecognized register name handling for "SBFram…e.register"" (#88468)" (#88535)

The only change is a fix for the "register" iterator test to not rely on
particular register names.

I mistook where the artificial "pc" register is generated. It isn't
added to the register list or the register sets (except on arm where
that's the name of the actual register), so I can't use it in this test.
I instead just assert that the "register" generator produces the same
list as flattening the register sets from "registers".

This reverts commit 9f14914753599f3879e4c273191959e2f1b3632c.


  Commit: 83dc41992dc602070f5429e2717352f60aad931c
      https://github.com/llvm/llvm-project/commit/83dc41992dc602070f5429e2717352f60aad931c
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/ProfileData/InstrProfWriter.cpp

  Log Message:
  -----------
  [memprof] Clean up writer traits (NFC) (#88549)

RecordWriter does not live past the end of writeMemProfRecords, so it
can be safely on stack.

The constructor of FrameWriter does not take any parameter, so we can
let OnDiskChainedHashTableGenerator::Emit (with a single parameter)
default-construct an instance of the writer trait inside Emit.


  Commit: 0318ce8552896df7b180ee5481463eada65c755e
      https://github.com/llvm/llvm-project/commit/0318ce8552896df7b180ee5481463eada65c755e
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    A clang/test/C/C99/n809.c
    A clang/test/C/C99/n809_2.c
    A clang/test/C/C99/n809_3.c
    M clang/www/c_status.html

  Log Message:
  -----------
  [C99] Claim conformance for _Complex support (#88161)

There's so much overlap between the cited papers so this condenses the
status page into a single entry rather than trying to test conformance
against multiple papers doing conflicting things.


  Commit: b074f25329501487e312b59e463a2d5f743090f8
      https://github.com/llvm/llvm-project/commit/b074f25329501487e312b59e463a2d5f743090f8
  Author: elizabethandrews <elizabeth.andrews at intel.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/lib/AST/Interp/InterpState.h
    M clang/lib/Sema/SemaAPINotes.cpp

  Log Message:
  -----------
  [NFC][Clang] Fix static analyzer concern (#88179)

Fix static analyzer concerns about dereferencing
null values.


  Commit: c777c011a709dffd4fa5e79cad7947b7c3405d02
      https://github.com/llvm/llvm-project/commit/c777c011a709dffd4fa5e79cad7947b7c3405d02
  Author: Thorsten Schütt <schuett at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-vscale.ll

  Log Message:
  -----------
  [GlobalIsel] Import vscale (#88240)

https://github.com/llvm/llvm-project/pull/84542


  Commit: a9111d4a26514e169ca57c11e6533ca7c5408832
      https://github.com/llvm/llvm-project/commit/a9111d4a26514e169ca57c11e6533ca7c5408832
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/unittests/Tooling/DependencyScanning/DependencyScanningFilesystemTest.cpp

  Log Message:
  -----------
  [clang] Remove unused variable in test


  Commit: 6dbd4bb3b4c00d62bf1552e54e4370c6816ea060
      https://github.com/llvm/llvm-project/commit/6dbd4bb3b4c00d62bf1552e54e4370c6816ea060
  Author: Jing Wang <2019426+jingw at users.noreply.github.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/docs/ClangFormat.rst
    M clang/lib/Format/Format.cpp
    M clang/test/Format/lit.local.cfg
    M clang/tools/clang-format/ClangFormat.cpp

  Log Message:
  -----------
  Add txtpb to the list of supported TextProto extensions (#88355)

According to
https://protobuf.dev/reference/protobuf/textformat-spec/#text-format-files,
txtpb is the canonical extension

Co-authored-by: Jing Wang <99jingw at gmail.com>


  Commit: 4078afc6d23e25df6baedad61b224ef86a94d42f
      https://github.com/llvm/llvm-project/commit/4078afc6d23e25df6baedad61b224ef86a94d42f
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M flang/lib/Semantics/check-omp-structure.h
    M flang/test/Semantics/OpenMP/clause-validity01.f90
    M llvm/include/llvm/Frontend/OpenMP/OMP.td

  Log Message:
  -----------
  [LLVM][OpenMP] Add "nowait" clause as valid for "workshare" (#88426)

Add the "nowait" clause to the list of allowed clauses for the "workshare"
directive. This will make it consistent with other directives (which are
shared between C/C++ and Fortran).

The parser will still reject "nowait" on "!$omp workshare", so this has no
effect on accepting/rejecting Fortran source code.


  Commit: 41ff91e143a72dcd5755c9ad2160cf3c333b50c6
      https://github.com/llvm/llvm-project/commit/41ff91e143a72dcd5755c9ad2160cf3c333b50c6
  Author: OverMighty <its.overmighty at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/arm/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt

  Log Message:
  -----------
  Reapply "[libc][math][c23] Add remaining linux/* entrypoints for {,u}fromfp{,x}* (#86692)" (#88567)

This reverts commit 8a071678a9091d536eae29912ca7be6238105956.

The test failure on 32-bit Arm should have been fixed by #86892.

cc @nickdesaulniers @lntue


  Commit: 5300a6731e98fbcf7bca68374e934de737166698
      https://github.com/llvm/llvm-project/commit/5300a6731e98fbcf7bca68374e934de737166698
  Author: Jonathan Peyton <jonathan.l.peyton at intel.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M openmp/runtime/src/z_Linux_util.cpp

  Log Message:
  -----------
  [OpenMP] Fix re-locking hang found in issue 86684 (#88539)

This was initially reported here (including stacktraces):
https://stackoverflow.com/questions/78183545/does-compiling-imagick-with-openmp-enabled-in-freebsd-13-2-cause-sched-yield

If `__kmp_register_library_startup()` detects that another instance of
the library is present, `__kmp_is_address_mapped()` is eventually
called. which uses `kmpc_alloc()` to allocate memory. This function
calls `__kmp_entry_thread()` to access the thread-local memory pool,
which is a bad idea during initialization. This macro internally calls
`__kmp_get_global_thread_id_reg()` which sets the bootstrap lock at the
beginning (before calling `__kmp_register_library_startup()`).

The fix is to use `KMP_INTERNAL_MALLOC()`/`KMP_INTERNAL_FREE()` instead
of `kmpc_malloc()`/`kmpc_free()`. `KMP_INTERNAL_MALLOC` and
`KMP_INTERNAL_FREE` do not use any bootstrap locks. They just translate
to `malloc()`/`free()` and are meant to be used during library
initialization before other library-specific allocators have been
initialized.

Fixes: #86684


  Commit: dfafe3822b1e59f938c256c25a92a7b555f78469
      https://github.com/llvm/llvm-project/commit/dfafe3822b1e59f938c256c25a92a7b555f78469
  Author: Alexander Richardson <alexrichardson at google.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M compiler-rt/CMakeLists.txt
    M compiler-rt/cmake/Modules/AddCompilerRT.cmake
    M compiler-rt/test/CMakeLists.txt
    M compiler-rt/test/fuzzer/lit.cfg.py
    M compiler-rt/test/lit.common.cfg.py
    M compiler-rt/test/lit.common.configured.in
    M compiler-rt/test/safestack/lit.cfg.py

  Log Message:
  -----------
  Reland "[compiler-rt] Allow running tests without installing first"

Currently, the testsuite uses the default runtimes path to find the
runtimes libraries which may or may not match the just-built runtimes.
This change uses the `-resource-dir` flag for clang whenever
`COMPILER_RT_TEST_STANDALONE_BUILD_LIBS` is set to ensure that we are
actually testing the currently built libraries rather than the ones
bundled with `${COMPILER_RT_TEST_COMPILER}`.

The existing logic works fine when clang and compiler-rt share the same
build directory ``-DLLVM_ENABLE_PROJECTS=clang;compiler-rt`, but when
building compiler-rt separately we need to tell the compiler used for
the tests where it can find the just-built libraries.

This reduces the fixes check-all failures to one in my configuration:
```
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -G Ninja
-DCMAKE_C_COMPILER=$HOME/output/upstream-llvm/bin/clang
-DCMAKE_CXX_COMPILER=$HOME/output/upstream-llvm/bin/clang++
-DCOMPILER_RT_INCLUDE_TESTS=ON
-DLLVM_EXTERNAL_LIT=$HOME/build/upstream-llvm-project-build/bin/llvm-lit
-DLLVM_CMAKE_DIR=$HOME/output/upstream-llvm
-DCOMPILER_RT_DEBUG=OFF
-S $HOME/src/upstream-llvm-project/compiler-rt
-B $HOME/src/upstream-llvm-project/compiler-rt/cmake-build-all-sanitizers
```

This relands the previous PR with fixes for Windows.
Depends on https://github.com/llvm/llvm-project/pull/88074 to be merged
first for GCC buildbots.

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


  Commit: 588987405a979f724ab0aa7ad788cc5e87af3649
      https://github.com/llvm/llvm-project/commit/588987405a979f724ab0aa7ad788cc5e87af3649
  Author: Artem Chikin <achikin at apple.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Support/VirtualFileSystem.h
    M llvm/lib/Support/VirtualFileSystem.cpp
    M llvm/unittests/Support/VirtualFileSystemTest.cpp

  Log Message:
  -----------
  [llvm][vfs] Make vfs::FileSystem::exists() virtual NFC (#88575)

Allow a `vfs::FileSystem` to provide a more efficient implementation of
`exists()` if they are able to. The existing `FileSystem`
implementations continue to default to using `status()` except that
overlay, proxy, and redirecting filesystems are taught to forward calls
to `exists()` correctly to their wrapped/external filesystem.

Co-authored-by: Ben Langmuir <blangmuir at apple.com>


  Commit: 62624a4bfed4ea468dcb677b799aee3518a24bf7
      https://github.com/llvm/llvm-project/commit/62624a4bfed4ea468dcb677b799aee3518a24bf7
  Author: Harrison,Hao <57025411+TSWorld1314 at users.noreply.github.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/lib/Support/Parallel.cpp

  Log Message:
  -----------
  [Support] Fix the issue where the character being saved in Unicode causes a warning to be treated as an error in Visual Studio 2022. (#88513)

Fix the issue where the character being saved in Unicode causes a
warning to be treated as an error in Visual Studio 2022.

![image](https://github.com/llvm/llvm-project/assets/57025411/07353525-6520-4b74-b4f5-5b3f5afc47e1)


  Commit: 8a4b7de91dc334c828674aa2cad927c6ffb9cf37
      https://github.com/llvm/llvm-project/commit/8a4b7de91dc334c828674aa2cad927c6ffb9cf37
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

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

  Log Message:
  -----------
  [SLP][NFC]Make TTIRef capture argument instead of outer declaration.


  Commit: 0f82469314f34a086669dfcd190a9f89260fbee5
      https://github.com/llvm/llvm-project/commit/0f82469314f34a086669dfcd190a9f89260fbee5
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h
    M llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
    M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
    M llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
    M llvm/test/Transforms/PhaseOrdering/AArch64/hoist-runtime-checks.ll

  Log Message:
  -----------
  [Passes] Run SimpleLoopUnswitch after introducing invariant branches. (#81271)

IndVars may be able to replace a loop dependent condition with a loop
invariant one, but loop-unswitch runs before IndVars, so the invariant
check remains in the loop.

For an example, consider a read-only loop with a bounds check:
https://godbolt.org/z/8cdj4qhbG

This patch uses a approach similar to the way extra cleanup passes are
run on demand after vectorization (added in acea6e9cfa4c4a0e8678c7).

It introduces a new ShouldRunExtraSimpleLoopUnswitch analysis marker,
which IndVars can use to indicate that extra unswitching is beneficial.

ExtraSimpleLoopUnswitchPassManager uses this analysis to determine
whether to run its passes on a loop.

Compile-time impact (geomean) ranges from +0.0% to 0.02%
https://llvm-compile-time-tracker.com/compare.php?from=138c0beb109ffe47f75a0fe8c4dc2cdabe8a6532&to=19e6e99eeb280d426907ea73a21b139ba7225627&stat=instructions%3Au

Compile-time impact (geomean) of unconditionally running
SimpleLoopUnswitch ranges from +0.05% - +0.16%

https://llvm-compile-time-tracker.com/compare.php?from=138c0beb109ffe47f75a0fe8c4dc2cdabe8a6532&to=2930dfd5accdce2e6f8d5146ae4d626add2065a2&stat=instructions:u

Unconditionally running SimpleLoopUnswitch seems to indicate that there
are multiple other scenarios where we fail to run unswitching when
opportunities remain.


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

PR: https://github.com/llvm/llvm-project/pull/81271


  Commit: c6cd4608c8c4a5356ae41ef05e67df3dc5d9500b
      https://github.com/llvm/llvm-project/commit/c6cd4608c8c4a5356ae41ef05e67df3dc5d9500b
  Author: Matthias Braun <matze at braunis.de>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/lib/IR/Verifier.cpp
    A llvm/test/Verifier/threadlocal-pass.ll
    A llvm/test/Verifier/threadlocal.ll

  Log Message:
  -----------
  IRVerifier: Allow GlobalValue as llvm.threadlocal.address operand (#88321)

Loosen `llvm.threadlocal.address` verifier checks to allow any
`GlobalValue` with `isThreadLocal()` set to true.


  Commit: daa88364df15683bfa0e58d62cc96d33cd49d34b
      https://github.com/llvm/llvm-project/commit/daa88364df15683bfa0e58d62cc96d33cd49d34b
  Author: Erich Keane <ekeane at nvidia.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/include/clang/AST/ASTNodeTraverser.h
    M clang/include/clang/AST/OpenACCClause.h
    A clang/include/clang/Basic/OpenACCClauses.def
    M clang/include/clang/Parse/Parser.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-clause-ast.cpp
    A clang/test/SemaOpenACC/compute-construct-if-clause.c
    A clang/test/SemaOpenACC/compute-construct-if-clause.cpp
    M clang/tools/libclang/CIndex.cpp

  Log Message:
  -----------
  [OpenACC] Implement 'if' clause for Compute Constructs (#88411)

Like with the 'default' clause, this is being applied to only Compute
Constructs for now. The 'if' clause takes a condition expression which
is used as a runtime value.

This is not a particularly complex semantic implementation, as there
isn't much to this clause, other than its interactions with 'self',
  which will be managed in the patch to implement that.


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

  Changed paths:
    M flang/lib/Semantics/check-cuda.cpp
    M flang/test/Semantics/cuf11.cuf

  Log Message:
  -----------
  [flang][cuda] Fix crash in semantic (#88577)

Fix for #88451

Do not perform semantic check about data transfer on assignment
statement in device context.


  Commit: 900be9013fdc3bab9fce906f8a71e59ecd8873b4
      https://github.com/llvm/llvm-project/commit/900be9013fdc3bab9fce906f8a71e59ecd8873b4
  Author: Victor Toni <ViToni at users.noreply.github.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
    M libc/src/__support/str_to_float.h
    M llvm/lib/Analysis/LoopCacheAnalysis.cpp
    M llvm/lib/Support/APInt.cpp
    M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
    M llvm/test/Transforms/JumpThreading/free_instructions.ll
    M llvm/utils/lint/common_lint.py

  Log Message:
  -----------
  Fix typos (#88565)


  Commit: 2996cb7970fb536d7db1088d571dc8d2f9ad35fa
      https://github.com/llvm/llvm-project/commit/2996cb7970fb536d7db1088d571dc8d2f9ad35fa
  Author: Michael Flanders <flanders.michaelk at gmail.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M libc/docs/stdbit.rst
    M libc/utils/docgen/docgen.py
    A libc/utils/docgen/stdbit.json

  Log Message:
  -----------
  [libc][docs] use docgen to generate stdbit rst docs (#88540)

Closes #88066.

Compared to before, the function names in the stdbit table are sorted by
function name, not order-of-appearance in the standard. Since macros
aren't printed by docgen.py and are still a TODO in the code, they are
also not printed in the new stdbit.h docs.

Adds some checks to docgen.py for conditions that tripped me up.

Add code to docgen.py to add the include of the `|check|` rewriter,
since all other generated files need it.


  Commit: eaa3947106e50d6d837e6681fb55cf92c2bb0f9a
      https://github.com/llvm/llvm-project/commit/eaa3947106e50d6d837e6681fb55cf92c2bb0f9a
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/include/clang/Parse/Parser.h

  Log Message:
  -----------
  [NFC] Remove unused type alias in OpenACC

Leftover from a previous commit, this ends up not being used, so remove
it.


  Commit: a472e6473e6921f22427d41c3d29e9a26eb4ab32
      https://github.com/llvm/llvm-project/commit/a472e6473e6921f22427d41c3d29e9a26eb4ab32
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/include/clang/AST/OpenACCClause.h
    M clang/lib/AST/OpenACCClause.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/tools/libclang/CIndex.cpp

  Log Message:
  -----------
  [NFC][OpenACC] Rename visitor functions to omit redundant OpenACC

While working on a followup patch, it became clear that this extra bit
of 'OpenACC' before each clause name was redundant with the visitors, so
remove it to make this a little less verbose.


  Commit: db8e182952573fa9198424a6ed1b1bb1676eae62
      https://github.com/llvm/llvm-project/commit/db8e182952573fa9198424a6ed1b1bb1676eae62
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/lib/AST/OpenACCClause.cpp
    M clang/lib/AST/StmtProfile.cpp

  Log Message:
  -----------
  [NFC] Clang-format previous OpenACC Patch


  Commit: 779ba60417b467a6d2d25101b11711c009694315
      https://github.com/llvm/llvm-project/commit/779ba60417b467a6d2d25101b11711c009694315
  Author: Artem Chikin <achikin at apple.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h
    M clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
    M clang/unittests/Tooling/DependencyScanning/DependencyScanningFilesystemTest.cpp

  Log Message:
  -----------
  [clang][deps] Overload `Filesystem::exists` in `DependencyScanningFilesystem` to have it use cached `status` (#88152)

As-is, calls to `exists()` fallback on the implementation in
`ProxyFileSystem::exists` which explicitly calls out to the underlying
`FS`, which for the `DependencyScanningFilesystem` (overlay) is the real
underlying filesystem.

Instead, directly overloading `exists` allows us to have it rely on the
cached `status` behavior used elsewhere by the
`DependencyScanningFilesystem`.


  Commit: 03c393db1821ef4c362c4c228492c6fb03f8876f
      https://github.com/llvm/llvm-project/commit/03c393db1821ef4c362c4c228492c6fb03f8876f
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/tools/libclang/CIndex.cpp

  Log Message:
  -----------
  Fix build failure from a472e6473e69

Looks like I forgot to do build CIndex.cpp when validating myself!


  Commit: 0d2bb7f017f13ceae793fab7d83d3e67e8d8d8f8
      https://github.com/llvm/llvm-project/commit/0d2bb7f017f13ceae793fab7d83d3e67e8d8d8f8
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/cmake/caches/Release.cmake

  Log Message:
  -----------
  [CMake][Release] Disable PGO (#88465)

Running the test-release.sh script with PGO enabled causes build errors
like:

ld.lld: error: Function Import: link error: linking module flags
'ProfileSummary': IDs have conflicting values

I believe this a build system bug due to the PGO profile data being
generated unconditionally. If you run `ninja check-all` and then `ninja
install` like we do in test-release.sh, then the profile data is
regenerated during `ninja install` and some of the clang tools which are
not test dependencies get build during the ninja install step with
different profile data. When these tools link against the LLVM
libraries, like libSupport, we end up with these errors.


  Commit: 9bd10853e505b61f5fe2e3b3592c76787a06aa31
      https://github.com/llvm/llvm-project/commit/9bd10853e505b61f5fe2e3b3592c76787a06aa31
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/test/CodeGen/AMDGPU/global_atomics_i32_system.ll
    A llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomicrmw-integer-ops-0-to-add-0.ll

  Log Message:
  -----------
  AMDGPU: Undo atomicrmw add/sub/xor 0 -> atomicrmw or canonicalization (#87533)

InstCombine transforms add of 0 to or of 0. For system atomics, this is
problematic because while PCIe supports add, it does not support the
other operations. Undo this for system scope atomics.


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

  Changed paths:
    A clang/test/Sema/alias-unused-win.cpp
    R clang/test/Sema/alias-unused.c
    A clang/test/Sema/alias-unused.cpp

  Log Message:
  -----------
  [test] Improve tests for alias/ifunc attributes


  Commit: 9e95c4947d31670ddd3abad1051eda06729c96b3
      https://github.com/llvm/llvm-project/commit/9e95c4947d31670ddd3abad1051eda06729c96b3
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

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

  Log Message:
  -----------
  [DSE] Fix non-determinism due to address reuse (#84943)

The malloc->calloc fold creates a new MemoryAccess, which may end of at
the same address as a previously deleted access inside SkipStores.

To the most part, this is not a problem, because SkipStores is normally
only used together with MemDefs. Neither the old malloc access nor the
new calloc access will be part of MemDefs, so there is no problem here.

However, SkipStores is also used in one more place: In the main DSE
loop, ToCheck entries are checked against it. Fix this by not using
SkipStores here, and instead using a separate set to track deletions
inside this loop. This way it is not affected by the calloc optimization
that happens outside it.

This is all pretty ugly, but I haven't found another good way to fix it.
Suggestions welcome.

No test case as I don't have a reliable DSE-only test-case for this.

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


  Commit: f172bfcdc229ed6f3e8a0298dab3713fb763ff28
      https://github.com/llvm/llvm-project/commit/f172bfcdc229ed6f3e8a0298dab3713fb763ff28
  Author: Volodymyr Sapsai <vsapsai at apple.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

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

  Log Message:
  -----------
  [unused-includes][ADT] Don't include DJB.h as it's not used. NFC. (#88211)

StringMap uses xxHash instead of DJB.


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

  Changed paths:
    M clang/test/Sema/alias-unused.cpp

  Log Message:
  -----------
  [test] alias-unused.cpp: set triple to Linux

Otherwise the test would fail on Darwin and other platforms that use
Itanium ABI but do not support alias/ifunc.


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

  Changed paths:
    M lld/ELF/Relocations.cpp

  Log Message:
  -----------
  [ELF] Relocations: Avoid MIPS check for ELFCLASS64 with if constexpr. NFC

After inlining, `scanSection` is significantly longer (more than 100+
instructions on x86-64 built with Clang) when `i` does not always
increment by one (MIPS).


  Commit: 94b3c192d3468752e6bc2f20957d433bccdb8ff3
      https://github.com/llvm/llvm-project/commit/94b3c192d3468752e6bc2f20957d433bccdb8ff3
  Author: Jim Lin <jim at andestech.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/test/Driver/frame-pointer-elim.c

  Log Message:
  -----------
  [M68k][clang] Enable frame pointer optimization by default (#87264)

Enable frame pointer optimization by default to match it with gcc.

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


  Commit: 0a6f6df5b0c3d0f2a42f013bf5cafb9b5020dcac
      https://github.com/llvm/llvm-project/commit/0a6f6df5b0c3d0f2a42f013bf5cafb9b5020dcac
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/Cuda.h
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Sema/SemaBase.h
    A clang/include/clang/Sema/SemaCUDA.h
    M clang/include/clang/Serialization/ASTReader.h
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Parse/ParseExpr.cpp
    M clang/lib/Parse/ParsePragma.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaBase.cpp
    M clang/lib/Sema/SemaCUDA.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaLambda.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaStmt.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTWriter.cpp

  Log Message:
  -----------
  [clang] Introduce `SemaCUDA` (#88559)

This patch moves CUDA-related `Sema` function into new `SemaCUDA` class,
following the recent example of SYCL, OpenACC, and HLSL. This is a part
of the effort to split Sema. Additional context can be found in
https://github.com/llvm/llvm-project/pull/82217,
https://github.com/llvm/llvm-project/pull/84184,
https://github.com/llvm/llvm-project/pull/87634.


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

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/TokenKinds.def
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/test/SemaCXX/type-traits.cpp

  Log Message:
  -----------
  [clang] Implement `__is_pointer_interconvertible_base_of()` (#88473)

This patch implements intrinsic that supports
`std::is_pointer_interconvertible_base_of` type trait from
[P0466R5](https://wg21.link/p0466r5) "Layout-compatibility and
Pointer-interconvertibility Traits".

Normative wording:
> Comment: If `Base` and Derived are non-union class types and are not
(possibly _cv_-qualified) versions of the same type, `Derived` is a
complete type.
> Condition: `Derived` is unambiguously derived from `Base` without
regard to _cv_-qualifiers, and each object of type `Derived` is
pointer-interconvertible (6.7.2 [basic.compound]) with its `Base`
subobject, or `Base` and `Derived` are not unions and name the same
class type without regard to _cv_-qualifiers.

The paper also express the following intent:
> Note that `is_pointer_interconvertible_base_of_v<T,T>` is always true
under this wording, even though `T` is not derived from itself.

I find the treatment of unions in the wording contradictory to this
intent, and I'm not able to find anything relevant in minutes or on the
reflector. That said, this patch implements what the wording says, since
it's very explicit about unions.


  Commit: 79dca25f4a0fefd47e9e37d9ce47d84dc0b3bedb
      https://github.com/llvm/llvm-project/commit/79dca25f4a0fefd47e9e37d9ce47d84dc0b3bedb
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/tools/clang-installapi/Options.cpp

  Log Message:
  -----------
  [InstallAPI] Replace std::string -> StringRef


  Commit: ed128c7df9b4e60bfd814dc9fd22de1dde4a2c1c
      https://github.com/llvm/llvm-project/commit/ed128c7df9b4e60bfd814dc9fd22de1dde4a2c1c
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    A clang/test/CXX/drs/cwg118.cpp
    A clang/test/CXX/drs/cwg124.cpp
    A clang/test/CXX/drs/cwg158.cpp
    A clang/test/CXX/drs/cwg1748.cpp
    A clang/test/CXX/drs/cwg177x.cpp
    A clang/test/CXX/drs/cwg1807.cpp
    A clang/test/CXX/drs/cwg185.cpp
    A clang/test/CXX/drs/cwg193.cpp
    A clang/test/CXX/drs/cwg199.cpp
    A clang/test/CXX/drs/cwg201.cpp
    A clang/test/CXX/drs/cwg210.cpp
    A clang/test/CXX/drs/cwg2335.cpp
    A clang/test/CXX/drs/cwg2390.cpp
    A clang/test/CXX/drs/cwg2504.cpp
    A clang/test/CXX/drs/cwg292.cpp
    A clang/test/CXX/drs/cwg392.cpp
    A clang/test/CXX/drs/cwg412.cpp
    A clang/test/CXX/drs/cwg438.cpp
    A clang/test/CXX/drs/cwg439.cpp
    A clang/test/CXX/drs/cwg441.cpp
    A clang/test/CXX/drs/cwg462.cpp
    A clang/test/CXX/drs/cwg492.cpp
    A clang/test/CXX/drs/cwg519.cpp
    A clang/test/CXX/drs/cwg571.cpp
    A clang/test/CXX/drs/cwg605.cpp
    A clang/test/CXX/drs/cwg650.cpp
    A clang/test/CXX/drs/cwg653.cpp
    A clang/test/CXX/drs/cwg658.cpp
    A clang/test/CXX/drs/cwg661.cpp
    A clang/test/CXX/drs/cwg672.cpp
    A clang/test/CXX/drs/cwgr593.cpp
    M clang/test/CXX/drs/dr0xx.cpp
    M clang/test/CXX/drs/dr10xx.cpp
    R clang/test/CXX/drs/dr118.cpp
    M clang/test/CXX/drs/dr11xx.cpp
    R clang/test/CXX/drs/dr124.cpp
    M clang/test/CXX/drs/dr12xx.cpp
    M clang/test/CXX/drs/dr13xx.cpp
    M clang/test/CXX/drs/dr14xx.cpp
    R clang/test/CXX/drs/dr158.cpp
    M clang/test/CXX/drs/dr15xx.cpp
    M clang/test/CXX/drs/dr16xx.cpp
    R clang/test/CXX/drs/dr1748.cpp
    R clang/test/CXX/drs/dr177x.cpp
    M clang/test/CXX/drs/dr17xx.cpp
    R clang/test/CXX/drs/dr1807.cpp
    R clang/test/CXX/drs/dr185.cpp
    M clang/test/CXX/drs/dr18xx.cpp
    R clang/test/CXX/drs/dr193.cpp
    R clang/test/CXX/drs/dr199.cpp
    M clang/test/CXX/drs/dr19xx.cpp
    M clang/test/CXX/drs/dr1xx.cpp
    R clang/test/CXX/drs/dr201.cpp
    M clang/test/CXX/drs/dr20xx.cpp
    R clang/test/CXX/drs/dr210.cpp
    M clang/test/CXX/drs/dr21xx.cpp
    M clang/test/CXX/drs/dr22xx.cpp
    R clang/test/CXX/drs/dr2335.cpp
    R clang/test/CXX/drs/dr2390.cpp
    M clang/test/CXX/drs/dr23xx.cpp
    M clang/test/CXX/drs/dr24xx.cpp
    R clang/test/CXX/drs/dr2504.cpp
    M clang/test/CXX/drs/dr25xx.cpp
    M clang/test/CXX/drs/dr26xx.cpp
    M clang/test/CXX/drs/dr27xx.cpp
    M clang/test/CXX/drs/dr28xx.cpp
    R clang/test/CXX/drs/dr292.cpp
    M clang/test/CXX/drs/dr2xx.cpp
    R clang/test/CXX/drs/dr392.cpp
    M clang/test/CXX/drs/dr3xx.cpp
    R clang/test/CXX/drs/dr412.cpp
    R clang/test/CXX/drs/dr438.cpp
    R clang/test/CXX/drs/dr439.cpp
    R clang/test/CXX/drs/dr441.cpp
    R clang/test/CXX/drs/dr462.cpp
    R clang/test/CXX/drs/dr492.cpp
    M clang/test/CXX/drs/dr4xx.cpp
    R clang/test/CXX/drs/dr519.cpp
    R clang/test/CXX/drs/dr571.cpp
    R clang/test/CXX/drs/dr593.cpp
    M clang/test/CXX/drs/dr5xx.cpp
    R clang/test/CXX/drs/dr605.cpp
    R clang/test/CXX/drs/dr650.cpp
    R clang/test/CXX/drs/dr653.cpp
    R clang/test/CXX/drs/dr658.cpp
    R clang/test/CXX/drs/dr661.cpp
    R clang/test/CXX/drs/dr672.cpp
    M clang/test/CXX/drs/dr6xx.cpp
    M clang/test/CXX/drs/dr7xx.cpp
    M clang/test/CXX/drs/dr8xx.cpp
    M clang/test/CXX/drs/dr9xx.cpp
    M clang/www/make_cxx_dr_status

  Log Message:
  -----------
  [clang][NFC] Replace `dr` with `cwg` in DR test suite

This patch is breaking `dr` to `cwg` equivalence in our terminology, making room for tests for LWG issues that concern compiler intrinsics.


  Commit: 4138367444a2e3431cdfc7ab6e16c9cab5c76ad8
      https://github.com/llvm/llvm-project/commit/4138367444a2e3431cdfc7ab6e16c9cab5c76ad8
  Author: Ian Anderson <iana at apple.com>
  Date:   2024-04-12 (Fri, 12 Apr 2024)

  Changed paths:
    M clang/lib/Basic/Module.cpp
    A clang/test/Modules/Inputs/ptrauth-include-from-darwin/module.modulemap
    A clang/test/Modules/Inputs/ptrauth-include-from-darwin/ptrauth.h
    A clang/test/Modules/Inputs/ptrauth-include-from-darwin/stddef.h
    A clang/test/Modules/ptrauth-include-from-darwin.m

  Log Message:
  -----------
  [modules] allow use of ptrauth module from no_undeclared_includes system modules (#88432)

Co-authored-by: Alex Lorenz <arphaman at gmail.com>


  Commit: 5b36bf549c8c900d0f01451e02abd821f38d4538
      https://github.com/llvm/llvm-project/commit/5b36bf549c8c900d0f01451e02abd821f38d4538
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M clang/test/CXX/drs/dr6xx.cpp

  Log Message:
  -----------
  [clang][NFC] Tidy up extension warnings about `_Static_assert`

Some tests in `dr6xx.cpp` were using C11 `_Static_assert`, and were expecting extension warnings in C++98 mode because of that. This is noise, and we can do better than that.


  Commit: 8d8502a1b6e4e2b775d16be456f6b5ee544dcc55
      https://github.com/llvm/llvm-project/commit/8d8502a1b6e4e2b775d16be456f6b5ee544dcc55
  Author: Hsiangkai Wang <hsiangkai.wang at arm.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
    M mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
    M mlir/test/Target/SPIRV/decorations.mlir

  Log Message:
  -----------
  [mlir][spirv] Add op decoration NoContraction (#88578)


  Commit: 37ebf2ae748f8cbfab756321e04fc7e8c86996a4
      https://github.com/llvm/llvm-project/commit/37ebf2ae748f8cbfab756321e04fc7e8c86996a4
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

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

  Log Message:
  -----------
  [ORC] Replace more KV loop variables with structured bindings.

Coding my way home: 4.42841S, 102.96190W


  Commit: 3cf8535dbf0bf5fafa99ea1f300e2384a7254fba
      https://github.com/llvm/llvm-project/commit/3cf8535dbf0bf5fafa99ea1f300e2384a7254fba
  Author: Phoebe Wang <phoebe.wang at intel.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/bfloat.ll
    M llvm/test/CodeGen/X86/concat-fpext-v2bf16.ll

  Log Message:
  -----------
  [X86][BF16] Improve vectorization of BF16 (#88486)

1. Move expansion to combineFP_EXTEND to help with small vectors;
2. Combine FP_ROUND to reduce fptrunc then fpextend after promotion;


  Commit: df9c00beea5be08fc47aaea58eae333fc6cbef33
      https://github.com/llvm/llvm-project/commit/df9c00beea5be08fc47aaea58eae333fc6cbef33
  Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
    M llvm/test/Transforms/CorrelatedValuePropagation/cond-at-use.ll
    M llvm/test/Transforms/CorrelatedValuePropagation/phi-common-val.ll

  Log Message:
  -----------
   [CVP] Use at-use info in `processBinOp` (#88523)

This patch uses `getConstantRangeAtUse` to infer nsw/nuw flags with
at-use info. It will enables more optimizations in InstCombine.

Compile-time impact:
http://llvm-compile-time-tracker.com/compare.php?from=a5ed14bc8e122fa5ac0aa81f8d8390931bd6b4e4&to=a83d3402b663439b91cb37a046fb7ac0220ba5c7&stat=instructions%3Au

Related issue: #87854


  Commit: 6d66db3890a18e3926a49cbfeb28e99c464cfcd5
      https://github.com/llvm/llvm-project/commit/6d66db3890a18e3926a49cbfeb28e99c464cfcd5
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/vec15-base.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/vec3-base.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/vec3-calls.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/vec3-reorder-reshuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/odd_store.ll
    M llvm/test/Transforms/SLPVectorizer/X86/vec3-base.ll
    M llvm/test/Transforms/SLPVectorizer/X86/vec3-calls.ll
    M llvm/test/Transforms/SLPVectorizer/X86/vec3-gather-some-loads.ll
    M llvm/test/Transforms/SLPVectorizer/X86/vec3-reorder-reshuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/vect_copyable_in_binops.ll

  Log Message:
  -----------
  [SLP] Initial vectorization of non-power-of-2 ops. (#77790)

This patch enables vectorization for non-power-of-2 VFs. Initially only
VFs where adding 1 makes the VF a power-of-2, i.e. we can still make
relatively effective use of the vectors.

It relies on the existing target cost-models to return accurate costs
for
non-power-of-2 vectors. I checked mostly AArch64 and X86 and
there the costs seem reasonable for the costs I checked, although
I expect there will be a need to refine both the cost-models and
lowering
to make most effective use of non-power-of-2 SLP vectorization.

Note that re-ordering and shuffling is not implemented for nodes
requiring padding yet to keep the initial implementation simpler.

The feature is guarded by a new flag, off by defaul for now.

PR: https://github.com/llvm/llvm-project/pull/77790


  Commit: 11f22f1a963ab3c8949cb723a63c07d7a409c8a8
      https://github.com/llvm/llvm-project/commit/11f22f1a963ab3c8949cb723a63c07d7a409c8a8
  Author: Eric <eric at efcs.ca>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M libcxx/benchmarks/CMakeLists.txt
    A libcxx/benchmarks/shared_mutex_vs_mutex.bench.cpp
    M libcxx/src/include/tzdb/tzdb_list_private.h

  Log Message:
  -----------
  [tzdb] Replace shared_mutex with mutex. (#87929)

The overhead of taking a std::mutex is much lower than taking a reader
lock on a shared mutex, even under heavy contention.

The benefit of shared_mutex only occurs as the amount of
time spent in the critical sections grows large enough.

In our case all we do is read a pointer and return the lock.
As a result, using a shared lock can be ~50%-100% slower

Here are the results for the provided benchmark on my machine:

```
2024-04-07T12:48:51-04:00
Running ./libcxx/benchmarks/shared_mutex_vs_mutex.libcxx.out
Run on (12 X 400 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x6)
  L1 Instruction 32 KiB (x6)
  L2 Unified 1024 KiB (x6)
  L3 Unified 32768 KiB (x1)
Load Average: 2.70, 2.70, 1.63
---------------------------------------------------------------------
Benchmark                           Time             CPU   Iterations
---------------------------------------------------------------------
BM_shared_mutex/threads:1        13.9 ns         13.9 ns     50533700
BM_shared_mutex/threads:2        34.5 ns         68.9 ns      9957784
BM_shared_mutex/threads:4        38.4 ns          137 ns      4987772
BM_shared_mutex/threads:8        51.1 ns          358 ns      1974160
BM_shared_mutex/threads:32       57.1 ns          682 ns      1043648
BM_mutex/threads:1               5.54 ns         5.53 ns    125867422
BM_mutex/threads:2               15.5 ns         30.9 ns     21830116
BM_mutex/threads:4               15.4 ns         57.2 ns     12136920
BM_mutex/threads:8               19.3 ns          140 ns      4997080
BM_mutex/threads:32              20.8 ns          252 ns      2859808
```


  Commit: 9931e7efc6505002e866ee553af5d812123c22f5
      https://github.com/llvm/llvm-project/commit/9931e7efc6505002e866ee553af5d812123c22f5
  Author: Hristo Hristov <hghristov.rmm at gmail.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M libcxx/docs/Status/Cxx20Papers.csv
    M libcxx/docs/Status/SpaceshipPapers.csv

  Log Message:
  -----------
  [libc++][spaceship][NFC] P0905R1: Symmetry for spaceship - mark as implemented (#87871)

Implemented: https://wg21.link/P0905R1 in
0913ca197855626c93fdae4184ae80ff5a26503a
- https://eel.is/c++draft/cmp.weakeq (Removed in
https://wg21.link/P1959R0)
- https://eel.is/c++draft/cmp.strongeq (Removed in
https://wg21.link/P1959R0)
- https://eel.is/c++draft/cmp.partialord
-
https://github.com/llvm/llvm-project/blob/4abb722ffa7fcf809faa4a479fdf2f78c685b351/libcxx/include/__compare/ordering.h#L101
- https://eel.is/c++draft/cmp.weakord
-
https://github.com/llvm/llvm-project/blob/4abb722ffa7fcf809faa4a479fdf2f78c685b351/libcxx/include/__compare/ordering.h#L173
- https://eel.is/c++draft/cmp.strongord
-
https://github.com/llvm/llvm-project/blob/4abb722ffa7fcf809faa4a479fdf2f78c685b351/libcxx/include/__compare/ordering.h#L250

References:
- https://wg21.link/P1959R0 - Remove `std::weak_equality` and
`std::strong_equality`


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

  Changed paths:
    M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/chrono/TestDataFormatterLibcxxChrono.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/chrono/main.cpp

  Log Message:
  -----------
  [lldb][libc++] Adds local_t clock data formatters. (#88178)


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

  Changed paths:
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp

  Log Message:
  -----------
  [lldb] Fixes comment typos.


  Commit: 0412a8651aa6cbdd697e904a758e0f95e6635cee
      https://github.com/llvm/llvm-project/commit/0412a8651aa6cbdd697e904a758e0f95e6635cee
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M clang/docs/LanguageExtensions.rst

  Log Message:
  -----------
  [clang] Add missing documentation entry for `__is_pointer_interconvertible_base_of()`


  Commit: 6704faf6f8a26c21c71fd0efad6af6a8d6ee52b4
      https://github.com/llvm/llvm-project/commit/6704faf6f8a26c21c71fd0efad6af6a8d6ee52b4
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/X86/trunc-store-value-ty-not-power-of-2.ll

  Log Message:
  -----------
  [SLP] Use StoreTy to compute min VF.

This ensures that MinVF is a power-of-2, even if ValueTy's width is
not a power-of-2.

This should fix a number of buildbot failures with X86 bootstrapping.


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

  Changed paths:
    M libcxx/CMakeLists.txt
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/test/tools/CMakeLists.txt
    M libcxx/test/tools/clang_tidy_checks/CMakeLists.txt
    M libcxx/utils/ci/buildkite-pipeline.yml
    M libcxx/utils/ci/run-buildbot

  Log Message:
  -----------
  [libc++][CMake] Removes LIBCXX_ENABLE_CLANG_TIDY. (#85794)

The clang-tidy selection in CMake was refactored in
https://github.com/llvm/llvm-project/pull/81362. During review it was
suggested to remove this CMake option.


  Commit: f6ca37bf1809b2fa8f6615d4a30eadf8f479c700
      https://github.com/llvm/llvm-project/commit/f6ca37bf1809b2fa8f6615d4a30eadf8f479c700
  Author: paperchalice <liujunchang97 at outlook.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/MachineModuleInfo.cpp
    M llvm/unittests/CodeGen/PassManagerTest.cpp

  Log Message:
  -----------
  [NewPM] Set diagnostic handler in `MachineModuleAnalysis` (#88229)

`setDiagnosticHandler` is idempotent.


  Commit: 844b532713986999aa1ffed0883eff2d1339ec7a
      https://github.com/llvm/llvm-project/commit/844b532713986999aa1ffed0883eff2d1339ec7a
  Author: Andreas Jonson <andjo403 at hotmail.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/FunctionComparator.cpp
    A llvm/test/Transforms/MergeFunc/call-and-invoke-with-ranges-attr.ll

  Log Message:
  -----------
  [MergeFunc]  Handle ConstantRange attributes (#88584)

It is possible to update
[AttributeImpl::operator<](https://github.com/andjo403/llvm-project/blob/a9da350aadfb5c86d36ae18398471558b22c1309/llvm/lib/IR/Attributes.cpp#L744)
instead but feels strange to say that a range is less then an other
range.


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

  Changed paths:
    M libcxx/include/__algorithm/sort.h

  Log Message:
  -----------
  [libc++] Marks a variable const. (#88562)

This removes a TODO from the code base.


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

  Changed paths:
    M libcxx/include/__system_error/errc.h
    M libcxx/include/cerrno
    R libcxx/test/std/depr.cerro/cerrno.syn.verify.cpp

  Log Message:
  -----------
  [libc++] Undeprecate POSIX STREAM macros. (#88296)

LWG3869 Deprecate std::errc constants related to UNIX STREAMS

deprecates the POSIX macros ENODATA, ENOSR, ENOSTR, and ETIME. These
were deprecated in libc++ in
https://github.com/llvm/llvm-project/pull/80542. Based on the post
commit feedback the macro are no longer deprecated. Instead libc++
leaves the deprecation to the provider of errno.h.

---------

Co-authored-by: Hristo Hristov <zingam at outlook.com>
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>


  Commit: cbfcfdf75e9939bc47ac7a7c11d2122a6ad426ed
      https://github.com/llvm/llvm-project/commit/cbfcfdf75e9939bc47ac7a7c11d2122a6ad426ed
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

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

  Log Message:
  -----------
  [clang][NFC] Add a test for CWG2254 to `is_pointer_interconvertible_base_of` tests

Resolution of that issue makes _any_ base class subobject interconvertible with the containing object, not just the first one.


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

  Changed paths:
    M libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp

  Log Message:
  -----------
  [libc++][TZDZ] Validates the database version.

It seems one of the tests requires a very recent timezone database. Skip
the test when the database is older.


  Commit: 61f1f1300254e91334404f0d22e75e96f0d98a85
      https://github.com/llvm/llvm-project/commit/61f1f1300254e91334404f0d22e75e96f0d98a85
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__config
    A libcxx/include/__debug_utils/sanitizers.h
    M libcxx/include/__memory/allocator_traits.h
    M libcxx/include/deque
    M libcxx/include/module.modulemap
    M libcxx/include/string
    M libcxx/include/vector

  Log Message:
  -----------
  [libc++][NFC] Move basic ASan annotation functions into a utility header (#87220)


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

  Changed paths:
    M libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp

  Log Message:
  -----------
  [libc++][TZDB] Removes test_indian_kerguelen test.

The work-around in 26852565a5f609e6b466f43c2f690ce3047d04c7 didn't fix
the CI. Since the entire local database is compared with the libc++
implementation in a separate this this change does not remove coverage.


  Commit: fad37526a3ea7d669af621342968029085862281
      https://github.com/llvm/llvm-project/commit/fad37526a3ea7d669af621342968029085862281
  Author: Edwin Vane <revane at google.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/check_clang_tidy.py

  Log Message:
  -----------
  [clang-tidy] Export fixes from check_clang_tidy.py (#88186)

Makes it possible to export fixes from running llvm-lit on a clang-tidy
test. To enable, modify the RUN invocation directly in the test with the
new -export flag. llvm-lit will report the test passed and fixes can be
found in the file specified to the -export flag.


  Commit: ef9446bd2d362ec90cd681ae59463d16bf671fe8
      https://github.com/llvm/llvm-project/commit/ef9446bd2d362ec90cd681ae59463d16bf671fe8
  Author: Enna1 <xumingjie.enna1 at bytedance.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

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

  Log Message:
  -----------
  [GVN] lazily update dominator tree when merge unconditional branches in function (#88477)

With this change, the wall time for of GVN pass decreased from
873,745.492 ms to 367,375.304 ms in an our internal testcase.


  Commit: 342aa3eb23992ad742d22ef0e0d8821a9b29de3e
      https://github.com/llvm/llvm-project/commit/342aa3eb23992ad742d22ef0e0d8821a9b29de3e
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-13 (Sat, 13 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
    A llvm/test/CodeGen/RISCV/rvv/pr88576.ll

  Log Message:
  -----------
  [LegalizeTypes][RISCV] Support scalable vectors in SplitVecRes_BITCAST/SplitVecOp_BITCAST. (#88590)

Instead of bitcasting to a scalar integer, try to split the other vector
type that is legal. We already handle the case where both types need to
be split.

Fixes #88576


  Commit: 09327efdf0f02c4f865a4536db96cac539bb1c01
      https://github.com/llvm/llvm-project/commit/09327efdf0f02c4f865a4536db96cac539bb1c01
  Author: Chris Copeland <chris at chrisnc.net>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/AttrDocs.td

  Log Message:
  -----------
  [clang][docs] fix whitespace in AttrDocs.td (#88631)

Noticed this failure while working on a different change:
https://buildkite.com/llvm-project/clang-ci/builds/15553#018ed1bb-923a-48b5-9788-e8b6d3827aba
Seems to be introduced by #88448.


  Commit: c6f9c84e498ee05a812511ae969773ff166fd25e
      https://github.com/llvm/llvm-project/commit/c6f9c84e498ee05a812511ae969773ff166fd25e
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M clang/include/clang/AST/DeclBase.h
    M clang/lib/AST/DeclBase.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp

  Log Message:
  -----------
  [Clang] Reduce the size of Decl and classes derived from it (#87361)

Class | Old size (in bytes) | New size (in bytes)

----------------------------------|---------------------|--------------------
Decl                              | 40                  | 32
AccessSpecDecl                    | 40                  | 40
BlockDecl                         | 128                 | 120
CapturedDecl                      | 88                  | 80
EmptyDecl                         | 40                  | 32
ExportDecl                        | 80                  | 72
ExternCContextDecl                | 72                  | 64
FileScopeAsmDecl                  | 56                  | 48
FriendDecl                        | 64                  | 56
FriendTemplateDecl                | 64                  | 64
ImplicitConceptSpecializationDecl | 40                  | 40
ImportDecl                        | 56                  | 48
LifetimeExtendedTemporaryDecl     | 72                  | 64
LinkageSpecDecl                   | 80                  | 72
NamedDecl                         | 48                  | 40
ObjCPropertyImplDecl              | 96                  | 88
PragmaCommentDecl                 | 40                  | 40
PragmaDetectMismatchDecl          | 48                  | 40
RequiresExprBodyDecl              | 72                  | 64
StaticAssertDecl                  | 64                  | 56
TopLevelStmtDecl                  | 88                  | 80
TranslationUnitDecl               | 104                 | 96
BaseUsingDecl                     | 56                  | 48
UsingDecl                         | 88                  | 80
UsingEnumDecl                     | 72                  | 64
HLSLBufferDecl                    | 96                  | 88
LabelDecl                         | 80                  | 72
NamespaceAliasDecl                | 96                  | 88
NamespaceDecl                     | 112                 | 104
ObjCCompatibleAliasDecl           | 56                  | 48
ObjCContainerDecl                 | 88                  | 80
ObjCMethodDecl                    | 136                 | 128
ObjCPropertyDecl                  | 128                 | 120
TemplateDecl                      | 64                  | 56
BuiltinTemplateDecl               | 72                  | 64
TypeDecl                          | 64                  | 56
UnresolvedUsingIfExistsDecl       | 48                  | 40
UsingDirectiveDecl                | 88                  | 80
UsingPackDecl                     | 64                  | 56
UsingShadowDecl                   | 80                  | 72
ValueDecl                         | 56                  | 48

When parsing libc++'s `<string>` header the used memory is reduced from
42.8MB to 42.5MB.


  Commit: d48d6ba9477aa380cd5a71f899d3cb6d629f175b
      https://github.com/llvm/llvm-project/commit/d48d6ba9477aa380cd5a71f899d3cb6d629f175b
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M clang/lib/Sema/SemaExprCXX.cpp

  Log Message:
  -----------
  [clang][NFC] Factor out VLA checks in type traits (#88646)

This is a follow-up to #88473 suggested by @cor3ntin in
https://github.com/llvm/llvm-project/pull/88473#discussion_r1562198117.


  Commit: ed06b847d4e77d0b81fa6b095366bb070db57846
      https://github.com/llvm/llvm-project/commit/ed06b847d4e77d0b81fa6b095366bb070db57846
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M clang/include/clang/AST/DeclBase.h
    M clang/lib/AST/DeclBase.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp

  Log Message:
  -----------
  Revert "[Clang] Reduce the size of Decl and classes derived from it" (#88654)

Reverts llvm/llvm-project#87361

On 32 bit platforms there is only a single bit available in the
`DeclCtx`, resulting in an assertion failure.


  Commit: ef164cee90477e294ff692209b4cf97a0e1958ed
      https://github.com/llvm/llvm-project/commit/ef164cee90477e294ff692209b4cf97a0e1958ed
  Author: Sirraide <aeternalmail at gmail.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M clang/docs/LanguageExtensions.rst
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/Decl.h
    M clang/include/clang/AST/DeclBase.h
    M clang/include/clang/Basic/DiagnosticParseKinds.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/AST/ASTImporter.cpp
    M clang/lib/AST/Decl.cpp
    M clang/lib/AST/DeclPrinter.cpp
    M clang/lib/AST/JSONNodeDumper.cpp
    M clang/lib/AST/ODRHash.cpp
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/lib/Frontend/InitPreprocessor.cpp
    M clang/lib/Parse/ParseCXXInlineMethods.cpp
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/lib/Parse/Parser.cpp
    M clang/lib/Sema/SemaCast.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    A clang/test/AST/ast-dump-cxx2c-delete-with-message.cpp
    A clang/test/AST/ast-print-cxx2c-delete-with-message.cpp
    M clang/test/Lexer/cxx-features.cpp
    M clang/test/PCH/cxx2a-defaulted-comparison.cpp
    A clang/test/Parser/cxx2c-delete-with-message.cpp
    A clang/test/SemaCXX/cxx2c-delete-with-message.cpp
    M clang/www/cxx_status.html

  Log Message:
  -----------
  [Clang] [C++26] Implement P2573R2: `= delete("should have a reason");` (#86526)

This implements support for the `= delete("message")` syntax that was
only just added to C++26
([P2573R2](https://isocpp.org/files/papers/P2573R2.html#proposal-scope)).


  Commit: 8891fd5acbe441d24a1734aa144f3f3dca075620
      https://github.com/llvm/llvm-project/commit/8891fd5acbe441d24a1734aa144f3f3dca075620
  Author: Kai Sasaki <lewuathe at gmail.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

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

  Log Message:
  -----------
  [mlir][complex] Fastmath flag support for complex.tanh (#88571)


  Commit: 6c2cc8240e11721cac466cfce89bc0f87a5019be
      https://github.com/llvm/llvm-project/commit/6c2cc8240e11721cac466cfce89bc0f87a5019be
  Author: David Green <david.green at arm.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

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

  Log Message:
  -----------
  [AArch64] Improve cost of non-zero lane splats

This adds a cost for non-zero lane splats, which is not included by default in
SK_Broadcast but can be handled by aarch64 dup lane instruction.


  Commit: 9b832b726c9c9bb0672c5f0912f6f131e3e27a10
      https://github.com/llvm/llvm-project/commit/9b832b726c9c9bb0672c5f0912f6f131e3e27a10
  Author: Hristo Hristov <hghristov.rmm at gmail.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx20.rst
    M libcxx/docs/Status/Cxx20Papers.csv
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/docs/UsingLibcxx.rst
    M libcxx/include/__memory/shared_ptr.h
    M libcxx/include/memory
    M libcxx/modules/std/memory.inc
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_compare_exchange_strong.depr_in_cxx20..verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_compare_exchange_strong_explicit.depr_in_cxx20.verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_compare_exchange_weak.depr_in_cxx20..verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_compare_exchange_weak_explicit.depr_in_cxx20..verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_exchange.depr_in_cxx20..verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_exchange_explicit.verify.depr_in_cxx20..cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_is_lock_free.depr_in_cxx20..verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_load.depr_in_cxx20..verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_load_explicit.depr_in_cxx20..verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_store.depr_in_cxx20..verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_store_explicit.depr_in_cxx20..verify.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_strong.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_strong_explicit.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_weak.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_weak_explicit.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_exchange.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_exchange_explicit.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_is_lock_free.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_load.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_load_explicit.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_store.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_store_explicit.pass.cpp

  Log Message:
  -----------
  [libc++] Deprecated `shared_ptr` Atomic Access APIs as per P0718R2 & Implemented P2869R3: Remove Deprecated `shared_ptr` Atomic Access APIs from C++26 (#87111)

Implements https://wg21.link/P2869R4
Implements deprecations as per https://wg21.link/P0718R2


  Commit: 6e934b7cfba8e0c167d2b287a30dfc1b720397c1
      https://github.com/llvm/llvm-project/commit/6e934b7cfba8e0c167d2b287a30dfc1b720397c1
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M clang/lib/Sema/SemaCast.cpp

  Log Message:
  -----------
  [clang] Fix -Wunused-variable in SemaCast.cpp (NFC)

llvm-project/clang/lib/Sema/SemaCast.cpp:503:23:
error: unused variable 'Res' [-Werror,-Wunused-variable]
    OverloadingResult Res =
                      ^
1 error generated.


  Commit: 3c4d9559495e60dcbb431ab80d806096559a7486
      https://github.com/llvm/llvm-project/commit/3c4d9559495e60dcbb431ab80d806096559a7486
  Author: Jacques Pienaar <jpienaar at google.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M mlir/test/CAPI/CMakeLists.txt

  Log Message:
  -----------
  [mlir] Add lib to tests for shared build (#88574)

These resulted in link failures:

```
/usr/bin/ld:
tools/mlir/test/CAPI/CMakeFiles/mlir-capi-translation-test.dir/translation.c.o:
in function `main':
translation.c:(.text.main+0x58): undefined reference to
`LLVMContextCreate'
/usr/bin/ld: translation.c:(.text.main+0x9b): undefined reference to
`LLVMDumpModule'
/usr/bin/ld: translation.c:(.text.main+0xa3): undefined reference to
`LLVMDisposeModule'
/usr/bin/ld: translation.c:(.text.main+0xb3): undefined reference to
`LLVMContextDispose'
```

Found in mlir-hs. Not sure why this hasn't been flagged elsewhere.


  Commit: 7cfe73624780010ec81ca11c41ebbf214400abdd
      https://github.com/llvm/llvm-project/commit/7cfe73624780010ec81ca11c41ebbf214400abdd
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

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

  Log Message:
  -----------
  [clang] Fix name conflict with `sys/mac.h` on AIX (#88644)

Fixes clang-ppc64-aix bot failure after #88559
(0a6f6df5b0c3d0f2a42f013bf5cafb9b5020dcac)
https://lab.llvm.org/buildbot/#/builders/214/builds/11887

---------

Co-authored-by: Joseph Huber <huberjn at outlook.com>


  Commit: d5c654b5b7c8bb81affdc69976ef9bc5ad5b4302
      https://github.com/llvm/llvm-project/commit/d5c654b5b7c8bb81affdc69976ef9bc5ad5b4302
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M libcxx/include/algorithm
    M libcxx/include/bit
    M libcxx/include/charconv
    M libcxx/include/chrono
    M libcxx/include/compare
    M libcxx/include/concepts
    M libcxx/include/coroutine
    M libcxx/include/module.modulemap
    M libcxx/include/streambuf
    M libcxx/test/libcxx/algorithms/half_positive.pass.cpp
    M libcxx/test/libcxx/numerics/bit.ops.pass.cpp
    M libcxx/test/libcxx/time/convert_to_tm.pass.cpp
    M libcxx/test/libcxx/transitive_includes/cxx03.csv
    M libcxx/test/libcxx/transitive_includes/cxx11.csv
    M libcxx/test/libcxx/transitive_includes/cxx14.csv
    M libcxx/test/libcxx/transitive_includes/cxx17.csv
    M libcxx/test/libcxx/transitive_includes/cxx20.csv
    M libcxx/test/libcxx/transitive_includes/cxx23.csv
    M libcxx/test/libcxx/transitive_includes/cxx26.csv

  Log Message:
  -----------
  [libc++][RFC] Only include what is required by-version in the umbrella headers (#83740)

This is a relatively low cost way of reducing the include sizes in older
language modes compared to the effect. For example, in C++14 mode the
include time of `<algorithm>` is reduced from 198ms to 127ms.


  Commit: 00162162dd853795c532afa5dec4dc4e798d4a4b
      https://github.com/llvm/llvm-project/commit/00162162dd853795c532afa5dec4dc4e798d4a4b
  Author: YunQiang Su <syq at debian.org>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M compiler-rt/cmake/Modules/CompilerRTUtils.cmake

  Log Message:
  -----------
  CompilerRT: Normalize COMPILER_RT_DEFAULT_TARGET_TRIPLE (#88407)

If LLVM is configured with -DLLVM_DEFAULT_TARGET_TRIPLE, and the
argument is not normalized, such as Debian-style vendor-less triple,
clang will try to find libclang_rt in lib/<normalized_triple>, while
libclang_rt is placed into lib/<triple_arg>.

Let's also place libclang_rt into lib/<normalized_triple>.


  Commit: 5927492e8e68c1ee5a0d84cf6c402a900aac4a3c
      https://github.com/llvm/llvm-project/commit/5927492e8e68c1ee5a0d84cf6c402a900aac4a3c
  Author: YunQiang Su <syq at debian.org>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M compiler-rt/cmake/Modules/CompilerRTUtils.cmake

  Log Message:
  -----------
  Revert "CompilerRT: Normalize COMPILER_RT_DEFAULT_TARGET_TRIPLE" (#88663)

Reverts llvm/llvm-project#88407


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

  Changed paths:
    M llvm/include/llvm/TextAPI/Utils.h
    M llvm/lib/TextAPI/BinaryReader/DylibReader.cpp

  Log Message:
  -----------
  [TextAPI] Apply NFC code fixups (#88639)

* Remove unnecessary cast
* Annotate `#endif`


  Commit: 48e955496bee035121ebfe5a837ebcbc2ba8846c
      https://github.com/llvm/llvm-project/commit/48e955496bee035121ebfe5a837ebcbc2ba8846c
  Author: Marc Auberer <marc.auberer at chillibits.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M llvm/docs/requirements-hashed.txt
    M llvm/docs/requirements.txt

  Log Message:
  -----------
  [Docs] Update python dependencies for documentation (#87877)

This has no particular reason, but imo we should update dependencies
every now and then to reduce the gap if breaking changes happen
somewhere.


  Commit: 84ec2d3b38635dead7690f97f215ff4c473184f0
      https://github.com/llvm/llvm-project/commit/84ec2d3b38635dead7690f97f215ff4c473184f0
  Author: Maksim Levental <maksim.levental at gmail.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M .github/CODEOWNERS

  Log Message:
  -----------
  [mlir][python] add to CODEOWNERS (#88561)


  Commit: a5f54175dcf120180c3d91bbc13062bbf8f42f61
      https://github.com/llvm/llvm-project/commit/a5f54175dcf120180c3d91bbc13062bbf8f42f61
  Author: Zentrik <Zentrik at users.noreply.github.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp

  Log Message:
  -----------
  Include cmath to fix build error on mac os 10.14 (#88665)

This fixes #88664.


  Commit: 9f43a41db37253685c5ed428c215528eb92bbd43
      https://github.com/llvm/llvm-project/commit/9f43a41db37253685c5ed428c215528eb92bbd43
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M clang/test/Driver/linux-ld.c
    M clang/test/Driver/sanitizer-ld.c

  Log Message:
  -----------
  [Driver,test] Make Android runtime tests resisent to #87866 change

Suggested by YunQiang Su <syq at debian.org>


  Commit: 1693009679313282afbed38778dd3fad62641e1b
      https://github.com/llvm/llvm-project/commit/1693009679313282afbed38778dd3fad62641e1b
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M clang/lib/Driver/ToolChain.cpp
    M clang/test/Driver/arm-compiler-rt.c
    M clang/test/Driver/cl-link.c
    M clang/test/Driver/compiler-rt-unwind.c
    M clang/test/Driver/coverage-ld.c
    M clang/test/Driver/instrprof-ld.c
    M clang/test/Driver/linux-ld.c
    M clang/test/Driver/mingw-sanitizers.c
    M clang/test/Driver/msp430-toolchain.c
    M clang/test/Driver/print-libgcc-file-name-clangrt.c
    M clang/test/Driver/print-runtime-dir.c
    M clang/test/Driver/riscv32-toolchain-extra.c
    M clang/test/Driver/riscv32-toolchain.c
    M clang/test/Driver/riscv64-toolchain-extra.c
    M clang/test/Driver/riscv64-toolchain.c
    M clang/test/Driver/sanitizer-ld.c
    M clang/test/Driver/wasm-toolchain.c
    M clang/test/Driver/wasm-toolchain.cpp
    M clang/test/Driver/windows-cross.c
    M clang/test/Driver/zos-ld.c
    M flang/test/Driver/msvc-dependent-lib-flags.f90

  Log Message:
  -----------
  [Driver] Ensure ToolChain::LibraryPaths is not empty for non-Darwin

Follow-up to #81037.

ToolChain::LibraryPaths holds the new compiler-rt library directory
(e.g. `/tmp/Debug/lib/clang/19/lib/x86_64-unknown-linux-gnu`). However,
it might be empty when the directory does not exist (due to the `if
(getVFS().exists(P))` change in https://reviews.llvm.org/D158475).

If neither the old/new compiler-rt library directories exists, we would
suggest the undesired old compiler-rt file name:

```
% /tmp/Debug/bin/clang++ a.cc -fsanitize=memory -o a
ld.lld: error: cannot open /tmp/Debug/lib/clang/19/lib/linux/libclang_rt.msan-x86_64.a: No such file or directory
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
```

With this change, we will correctly suggest the new compiler-rt file name.

Fix #87150

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


  Commit: e8232c325f7c56c175b27a3538699c31519c8f5e
      https://github.com/llvm/llvm-project/commit/e8232c325f7c56c175b27a3538699c31519c8f5e
  Author: Andreas Jonson <andjo403 at hotmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/include/llvm/ADT/FoldingSet.h
    M llvm/test/Bitcode/attributes.ll

  Log Message:
  -----------
  [ADT] In FoldingSet calulation for APInt add bit width to avoid crash (#88635)

Multiple ranges attributes with the same lower and upper limit but
different bit width caused a crash.


  Commit: 8e4b0890a61088ae55b4bccbb59e5c5e10d28385
      https://github.com/llvm/llvm-project/commit/8e4b0890a61088ae55b4bccbb59e5c5e10d28385
  Author: wanglei <wanglei at loongson.cn>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
    M llvm/test/Transforms/CodeGenPrepare/LoongArch/splitgep.ll

  Log Message:
  -----------
  [LoongArch] Return true from shouldConsiderGEPOffsetSplit (#88371)

If not performing gep splits can prevent important optimizations, such
as preventing the element indices / member offsets from being         
(partially) folded into load/store instruction immediates.


  Commit: dd4b40ffe3bd9da2e3d998b674305ae1f612ad51
      https://github.com/llvm/llvm-project/commit/dd4b40ffe3bd9da2e3d998b674305ae1f612ad51
  Author: paperchalice <liujunchang97 at outlook.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Passes/CodeGenPassBuilder.h
    M llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp

  Log Message:
  -----------
  [CodeGen] Let `CodeGenPassBuilder` know concrete target machine (#88614)

Many backends passes accept only `<Target>TargetMachine`, this can avoid
cast to derived type.


  Commit: 7476b412d46322f52a7f58ad1d94a4398df941e2
      https://github.com/llvm/llvm-project/commit/7476b412d46322f52a7f58ad1d94a4398df941e2
  Author: Chen Zheng <czhengsz at cn.ibm.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M llvm/CODE_OWNERS.TXT

  Log Message:
  -----------
  [NFC] add myself as the code owner of the PowerPC target

Norminated by Nemanja in https://discourse.llvm.org/t/powerpc-code-owner/78142


  Commit: a9d7ad23fa625e7f52f2641dbb0f90e8ea12bebf
      https://github.com/llvm/llvm-project/commit/a9d7ad23fa625e7f52f2641dbb0f90e8ea12bebf
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/test/Transforms/InstCombine/rotate.ll

  Log Message:
  -----------
  [InstCombine] Relax shamt assertion in fsh fold

Allow the result of the comparison to contain poison elements,
which happens if one of the elements in the input vector is
poison.


  Commit: 9c3475acc9b11d08f0e0b3e230429e9f552d5f80
      https://github.com/llvm/llvm-project/commit/9c3475acc9b11d08f0e0b3e230429e9f552d5f80
  Author: Billy Zhu <billyzhu at modular.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M mlir/lib/Target/LLVMIR/DebugTranslation.cpp
    M mlir/test/Target/LLVMIR/llvmir-debug.mlir

  Log Message:
  -----------
  [MLIR][LLVM] Fix recursive DI type export memory leak (#88122)

Followup to discussion
https://github.com/llvm/llvm-project/pull/87295#discussion_r1556016667.

The export cache should not cache temporary nodes.


  Commit: 37b7207651b44743909a427b5509bed5e6c21b59
      https://github.com/llvm/llvm-project/commit/37b7207651b44743909a427b5509bed5e6c21b59
  Author: Allen <zhongyunde at huawei.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/test/Transforms/SimplifyCFG/switch_mask.ll

  Log Message:
  -----------
  [SimplifyCFG] Fix crash when there is unreachable large index (#88616)

The large case index out of scope is dead code, but it is still be
created for TableContents in SwitchLookupTable::SwitchLookupTable,
so make sure the table size after growing should not get smaller.

Fix https://github.com/llvm/llvm-project/issues/88607


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

  Changed paths:
    M llvm/test/Transforms/InstCombine/known-bits.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for `computeKnownBits` of `llvm.vector.reduce.{or,and}`; NFC


  Commit: 6063e3c40867e9b9865aee326ff36cb2ebbcf939
      https://github.com/llvm/llvm-project/commit/6063e3c40867e9b9865aee326ff36cb2ebbcf939
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/known-bits.ll

  Log Message:
  -----------
  [ValueTracking] Implement `computeKnownBits` for `llvm.vector.reduce.{or,and}`


  Commit: 44b1523b9a4e7e21677395e75352d9a62efe2790
      https://github.com/llvm/llvm-project/commit/44b1523b9a4e7e21677395e75352d9a62efe2790
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/InstCombine/known-bits.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for `computeKnownBits` of `llvm.vector.reduce.xor`; NFC


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

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/known-bits.ll

  Log Message:
  -----------
  [ValueTracking] Implement `computeKnownBits` for `llvm.vector.reduce.xor`


  Commit: 3921dffac29d8ea1c07bc6a7253876247a6eb1a3
      https://github.com/llvm/llvm-project/commit/3921dffac29d8ea1c07bc6a7253876247a6eb1a3
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M llvm/test/Transforms/InstSimplify/known-non-zero.ll

  Log Message:
  -----------
  [ValueTracking] Add tests for `isKnownNonZero` of `llvm.vector.reduce.or`; NFC


  Commit: 1e16a35fbcc6b21d1bee597c7e76f2444b7000e5
      https://github.com/llvm/llvm-project/commit/1e16a35fbcc6b21d1bee597c7e76f2444b7000e5
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-04-14 (Sun, 14 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstSimplify/known-non-zero.ll

  Log Message:
  -----------
  [ValueTracking] Implement `isKnownNonZero` for `llvm.vector.reduce.or`

Closes #88320


  Commit: f811d7b50957b801788d7b171ddeb25b1fda415a
      https://github.com/llvm/llvm-project/commit/f811d7b50957b801788d7b171ddeb25b1fda415a
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M clang/include/clang/CodeGen/CodeGenAction.h
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/Frontend/FrontendOptions.h
    M clang/lib/CodeGen/CodeGenAction.cpp
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Frontend/FrontendActions.cpp
    A clang/test/Driver/module-fgen-reduced-bmi.cppm
    A clang/test/Modules/modules-reduced-bmi.cppm

  Log Message:
  -----------
  [C++20] [Modules] Introduce -fexperimental-modules-reduced-bmi (#85050)

This is the driver part of
https://github.com/llvm/llvm-project/pull/75894.

This patch introduces '-fexperimental-modules-reduced-bmi' to enable
generating the reduced BMI.

This patch did:
- When `-fexperimental-modules-reduced-bmi` is specified but
`--precompile` is not specified for a module unit, we'll skip the
precompile phase to avoid unnecessary two-phase compilation phases. Then
if `-c` is specified, we will generate the reduced BMI in CodeGenAction
as a by-product.
- When `-fexperimental-modules-reduced-bmi` is specified and
`--precompile` is specified, we will generate the reduced BMI in
GenerateModuleInterfaceAction as a by-product.
- When `-fexperimental-modules-reduced-bmi` is specified for a
non-module unit. We don't do anything nor try to give a warn. This is
more user friendly so that the end users can try to test and experiment
with the feature without asking help from the build systems.

The core design idea is that users should be able to enable this easily
with the existing cmake mechanisms.

The future plan for the flag is:
- Add this to clang19 and make it opt-in for 1~2 releases. It depends on
the testing feedback to decide how long we like to make it opt-in.
- Then we can announce the existing BMI generating may be deprecated and
suggesting people (end users or build systems) to enable this for 1~2
releases.
- Finally we will enable this by default. When that time comes, the term
`BMI` will refer to the reduced BMI today and the existing BMI will only
be meaningful to build systems which loves to support two phase
compilations.

I'll send release notes and document in seperate commits after this get
landed.


  Commit: c7902d87a5a050b816edfe99e7e093ae63f4e564
      https://github.com/llvm/llvm-project/commit/c7902d87a5a050b816edfe99e7e093ae63f4e564
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  [InstCombine] Add test for isKnownNonZero() undef miscompile (NFC)


  Commit: 52a1998f15ab0e5b9ff7afa8b92cc714463d5dd8
      https://github.com/llvm/llvm-project/commit/52a1998f15ab0e5b9ff7afa8b92cc714463d5dd8
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/add.ll
    M llvm/test/Transforms/InstSimplify/vec-cmp.ll

  Log Message:
  -----------
  [ValueTracking] Don't accept undef in isKnownNonZero()

As the undef can be replaced with a zero value, this is not legal
in the general case. We can only allow poison values. This matches
what the other ValueTracking helpers like computeKnownBits() do.


  Commit: 7177dc2ef7f3a50a1d8b892d7bd298f3d52a1aab
      https://github.com/llvm/llvm-project/commit/7177dc2ef7f3a50a1d8b892d7bd298f3d52a1aab
  Author: fengfeng <153487255+fengfeng09 at users.noreply.github.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    A llvm/test/CodeGen/AVR/base-with-add-like-constant-offset.ll

  Log Message:
  -----------
  [SDAG] Apply or-disjoint in SelectionDAG::isBaseWithConstantOffset (#88493)

Signed-off-by: feng.feng <feng.feng at iluvatar.com>


  Commit: 6b80e2fef5b0e99f81d1f4a7322b110f9ead3521
      https://github.com/llvm/llvm-project/commit/6b80e2fef5b0e99f81d1f4a7322b110f9ead3521
  Author: laichunfeng <laichunfeng at tencent.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/MachineScheduler.cpp
    M llvm/test/CodeGen/LoongArch/atomicrmw-uinc-udec-wrap.ll
    M llvm/test/CodeGen/LoongArch/vector-fp-imm.ll
    M llvm/test/CodeGen/RISCV/atomicrmw-uinc-udec-wrap.ll
    M llvm/test/CodeGen/RISCV/bfloat-convert.ll
    M llvm/test/CodeGen/RISCV/calling-conv-lp64-lp64f-lp64d-common.ll
    M llvm/test/CodeGen/RISCV/double-convert.ll
    M llvm/test/CodeGen/RISCV/float-convert.ll
    M llvm/test/CodeGen/RISCV/half-convert.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-shuffles.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert-subvector.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-fp-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-int-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vpscatter-sdnode.ll

  Log Message:
  -----------
  [mi-sched] Suppress register pressure with i64. (#88256)

Machine scheduler will suppress register pressure when the scheduling
window is too small, but now it doesn't consider i64 register type,
and this MR extends it into i64 register type, so architecture like
RISCV64 that only supports i64 interger register will have the same
behavior like RISCV32.


  Commit: 2cc0c2104909558680409f8a8f39755936305e72
      https://github.com/llvm/llvm-project/commit/2cc0c2104909558680409f8a8f39755936305e72
  Author: Christian Sigg <csigg at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  [clang][bazel] Fix BUILD after f811d7b50957b801788d7b171ddeb25b1fda415a.


  Commit: 46131aaf616c5cd97df0ec376a7e6ba475e1913c
      https://github.com/llvm/llvm-project/commit/46131aaf616c5cd97df0ec376a7e6ba475e1913c
  Author: Mikhail Goncharov <goncharov.mikhail at gmail.com>
  Date:   2024-04-15 (Mon, 15 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/instantiate-using-decl.cpp
    M clang/test/SemaTemplate/ms-function-specialization-class-scope.cpp

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

This reverts commit aa80f3ec48419a73aafcc2ff947c6dd1e3734481.

See
https://github.com/llvm/llvm-project/pull/88311#issuecomment-2052291140.

There is a fix forward proposed but I am reverting this commit to fix
trunk.


  Commit: a71565d75e23fc28076aa5bf1c5cf4432623afc5
      https://github.com/llvm/llvm-project/commit/a71565d75e23fc28076aa5bf1c5cf4432623afc5
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/ARM/ARMISelLowering.h
    M llvm/lib/Target/ARM/ARMParallelDSP.cpp

  Log Message:
  -----------
  [ARM] Don't include IRBuilder.h in ARMISelLowering.h (NFC)

Just a forward declaration is sufficient.


  Commit: 302d0f3476c0fc68d796e7b8a0d4237121ec33fe
      https://github.com/llvm/llvm-project/commit/302d0f3476c0fc68d796e7b8a0d4237121ec33fe
  Author: David Green <david.green at arm.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    A llvm/test/Transforms/VectorCombine/AArch64/shuffletoidentity.ll

  Log Message:
  -----------
  [VectorCombine] Add some tests for converting shuffles to identities. NFC


  Commit: 07942987b58558a8bcb2cfb7d8bc3d46b1cb1d2b
      https://github.com/llvm/llvm-project/commit/07942987b58558a8bcb2cfb7d8bc3d46b1cb1d2b
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/docs/CommandGuide/llvm-objcopy.rst
    M llvm/docs/ReleaseNotes.rst
    M llvm/include/llvm/ObjCopy/CommonConfig.h
    M llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp
    M llvm/lib/ObjCopy/ELF/ELFObject.cpp
    A llvm/test/tools/llvm-objcopy/ELF/compress-sections-within-segment.s
    A llvm/test/tools/llvm-objcopy/ELF/compress-sections.s
    M llvm/test/tools/llvm-objcopy/ELF/decompress-sections.test
    M llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
    M llvm/tools/llvm-objcopy/ObjcopyOpts.td

  Log Message:
  -----------
  [llvm-objcopy] Add --compress-sections

--compress-sections is similar to --compress-debug-sections but applies
to arbitrary sections.

* `--compress-sections <section>=none`: decompress sections
* `--compress-sections <section>=[zlib|zstd]`: compress sections with zlib/zstd

Like `--remove-section`, the pattern is by default a glob, but a regex
when --regex is specified.

For `--remove-section` like options, `!` prevents matches and is not
dependent on ordering (see `ELF/wildcard-syntax.test`). Since
`--compress-sections a=zlib --compress-sections a=none` naturally allows
overriding, having an order-independent `!` would be confusing.
Therefore, `!` is disallowed.

Sections within a segment are effectively immutable. Report an error for
an attempt to (de)compress them. `SHF_ALLOC` sections in a relocatable
file can be compressed, but linkers usually reject them.

Note: Before this patch, a compressed relocation section is recognized
as a `RelocationSectionBase` as well and `removeSections` `!ToRemove(*ToRelSec)`
may incorrectly interpret a `CompressedSections` as `RelocationSectionBase`,
leading to ubsan failure for the new test. Fix this by setting
`OriginalFlags` in CompressedSection::CompressedSection.

Link: https://discourse.llvm.org/t/rfc-compress-arbitrary-sections-with-ld-lld-compress-sections/71674

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


  Commit: b79b6f9cf00e72b21f5629aa3c5d9c1786611ec9
      https://github.com/llvm/llvm-project/commit/b79b6f9cf00e72b21f5629aa3c5d9c1786611ec9
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M bolt/docs/BAT.md
    M bolt/include/bolt/Profile/BoltAddressTranslation.h
    M bolt/lib/Profile/BoltAddressTranslation.cpp
    M bolt/test/X86/bolt-address-translation.test

  Log Message:
  -----------
  [BOLT] Use offset deduplication for cold fragments

Apply deduplication for uniformity and BAT section size reduction.

Changes BAT section size to:
- large binary: 39541552 bytes (1.02x original),
- medium binary: 3828996 bytes (0.64x),
- small binary: 928 bytes (0.65x).

Test Plan: Updated bolt-address-translation.test

Reviewers: rafaelauler, dcci, ayermolo, JDevlieghere, maksfb

Reviewed By: maksfb

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


  Commit: f76808351677f4e361f2acd9c4b3f385901d37ef
      https://github.com/llvm/llvm-project/commit/f76808351677f4e361f2acd9c4b3f385901d37ef
  Author: Vyacheslav Levytskyy <vyacheslav.levytskyy at intel.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRV.h
    M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVInstrInfo.cpp
    M llvm/lib/Target/SPIRV/SPIRVInstrInfo.td
    M llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp
    M llvm/lib/Target/SPIRV/SPIRVPreLegalizer.cpp
    M llvm/lib/Target/SPIRV/SPIRVRegisterBankInfo.cpp
    M llvm/lib/Target/SPIRV/SPIRVRegisterBanks.td
    M llvm/lib/Target/SPIRV/SPIRVRegisterInfo.td
    M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.h
    A llvm/test/CodeGen/SPIRV/const-composite.ll
    A llvm/test/CodeGen/SPIRV/instructions/ret-type.ll
    A llvm/test/CodeGen/SPIRV/instructions/select-phi.ll
    M llvm/test/CodeGen/SPIRV/instructions/select.ll

  Log Message:
  -----------
  [SPIR-V] Update type inference and instruction selection (#88254)

This PR contains a series of fixes which are to improve type inference
and instruction selection.

Namely, it includes:
* fix OpSelect to support operands of a pointer type, according to the
SPIR-V specification (previously only integer/float/vectors of integer
or float were supported) -- a new test case is added and existing test
case is updated;
* fix TableGen typo's in definition of register classes and introduce a
new reg class that is a vector of pointers;
* fix usage of a machine function context when there is a need to switch
between different machine functions to infer/validate correct types;
* add usage of TypedPointerType instead of PointerType so that later
stages of type inference are able to distinguish pointer types by their
element types, effectively supporting hierarchy of pointer/pointee types
and avoiding more complicated recursive type matching on level of
machine instructions in favor of direct pointer comparison using LLVM's
`Type *` values;
* extracting detailed information about operand types using known type
rules for some llvm instructions (for instance, by deducing PHI's
operand pointee types if PHI's results type was deducted on previous
stages of type inference), and adding correspondent
`Intrinsic::spv_assign_ptr_type` to keep type info along consequent
passes,
* ensure that OpConstantComposite reuses a constant when it's already
created and available in the same machine function -- otherwise there is
a crash while building a dependency graph, the corresponding test case
is attached,
* implement deduction of function's return type for opaque pointers, a
new test case is attached,
* make 'emit intrinsics' a module pass to resolve function return types
over the module -- first types for all functions of the module must be
calculated, and only after that it's feasible to deduct function return
types on this earlier stage of translation.


  Commit: f7bf11cd8db29a178463f2a12b9f1589ecab64e2
      https://github.com/llvm/llvm-project/commit/f7bf11cd8db29a178463f2a12b9f1589ecab64e2
  Author: wanglei <wanglei at loongson.cn>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    A llvm/test/CodeGen/LoongArch/gep-imm.ll

  Log Message:
  -----------
  [LoongArch] Pre-commit test for #88694. NFC


  Commit: 06714e1bfe8999c0acb5c9b94b60690f7b9d2904
      https://github.com/llvm/llvm-project/commit/06714e1bfe8999c0acb5c9b94b60690f7b9d2904
  Author: Ramkumar Ramachandra <ram.ramachandra at arm.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/test/tools/llvm-readobj/ELF/ARM/attribute-big-endian.test
    M llvm/tools/llvm-readobj/ELFDumper.cpp

  Log Message:
  -----------
  llvm-readobj/ARM: activate big-endian attribute printing (#87806)

Activate attribute printing for big-endian encoding for ARM. The
supporting code already exists, and the patch is trivial.

Fixes #62400.


  Commit: 5fe146672d2b1c9f257a6ee045e0bc13fed1e504
      https://github.com/llvm/llvm-project/commit/5fe146672d2b1c9f257a6ee045e0bc13fed1e504
  Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    A llvm/test/Transforms/InstCombine/switch-select.ll

  Log Message:
  -----------
  [InstCombine] Simplify switch with selects (#84143)

An example from https://github.com/image-rs/image:
```
define void @test_ult_rhsc(i8 %x) {
  %val = add nsw i8 %x, -2
  %cmp = icmp ult i8 %val, 11
  %cond = select i1 %cmp, i8 %val, i8 6
  switch i8 %cond, label %bb1 [
  i8 0, label %bb2
  i8 10, label %bb3
  ]

bb1:
  call void @func1()
  unreachable
bb2:
  call void @func2()
  unreachable
bb3:
  call void @func3()
  unreachable
}
```

When `%cmp` evaluates to false, we can prove that the range of `%val` is
[11, umax]. Thus we can safely replace `%cond` with `%val` since both
`switch 6` and `switch %val` go to the default dest `%bb1`.

Alive2: https://alive2.llvm.org/ce/z/uSTj6w
Godbolt: https://godbolt.org/z/MGrG84bzr

This patch will benefit many rust applications and some C/C++
applications (e.g., cvc5).


  Commit: 28d28d58bedf413671859b959b7ba06bccc5066d
      https://github.com/llvm/llvm-project/commit/28d28d58bedf413671859b959b7ba06bccc5066d
  Author: David Green <david.green at arm.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
    M llvm/test/CodeGen/AArch64/lrint-conv-fp16.ll
    M llvm/test/CodeGen/AArch64/lrint-conv.ll
    M llvm/test/CodeGen/AArch64/vector-lrint.ll

  Log Message:
  -----------
  [AArch64][GlobalISel] Extend scalar lrint legalization. (#88360)

This extends the legalization of lrint, adding libcall support for
fp128. The old vector legal types were removed as they were not being
properly handled (vector lrint is a fairly new concept as far as I
understand). They can be re-added properly in a followup.


  Commit: 36230f90eef455b6af867ca7ad4ed25d00ad5d3b
      https://github.com/llvm/llvm-project/commit/36230f90eef455b6af867ca7ad4ed25d00ad5d3b
  Author: fengfeng <153487255+fengfeng09 at users.noreply.github.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    A llvm/test/CodeGen/X86/propagate-disjoint-in-shl-or.ll

  Log Message:
  -----------
  [SelectionDAG] Propagate Disjoint flag. (#88370)

Signed-off-by: feng.feng <feng.feng at iluvatar.com>


  Commit: 2347020e4ce62ee7c7378824dc6ad2b94917a638
      https://github.com/llvm/llvm-project/commit/2347020e4ce62ee7c7378824dc6ad2b94917a638
  Author: Dávid Ferenc Szabó <30732159+dfszabo at users.noreply.github.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp

  Log Message:
  -----------
  [GlobalISel] Fix fewerElementsVectorPhi to insert after G_PHIs (#87927)

Currently the inserted mergelike instructions will be inserted at the
location of the G_PHI. Seems like the behaviour was correct before, but
the rework done in https://reviews.llvm.org/D114198 forgot to include
the part which makes sure the instructions will be inserted after all
the G_PHIs.


  Commit: aa2741449c3609b2ae244d8d3f3e14ad16de72e4
      https://github.com/llvm/llvm-project/commit/aa2741449c3609b2ae244d8d3f3e14ad16de72e4
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/test/CodeGenCXX/module-funcs-from-imports.cppm

  Log Message:
  -----------
  Revert "[C++20] [Modules] Don't import non-inline function bodies even if it is marked as always_inline"

This reverts commit 1ecbab56dcbb78268c8d19af34a50591f90b12a0.

See the discussion in https://github.com/llvm/llvm-project/issues/86893.

The original commit receives too many complaints. Let's try to
workaround the issue to give better user experiences.


  Commit: 7740e933c41f07444ead12fd0417c5e53c6a4c1a
      https://github.com/llvm/llvm-project/commit/7740e933c41f07444ead12fd0417c5e53c6a4c1a
  Author: abidh <haqadeer at amd.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Transforms/Passes.h
    M flang/include/flang/Optimizer/Transforms/Passes.td
    M flang/include/flang/Tools/CLOptions.inc
    R flang/lib/Optimizer/Transforms/AddDebugFoundation.cpp
    A flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
    M flang/lib/Optimizer/Transforms/CMakeLists.txt
    M flang/test/Driver/mlir-debug-pass-pipeline.f90
    M flang/test/Transforms/debug-line-table-existing.fir
    M flang/test/Transforms/debug-line-table-inc-file.fir
    M flang/test/Transforms/debug-line-table-inc-same-file.fir
    M flang/test/Transforms/debug-line-table.fir

  Log Message:
  -----------
  [flang] Rename AddDebugFoundation to AddDebugInfo (NFC) (#88526)

As discussed in PR 86939, this PR renames the pass and updates the
references. The actual changes for debug info will come in separate PRs.


  Commit: 8ddaf750746d7f9b5f7e878870b086edc0f55326
      https://github.com/llvm/llvm-project/commit/8ddaf750746d7f9b5f7e878870b086edc0f55326
  Author: Johannes Reifferscheid <jreiffers at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  Fix rsqrt inaccuracies. (#88691)

The current lowering has issues with large/subnormal values. This ports
XLA's lowering and was verified using XLA's test suite and the
MLIR-based emitters.


  Commit: f2923e31b64907df44ae641114228ad6e283627f
      https://github.com/llvm/llvm-project/commit/f2923e31b64907df44ae641114228ad6e283627f
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/OpenMP/OpenMPInterfaces.h
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOpsInterfaces.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/test/Dialect/OpenMP/invalid.mlir

  Log Message:
  -----------
  [MLIR][OpenMP] Introduce the LoopWrapperInterface (#87232)

This patch defines a common interface to be shared by all OpenMP loop
wrapper operations. The main restrictions these operations must meet in
order to be considered a wrapper are:

- They contain a single region.
- Their region contains a single block.
- Their block only contains another loop wrapper or `omp.loop_nest` and
a terminator.

The new interface is attached to the `omp.parallel`, `omp.wsloop`,
`omp.simdloop`, `omp.distribute` and `omp.taskloop` operations. It is
not currently enforced that these operations meet the wrapper
restrictions, which would break existing OpenMP loop-generating code.
Rather, this will be introduced progressively in subsequent patches.


  Commit: c7bd284dc3ff21a5a14b4ccbbfa1988de8723c33
      https://github.com/llvm/llvm-project/commit/c7bd284dc3ff21a5a14b4ccbbfa1988de8723c33
  Author: shamithoke <152091883+shamithoke at users.noreply.github.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/bitreverse.ll
    M llvm/test/CodeGen/X86/vector-bitreverse.ll

  Log Message:
  -----------
  Support for i8/i16 for bitreverse using GFNI. (#88625)

In continuation to the PR #81764, this change extends the GFNI support to i8 and i16.

---------

Co-authored-by: shami <shami_thoke at yahoo.com>


  Commit: b4e7b56403387630d4c390ea4f53921312326e34
      https://github.com/llvm/llvm-project/commit/b4e7b56403387630d4c390ea4f53921312326e34
  Author: Johannes Reifferscheid <jreiffers at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  Revert "Fix rsqrt inaccuracies." (#88705)

Reverts llvm/llvm-project#88691


  Commit: 45137766ca6be16b9bc6082eb9bedae7bc621437
      https://github.com/llvm/llvm-project/commit/45137766ca6be16b9bc6082eb9bedae7bc621437
  Author: Victor Campos <victor.campos at arm.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/ARM/Thumb2InstrInfo.cpp
    M llvm/lib/Target/ARM/Thumb2InstrInfo.h
    A llvm/test/CodeGen/ARM/misched-branch-targets.mir

  Log Message:
  -----------
  [ARM][Thumb2] Mark BTI-clearing instructions as scheduling region boundaries (#87982)

Following https://github.com/llvm/llvm-project/pull/68313 this patch
extends the idea to M-profile PACBTI.

The Machine Scheduler can reorder instructions within a scheduling
region depending on the scheduling policy set. If a BTI-clearing
instruction happens to partake in one such region, it might be moved
around, therefore ending up where it shouldn't.

The solution is to mark all BTI-clearing instructions as scheduling
region boundaries. This essentially means that they must not be part of
any scheduling region, and as consequence never get moved:

 - PAC
 - PACBTI
 - BTI
 - SG

Note that PAC isn't BTI-clearing, but it's replaced by PACBTI late in
the compilation pipeline.

As far as I know, currently it isn't possible to organically obtain code
that's susceptible to the bug:

- Instructions that write to SP are region boundaries. PAC seems to
always be followed by the pushing of r12 to the stack, so essentially
PAC is always by itself in a scheduling region.
- CALL_BTI is expanded into a machine instruction bundle. Bundles are
unpacked only after the last machine scheduler run. Thus setjmp and BTI
can be separated only if someone deliberately run the scheduler once
more.
- The BTI insertion pass is run late in the pipeline, only after the
last machine scheduling has run. So once again it can be reordered only
if someone deliberately runs the scheduler again.

Nevertheless, one can reasonably argue that we should prevent the bug in
spite of the compiler not being able to produce the required conditions
for it. If things change, the compiler will be robust against this
issue.

The tests written for this are contrived: bogus MIR instructions have
been added adjacent to the BTI-clearing instructions in order to have
them inside non-trivial scheduling regions.


  Commit: 0822780b7ffa552b351364be350a997a47f22250
      https://github.com/llvm/llvm-project/commit/0822780b7ffa552b351364be350a997a47f22250
  Author: wanglei <wanglei at loongson.cn>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/test/CodeGen/LoongArch/gep-imm.ll

  Log Message:
  -----------
  [LoongArch] Fix incorrect logic in isLegalAddressingMode() (#88694)

This will adress issue:
https://github.com/ClangBuiltLinux/linux/issues/2014


  Commit: 33e60f358cc0c564e771c0234dd8a60f3bddce5d
      https://github.com/llvm/llvm-project/commit/33e60f358cc0c564e771c0234dd8a60f3bddce5d
  Author: Johannes Reifferscheid <jreiffers at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
    M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
    M mlir/test/Integration/Dialect/Complex/CPU/correctness.mlir

  Log Message:
  -----------
  Fix rsqrt inaccuracies. (#88707)

The current lowering has issues with large/subnormal values. This po
XLA's lowering and was verified using XLA's test suite and the
MLIR-based emitters.

This updates https://github.com/llvm/llvm-project/pull/88691 to also
update the correctness test for rsqrt(0). I checked C++ and Python, they
both agree the result should be (inf, nan). Updated the correctness test
to match this.


  Commit: 5b95c9e0cad189cc609c31029f6bc3a89bc7b612
      https://github.com/llvm/llvm-project/commit/5b95c9e0cad189cc609c31029f6bc3a89bc7b612
  Author: Markus Böck <markus.boeck02 at gmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M mlir/docs/DefiningDialects/Operations.md
    M mlir/include/mlir/IR/OpDefinition.h
    M mlir/test/lib/Dialect/Test/TestDialect.cpp
    M mlir/test/lib/Dialect/Test/TestOps.td
    M mlir/test/mlir-tblgen/op-format.mlir
    M mlir/tools/mlir-tblgen/OpFormatGen.cpp

  Log Message:
  -----------
  [mlir][ODS] Make `prop-dict` behave closer to `attr-dict` (#88659)

`attr-dict` currently prints any attribute (inherent or discardable)
that does not occur elsewhere in the assembly format. `prop-dict` on the
other hand, always prints and parses all properties (including inherent
attributes stored as properties) as part of the property dictionary,
regardless of whether the properties or attributes are used elsewhere.
(with the exception of default-valued attributes implemented recently in
https://github.com/llvm/llvm-project/pull/87970).

This PR changes the behavior of `prop-dict` to only print and parse
attributes and properties that do not occur elsewhere in the assembly
format. This is achieved by 1) adding used attributes and properties to
the elision list when printing and 2) using a custom version of
`setPropertiesFromAttr` called `setPropertiesFromParsedAttr` that is
sensitive to the assembly format and auto-generated by ODS.

The current and new behavior of `prop-dict` and `attr-dict` were also
documented.

Happens to also fix https://github.com/llvm/llvm-project/issues/88506


  Commit: 7dbba39e583a3fd64e7e6b947251c035e483f054
      https://github.com/llvm/llvm-project/commit/7dbba39e583a3fd64e7e6b947251c035e483f054
  Author: Julian Nagele <j.nagele at apple.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/include/llvm/IR/Verifier.h
    M llvm/lib/IR/Verifier.cpp
    M llvm/test/CodeGen/AArch64/arm64-abi_align.ll
    M llvm/test/Transforms/InferAddressSpaces/AMDGPU/mem-intrinsics.ll
    M llvm/test/Transforms/InstCombine/struct-assign-tbaa.ll
    M llvm/test/Transforms/SROA/tbaa-struct3.ll
    M llvm/test/Transforms/Scalarizer/basic-inseltpoison.ll
    M llvm/test/Transforms/Scalarizer/basic.ll
    M llvm/test/Verifier/tbaa-struct.ll

  Log Message:
  -----------
  Reapply "[TBAA] Add verifier for tbaa.struct metadata (#86709)"

This reverts commit b9cd48f96acdd07c627ccafbf4386a1f3dcd6c51.

-------------------------------------------------------------
Original commit message:

Adds logic to the IR verifier that checks whether !tbaa.struct nodes are
well-formed. That is, it checks that the operands of !tbaa.struct nodes
are in groups of three, that each group of three operands consists of
two integers and a valid tbaa node, and that the regions described by
the offset and size operands are non-overlapping.

PR: https://github.com/llvm/llvm-project/pull/86709


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

  Changed paths:
    M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp

  Log Message:
  -----------
  [VPlan] Add test for dump of recipe not inserted in VPlan. (NFC)

Add extra tests for printing recipes not inserted in a VPlan yet, e.g.
when using a debugger.

Guard against regressions in changes to printing, i.e.
https://github.com/llvm/llvm-project/pull/81411.


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

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86] Add isCompletePermute helper for single input shuffles where we don't lose/reuse any vector element. NFC

Matches purely reorder shuffles.


  Commit: 4859a593f4016f0a78e2fadf21722e370560c5e9
      https://github.com/llvm/llvm-project/commit/4859a593f4016f0a78e2fadf21722e370560c5e9
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp

  Log Message:
  -----------
  [VPlan] Extend recipe printing tests with underlying IR values. (NFC)

Make tests added in c006b9088fa56 more interesting by using an
underlying IR value as well.


  Commit: f78b3466caa9296b32ec235dee87ace2dea94507
      https://github.com/llvm/llvm-project/commit/f78b3466caa9296b32ec235dee87ace2dea94507
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/CodeGen/AMDGPU/fold-fabs.ll
    M llvm/test/Transforms/Attributor/nofpclass.ll
    M llvm/unittests/Analysis/ValueTrackingTest.cpp

  Log Message:
  -----------
  ValueTracking: Treat poison more aggressively in computeKnownFPClass (#87990)

Assume no valid values, and the sign bit is 0.


  Commit: 6acc50ae5b5971af563a0f40b5f0279870171541
      https://github.com/llvm/llvm-project/commit/6acc50ae5b5971af563a0f40b5f0279870171541
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/unittests/CodeGen/AArch64SelectionDAGTest.cpp

  Log Message:
  -----------
  Fix typo in computeKnownBits_AVGFLOORU_AVGFLOORS_AVGCEILU_AVGCEILS.

ISD::AVGFLOORU -> ISD::AVGFLOORS


  Commit: 14774ad59da4aaa8eb3da21c8c53b59834a1aeb7
      https://github.com/llvm/llvm-project/commit/14774ad59da4aaa8eb3da21c8c53b59834a1aeb7
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86] Remove unused function (NFC)

llvm-project/llvm/lib/Target/X86/X86ISelLowering.cpp:3537:13:
error: unused function 'isAnyZeroOrUndef' [-Werror,-Wunused-function]
static bool isAnyZeroOrUndef(ArrayRef<int> Mask) {
            ^
1 error generated.


  Commit: 9da0ef165efd91b862b8c3cff1604472476839d6
      https://github.com/llvm/llvm-project/commit/9da0ef165efd91b862b8c3cff1604472476839d6
  Author: Johannes Reifferscheid <jreiffers at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  Fix complex tanh overflows. (#88708)

This ports the XLA lowering and was verified using XLA's
exhaustive_unary_test_complex test.


  Commit: d48ebac0389ba75defce5bd83d8539d51008b28d
      https://github.com/llvm/llvm-project/commit/d48ebac0389ba75defce5bd83d8539d51008b28d
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/lib/Target/AArch64/SVEInstrFormats.td
    M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-imm.ll

  Log Message:
  -----------
  [LLVM][SVE][CodeGen] Fix incorrect isel for signed saturating instructions. (#88136)

The immediate forms of SQADD and SQSUB interpret their immediate
operand as unsigned and thus effectively only support positive
immediate operands.
    
The original code is only wrong for the i8 cases because they
previously accepted all values, however, the new patterns enable more
uses and this I've added tests for the larger element types as well.


  Commit: 6254b6dd892728306ddfe657f10eb43a3799864d
      https://github.com/llvm/llvm-project/commit/6254b6dd892728306ddfe657f10eb43a3799864d
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    M llvm/lib/Transforms/Vectorize/VPlanValue.h
    M llvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge.ll

  Log Message:
  -----------
  [VPlan] Version VPValue names in VPSlotTracker.  (#81411)

This patch restructures the way names for printing VPValues are handled.
It moves the logic to generate names for printing to VPSlotTracker.

VPSlotTracker will now version names of the same underlying value if it
is used by multiple VPValues, by adding a .V suffix to the name.

This fixes cases where at the moment the same name is printed for
different VPValues.

PR: https://github.com/llvm/llvm-project/pull/81411


  Commit: 8095b9ce6bf5831a14c72028920708f38d13d0c3
      https://github.com/llvm/llvm-project/commit/8095b9ce6bf5831a14c72028920708f38d13d0c3
  Author: Congcong Cai <congcongcai0907 at 163.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/misc/const-correctness-templates.cpp
    M clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h
    M clang/lib/Analysis/ExprMutationAnalyzer.cpp
    M clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp

  Log Message:
  -----------
  [clang analysis] ExprMutationAnalyzer avoid infinite recursion for recursive forwarding reference (#87954)


  Commit: 673da8c83413c4d1e7e76e1b52a2924e837e7221
      https://github.com/llvm/llvm-project/commit/673da8c83413c4d1e7e76e1b52a2924e837e7221
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  [LLVM][CodeGen][AArch64] Remove bogus lowering of sve_while{gt/ge/hi/hs} intrinsics. (#88126)

When fed constant operands we try to lower WHILE intrinsics to PTRUE
using a fixed length pattern. This is not valid for the decrementing
variants of WHILE because they construct their result predicate vector
by traversing from high->low lanes whereas the incrementing variants and
PTRUE traverse from low->high lanes.

Whilst we can still utilise PTRUE by reversing its result I figure
replacing a single WHILE with multiple SVE instructions is likely
counterproductive.


  Commit: 7b039c0cf0045d81da7e1575232a46266cff1e88
      https://github.com/llvm/llvm-project/commit/7b039c0cf0045d81da7e1575232a46266cff1e88
  Author: Stephen Tozer <stephen.tozer at sony.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    A llvm/test/Bitcode/dbg-label-record-bc.ll

  Log Message:
  -----------
  [DebugInfo][RemoveDIs] Fix error from not tracking seen debug labels (#88718)

Fixes the reported errors on:
https://github.com/llvm/llvm-project/pull/87379

A previous patch updated the bitcode reading for debug
intrinsics/records to not perform the expensive debug info format
conversion from records to intrinsics in cases where no records were
present, but the patch did not actually track when debug labels had been
seen, resulting in errors when parsing bitcode where functions contained
debug label records but no other debug records. This patch fixes that
case and adds a test for it.


  Commit: 58d4470fa49443da1477a7d2e43685e91bbd6630
      https://github.com/llvm/llvm-project/commit/58d4470fa49443da1477a7d2e43685e91bbd6630
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86] Remove scaleVectorShuffleBlendMask and use APIntOps::ScaleBitMask directly.


  Commit: 7089c359a3845323f6f30c44a47dd901f2edfe63
      https://github.com/llvm/llvm-project/commit/7089c359a3845323f6f30c44a47dd901f2edfe63
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.h

  Log Message:
  -----------
  [LLVM][SelectionDAG] Allow verification of target ISD nodes. (#88121)

Patch includes an initial implementation for AArch64 that covers a
handful of nodes where I've observed bogus nodes within the DAG.


  Commit: 2e0e3b0f10b5c433504e31ca73e55f86e0b27660
      https://github.com/llvm/llvm-project/commit/2e0e3b0f10b5c433504e31ca73e55f86e0b27660
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
    M llvm/lib/Target/RISCV/RISCVScheduleV.td

  Log Message:
  -----------
  [RISCV] Split single width convert to FP pseudos by SEW


  Commit: 60a1158f31bb99a5d049d5cac5a704d906a1277e
      https://github.com/llvm/llvm-project/commit/60a1158f31bb99a5d049d5cac5a704d906a1277e
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
    M llvm/lib/Target/RISCV/RISCVScheduleV.td

  Log Message:
  -----------
  [RISCV] Split Widening convert to FP pseudos by SEW


  Commit: 469493f55639a5cce2fc69300222be609fcc5238
      https://github.com/llvm/llvm-project/commit/469493f55639a5cce2fc69300222be609fcc5238
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
    M llvm/lib/Target/RISCV/RISCVScheduleV.td

  Log Message:
  -----------
  [RISCV] Split narrowing convert to FP pseudos by SEW


  Commit: 1b310c45e914f0a76fa594bebdff44e7a386d4f9
      https://github.com/llvm/llvm-project/commit/1b310c45e914f0a76fa594bebdff44e7a386d4f9
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
    M llvm/lib/Target/RISCV/RISCVScheduleV.td

  Log Message:
  -----------
  [RISCV] Split PseudoVFMIN, PseudoVFMAX PseudoVFSGNJ, PseudoVFSGNJN, and PseudoVFSGNJX by SEW


  Commit: 17cb8a537b688ac6e4187f28f9e784491bb8abc5
      https://github.com/llvm/llvm-project/commit/17cb8a537b688ac6e4187f28f9e784491bb8abc5
  Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/lib/Lower/OpenMP/Clauses.cpp
    M flang/lib/Lower/OpenMP/ReductionProcessor.cpp
    M flang/lib/Parser/openmp-parsers.cpp
    M flang/lib/Parser/unparse.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    A flang/test/Lower/OpenMP/Todo/reduction-modifiers.f90
    A flang/test/Parser/OpenMP/reduction-modifier.f90
    M llvm/include/llvm/Frontend/OpenMP/ClauseT.h

  Log Message:
  -----------
  [Flang][OpenMP] Accept the reduction modifier (#86492)

Accept the reduction modifier in the Flang parser. Issue a TODO message
during lowering.

OpenMP 5.0 introduced the reduction modifier. Details can be seen in
2.19.5.4 reductionClause.
OpenMP 5.2 relevant section is 5.5.8reductionClause.

This will help remove some of the parser errors highlighted in the
following post and also bring it to a well defined behaviour (produce
TODO errors for unsupported features, do not crash).
https://discourse.llvm.org/t/proposal-rename-flang-new-to-flang/69462/60


  Commit: 67e733d36ef0c5ec9fab899ecf9f191d83c7d418
      https://github.com/llvm/llvm-project/commit/67e733d36ef0c5ec9fab899ecf9f191d83c7d418
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M bolt/lib/Core/Relocation.cpp

  Log Message:
  -----------
  [BOLT][NFC] Refactor relocation printing (#88180)

Some refactoring.

* Make the arrays themselves const -- not just the strings being pointed to.
* Move each relocation array to the case using it.
* Add a suitable assert, to make sure there's no out-of-bounds indexing.


  Commit: 105dcc882cf0152baeaa02ac0e50e2527b6940db
      https://github.com/llvm/llvm-project/commit/105dcc882cf0152baeaa02ac0e50e2527b6940db
  Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CGHLSLRuntime.h
    M clang/test/CodeGenHLSL/builtins/any.hlsl
    M llvm/include/llvm/IR/IntrinsicsSPIRV.td
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/any.ll

  Log Message:
  -----------
  [HLSL][SPIRV] Add any intrinsic lowering (#88325)

- `CGBuiltin.cpp` - Switch to using
`CGM.getHLSLRuntime().get##NAME##Intrinsic()`
- `CGHLSLRuntime.h` - Add any to backend intrinsic abstraction
-  `IntrinsicsSPIRV.td` - Add any intrinsic to SPIR-V.
- `SPIRVInstructionSelector.cpp` - Add means of selecting any intrinsic.
Any and All share the same behavior up to the opCode. They are only
different in vector cases.

Completes #88045


  Commit: 32cb3c55080eec70abf282fbe75e6a58cf76f92a
      https://github.com/llvm/llvm-project/commit/32cb3c55080eec70abf282fbe75e6a58cf76f92a
  Author: Piyou Chen <piyou.chen at sifive.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    A llvm/include/llvm/CodeGen/LiveDebugVariables.h
    M llvm/lib/CodeGen/LiveDebugVariables.cpp
    R llvm/lib/CodeGen/LiveDebugVariables.h
    M llvm/lib/CodeGen/RegAllocBasic.cpp
    M llvm/lib/CodeGen/RegAllocGreedy.cpp
    M llvm/lib/CodeGen/VirtRegMap.cpp

  Log Message:
  -----------
  [NFC][LLVM][CodeGen] Move LiveDebugVariables.h into llvm/include/llvm/CodeGen (#88374)

This patch make `LiveDebugVariables` can be used by passes outside of
`lib/CodeGen`.

If we run a pass that occurs between the split register allocation pass
without preserving this pass, it will be freed and recomputed until it
encounters the next pass that needs LiveDebugVariables.

However, `LiveDebugVariables` will raise an assertion due to the pass
being freed without emitting a debug value.

This is reason we need `LiveDebugVariables` to be available for passes
outside of lib/Codegen.


  Commit: c3d58867bd3da85958dbbb46c4a22c0d3c60af66
      https://github.com/llvm/llvm-project/commit/c3d58867bd3da85958dbbb46c4a22c0d3c60af66
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64.h
    A llvm/lib/Target/AArch64/AArch64PostCoalescerPass.cpp
    M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
    M llvm/lib/Target/AArch64/CMakeLists.txt
    M llvm/test/CodeGen/AArch64/O3-pipeline.ll
    M llvm/test/CodeGen/AArch64/sme-avoid-coalescing-locally-streaming.ll
    M llvm/test/CodeGen/AArch64/sme-call-streaming-compatible-to-normal-fn-wihout-sme-attr.ll
    M llvm/test/CodeGen/AArch64/sme-disable-gisel-fisel.ll
    M llvm/test/CodeGen/AArch64/sme-pstate-sm-changing-call-disable-coalescing.ll
    M llvm/test/CodeGen/AArch64/sme-streaming-body-streaming-compatible-interface.ll
    M llvm/test/CodeGen/AArch64/sme-streaming-body.ll
    M llvm/test/CodeGen/AArch64/sme-streaming-compatible-interface.ll
    M llvm/test/CodeGen/AArch64/sme-streaming-interface.ll
    M llvm/test/CodeGen/AArch64/sme-streaming-mode-changing-call-disable-stackslot-scavenging.ll

  Log Message:
  -----------
  [AArch64][SME] Create new pass to remove COALESCER_BARRIER early. (#85386)

The purpose of the COALESCER_BARRIER pseudo node is to prevent the
register coalescer from coalescing certain COPY instructions around
smstart/smstop instructions, so that we spill only the (required) FPR
register rather than the encompassing ZPR register.

The pseudos are removed in the AArch64ExpandPseudo pass. However,
because the node itself is a _use_ of a register, this occassionally
leads to redundant spills/fills, because the register allocator thinks
the virtual register is actually used before an smstart/smstop
instruction, causing it to be filled, at which points it requires
immediate spilling again to ensure it stays live over the smstart/smstop
instruction.

We can avoid that by removing the pseudo nodes right after coalescing,
but before register allocation.


  Commit: b68ff060ab70c44fb617e34451003f34ff062d2b
      https://github.com/llvm/llvm-project/commit/b68ff060ab70c44fb617e34451003f34ff062d2b
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M bolt/include/bolt/Core/BinaryData.h
    M bolt/lib/Core/BinaryData.cpp

  Log Message:
  -----------
  [BOLT][NFC] Remove unused BinaryData::hasNameRegex (#88618)


  Commit: a3ce29f7bb5510131971ac5ccc63132dd48c8dd2
      https://github.com/llvm/llvm-project/commit/a3ce29f7bb5510131971ac5ccc63132dd48c8dd2
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__algorithm/pstl_backends/cpu_backend.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/any_of.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/backend.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/fill.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/find_if.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/for_each.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/libdispatch.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/merge.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/serial.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/stable_sort.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/thread.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/transform.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/transform_reduce.h
    A libcxx/include/__pstl/cpu_algos/cpu_traits.h
    M libcxx/include/module.modulemap
    M libcxx/src/pstl/libdispatch.cpp
    M libcxx/test/libcxx/algorithms/pstl.libdispatch.chunk_partitions.pass.cpp
    M libcxx/utils/generate_iwyu_mapping.py

  Log Message:
  -----------
  [libc++][PSTL] Introduce cpu traits (#88134)

Currently, CPU backends in the PSTL are created by defining functions
in the __par_backend namespace. Then, the PSTL includes the CPU backend
that gets configured via CMake and gets those definitions.

This prevents CPU backends from easily co-existing and is a bit
confusing.
To solve this problem, this patch introduces the notion of __cpu_traits,
which is a cheap encapsulation of the basis operations required to
implement a CPU-based PSTL. Different backends can now define their own
tag and coexist, and the CPU-based PSTL will simply use __cpu_traits to
dispatch to the right implementation of e.g. __for_each.

Note that this patch doesn't change the actual implementation of the
backends in any way, it only modifies how that implementation is
accessed
to implement PSTL algorithms.

This patch is a step towards #88131.


  Commit: 7e4c6e98fa05f5c3bf14f96365ae74a8d12c6257
      https://github.com/llvm/llvm-project/commit/7e4c6e98fa05f5c3bf14f96365ae74a8d12c6257
  Author: Jonas Paulsson <paulson1 at linux.ibm.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
    M llvm/test/CodeGen/SystemZ/knownbits-intrinsics-binop.ll

  Log Message:
  -----------
  [SystemZ] Bugfix in getDemandedSrcElements(). (#88623)

For the intrinsic s390_vperm, all of the elements are demanded, so use
an APInt with the value of '-1' for them (not '1').

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


  Commit: a2691959cd23de9505243e9396897a3415606689
      https://github.com/llvm/llvm-project/commit/a2691959cd23de9505243e9396897a3415606689
  Author: whisperity <whisperity at gmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M clang-tools-extra/clang-tidy/linuxkernel/MustCheckErrsCheck.h
    M clang-tools-extra/docs/ReleaseNotes.rst
    A clang-tools-extra/docs/clang-tidy/checks/linuxkernel/must-check-errs.rst
    R clang-tools-extra/docs/clang-tidy/checks/linuxkernel/must-use-errs.rst
    M clang-tools-extra/docs/clang-tidy/checks/list.rst

  Log Message:
  -----------
  [clang-tidy][NFC] Fix `linuxkernel-must-check-errs` documentation file name (#88655)

The check was originally introduced in commit
fc8c65b2e11d21b1c0ce070cc0a4ee031a542dae with conflicting names, likely as a
result of a partial rename, with the name in the documentation
(`linuxkernel-must-use-errs`) not matching the name of the check as configured
by users.


  Commit: a06073f91e7bbbb532e68bbf6b903c2f5051f4c2
      https://github.com/llvm/llvm-project/commit/a06073f91e7bbbb532e68bbf6b903c2f5051f4c2
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__utility/is_pointer_in_range.h
    A libcxx/include/__utility/is_valid_range.h
    M libcxx/include/libcxx.imp
    M libcxx/include/module.modulemap
    A libcxx/test/libcxx/utilities/is_valid_range.pass.cpp

  Log Message:
  -----------
  [libc++] Add a utility to check whether a range is valid (#87665)

In the future, this utility could be made to also work with iterators,
including bounded iterators. We could also query the ASAN runtime for
this information when it's around.


  Commit: 7b9b28dbd2938877a94737e28b7eb9e3cdd82755
      https://github.com/llvm/llvm-project/commit/7b9b28dbd2938877a94737e28b7eb9e3cdd82755
  Author: yronglin <yronglin777 at gmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/TreeTransform.h

  Log Message:
  -----------
  [Clang] Refactor implementation of "Lifetime extension in range-based for loops" (#87930)

This PR remove `InMaterializeTemporaryObjectContext` , because it's
redundant, materialize non-cv void prvalue temporaries in discarded
expressions can only appear under lifetime-extension context.

Signed-off-by: yronglin <yronglin777 at gmail.com>


  Commit: 8927ac865755d7e98411500a7a2da70e8a185cc2
      https://github.com/llvm/llvm-project/commit/8927ac865755d7e98411500a7a2da70e8a185cc2
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M bolt/lib/Profile/BoltAddressTranslation.cpp

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

This patch fixes:

  bolt/lib/Profile/BoltAddressTranslation.cpp:380:37: error: operator
  '<<' has lower precedence than '+'; '+' will be evaluated first
  [-Werror,-Wshift-op-parentheses]


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

  Changed paths:
    M libcxx/utils/ci/run-buildbot
    M lldb/packages/Python/lldbsuite/test/lldbtest.py

  Log Message:
  -----------
  [libc++][CI] Tests LLDB libc++ data formatters. (#88312)

This enables testing of the LLDB libc++ specific data formatters.
This is enabled in the bootstrap build since building LLDB requires
Clang and this
is quite expensive. Adding this test changes the build time from 31 to
34 minutes.


  Commit: 1c63a3e0cdb3f02098f8ec525ca31a3b44d9d31b
      https://github.com/llvm/llvm-project/commit/1c63a3e0cdb3f02098f8ec525ca31a3b44d9d31b
  Author: mmoadeli <mahmoud.moadeli at codeplay.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  Resolve static analyser report on pointer dereferencing after null check (#88278)

- Resolve Static Analyzer Check Failure: Pointer Dereferencing After
Null Check.
- Minor naming and style improvement


  Commit: 9abb1ffc5cb75465340cb604988d1e386415bd72
      https://github.com/llvm/llvm-project/commit/9abb1ffc5cb75465340cb604988d1e386415bd72
  Author: Valery Dmitriev <valery.n.dmitriev at intel.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/ext-int-reduced-not-operand.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gather-move-out-of-loop.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gathered-delayed-nodes-with-reused-user.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-scheduled-inst-reused-as-last-inst.ll

  Log Message:
  -----------
  [SLP][NFC] Add option to bypass early profitability check. (#88594)

The option intended primarily for LIT tests to suppress heuristic based
profitability check and proceed vectorization of a seemingly
unprofitable alternate operation pattern. This allows the vectorizer to
execute path that was the original intent of a test.


  Commit: 55b6f17071d25b77fcdc910ca9b15f89305137e0
      https://github.com/llvm/llvm-project/commit/55b6f17071d25b77fcdc910ca9b15f89305137e0
  Author: Jeremy Kun <jkun at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/CMakeLists.txt
    A mlir/include/mlir/Dialect/Polynomial/CMakeLists.txt
    A mlir/include/mlir/Dialect/Polynomial/IR/CMakeLists.txt
    A mlir/include/mlir/Dialect/Polynomial/IR/Polynomial.h
    A mlir/include/mlir/Dialect/Polynomial/IR/Polynomial.td
    A mlir/include/mlir/Dialect/Polynomial/IR/PolynomialAttributes.h
    A mlir/include/mlir/Dialect/Polynomial/IR/PolynomialDialect.h
    A mlir/include/mlir/Dialect/Polynomial/IR/PolynomialOps.h
    A mlir/include/mlir/Dialect/Polynomial/IR/PolynomialTypes.h
    M mlir/include/mlir/InitAllDialects.h
    M mlir/lib/Dialect/CMakeLists.txt
    A mlir/lib/Dialect/Polynomial/CMakeLists.txt
    A mlir/lib/Dialect/Polynomial/IR/CMakeLists.txt
    A mlir/lib/Dialect/Polynomial/IR/Polynomial.cpp
    A mlir/lib/Dialect/Polynomial/IR/PolynomialAttributes.cpp
    A mlir/lib/Dialect/Polynomial/IR/PolynomialDialect.cpp
    A mlir/lib/Dialect/Polynomial/IR/PolynomialOps.cpp
    A mlir/test/Dialect/Polynomial/attributes.mlir
    A mlir/test/Dialect/Polynomial/types.mlir

  Log Message:
  -----------
  Add a polynomial dialect shell, attributes, and types (#72081)

RFC:
https://discourse.llvm.org/t/rfc-a-poly-dialect-for-polynomial-arithmetic/73891

This PR implements the minimal work needed to represent the polynomial
type such that it can be tested with `lit`.

In this PR:

- Dialect shell
- `Polynomial` data structure needed for folding
- Polynomial attributes (`PolynomialAttr` and `RingAttr` which store a polynomial)
- `polynomial.polynomial` type
- Basic lit tests

---------

Co-authored-by: Jeremy Kun <j2kun at users.noreply.github.com>


  Commit: f8d314f0ee5e750e1e47b47fb55d14f6d1e991e1
      https://github.com/llvm/llvm-project/commit/f8d314f0ee5e750e1e47b47fb55d14f6d1e991e1
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M mlir/test/Dialect/Affine/value-bounds-op-interface-impl.mlir
    M mlir/test/Dialect/Affine/value-bounds-reification.mlir
    M mlir/test/Dialect/Tensor/value-bounds-op-interface-impl.mlir
    M mlir/test/Dialect/Vector/test-scalable-bounds.mlir
    M mlir/test/lib/Dialect/Affine/CMakeLists.txt
    M mlir/test/lib/Dialect/Affine/TestReifyValueBounds.cpp
    M mlir/test/lib/Dialect/Test/CMakeLists.txt
    M mlir/test/lib/Dialect/Test/TestDialect.cpp
    M mlir/test/lib/Dialect/Test/TestDialect.h
    M mlir/test/lib/Dialect/Test/TestOps.td
    M utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel

  Log Message:
  -----------
  [mlir][Interfaces][NFC] Add TableGen test op for value bounds tests (#88717)

This commit is a code cleanup. It defines the test ops the are used for
the `ValueBoundsOpInterface` tests in TableGen, along with proper
verifiers.

---------

Co-authored-by: Benjamin Maxwell <benjamin.maxwell at arm.com>


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

  Changed paths:
    M lldb/source/Plugins/Language/CPlusPlus/CMakeLists.txt
    M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
    A lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/valarray/TestDataFormatterLibcxxValarray.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/valarray/main.cpp

  Log Message:
  -----------
  [LLDB][libc++] Adds valarray proxy data formatters. (#88613)

These proxies are returned by operator[](...). These proxies all
"behave" the same. They store a pointer to the data of the valarray they
are a proxy for and they have an internal array of indices. This
internal array is considered its contents.


  Commit: 9dbb6e1978d3d2d61ef65c2dac1fd8add5a4c7a2
      https://github.com/llvm/llvm-project/commit/9dbb6e1978d3d2d61ef65c2dac1fd8add5a4c7a2
  Author: Hsiangkai Wang <hsiangkai.wang at arm.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVAttributes.td
    M mlir/include/mlir/Dialect/SPIRV/IR/TargetAndABI.h
    M mlir/lib/Dialect/SPIRV/IR/TargetAndABI.cpp
    M mlir/lib/Dialect/SPIRV/Transforms/LowerABIAttributesPass.cpp
    M mlir/test/Conversion/GPUToSPIRV/entry-point.mlir
    M mlir/test/lib/Dialect/SPIRV/TestEntryPointAbi.cpp

  Log Message:
  -----------
  [mlir][spirv] Add target width to SPIR-V ABI (#88555)

There are execution modes need target width as their extra operands.
SignedZeroInfNanPreserve is one of them. This patch adds `target width`
as one of SPIR-V ABI attributes.


  Commit: e09245b3b16fe78e30e79e92f8ce16d1edf7787b
      https://github.com/llvm/llvm-project/commit/e09245b3b16fe78e30e79e92f8ce16d1edf7787b
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/ProfileData/MemProf.cpp

  Log Message:
  -----------
  [memprof] Fix typos in serializedSizeV0 and serializedSizeV2 (#88629)

The first field to serialize is the size of
IndexedMemProfRecord::AllocSites.  It has nothing to do with
GlobalValue::GUID.  This happens to work because of:

  using GUID = uint64_t;


  Commit: 51d85b7b107e9508b90cec274f3f122444fe7ee6
      https://github.com/llvm/llvm-project/commit/51d85b7b107e9508b90cec274f3f122444fe7ee6
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Support/Endian.h
    M llvm/unittests/Support/EndianTest.cpp

  Log Message:
  -----------
  [Support] Add llvm::support::endian::writeNext (#88685)

`writeNext` overloads increase the pointer argument like `readNext`.
Code like the following
```
endian::write32<ELFT::Endianness>(p, 42);
p += 4;
endian::write32<ELFT::Endianness>(p, 43);
p += 4;
```

can be simplified to:
```
endian::writeNext<uint32_t, ELFT::Endianness>(p, 42);
endian::writeNext<uint32_t, ELFT::Endianness>(p, 43);
```


  Commit: 603fa4c6b9a540206ec6f6b2115274878b65bfbb
      https://github.com/llvm/llvm-project/commit/603fa4c6b9a540206ec6f6b2115274878b65bfbb
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M bolt/lib/Core/BinaryContext.cpp
    M bolt/lib/Core/BinaryEmitter.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp

  Log Message:
  -----------
  [BOLT][NFC] Be more obvious about selecting X86 (#88527)

Use `isX86()` rather than `!isAArch64() && !isRISCV()`, and similar.


  Commit: bd7b170e97e314cb786dd33a750ef79412fc9682
      https://github.com/llvm/llvm-project/commit/bd7b170e97e314cb786dd33a750ef79412fc9682
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M bolt/lib/Rewrite/RewriteInstance.cpp

  Log Message:
  -----------
  [BOLT][NFC] Remove extraneous braces (#88620)

A small cleanup -- no braces needed here.


  Commit: 9c970d5ecd6a85188cd2b0a941fcd4d60063ef81
      https://github.com/llvm/llvm-project/commit/9c970d5ecd6a85188cd2b0a941fcd4d60063ef81
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M lld/COFF/Chunks.cpp
    A lld/test/COFF/autoimport-gc.s

  Log Message:
  -----------
  [LLD] [COFF] Don't add pseudo relocs for dangling references (#88487)

When doing GC, we normally won't have dangling references, because such
a reference would keep the other section alive, keeping it from being
eliminated.

However, references within DWARF sections are ignored for the purposes
of GC (because otherwise, they would essentially keep everything alive,
defeating the point of the GC), see
c579a5b1d92a9bc2046d00ee2d427832e0f5ddec for more context.

Therefore, dangling relocations against discarded symbols are ignored
within DWARF sections (see maybeReportRelocationToDiscarded in
Chunks.cpp). Consequently, we also shouldn't create any pseudo
relocations for these cases, as we run into a null pointer dereference
when trying to generate the pseudo relocation info for it.

This fixes the downstream bug
https://github.com/mstorsjo/llvm-mingw/issues/418, fixing crashes on
combinations with -ffunction-sections, -fdata-sections,
-Wl,--gc-sections and debug info.


  Commit: 64dc55835a1552dbe74eef79460094014edf659e
      https://github.com/llvm/llvm-project/commit/64dc55835a1552dbe74eef79460094014edf659e
  Author: David Tenty <daltenty at ibm.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M libcxxabi/src/aix_state_tab_eh.inc

  Log Message:
  -----------
  [NFC][libunwind][AIX] Add diagnostic push and TODO

clang treats the cast here as an error since 999d4f840777bf8de26d45947192aa0728edc0fb landed
with -Xextra -Werror. We believe this cast to be safe for the reasons noted in comment, but
we should do some further cleanup at some point.


  Commit: 4d28d3f93bfee3cecbeb234d1ce306250e12e912
      https://github.com/llvm/llvm-project/commit/4d28d3f93bfee3cecbeb234d1ce306250e12e912
  Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/AMDGPU/umed3.ll
    M llvm/test/CodeGen/ARM/usat.ll

  Log Message:
  -----------
  [SDAG] Turn umin into smin if the saturation pattern is broken (#88505)

As we canonicalizes smin with non-negative operands into umin in the
middle-end, the saturation pattern will be broken.
This patch reverts the transform in DAGCombine to fix the regression on
ARM.

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


  Commit: b2f07a91192596a3584040208b7fac4f5ef0dd9c
      https://github.com/llvm/llvm-project/commit/b2f07a91192596a3584040208b7fac4f5ef0dd9c
  Author: Florian Mayer <fmayer at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/misc/const-correctness-templates.cpp
    M clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h
    M clang/lib/Analysis/ExprMutationAnalyzer.cpp
    M clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp

  Log Message:
  -----------
  Revert "[clang analysis] ExprMutationAnalyzer avoid infinite recursion for recursive forwarding reference" (#88765)

Reverts llvm/llvm-project#87954

Broke sanitizer bots, e.g.
https://lab.llvm.org/buildbot/#/builders/239/builds/6587/steps/10/logs/stdio


  Commit: b5b17bf613010b5ea900d2981365b9d2c846a20f
      https://github.com/llvm/llvm-project/commit/b5b17bf613010b5ea900d2981365b9d2c846a20f
  Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/test/CodeGen/RISCV/rv64zba.ll

  Log Message:
  -----------
  [RISCV] Fix assertion failure in `genShXAddAddShift` (#88757)

Fix assertion failure in our downstream CI
https://github.com/dtcxzyw/llvm-codegen-benchmark/issues/1.


  Commit: 09c3bfe9b3eb47a2af0c10531b25f90cfb5fa9f4
      https://github.com/llvm/llvm-project/commit/09c3bfe9b3eb47a2af0c10531b25f90cfb5fa9f4
  Author: Leonard Chan <leonardchan at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/TypeMetadataUtils.h
    M llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
    M llvm/lib/Analysis/TypeMetadataUtils.cpp
    M llvm/test/ThinLTO/X86/devirt.ll
    M llvm/test/Transforms/WholeProgramDevirt/Inputs/export.yaml
    M llvm/test/Transforms/WholeProgramDevirt/branch-funnel.ll
    M llvm/test/Transforms/WholeProgramDevirt/constant-arg.ll
    M llvm/test/Transforms/WholeProgramDevirt/devirt-single-impl-check.ll
    M llvm/test/Transforms/WholeProgramDevirt/devirt-single-impl-multiple-assumes.ll
    M llvm/test/Transforms/WholeProgramDevirt/devirt-single-impl.ll
    M llvm/test/Transforms/WholeProgramDevirt/pointer-vtable.ll

  Log Message:
  -----------
  Reapply "[llvm] Teach whole program devirtualization about relative vtables"

This reverts commit 474f5efebed24547e76d022f0c5ffcc9db97ce6f.


  Commit: b8b2f9902cb23af0811ec218a4f43226c0691510
      https://github.com/llvm/llvm-project/commit/b8b2f9902cb23af0811ec218a4f43226c0691510
  Author: Leonard Chan <leonardchan at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/TypeMetadataUtils.h
    M llvm/test/Transforms/GlobalDCE/virtual-functions-relative-pointers-bad.ll
    M llvm/test/Transforms/GlobalDCE/virtual-functions-relative-pointers-gep.ll
    M llvm/test/Transforms/GlobalDCE/virtual-functions-relative-pointers.ll

  Log Message:
  -----------
  Reapply "[llvm] Teach GlobalDCE about dso_local_equivalent"

This reverts commit 1c604a9780fcfe92a99d539913553f0835b81de3.


  Commit: 472ccf61a39387098ad3ed66c1353f82c7245ba3
      https://github.com/llvm/llvm-project/commit/472ccf61a39387098ad3ed66c1353f82c7245ba3
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  [gn build] Port 61f1f1300254


  Commit: c71be83638917f089f8f154525cc6d6f61591f21
      https://github.com/llvm/llvm-project/commit/c71be83638917f089f8f154525cc6d6f61591f21
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  [gn build] Port a06073f91e7b


  Commit: 8969bf3ea670dfeafbac53624883dc5c7ce23f0c
      https://github.com/llvm/llvm-project/commit/8969bf3ea670dfeafbac53624883dc5c7ce23f0c
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/clang/unittests/Tooling/BUILD.gn

  Log Message:
  -----------
  [gn build] Port a11a4324bb27


  Commit: 2f720a1c65e0b9669e67d7c319d77d6c221d423d
      https://github.com/llvm/llvm-project/commit/2f720a1c65e0b9669e67d7c319d77d6c221d423d
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  [gn build] Port a3ce29f7bb55


  Commit: 2601ce41d6139761a4267b7cc4add4fea499d172
      https://github.com/llvm/llvm-project/commit/2601ce41d6139761a4267b7cc4add4fea499d172
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/clang/unittests/Tooling/BUILD.gn

  Log Message:
  -----------
  [gn build] Port c11976f525f3


  Commit: 831515147c551f2c2dc7289d4bc0be2215e6b445
      https://github.com/llvm/llvm-project/commit/831515147c551f2c2dc7289d4bc0be2215e6b445
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/lib/Target/AArch64/BUILD.gn

  Log Message:
  -----------
  [gn build] Port c3d58867bd3d


  Commit: b570eb5e99567c92636279d014f376938fe4e79a
      https://github.com/llvm/llvm-project/commit/b570eb5e99567c92636279d014f376938fe4e79a
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/clang/include/clang/Config/BUILD.gn
    M llvm/utils/gn/secondary/clang/test/BUILD.gn

  Log Message:
  -----------
  [gn build] Manually port 44de2bb


  Commit: fa5fdfb126f9beeaa2f719930ef951d339f41e36
      https://github.com/llvm/llvm-project/commit/fa5fdfb126f9beeaa2f719930ef951d339f41e36
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/LowerEmuTLS.cpp

  Log Message:
  -----------
  [CodeGen] Remove extraneous ArrayRef (NFC) (#88601)

We don't need to create these instances of ArrayRef because
StructType::create and ConstantStruct::get take ArrayRef, and ArrayRef
can be implicitly constructed from C arrays.


  Commit: e39c653dbab3b4fdc5118219c7b5179244d0e1b6
      https://github.com/llvm/llvm-project/commit/e39c653dbab3b4fdc5118219c7b5179244d0e1b6
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/lldb/source/Plugins/Language/CPlusPlus/BUILD.gn

  Log Message:
  -----------
  [gn build] Port a34887550b7f


  Commit: 1c5d5478f7f35d7f212fcbf2af042fc3c720e9ed
      https://github.com/llvm/llvm-project/commit/1c5d5478f7f35d7f212fcbf2af042fc3c720e9ed
  Author: Leonard Chan <leonardchan at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/TypeMetadataUtils.h
    M llvm/test/Transforms/GlobalDCE/virtual-functions-relative-pointers-bad.ll
    M llvm/test/Transforms/GlobalDCE/virtual-functions-relative-pointers-gep.ll
    M llvm/test/Transforms/GlobalDCE/virtual-functions-relative-pointers.ll

  Log Message:
  -----------
  Revert "Reapply "[llvm] Teach GlobalDCE about dso_local_equivalent""

This reverts commit b8b2f9902cb23af0811ec218a4f43226c0691510.

This was failing on a local build.


  Commit: c0b77e0a4a9bb090e5ad3a28adcd0aa98715cfe5
      https://github.com/llvm/llvm-project/commit/c0b77e0a4a9bb090e5ad3a28adcd0aa98715cfe5
  Author: Leonard Chan <leonardchan at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/TypeMetadataUtils.h
    M llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
    M llvm/lib/Analysis/TypeMetadataUtils.cpp
    M llvm/test/ThinLTO/X86/devirt.ll
    M llvm/test/Transforms/WholeProgramDevirt/Inputs/export.yaml
    M llvm/test/Transforms/WholeProgramDevirt/branch-funnel.ll
    M llvm/test/Transforms/WholeProgramDevirt/constant-arg.ll
    M llvm/test/Transforms/WholeProgramDevirt/devirt-single-impl-check.ll
    M llvm/test/Transforms/WholeProgramDevirt/devirt-single-impl-multiple-assumes.ll
    M llvm/test/Transforms/WholeProgramDevirt/devirt-single-impl.ll
    M llvm/test/Transforms/WholeProgramDevirt/pointer-vtable.ll

  Log Message:
  -----------
  Revert "Reapply "[llvm] Teach whole program devirtualization about relative vtables""

This reverts commit 09c3bfe9b3eb47a2af0c10531b25f90cfb5fa9f4.


  Commit: b7b183371b54a2c4b5d2a39c594d3967a7384cb8
      https://github.com/llvm/llvm-project/commit/b7b183371b54a2c4b5d2a39c594d3967a7384cb8
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  [SLP][NFC]Improve perf of BoUpSLP::buildExternalUses function, NFC.

Perform required operations, only when the result is required + check if
value was not inserted already into the list of the externally used
scalars and early exit, if it was.


  Commit: 3eb097339e5fb78e91182674e891445ebe5a845b
      https://github.com/llvm/llvm-project/commit/3eb097339e5fb78e91182674e891445ebe5a845b
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M lld/MachO/ObjC.cpp

  Log Message:
  -----------
  [lld/mac] Fix (adorable!) typo to cycle bots


  Commit: 58c5f50f4c73945fdc5440dee2fba03267a460d4
      https://github.com/llvm/llvm-project/commit/58c5f50f4c73945fdc5440dee2fba03267a460d4
  Author: Leonard Chan <leonardchan at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/TypeMetadataUtils.h
    M llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
    M llvm/lib/Analysis/TypeMetadataUtils.cpp
    M llvm/test/ThinLTO/X86/devirt.ll
    M llvm/test/Transforms/GlobalDCE/virtual-functions-relative-pointers-bad.ll
    M llvm/test/Transforms/GlobalDCE/virtual-functions-relative-pointers-gep.ll
    M llvm/test/Transforms/GlobalDCE/virtual-functions-relative-pointers.ll
    M llvm/test/Transforms/WholeProgramDevirt/Inputs/export.yaml
    M llvm/test/Transforms/WholeProgramDevirt/branch-funnel.ll
    M llvm/test/Transforms/WholeProgramDevirt/constant-arg.ll
    M llvm/test/Transforms/WholeProgramDevirt/devirt-single-impl-check.ll
    M llvm/test/Transforms/WholeProgramDevirt/devirt-single-impl-multiple-assumes.ll
    M llvm/test/Transforms/WholeProgramDevirt/devirt-single-impl.ll
    M llvm/test/Transforms/WholeProgramDevirt/pointer-vtable.ll

  Log Message:
  -----------
  Reapply "[llvm] Teach GlobalDCE about dso_local_equivalent"

Also reapply "[llvm] Teach whole program devirtualization about
relative vtables"

This reverts commit 1c604a9780fcfe92a99d539913553f0835b81de3 and
474f5efebed24547e76d022f0c5ffcc9db97ce6f.


  Commit: 75bbf4dd7cfda744d4a2487cfd06a58194d02db3
      https://github.com/llvm/llvm-project/commit/75bbf4dd7cfda744d4a2487cfd06a58194d02db3
  Author: Job Henandez Lara <hj93 at protonmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M libc/hdr/types/CMakeLists.txt
    A libc/hdr/types/fenv_t.h
    A libc/hdr/types/fexcept_t.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/riscv/FEnvImpl.h
    M libc/src/__support/FPUtil/x86_64/FEnvImpl.h
    M libc/src/fenv/CMakeLists.txt
    M libc/src/fenv/fegetenv.h
    M libc/src/fenv/fegetexceptflag.cpp
    M libc/src/fenv/feholdexcept.cpp
    M libc/src/fenv/feholdexcept.h
    M libc/src/fenv/fesetenv.h
    M libc/src/fenv/fesetexceptflag.cpp
    M libc/src/fenv/feupdateenv.h
    M libc/test/UnitTest/CMakeLists.txt
    M libc/test/UnitTest/FPExceptMatcher.cpp
    M libc/test/src/fenv/exception_flags_test.cpp
    M libc/test/src/fenv/feholdexcept_test.cpp
    M libc/test/src/fenv/feupdateenv_test.cpp
    M libc/test/src/fenv/getenv_and_setenv_test.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/fenv/BUILD.bazel

  Log Message:
  -----------
  [libc] Add proxy headers for fenv types. (#88467)

Fixes #88187


  Commit: 45339568486cafaa414a1e40d73a251f7d15e284
      https://github.com/llvm/llvm-project/commit/45339568486cafaa414a1e40d73a251f7d15e284
  Author: Yijia Gu <yijiagu at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  [mlir] add polynomial dialect in bazel BUILD


  Commit: f9d761df50d12147fc7caa19927be81816d60e2d
      https://github.com/llvm/llvm-project/commit/f9d761df50d12147fc7caa19927be81816d60e2d
  Author: Justin Fargnoli <justinfargnoli at gmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/tools/llvm-dis-fuzzer/CMakeLists.txt
    M llvm/tools/vfabi-demangle-fuzzer/vfabi-demangler-fuzzer.cpp

  Log Message:
  -----------
  [tools] Fix `LLVM_USE_SANITIZE_COVERAGE` build (#87722)


  Commit: c31a8104d1173d79f8b71518829046b441d98d59
      https://github.com/llvm/llvm-project/commit/c31a8104d1173d79f8b71518829046b441d98d59
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/intrinsic-cttz-elts.ll

  Log Message:
  -----------
  [RISCV] Add -mattr=+v to intrinsic-cttz-elts.ll. NFC


  Commit: b153c05cba9be7f009b8ad8413c5840baf7d278c
      https://github.com/llvm/llvm-project/commit/b153c05cba9be7f009b8ad8413c5840baf7d278c
  Author: Ivan Butygin <ivan.butygin at gmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/SCF/Transforms/Patterns.h
    M mlir/include/mlir/Dialect/SCF/Transforms/Transforms.h
    M mlir/lib/Dialect/SCF/Transforms/CMakeLists.txt
    A mlir/lib/Dialect/SCF/Transforms/UpliftWhileToFor.cpp
    A mlir/test/Dialect/SCF/uplift-while.mlir
    M mlir/test/lib/Dialect/SCF/CMakeLists.txt
    A mlir/test/lib/Dialect/SCF/TestUpliftWhileToFor.cpp
    M mlir/tools/mlir-opt/mlir-opt.cpp

  Log Message:
  -----------
  [mlir][scf] Uplift `scf.while` to `scf.for` (#76108)

Add uplifting from `scf.while` to `scf.for`.

This uplifting expects a very specific ops pattern:
* `before` block consisting of single `arith.cmp` op
* `after` block containing `arith.addi`

We also have a set of patterns to cleanup `scf.while` loops to get them
close to the desired form, they will be added in separate PRs.

This is part of upstreaming `numba-mlir` scf uplifting pipeline: `cf ->
scf.while -> scf.for -> scf.parallel`

Original code:
https://github.com/numba/numba-mlir/blob/main/mlir/lib/Transforms/PromoteToParallel.cpp


  Commit: 43b4e5b9bff1719a6d3628a3a805cfeb59adaf16
      https://github.com/llvm/llvm-project/commit/43b4e5b9bff1719a6d3628a3a805cfeb59adaf16
  Author: Utkarsh Saxena <usx at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGDecl.cpp
    M clang/test/CodeGenCXX/control-flow-in-stmt-expr.cpp

  Log Message:
  -----------
  Use pushFullExprCleanup for deferred destroy (#88670)

Instead of directly pushing the `Destroy`, we should use
`pushFullExprCleanup` which handles conditional branches.
This fixes a backend crash due to
89ba7e183e6e2c64370ed1b963e54c06352211db.

Added minimized crash reproducer.


  Commit: b03dc7d16251bf249b67e4db545353551727f646
      https://github.com/llvm/llvm-project/commit/b03dc7d16251bf249b67e4db545353551727f646
  Author: cor3ntin <corentinjabot at gmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaOverload.cpp
    M clang/test/CXX/over/over.built/ast.cpp
    M clang/test/SemaCXX/overloaded-operator.cpp

  Log Message:
  -----------
  [Clang] Properly  set the value category of dependent unary operators (#88740)

This fixes an assertion in Expr::Classify when a
trying to deduce a dependent dereference operator.

Fixes #88329


  Commit: 187c035c047616860d31fc399702538ad1f42755
      https://github.com/llvm/llvm-project/commit/187c035c047616860d31fc399702538ad1f42755
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/compiler-rt/test/BUILD.gn

  Log Message:
  -----------
  [gn] port dfafe3822b1


  Commit: 51bc8cdf7bbc98cd691fc480b333907e665b8eae
      https://github.com/llvm/llvm-project/commit/51bc8cdf7bbc98cd691fc480b333907e665b8eae
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td

  Log Message:
  -----------
  [RISCV] Add missing space to RISCVInstrInfoZvk.td. NFC


  Commit: 52a88d3f5af6bed08a47f1c2351f320e0e1f4a88
      https://github.com/llvm/llvm-project/commit/52a88d3f5af6bed08a47f1c2351f320e0e1f4a88
  Author: Yijia Gu <yijiagu at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  [mlir] fix llvm:support dependency error


  Commit: faad4e3fa81d10b91a9128ca84abfe381ac7c2e0
      https://github.com/llvm/llvm-project/commit/faad4e3fa81d10b91a9128ca84abfe381ac7c2e0
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M openmp/libomptarget/plugins-nextgen/host/CMakeLists.txt

  Log Message:
  -----------
  [Libomptarget] Split PowerPC into separate triples (#88773)

Summary:
The previous patch mistakenly merged these when they indeed need to be
treated like separate triples because it's what's passed to the test
suite.


  Commit: fb9c7dd6f1f3463b539d1f62f6ec7b5c7e061cf8
      https://github.com/llvm/llvm-project/commit/fb9c7dd6f1f3463b539d1f62f6ec7b5c7e061cf8
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Support/RISCVISAInfo.cpp

  Log Message:
  -----------
  [RISCV] Minor cleanups to RISCVISAInfo::parseArchString. NFC

Remove unneeded an unneeded variable and rename another.


  Commit: 9e485f48228114ab6c34151503740ea15cddb351
      https://github.com/llvm/llvm-project/commit/9e485f48228114ab6c34151503740ea15cddb351
  Author: cmtice <cmtice at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  [DWARF] Add accessor for NameIndex Offsets field. (#88783)

Add an accessor function to DWARFDebugNames::NameIndex to allow other
classes to access the Offsets field within NameIndex. This will be used
by LLD to create a merged .debug_names index
(https://github.com/llvm/llvm-project/pull/86508)


  Commit: 071ac0ae3029594167d2bb4d28859bdc36367034
      https://github.com/llvm/llvm-project/commit/071ac0ae3029594167d2bb4d28859bdc36367034
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M lldb/unittests/tools/CMakeLists.txt

  Log Message:
  -----------
  [lldb] Skip lldb-server unit tests when building with ASan

The lldb-server unit tests are timing out on GreenDragon and swift-ci.
We haven't been able to reproduce this locally or figure out why. We've
made several attempts to address potential issues, but we've reached a
point where we need to skip them to get signal out of this bot again.


  Commit: 0287a5cc4e2a5ded1ae2e4079f91052e6a6b8d9b
      https://github.com/llvm/llvm-project/commit/0287a5cc4e2a5ded1ae2e4079f91052e6a6b8d9b
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M clang/test/OpenMP/ompx_attributes_codegen.cpp
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  Log Message:
  -----------
  [OpenMP] Remove 'minncta' attributes from NVPTX kernels (#88398)

Summary:
Currently we treat this attribute as a minimum number for the amount of
blocks scheduled on the kernel. However, the doucmentation states that
this applies to CTA's mapped onto a *single* SM. Currently we just set
it to the total number of blocks, which will almost always result in a
warning that the value is out of range and will be ignored. We don't
have a good way to automatically know how many CTAs can be put on a
single SM nor if we should do this, so we should probably leave this up
to users manually adding it.


https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#performance-tuning-directives-minnctapersm


  Commit: 7eb5022cbb11fdf5e74d707b4c93d3669a46eccf
      https://github.com/llvm/llvm-project/commit/7eb5022cbb11fdf5e74d707b4c93d3669a46eccf
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M lldb/include/lldb/lldb-enumerations.h

  Log Message:
  -----------
  [lldb][NFC] Turn ChildCacheState into an unscoped enum (#88703)

Done for consistency with the rest of the enums in
`lldb-enumerations.h`. See
https://github.com/llvm/llvm-project/pull/80167#issuecomment-2043721298


  Commit: b8c16db938327efdabc63f21fdc770069ac4406b
      https://github.com/llvm/llvm-project/commit/b8c16db938327efdabc63f21fdc770069ac4406b
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp

  Log Message:
  -----------
  [lldb][TypeSystemClang][NFCI] Use LangOptions::setLangDefaults when creating new LangOptions (#88721)

This logic was originally copied from `CompilerInstance::parseLangArgs`.
Since then, the `CompilerInstance` uses `LangOptions::setLangDefaults`
to set up new `LangOptions` instances. In our case, we only ever passed
`Language::ObjCXX` into LLDB's `ParseLangArgs`, so most of this function
was dead code.

This patch replaces the duplicated logic with a call to
`LangOptions::setLangDefaults`.


  Commit: 905d2ecbb63f4087b50d633b012c9915ab3a6829
      https://github.com/llvm/llvm-project/commit/905d2ecbb63f4087b50d633b012c9915ab3a6829
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/NameSearchContext.h

  Log Message:
  -----------
  [lldb][ClangExpressionDeclMap][NFC] Remove unused NameSearchContext::m_found_function (#88724)

This member was never actually used, ever since its introduction in
`ca4e0fd7e63b90e6f68044af47248c64f250ee8f`.


  Commit: 69d861e1320119e9a02907155ca626b1db90ad93
      https://github.com/llvm/llvm-project/commit/69d861e1320119e9a02907155ca626b1db90ad93
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
    M clang/test/CodeGen/bitfield-access-unit.c

  Log Message:
  -----------
  [clang] Move tailclipping to bitfield allocation (#87090)

Move bitfield access clipping to bitfield access computation.


  Commit: c303945409a740c8fdb4103a4f21df55187aa84f
      https://github.com/llvm/llvm-project/commit/c303945409a740c8fdb4103a4f21df55187aa84f
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  [gn] port e356f68 more


  Commit: a855eea7fe86ef09a87f6251b3b711b821ae32bf
      https://github.com/llvm/llvm-project/commit/a855eea7fe86ef09a87f6251b3b711b821ae32bf
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M lldb/cmake/modules/LLDBFramework.cmake

  Log Message:
  -----------
  [lldb] Fix the standalone Xcode build after #88317

In #88317, the clang resource headers was converted to an interface
library. Update LLDB and fix the Xcode standalone build. Thanks Evan for
the help!


  Commit: 21d177096f84c38cf434c21bd3ff0dbd2ca163d0
      https://github.com/llvm/llvm-project/commit/21d177096f84c38cf434c21bd3ff0dbd2ca163d0
  Author: Kai Nacke <kai.peter.nacke at ibm.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/LivePhysRegs.h
    M llvm/lib/CodeGen/BranchFolding.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
    M llvm/lib/Target/PowerPC/PPCExpandAtomicPseudoInsts.cpp
    M llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
    M llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
    M llvm/lib/Target/X86/X86FrameLowering.cpp

  Log Message:
  -----------
  [NFC] Refactor looping over recomputeLiveIns into function (#88040)

https://github.com/llvm/llvm-project/pull/79940 put calls to
recomputeLiveIns into
a loop, to repeatedly call the function until the computation converges.
However,
this repeats a lot of code. This changes moves the loop into a function
to simplify
the handling.

Note that this changes the order in which recomputeLiveIns is called.
For example,

```
  bool anyChange = false;
  do {
    anyChange = recomputeLiveIns(*ExitMBB) || recomputeLiveIns(*LoopMBB);
  } while (anyChange);
```

only begins to recompute the live-ins for LoopMBB after the computation
for ExitMBB
has converged. With this change, all basic blocks have a recomputation
of the live-ins
for each loop iteration. This can result in less or more calls,
depending on the
situation.


  Commit: 67571ffd2c51a72a23d57fb5ef746a6fadd6b09c
      https://github.com/llvm/llvm-project/commit/67571ffd2c51a72a23d57fb5ef746a6fadd6b09c
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M compiler-rt/test/sanitizer_common/TestCases/Linux/mmap_56bit_test.c

  Log Message:
  -----------
  [test][sanitizer] Compile .c file as C


  Commit: a1ed652fb3589670180c08c2c6d5ef1ff337c658
      https://github.com/llvm/llvm-project/commit/a1ed652fb3589670180c08c2c6d5ef1ff337c658
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M compiler-rt/test/sanitizer_common/TestCases/Linux/mmap_56bit_test.c

  Log Message:
  -----------
  [test][sanitizer] Temporarily disable test

Test, as expected, fails with Asan on system with 5lvl page tables.
Disabling the test to migrate buildbot.


  Commit: 63310243537ba8830f3533a5d93e7b04b10d6c9e
      https://github.com/llvm/llvm-project/commit/63310243537ba8830f3533a5d93e7b04b10d6c9e
  Author: Argyrios Kyrtzidis <kyrtzidis at apple.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h
    M clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
    M clang/test/ClangScanDeps/removed-args.c

  Log Message:
  -----------
  [clang/DependencyScanning/ModuleDepCollector] Refactor part of `makeCommonInvocationForModuleBuild` into its own function (#88447)

The new function is about clearing out benign codegen options and can be
applied for PCH invocations as well.


  Commit: 6d234638f90bd422078c93745bdee73d6de201bf
      https://github.com/llvm/llvm-project/commit/6d234638f90bd422078c93745bdee73d6de201bf
  Author: Fr4nk1in <sh.fu at outlook.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M mlir/docs/Dialects/LLVM.md

  Log Message:
  -----------
  [docs][mlir] Fix broken links in 'llvm' dialects. (#88704)

Links to `llvm.mlir.global` and `llvm.mlir.addressof` in the ["Globals"
section of LLVM dialect
documentation](https://mlir.llvm.org/docs/Dialects/LLVM/#globals) are
broken.


  Commit: 206acf72c3b6c23e77716ccfc55ff94a4e7a7e3e
      https://github.com/llvm/llvm-project/commit/206acf72c3b6c23e77716ccfc55ff94a4e7a7e3e
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  [gn] port 8a7846fe86f95 (C++23 for libcxx, libcxxabi)


  Commit: 466017c8dab74f66ce513c8752f0c1dcd16a8a63
      https://github.com/llvm/llvm-project/commit/466017c8dab74f66ce513c8752f0c1dcd16a8a63
  Author: Adrian Prantl <aprantl at apple.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M lldb/test/API/commands/frame/diagnose/dereference-function-return/TestDiagnoseDereferenceFunctionReturn.py

  Log Message:
  -----------
  Work around test failure due to new aslr default


  Commit: 9cb755cf5b2f48117fa34f257f386acf59ad6397
      https://github.com/llvm/llvm-project/commit/9cb755cf5b2f48117fa34f257f386acf59ad6397
  Author: Wu Yingcong <yingcong.wu at intel.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/test/ExecutionEngine/JITLink/x86-64/ELF_vtune.s

  Log Message:
  -----------
  [Test][JITLink] Save rbx in ExecutionEngine/JITLink/x86-64/ELF_vtune.s (#86472)

The callee should preserve rbx according to the calling convention, but
it is not in the test case `ExecutionEngine/JITLink/x86-64/ELF_vtune.s`.
Not preserving the rbx register may result in some random error to the
caller function. This patch adds the missing command to preserve the
rbx.


  Commit: c50f7e9a425bfa4ab8655c79a715c88ed3b1e830
      https://github.com/llvm/llvm-project/commit/c50f7e9a425bfa4ab8655c79a715c88ed3b1e830
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  Log Message:
  -----------
  [InstCombine] Remove mul of SPF abs fold (#88675)

Remove the fold working on abs in SPF representation now that we
canonicalize SPF to intrinsics.

This is not strictly NFC because the SPF fold might fire for
non-canonical IR due to multi-use, but given the lack of test coverage,
I assume this is not important.


  Commit: 2b06ff555aa32b316710b4708fbc16f36d6eab15
      https://github.com/llvm/llvm-project/commit/2b06ff555aa32b316710b4708fbc16f36d6eab15
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/addimm-mulimm.ll
    M llvm/test/CodeGen/RISCV/rv32zba.ll
    M llvm/test/CodeGen/RISCV/rv64-legal-i32/rv64zba.ll
    M llvm/test/CodeGen/RISCV/rv64zba.ll

  Log Message:
  -----------
  [RISCV] Expand mul to shNadd x, (slli x, c) in DAGCombine (#88524)

This expansion is directly inspired by the analogous code in the x86
backend for LEA. shXadd and (this sub-case of) LEA are largely
equivalent.

This is an alternative to
https://github.com/llvm/llvm-project/pull/87105.

This expansion is also supported via the decomposeMulByConstant
callback, but restricted because of interactions with other combines
since that code runs before legalization. As discussed in the other
review, my original plan had been to support post legalization expansion
through the same interface, but that ended up being more complicated
than seems justified.

Instead, lets go ahead and do the general expansion post-legalize. Other
targets use the combine approach, and matching that structure makes it
easier for us to adapt ideas from other targets to RISCV.


  Commit: 40bbdb609f58d6cbbae1ca525832d7a21641a347
      https://github.com/llvm/llvm-project/commit/40bbdb609f58d6cbbae1ca525832d7a21641a347
  Author: Alina Sbirlea <asbirlea at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/X86/any_extend_vector_inreg_of_broadcast.ll
    M llvm/test/CodeGen/X86/dpbusd.ll
    M llvm/test/CodeGen/X86/dpbusd_i4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-7.ll
    M llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast.ll

  Log Message:
  -----------
  Revert "[DAG] Fold extract_subvector(insert_subvector(x,y,c1),c2) --> extract_subvector(y,c2-c1) (#87925)"

This reverts commit 8c0f52e9d5a99bf96bb64ac23b5893482c292527.

Reverting to green, reproducer attached in the PR/revision comments.


  Commit: 694c444b5bbb56dcba8978d283fe5385237c309a
      https://github.com/llvm/llvm-project/commit/694c444b5bbb56dcba8978d283fe5385237c309a
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  [gn] port 311ff3917827 more


  Commit: 2ac562ab784c6bf04e6d3026c567d3552a735668
      https://github.com/llvm/llvm-project/commit/2ac562ab784c6bf04e6d3026c567d3552a735668
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M clang/lib/Sema/CMakeLists.txt
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/test/AST/ast-dump-attr-json.cpp
    M clang/test/Sema/alias-unused-win.cpp
    M clang/test/Sema/alias-unused.cpp
    M utils/bazel/llvm-project-overlay/clang/BUILD.bazel

  Log Message:
  -----------
  [Sema] Mark alias/ifunc targets used and consider mangled names

https://reviews.llvm.org/D54188 marked "alias" targets as used in C to
fix -Wunused false positives. This patch extends the approach to handle
mangled names to support global scope names in C++ and the
`overloadable` attribute in C.

In addition, we mark ifunc targets as used to fix #63957.

While our approach has false negatives for namespace scope names, the
majority of alias/ifunc C++ uses (global scope with no overloads) are
handled.

Note: The following function with internal linkage but C language
linkage type is mangled in Clang but not in GCC. This inconsistency
makes alias/ifunc difficult to use in C++ with portability (#88593).
```
extern "C" {
static void f0() {}
// GCC: void g0() __attribute__((alias("_ZL2f0v")));
// Clang: void g0() __attribute__((alias("f0")));
}
```

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


  Commit: 8aa7e378dee27ec81959ef6750a7dd07cefdc77d
      https://github.com/llvm/llvm-project/commit/8aa7e378dee27ec81959ef6750a7dd07cefdc77d
  Author: Allen <zhongyunde at huawei.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/Transforms/InterleavedAccess/AArch64/sve-interleaved-accesses.ll

  Log Message:
  -----------
  [InterleavedAccessPass] Get round the unsupported large scalarize vectors (#88643)

When build with option -msve-vector-bits=512, the return vaule of
Subtarget->getMinSVEVectorSizeInBits() is 512;
While the MinElts is still 4 for <vscale x 4 x double> in
getNumInterleavedAccesses, so it creates invalid
llvm.aarch64.sve.ld2.sret.nxv4f64, which need be splited.
Unlikely, the related custom spilting is not supported now.

Fix https://github.com/llvm/llvm-project/issues/88247


  Commit: d23a85066b5d89a47fde7b6777e0fc5a711b99d4
      https://github.com/llvm/llvm-project/commit/d23a85066b5d89a47fde7b6777e0fc5a711b99d4
  Author: Matthias Braun <matze at braunis.de>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    A llvm/test/Transforms/InstCombine/threadlocal_address.ll

  Log Message:
  -----------
  InstCombine: Increase threadlocal.address alignment if pointee is more aligned (#88435)

Increase alignment of `llvm.threadlocal.address` if the pointed to
global has higher alignment.


  Commit: 2e26ee9dce32d12ffa9bfb7f7d3e97778f0b7a75
      https://github.com/llvm/llvm-project/commit/2e26ee9dce32d12ffa9bfb7f7d3e97778f0b7a75
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

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

  Log Message:
  -----------
  [DWARF] Clarify a variable name. NFC (#88814)

The parameter of `findDebugNamesOffsets` has been renamed to
`EndOfHeaderOffset` in #88064 to make it clear it is a section offset
instead of an offset relative to the current name index. Rename the call
site variable as well.


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

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/RISCV/rvv-cmp.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/illegal-type.ll

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

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


  Commit: dfe12b3fd193318403622a8ae51e0362c27502d1
      https://github.com/llvm/llvm-project/commit/dfe12b3fd193318403622a8ae51e0362c27502d1
  Author: Benji Smith <6193112+Benjins at users.noreply.github.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/docs/ReleaseNotes.rst
    M llvm/include/llvm-c/Core.h
    M llvm/lib/IR/Core.cpp
    M llvm/test/Bindings/llvm-c/atomics.ll

  Log Message:
  -----------
  [C API] Support uinc_wrap/udec_wrap in atomicrmw when accessing the bin op (#87163)

These previously were added in the C++ API in
778cf5431cafc243f81dd5c8cbd27701ff7f9120, but without updating the enum
in the C API or mapping functions.

Corresponding tests for all current atomicrmw bin ops have been added as
well.


  Commit: 5b9af38a03c8119cc2a42ae80d4a25e6f454c721
      https://github.com/llvm/llvm-project/commit/5b9af38a03c8119cc2a42ae80d4a25e6f454c721
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/test/CodeGen/RISCV/intrinsic-cttz-elts-vscale.ll
    M llvm/test/CodeGen/RISCV/intrinsic-cttz-elts.ll

  Log Message:
  -----------
  [RISCV] Provide a more efficient lowering for experimental.cttz.elts. (#88552)

For experimental.cttz.elts, we can use a vfirst instruction, but we need
to correct the result if input vector can be 0. cttz.elts returns the
vector length while vfirst returns -1.


  Commit: 4b22a923c4bfd0aa1d483149f84b6787263c2d76
      https://github.com/llvm/llvm-project/commit/4b22a923c4bfd0aa1d483149f84b6787263c2d76
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/include/llvm/IR/IRBuilder.h
    M llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
    M llvm/test/Transforms/IndVarSimplify/AArch64/widen-loop-comp.ll
    M llvm/test/Transforms/IndVarSimplify/X86/iv-widen.ll
    M llvm/test/Transforms/IndVarSimplify/elim-extend.ll
    M llvm/test/Transforms/IndVarSimplify/hoist-wide-inc-for-narrow-use-recompute-flags.ll
    M llvm/test/Transforms/IndVarSimplify/iv-sext.ll
    M llvm/test/Transforms/IndVarSimplify/iv-widen-elim-ext.ll
    M llvm/test/Transforms/IndVarSimplify/lftr.ll
    M llvm/test/Transforms/IndVarSimplify/no-iv-rewrite.ll
    M llvm/test/Transforms/IndVarSimplify/post-inc-range.ll
    M llvm/test/Transforms/IndVarSimplify/pr25578.ll
    M llvm/test/Transforms/IndVarSimplify/pr55925.ll
    M llvm/test/Transforms/IndVarSimplify/widen-nonnegative-countdown.ll
    M llvm/test/Transforms/IndVarSimplify/widen-nonnegative.ll
    M llvm/test/Transforms/LoopFlatten/widen-iv3.ll

  Log Message:
  -----------
  [IndVars] Mark truncs as nuw/nsw (#88686)

When inserting truncs during IV widening, mark the trunc as either nuw
or nsw depending on whether zext or sext widening was used. For
non-negative IVs both nuw and nsw apply.


  Commit: 5f680724838188f516d349bd9459710308d721e0
      https://github.com/llvm/llvm-project/commit/5f680724838188f516d349bd9459710308d721e0
  Author: Qizhi Hu <836744285 at qq.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaExpr.cpp
    A clang/test/SemaCXX/PR84020.cpp

  Log Message:
  -----------
  [Clang][Sema] Fix issue on requires expression with templated base class member function (#85198)

Fix https://github.com/llvm/llvm-project/issues/84020
Skip checking implicit object parameter in the context of
`RequiresExprBodyDecl`.

Co-authored-by: huqizhi <836744285 at qq.com>


  Commit: 568368a43e5b4adb3c5d105a0eff3e0c13c0af8c
      https://github.com/llvm/llvm-project/commit/568368a43e5b4adb3c5d105a0eff3e0c13c0af8c
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Support/Endian.h
    M llvm/include/llvm/Support/OnDiskHashTable.h

  Log Message:
  -----------
  [Support] Make readNext default to unaligned (#88808)

Without this patch, you would typically use readNext as:

  readNext<uint32_t, llvm::endianness::little, unaligned>(Ptr)

which is quite mouthful.  Since most serialization/deserialization
operations are unaligned accesses, this patch makes the alignment
template parameter default to unaligned, allowing us to say:

  readNext<uint32_t, llvm::endianness::little>(Ptr)

I'm including a few examples of migration in this patch.  I'll do the
rest in a separate patch.

Note that writeNext already has the same trick for the alignment
template parameter.


  Commit: b4cf63d26f4c41dd9403c4e62500d82a6d31d692
      https://github.com/llvm/llvm-project/commit/b4cf63d26f4c41dd9403c4e62500d82a6d31d692
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrCompiler.td

  Log Message:
  -----------
  [X86] Remove obsolete tablegen rules for near data in small static code model (#84523)

These should be already handled by other code.

Removing the kernel code model rules right above it cause
bss_pagealigned.ll to fail by using a movabsq to get the address of a
global, haven't figured out where that code is yet.


  Commit: 82f479ba315a417b6cd01a8c2efdc15c26689f2e
      https://github.com/llvm/llvm-project/commit/82f479ba315a417b6cd01a8c2efdc15c26689f2e
  Author: Usama Hameed <u_hameed at apple.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M lldb/test/API/functionalities/asan/Makefile
    M lldb/test/API/functionalities/asan/TestMemoryHistory.py
    M lldb/test/API/functionalities/asan/TestReportData.py
    A lldb/test/API/functionalities/libsanitizers/util.py

  Log Message:
  -----------
  Add asan tests for libsanitizers. (#88349)

This patch tests LLDB integration with libsanitizers for ASan.

rdar://111856681


  Commit: 00ae4b738be6e840cfdb3e7461409c3e49403e50
      https://github.com/llvm/llvm-project/commit/00ae4b738be6e840cfdb3e7461409c3e49403e50
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrCompiler.td

  Log Message:
  -----------
  Revert "[X86] Remove obsolete tablegen rules for near data in small static code model (#84523)"

This reverts commit b4cf63d26f4c41dd9403c4e62500d82a6d31d692.

Breaks indirect-branch-tracking-eh2.ll.


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

  Changed paths:
    M flang/include/flang/Optimizer/Dialect/FIROps.td
    M flang/include/flang/Optimizer/Dialect/FIRTypes.td
    M flang/lib/Optimizer/Dialect/FIROps.cpp
    A flang/test/Fir/cuf-invalid.fir
    A flang/test/Fir/cuf.mlir

  Log Message:
  -----------
  [flang][cuda] Add fir.cuda_allocate operation (#88586)

Allocatable with cuda device attribute have special semantic for the
allocate statement. In flang the allocate statement is lowered to a
sequence of runtime call initializing the descriptor and then allocating
the descriptor data. This new operation will replace the last runtime
call and abstract all the device memory allocation needed.
The lowering patch will follow.


  Commit: fe48bf672e1ab293368a3212203db94a4e21c533
      https://github.com/llvm/llvm-project/commit/fe48bf672e1ab293368a3212203db94a4e21c533
  Author: Chelsea Cassanova <chelsea_cassanova at apple.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M lldb/test/Shell/lit.cfg.py
    M lldb/test/Shell/lit.site.cfg.py.in

  Log Message:
  -----------
  [lldb][lit] Guard MallocNanoZone envvar in shell tests (#88824)

Previously the MallocNanoZone envvar would be set to 0 on Darwin for the
LLDB shell tests, but this should guarded behind ASan being enabled as
opposed to simply running the test suite behind Darwin. This required
that the LLVM_USE_SANITIZER option be added as an attribute to the lit
config for shell tests.


  Commit: 65b0cc610f80d9b9724a98cf7c5bcfd38e1cf799
      https://github.com/llvm/llvm-project/commit/65b0cc610f80d9b9724a98cf7c5bcfd38e1cf799
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVProcessors.td

  Log Message:
  -----------
  [RISCV] Add FeatureStdExtI to all CPUs in RISCVProcessors.td. NFC (#88805)

This is currently being implied in RISCVISAInfo.cpp. Make it explicit.

I'm planning to move all extension information to RISCVFeatures.td and
have tablegen create the tables for RISCVISAInfo.cpp. This requires
making the creation of RISCVTargetParserDef.inc in tablegen independent
of RISCVISAInfo.cpp. So we need an accurate extension list for CPUs in
tablegen.


  Commit: 4e2d11f87a595d658f25ec5838b002e4bf5a26fc
      https://github.com/llvm/llvm-project/commit/4e2d11f87a595d658f25ec5838b002e4bf5a26fc
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoZcmop.td

  Log Message:
  -----------
  [RISCV] Remove unnecessary NoHasStdExtZicfiss Predicate from cmop.1 and cmop.5. NFC (#88822)

I'm not sure what this was supposed do. Maybe it was for the
disassembler, but that should be managed through DecoderNamespace.

So let's remove it and simplify the code.


  Commit: edb0708dc1ceeaeb3356311a4ddf72a0dc9b224f
      https://github.com/llvm/llvm-project/commit/edb0708dc1ceeaeb3356311a4ddf72a0dc9b224f
  Author: Vlad Mishel <43666597+vmishelcs at users.noreply.github.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
    M llvm/test/Transforms/InstCombine/fcmp.ll

  Log Message:
  -----------
  [InstCombine] Implement `fcmp (fadd x, 0.0), y` => `fcmp x, y` optimization (#88476)

This PR addresses issue #88168. It implements an optimization for
the case of

```
define i1 @fcmp_fadd_zero_ugt(float %x, float %y) {
  %add = fadd float %x, 0.000000e+00
  %cmp = fcmp ugt float %add, %y
  ret i1 %cmp
}
```
`=>`
```
define i1 @fcmp_fadd_zero_ugt(float %x, float %y) {
  %cmp = fcmp ugt float %x, %y
  ret i1 %cmp
}
```
and all other types of `fcmp` instructions (`uge`, `ogt`, etc).

Proofs: 
`fadd x, 0.0` https://alive2.llvm.org/ce/z/7FzNnM
`fsub x, 0.0` https://alive2.llvm.org/ce/z/puUxLK


  Commit: 39016e33b0fe78ddb1f11822f71a8a233af4dca9
      https://github.com/llvm/llvm-project/commit/39016e33b0fe78ddb1f11822f71a8a233af4dca9
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/test/CodeGenCXX/module-funcs-from-imports.cppm

  Log Message:
  -----------
  [C++20] [Modules] Don't import non-inline function bodies even if it is always-inline

Recommit
https://github.com/llvm/llvm-project/commit/1ecbab56dcbb78268c8d19af34a50591f90b12a0

Close https://github.com/llvm/llvm-project/issues/80949

The new thing in this commit is to allow to import the function body
from instantiations if it is marked with always-inline. See the
discussion in https://github.com/llvm/llvm-project/issues/86893 for
details.


  Commit: f14146fd46dd8bf7ef1e64d3c13af73dc5668045
      https://github.com/llvm/llvm-project/commit/f14146fd46dd8bf7ef1e64d3c13af73dc5668045
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoZcmop.td
    M llvm/test/MC/RISCV/rv32zcmop-invalid.s
    M llvm/test/MC/RISCV/rvzcmop-valid.s

  Log Message:
  -----------
  [RISCV] Correct the spelling of the Zcmop mnemonics. (#88826)

The instruction names should be c.mop.1 instead of cmop.1.


  Commit: 17d6bf046cea381413895f91e24d26d65763b59a
      https://github.com/llvm/llvm-project/commit/17d6bf046cea381413895f91e24d26d65763b59a
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-15 (Mon, 15 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    A llvm/test/CodeGen/RISCV/rvv/pr88799.ll

  Log Message:
  -----------
  [RISCV] Change how MMO is rebuilt in lowerFixedLengthVectorLoadToRVV/lowerFixedLengthVectorStoreToRVV (#88811)

Copy the pointer info, flags, alignment, AAInfo, and ranges, but let
getLoad rebuild the MMO using the scalable type used for the the new
load/store. This makes sure the LLT minimum size matches the ContainerVT
minimum size. This is important since vscale_range may have been used to
determine that the fixed vector was the exact size of a scalable vector.

Fixes #88799


  Commit: 6da1966bc503e1ce44ef36e7107c9db482fac6ab
      https://github.com/llvm/llvm-project/commit/6da1966bc503e1ce44ef36e7107c9db482fac6ab
  Author: Michal Terepeta <michalt at google.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoXSf.td
    M llvm/lib/Target/RISCV/RISCVSchedRocket.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFiveP400.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
    M llvm/lib/Target/RISCV/RISCVSchedSyntacoreSCR1.td
    M llvm/lib/Target/RISCV/RISCVSchedXiangShanNanHu.td
    M llvm/lib/Target/RISCV/RISCVSchedule.td
    A llvm/lib/Target/RISCV/RISCVScheduleXSf.td

  Log Message:
  -----------
  [RISCV] Add scheduling information for SiFive VCIX (#86093)

This adds `RISCVScheduleXSf.td` with `SchedWrite` definitions for all
VCIX instructions and uses it in `RISCVSchedSiFive7.td` to set default
latencies for these instructions, helping with issue
https://github.com/llvm/llvm-project/issues/83391. Of course these
default latencies cannot be accurate (since each coprocessor will have
different latencies), but this seems to be enough to avoid some of the
problematic behavior described in the bug.

In any case, this seems to be enough to help with #83391 in our internal
testing.

A subsequent discussion is how to structure the code such that it's
easier for downstream consumers of this to use `SiFive7` scheduling
model with accurate VCIX latencies. But we can probably have a separate
issue to discuss that.


  Commit: e2c91091e537a54f1469610ab407e7c9561e7ffc
      https://github.com/llvm/llvm-project/commit/e2c91091e537a54f1469610ab407e7c9561e7ffc
  Author: darkbuck <michael.hliao at gmail.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/include/llvm/Target/GlobalISel/Combine.td
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-commute-fp-const-lhs.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/combine-commute-int-const-lhs.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-const-fold-barrier-rhs.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/prelegalizer-combiner-select-to-fminmax.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/select-to-fmin-fmax.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fcanonicalize.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/postlegalizercombiner-and.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/smed3.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/umed3.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/urem.i64.ll

  Log Message:
  -----------
  [GlobalISel] Handle more commutable instructions in `commute_constant_to_rhs`



Reviewers:
rupprecht, aartbik, cyndyishida, Pierre-vh, aemerson, ftynse, hanhanW, banach-space, jayfoad, nicolasvasilache, daniel-grumberg, arsenm, PeimingLiu, JDevlieghere, matthias-springer

Reviewed By: arsenm, Pierre-vh

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


  Commit: 3c6f91e5b671321c95259dabecdbdfe4a6d69ce1
      https://github.com/llvm/llvm-project/commit/3c6f91e5b671321c95259dabecdbdfe4a6d69ce1
  Author: martinboehme <mboehme at google.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
    M clang/unittests/Analysis/FlowSensitive/TransferTest.cpp

  Log Message:
  -----------
  [clang][dataflow] Fix result object location for builtin `<=>`. (#88726)

The newly added test causes an assertion failure in
`PropagateResultObject()`
without the fix added here.


  Commit: 7e49b0d5a67f212e84f8ec0ec2e39a6a8673bfaf
      https://github.com/llvm/llvm-project/commit/7e49b0d5a67f212e84f8ec0ec2e39a6a8673bfaf
  Author: Daniil Kovalev <dkovalev at accesssoftek.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp
    M lldb/unittests/UnwindAssembly/CMakeLists.txt
    A lldb/unittests/UnwindAssembly/x86-but-no-x86-target/CMakeLists.txt
    A lldb/unittests/UnwindAssembly/x86-but-no-x86-target/Testx86AssemblyInspectionEngine.cpp

  Log Message:
  -----------
  [lldb] Fix nullptr dereference on running x86 binary with x86-disabled llvm (#82603)

If `LLVM_TARGETS_TO_BUILD` does not contain `X86` and we try to run an
x86 binary in lldb, we get a `nullptr` dereference in
`LLVMDisasmInstruction(...)`. We try to call `getDisAsm()` method on a
`LLVMDisasmContext *DC` which is null. The pointer is passed from
`x86AssemblyInspectionEngine::instruction_length(...)` and is originally
`m_disasm_context` member of `x86AssemblyInspectionEngine`. This should
be filled by `LLVMCreateDisasm(...)` in the class constructor, but not
having X86 target enabled in llvm makes
`TargetRegistry::lookupTarget(...)` call return `nullptr`, which results
in `m_disasm_context` initialized with `nullptr` as well.

This patch adds if statements against `m_disasm_context` in
`x86AssemblyInspectionEngine::GetNonCallSiteUnwindPlanFromAssembly(...)`
and `x86AssemblyInspectionEngine::FindFirstNonPrologueInstruction(...)`
so subsequent calls to
`x86AssemblyInspectionEngine::instruction_length(...)` do not cause a
null pointer dereference.


  Commit: 89071f35599ac58cde99923a376d6b75c0d49e4b
      https://github.com/llvm/llvm-project/commit/89071f35599ac58cde99923a376d6b75c0d49e4b
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/lib/APINotes/APINotesReader.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/GlobalModuleIndex.cpp
    M clang/lib/Serialization/MultiOnDiskHashTable.h

  Log Message:
  -----------
  [clang] Drop unaligned from calls to readNext (NFC) (#88842)

Now readNext defaults to unaligned accesses.  This patch drops
unaligned to improve readability.


  Commit: a169d4c2e974ceb20b86faea3fa4ac286a1d44e8
      https://github.com/llvm/llvm-project/commit/a169d4c2e974ceb20b86faea3fa4ac286a1d44e8
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M lld/COFF/Writer.cpp
    M lld/test/COFF/autoimport-arm-data.s
    M lld/test/COFF/autoimport-arm64-data.s
    M lld/test/COFF/autoimport-gnu-implib.s
    A lld/test/COFF/autoimport-handler-func.s
    M lld/test/COFF/autoimport-warn.s
    M lld/test/COFF/autoimport-x86.s

  Log Message:
  -----------
  [LLD] [COFF] Error out if the runtime pseudo relocation function is missing (#88573)

When then linker creates runtime pseudo relocations, it places them in a
list with the assumption that the runtime will fix these relocations
later, when the image gets loaded. If the relevant runtime function
doesn't seem to be present in the linked image, error out.

Normally when linking the mingw-w64 runtime libraries, this function
always is available. However, if linking without including the mingw-w64
CRT startup files, and the image needs runtime pseudo relocations, make
it clear that this won't work as expected at runtime.

With ld.bfd, this situation is a hard error too; ld.bfd adds an
undefined reference to this symbol if runtime pseudo relocations are
needed.

A later alternative would be to actually try to pull in the symbol (if
seen in a static library, but not included yet). This would allow
decoupling the function from the main mingw-w64 CRT startup code (making
it optional, only running if the linker actually produced runtime pseudo
relocations).

Doing that would require restructuring the lld code (gathering pseudo
relocations earlier, then loading the relocator function, then pulling in
more object files to satisfy the dependencies of the relocator) though.

Also, ld.bfd doesn't currently successfully pull in more object files to
satisfy the dependency on _pei386_runtime_relocator, so with that in
mind, there's not much extra value in making LLD do it currently either;
we can't make such a change in mingw-w64's CRT until both linkers
handle it.

This fixes one issue brought up in
https://github.com/llvm/llvm-project/issues/84424.


  Commit: dbaa1893c9afe6a245860efb8d68875ba4fd6794
      https://github.com/llvm/llvm-project/commit/dbaa1893c9afe6a245860efb8d68875ba4fd6794
  Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVFeatures.td
    M llvm/lib/Target/RISCV/RISCVOptWInstrs.cpp
    A llvm/test/CodeGen/RISCV/prefer-w-inst.ll
    A llvm/test/CodeGen/RISCV/prefer-w-inst.mir
    R llvm/test/CodeGen/RISCV/strip-w-suffix.ll

  Log Message:
  -----------
  [RISCV] Generate more W instructons

We rename `TuneNoStripWSuffix` to `TunePreferWInst`.

If all the users of an instruction just use the low 32 bits, we can
convert it to its W variant.

A quick test on Coremark (`-O3 -march=rv64gc`):

|        | W instructions | code size(.text) |
|--------|----------------|------------------|
| before | 302            | 12257            |
| after  | 343            | 12265            |
|        | +13.58%        | +0.065%          |

Reviewers: asb, dtcxzyw, preames, lukel97, michaelmaitland, topperc

Reviewed By: topperc, dtcxzyw

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


  Commit: d26dd58ca5b59032eb371b8f51d9134acdd8d3ad
      https://github.com/llvm/llvm-project/commit/d26dd58ca5b59032eb371b8f51d9134acdd8d3ad
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/include/clang/AST/DeclBase.h
    M clang/include/clang/Serialization/ASTReader.h
    M clang/lib/AST/Decl.cpp
    M clang/lib/AST/DeclBase.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    A clang/test/Modules/hashing-decls-in-exprs-from-gmf-2.cppm

  Log Message:
  -----------
  [StmtProfile] Don't profile the body of lambda expressions

Close https://github.com/llvm/llvm-project/issues/87609

We tried to profile the body of the lambda expressions in
https://reviews.llvm.org/D153957. But as the original comments show,
it is indeed dangerous. After we tried to skip calculating the ODR
hash values recently, we have fall into this trap twice.

So in this patch, I choose to not profile the body of the lambda
expression. The signature of the lambda is still profiled.


  Commit: a29e85d6626aae7dba44c66ee5b703d3ab5de41c
      https://github.com/llvm/llvm-project/commit/a29e85d6626aae7dba44c66ee5b703d3ab5de41c
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/tools/llvm-exegesis/lib/SubprocessMemory.cpp

  Log Message:
  -----------
  [llvm-exegesis] Change preprocessor directives for getCurrentTID

This patch changes the preprocessor directives surrounding
getCurrentTID, particularly moving it out of the block that is only
defined when not building for Android. The getCurrentTID function is
called in places that only require Linux definitions, so this function
should have the same preprocessor scoping around it to prevent link time
failures.


  Commit: d34a2c2adb2a4f1dc262c5756d3725caa4ea2571
      https://github.com/llvm/llvm-project/commit/d34a2c2adb2a4f1dc262c5756d3725caa4ea2571
  Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td

  Log Message:
  -----------
  [RISCV] Make more vector pseudos commutable

This PR includes:
* vadd.vv/vand.vv/vor.vv/vxor.vv
* vmseq.vv/vmsne.vv
* vmin.vv/vminu.vv/vmax.vv/vmaxu.vv
* vmul.vv/vmulh.vv/vmulhu.vv
* vwadd.vv/vwaddu.vv
* vwmul.vv/vwmulu
* vwmacc.vv/vwmaccu.vv
* vadc.vvm

There is no test change, I may add it later.

Fixes part of #64422

Reviewers: michaelmaitland, preames, lukel97, topperc, asb

Reviewed By: topperc, lukel97

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


  Commit: 5b811562a520a8a3cd164897f24dee7da3115bbe
      https://github.com/llvm/llvm-project/commit/5b811562a520a8a3cd164897f24dee7da3115bbe
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/any_of.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/fill.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/find_if.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/for_each.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/libdispatch.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/merge.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/serial.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/stable_sort.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/thread.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/transform.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/transform_reduce.h
    M libcxx/include/__pstl/cpu_algos/cpu_traits.h

  Log Message:
  -----------
  [libc++] Rename __cpu_traits functions (#88741)

Functions inside __cpu_traits were needlessly prefixed with __parallel,
which doesn't serve a real purpose anymore now that they are inside a
traits class.


  Commit: 66cf995da76b9da3cfdee2f29eff6ea4d84305ef
      https://github.com/llvm/llvm-project/commit/66cf995da76b9da3cfdee2f29eff6ea4d84305ef
  Author: Carlos Alberto Enciso <carlos.alberto.enciso at gmail.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/Local.cpp
    M llvm/test/Transforms/SCCP/pr50901.ll
    M llvm/unittests/Transforms/Utils/LocalTest.cpp

  Log Message:
  -----------
  [IPSCCP] Variable not visible at Og: (#77901)

https://bugs.llvm.org/show_bug.cgi?id=51559
https://github.com/llvm/llvm-project/issues/50901

IPSCCP pass removes the global variable and does not create a constant
expression for the initializer value.

Extend test coverage to include:
- half, bfloat types.
- checks for undef (int32 and ptr).

There is no support for:
- fp128, x86_fp80, ppc_fp128  types.
https://github.com/llvm/llvm-project/issues/88102


  Commit: d6d84b5d1448e4f2e24b467a0abcf42fe9d543e9
      https://github.com/llvm/llvm-project/commit/d6d84b5d1448e4f2e24b467a0abcf42fe9d543e9
  Author: NagyDonat <donat.nagy at ericsson.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
    M clang/test/Analysis/Inputs/system-header-simulator-cxx.h
    M clang/test/Analysis/cxx-uninitialized-object-ptr-ref.cpp
    M clang/test/Analysis/exercise-ps.c
    M clang/test/Analysis/explain-svals.cpp
    A clang/test/Analysis/malloc-std-namespace.cpp
    M clang/test/Analysis/malloc.c
    M clang/test/Analysis/malloc.cpp
    M clang/test/Analysis/stack-addr-ps.c
    M clang/test/Analysis/stackaddrleak.c

  Log Message:
  -----------
  [analyzer] Handle builtin functions in MallocChecker (#88416)

This commit ensures that the `CallDescription`s in `MallocChecker` are
matched with the mode `CDM::CLibrary`, so:
- they don't match methods or functions within user-defined namespaces;
- they also match builtin variants of these functions (if any), so the
checker can model `__builtin_alloca()` like `alloca()`.

This change fixes https://github.com/llvm/llvm-project/issues/81597. New
tests were added to verify that `std::malloc` and `std::free` (from
`<cstdlib>`) are modeled, but a method that's named e.g. `free` isn't
confused with the memory release function.

The responsibility for modeling `__builtin_alloca` and
`__builtin_alloca_with_align` was moved from `BuiltinFunctionChecker` to
`MallocChecker`, to avoid buggy interactions between the checkers and
ensure that the builtin and non-builtin variants are handled by exactly
the same logic.

This change might be a step backwards for the users who don't have
`unix.Malloc` enabled; but I suspect that `__builtin_alloca()` is so
rare that it would be a waste of time to implement backwards
compatibility for them.

There were several test files that relied on `__builtin_alloca()` calls
to get an `AllocaRegion`, these were modified to enable `unix.Malloc`.
One of these files (cxx-uninitialized-object-ptr-ref.cpp) had some tests
that relied on the fact that `malloc()` was treated as a "black box" in
them, these were updated to use `calloc()` (to get initialized memory)
and `free()` (to avoid memory leak reports).

While I was developing this change, I found a very suspicious assert in
`MallocChecker`. As it isn't blocking the goals of this commit, I just
marked it with a FIXME, but I'll try to investigate and fix it in a
follow-up change.


  Commit: 40dd3aa91d3f73184e34e45e597b84bec059c572
      https://github.com/llvm/llvm-project/commit/40dd3aa91d3f73184e34e45e597b84bec059c572
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Affine/Transforms/Transforms.h
    M mlir/include/mlir/Dialect/Arith/Transforms/Transforms.h
    M mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h
    M mlir/lib/Dialect/Affine/IR/ValueBoundsOpInterfaceImpl.cpp
    M mlir/lib/Dialect/Affine/Transforms/ReifyValueBounds.cpp
    M mlir/lib/Dialect/Arith/IR/ValueBoundsOpInterfaceImpl.cpp
    M mlir/lib/Dialect/Arith/Transforms/IntNarrowing.cpp
    M mlir/lib/Dialect/Arith/Transforms/ReifyValueBounds.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Padding.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp
    M mlir/lib/Dialect/MemRef/Transforms/IndependenceTransforms.cpp
    M mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorTilingInterfaceImpl.cpp
    M mlir/lib/Dialect/Tensor/Transforms/IndependenceTransforms.cpp
    M mlir/lib/Dialect/Tensor/Utils/Utils.cpp
    M mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
    M mlir/test/Dialect/Affine/value-bounds-op-interface-impl.mlir
    M mlir/test/lib/Dialect/Affine/TestReifyValueBounds.cpp
    M mlir/test/lib/Dialect/Test/TestDialect.cpp
    M mlir/test/lib/Dialect/Test/TestOps.td

  Log Message:
  -----------
  [mlir][Interfaces] `Variable` abstraction for `ValueBoundsOpInterface` (#87980)

This commit generalizes and cleans up the `ValueBoundsConstraintSet`
API. The API used to provide function overloads for comparing/computing
bounds of:
- index-typed SSA value
- dimension of shaped value
- affine map + operands

This commit removes all overloads. There is now a single entry point for
each `compare` variant and each `computeBound` variant. These functions
now take a `Variable`, which is internally represented as an affine map
and map operands.

This commit also adds support for computing bounds for an affine map +
operands. There was previously no public API for that.


  Commit: 5a46123ddf62900d3dc73330f699c73038645198
      https://github.com/llvm/llvm-project/commit/5a46123ddf62900d3dc73330f699c73038645198
  Author: Utkarsh Saxena <usx at google.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CGCleanup.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/test/CodeGenCXX/control-flow-in-stmt-expr.cpp

  Log Message:
  -----------
  Fix missing dtor in function calls accepting trivial ABI structs (#88751)

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

Promoting the `EHCleanup` to `NormalAndEHCleanup` in `EmitCallArgs`
surfaced another bug with deactivation of normal cleanups. Here we
missed emitting CPP scope ends for deactivated normal cleanups. This
patch also fixes that bug.

We missed emitting CPP scope ends because we remove the `fallthrough`
(clears the insertion point) before deactivating normal cleanups. This
is to make the emitted "normal" cleanup code unreachable. But we still
need to emit CPP scope ends in the original basic block even for a
deactivated normal cleanup.
(This worked correctly before we did not remove `fallthrough` for
`EHCleanup`s).


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

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/test/AST/Interp/vectors.cpp

  Log Message:
  -----------
  [clang][Interp] Gracefully handle bitcasts to non-primitive types

We were calling classfiyPrim() instead of classify().


  Commit: 4fc0a99b8f220b6b41648da491bcc81a067f1600
      https://github.com/llvm/llvm-project/commit/4fc0a99b8f220b6b41648da491bcc81a067f1600
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/GCNCreateVOPD.cpp
    M llvm/test/CodeGen/AMDGPU/vopd-combine.mir

  Log Message:
  -----------
  [AMDGPU] Fix implicit operands of VOPD cndmask instructions (#87788)


  Commit: f4f772ceef379bd434d266b6e0d2bbdf796f81cb
      https://github.com/llvm/llvm-project/commit/f4f772ceef379bd434d266b6e0d2bbdf796f81cb
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
    M llvm/test/CodeGen/AMDGPU/bf16.ll
    M llvm/test/CodeGen/AMDGPU/llvm.is.fpclass.f16.ll
    M llvm/test/CodeGen/AMDGPU/load-constant-i16.ll
    M llvm/test/CodeGen/AMDGPU/load-constant-i8.ll
    M llvm/test/CodeGen/AMDGPU/sgpr-spill-overlap-wwm-reserve.mir

  Log Message:
  -----------
  [AMDGPU] Stop reserving $vcc_hi in wave32 mode (#87783)

This gives us one extra SGPR to play with. The comment suggested that it
could cause bugs, but I have tested it with Vulkan CTS with the default
wave size for compute shaders set to 32 and did not find any problems.


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

  Changed paths:
    M clang/lib/AST/Interp/Disasm.cpp
    M clang/lib/AST/Interp/InterpBlock.h

  Log Message:
  -----------
  [clang][Interp][NFC] Add Block::dump()


  Commit: 80fce05f2104d1c42db814276130536b014fcca2
      https://github.com/llvm/llvm-project/commit/80fce05f2104d1c42db814276130536b014fcca2
  Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/test/Transforms/InstCombine/minmax-intrinsics.ll

  Log Message:
  -----------
  [InstCombine] Fold `minmax (X & NegPow2C, Y & NegPow2C) -> minmax(X, Y) & NegPow2C` (#88859)

Alive2: https://alive2.llvm.org/ce/z/NFtkSX

This optimization will be beneficial to jemalloc users.


  Commit: cce026bf8f7dcf5aa402a6da20f0d4da56aee8b5
      https://github.com/llvm/llvm-project/commit/cce026bf8f7dcf5aa402a6da20f0d4da56aee8b5
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M mlir/test/lib/Dialect/Test/TestDialect.cpp

  Log Message:
  -----------
  [mlir][test] Fix -Wsign-compare in TestDialect.cpp (NFC)

llvm-project/mlir/test/lib/Dialect/Test/TestDialect.cpp:597:31:
error: comparison of integers of different signs: 'size_t' (aka 'unsigned long') and 'int64_t' (aka 'long') [-Werror,-Wsign-compare]
  if (getVarOperands().size() != expectedNumOperands)
      ~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~
1 error generated.


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

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/test/AST/Interp/vectors.cpp

  Log Message:
  -----------
  [clang][Interp] Support __builtin_vectorelements


  Commit: 70fe6ad535365de20c3a960dcfe97bd5cf68abb5
      https://github.com/llvm/llvm-project/commit/70fe6ad535365de20c3a960dcfe97bd5cf68abb5
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir

  Log Message:
  -----------
  [MLIR][OpenMP] Make omp.distribute into a loop wrapper (#87239)

This patch updates the definition of `omp.distribute` to enforce the
restrictions of a wrapper operation.


  Commit: 668a58b8926473d731c41c55007f1fe4571ada86
      https://github.com/llvm/llvm-project/commit/668a58b8926473d731c41c55007f1fe4571ada86
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M flang/docs/Intrinsics.md
    M flang/include/flang/Runtime/extensions.h
    M flang/runtime/extensions.cpp
    A flang/unittests/Runtime/AccessTest.cpp
    M flang/unittests/Runtime/CMakeLists.txt

  Log Message:
  -----------
  [flang][runtime] Add ACCESS library procedure (#88517)

Re-land https://github.com/llvm/llvm-project/pull/88395

Two build-bots were broken by the old version:
 - https://lab.llvm.org/buildbot/#/builders/285/builds/245
 - https://lab.llvm.org/buildbot/#/builders/21/builds/96988

The problem in both cases was that the compiler did not support
`std::filesystem` (which I use in the unit test).

I have removed the dependency upon std::filesystem because there isn't
an easy way to add the right linker options so that this is supported
correctly in all build environments [1]

[1] https://gitlab.kitware.com/cmake/cmake/-/issues/17834

---

This is a GNU extension:
https://gcc.gnu.org/onlinedocs/gfortran/ACCESS.html

Used in SALMON:
https://salmon-tddft.jp/download.html

Unfortunately the intrinsic takes a file path to operate on so there
isn't an easy way to make the test robust. The unit test expects to be
able to create, set read write and execute permissions, and delete files
called
std::filesystem::temp_directory_path() / <test_name>.<pid>

The test will fail if a file already exists with that name.

I have not implemented the intrinsic on Windows because this is wrapping
a POSIX system call and Windows doesn't support all of the permission
bits tested by the intrinsic. I don't have a Windows machine easily
available to check if Gfortran implements this intrinsic on Windows.


  Commit: 76782e28869abf93716f72f195d55c28eaf263ed
      https://github.com/llvm/llvm-project/commit/76782e28869abf93716f72f195d55c28eaf263ed
  Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/OpenMP.cpp

  Log Message:
  -----------
  [Flang][OpenMP] NFC: Remove old reduction lowering code (#88798)

The old code was replaced by
https://github.com/llvm/llvm-project/pull/80019.


  Commit: 61717c1aa1f08eb57839a21fb2d9004739022e0d
      https://github.com/llvm/llvm-project/commit/61717c1aa1f08eb57839a21fb2d9004739022e0d
  Author: Jon Chesterfield <jonathanchesterfield at gmail.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/Lint.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/vastart.ll
    M llvm/test/Other/lint.ll
    A llvm/test/Verifier/variadic.ll

  Log Message:
  -----------
  [Verifier] Reject va_start in non-variadic function (#88809)

A va_start intrinsic lowers to something derived from the variadic
parameter to the function. If there is no such parameter, it can't lower
meaningfully. Clang sema rejects the same with `error: 'va_start' used
in function with fixed args`.

Moves the existing lint warning into a verifier error. Updates the one
lit test that had a va_start in a non-variadic function.


  Commit: 1ca6b4475c02e5d022ec6b35dbb65d0f11409a88
      https://github.com/llvm/llvm-project/commit/1ca6b4475c02e5d022ec6b35dbb65d0f11409a88
  Author: Ivan Butygin <ivan.butygin at gmail.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/SCF/Transforms/UpliftWhileToFor.cpp

  Log Message:
  -----------
  [mlir][scf] `scf.while` uplifting: optimize op matching (#88813)

Instead of iterating over potential induction var uses looking for
suitable `arith.addi`, try to trace it back from yield argument.


  Commit: aae08f4f8ef7bc9c35d263ed974679130c49f5fc
      https://github.com/llvm/llvm-project/commit/aae08f4f8ef7bc9c35d263ed974679130c49f5fc
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/OpenMP/OpenMPClauseOperands.h
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir

  Log Message:
  -----------
  [MLIR][OpenMP] Make omp.taskloop into a loop wrapper (#87253)

This patch updates the definition of `omp.taskloop` to enforce the
restrictions of a wrapper operation.


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

  Changed paths:
    M clang/lib/AST/Interp/Pointer.h

  Log Message:
  -----------
  [clang][Interp][NFC] Fix Pointer::isZero() for block pointers

We don't need to consider the offset here anymore since we now
have proper integral pointers.


  Commit: 422bf13f336923da89055f8e70e49e7e9ced2c70
      https://github.com/llvm/llvm-project/commit/422bf13f336923da89055f8e70e49e7e9ced2c70
  Author: choikwa <5455710+choikwa at users.noreply.github.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
    M llvm/test/CodeGen/AMDGPU/build_vector.ll

  Log Message:
  -----------
  [AMDGPU] In VectorLegalizer::Expand, if UnrollVectorOp returns Load, … (#88475)

…return only Load since other output is chain.

Added testcase that showed mismatched expected arity when Load and chain
were returned as separate items after
003b58f65bdd5d9c7d0c1b355566c9ef430c0e7d


  Commit: 4dd5180a2d43b088d7637c30c2654f3c01c46987
      https://github.com/llvm/llvm-project/commit/4dd5180a2d43b088d7637c30c2654f3c01c46987
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2024-04-16 (Tue, 16 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 flang/test/Lower/OpenMP/target.f90
    M flang/test/Lower/OpenMP/use-device-ptr-to-use-device-addr.f90

  Log Message:
  -----------
  [Flang][OpenMP][Lower] Split MLIR codegen for clauses and constructs (#86963)

This patch performs several cleanups with the main purpose of
normalizing the code patterns used to trigger codegen for MLIR OpenMP
operations and making the processing of clauses and constructs
independent. The following changes are made:

- Clean up unused `directive` argument to
`ClauseProcessor::processMap()`.
- Move general helper functions in OpenMP.cpp to the appropriate section
of the file.
- Create `gen<OpName>Clauses()` functions containing the clause
processing code specific for the associated OpenMP construct.
- Update `gen<OpName>Op()` functions to call the corresponding
`gen<OpName>Clauses()` function.
- Sort calls to `ClauseProcessor::process<ClauseName>()` alphabetically,
to avoid inadvertently relying on some arbitrary order. Update some
tests that broke due to the order change.
- Normalize `genOMP()` functions so they all delegate the generation of
MLIR to `gen<OpName>Op()` functions following the same pattern.
- Only process `nowait` clause on `TARGET` constructs if not compiling
for the target device.

A later patch can move the calls to `gen<OpName>Clauses()` out of
`gen<OpName>Op()` functions and passing completed clause structures
instead, in preparation to supporting composite constructs. That will
make it possible to reuse clause processing for a given leaf construct
when appearing alone or in a combined or composite construct, while
controlling where the associated code is produced.


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

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp

  Log Message:
  -----------
  [clang][Interp][NFC] Compare std::optionals directly


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

  Changed paths:
    M clang/lib/AST/Interp/FunctionPointer.h
    M clang/lib/AST/Interp/Interp.h
    M clang/test/AST/Interp/functions.cpp

  Log Message:
  -----------
  [clang][Interp] Avoid calling invalid functions

Check if the non-null function pointer is even valid before calling
the function.


  Commit: b0194d2894db49d7cf4d36aed87952c3e0c6a390
      https://github.com/llvm/llvm-project/commit/b0194d2894db49d7cf4d36aed87952c3e0c6a390
  Author: Phoebe Wang <phoebe.wang at intel.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/Clang.cpp
    A clang/test/Driver/windows-seh-async-verify.cpp

  Log Message:
  -----------
  [SEH] Ignore async exception flag when the environment is not MSVC (#88101)

Fixes #62449


  Commit: f4960da6023b8034ae68925c3223d51624621b37
      https://github.com/llvm/llvm-project/commit/f4960da6023b8034ae68925c3223d51624621b37
  Author: Jon Chesterfield <jonathanchesterfield at gmail.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/Lint.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/vastart.ll
    M llvm/test/Other/lint.ll
    R llvm/test/Verifier/variadic.ll

  Log Message:
  -----------
  Revert "[Verifier] Reject va_start in non-variadic function (#88809)"

This reverts commit 61717c1aa1f08eb57839a21fb2d9004739022e0d. Failed a MLIR test


  Commit: 01f79899ba349a0200586c8d05f5e22cca2ced31
      https://github.com/llvm/llvm-project/commit/01f79899ba349a0200586c8d05f5e22cca2ced31
  Author: Jinyang He <hejinyang at loongson.cn>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M lld/ELF/InputSection.cpp
    A lld/test/ELF/loongarch-relax-align-ldr.s
    M lld/test/ELF/loongarch-relax-emit-relocs.s
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
    M llvm/test/MC/LoongArch/Relocations/relax-addsub.s
    M llvm/test/MC/LoongArch/Relocations/relax-align.s

  Log Message:
  -----------
  [LoongArch] Use R_LARCH_ALIGN with section symbol (#84741)

In LoongArch psABI v2.30, the R_LARCH_ALIGN requires symbol index to
support the third parameter of alignment directive. Create symbol for
each section is redundant because they have section symbol which can
also be used as symbol index. So use section symbol directly for
R_LARCH_ALIGN.


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

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/test/AST/Interp/records.cpp

  Log Message:
  -----------
  [clang][Interp] Support MemberExprs pointing to VarDecls


  Commit: 1120d8e6f799121b611aa23bdc128e40cf9c6c58
      https://github.com/llvm/llvm-project/commit/1120d8e6f799121b611aa23bdc128e40cf9c6c58
  Author: Alex Voicu <alexandru.voicu at amd.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/lib/Basic/Targets/SPIR.h
    M clang/test/CodeGen/target-data.c
    M llvm/lib/IR/AutoUpgrade.cpp
    M llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp
    M llvm/unittests/Bitcode/DataLayoutUpgradeTest.cpp

  Log Message:
  -----------
  [clang][CodeGen] Add AS for Globals to SPIR & SPIRV datalayouts (#88455)

Currently neither the SPIR nor the SPIRV targets specify the AS for
globals in their datalayout strings. This is problematic because
CodeGen/LLVM will default to AS0 in this case, which produces Globals
that end up in the private address space for e.g. OCL, HIPSPV or SYCL.
This patch addresses it by completing the datalayout string.


  Commit: 36b3c26451bf9a42f0b6b415993d3942bb73abdd
      https://github.com/llvm/llvm-project/commit/36b3c26451bf9a42f0b6b415993d3942bb73abdd
  Author: XChy <xxs_chy at outlook.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/Local.cpp
    M llvm/test/CodeGen/AArch64/and-sink.ll
    M llvm/test/CodeGen/AArch64/combine-comparisons-by-cse.ll
    M llvm/test/CodeGen/Hexagon/vect/zext-v4i1.ll
    M llvm/test/Transforms/JumpThreading/pr79175.ll
    M llvm/test/Transforms/JumpThreading/select.ll
    M llvm/test/Transforms/JumpThreading/thread-prob-7.ll
    A llvm/test/Transforms/JumpThreading/uncond-no-phi.ll
    A llvm/test/Transforms/PhaseOrdering/thread-uncond-bb.ll

  Log Message:
  -----------
  [JumpThreading] Thread over BB with only an unconditional branch (#86312)

Fixes #76609
This patch does:
- relax the phis constraint in `CanRedirectPredsOfEmptyBBToSucc`
- guarantee the BB has multiple different predecessors to redirect, so
that we can handle the case without phis in BB. Without this change and
phi constraint, we may redirect the CommonPred.

The motivation is consistent with JumpThreading. We always want the
branch to jump more direct to the destination, without passing the
middle block. In this way, we can expose more other optimization
opportunities.

An obivous example proposed by @dtcxzyw is like:
```llvm
define i32 @test(...) {
entry:
   br i1 %c, label %do.end, label %if.then

if.then:                                          ; preds = %entry
   %call2 = call i32 @dummy()
   %tobool3.not = icmp eq i32 %call2, 0
   br i1 %tobool3.not, label %do.end, label %return

do.end:                                           ; preds = %entry, %if.then
   br label %return

return:                                           ; preds = %if.then, %do.end
   %retval.0 = phi i32 [ 0, %do.end ], [ %call2, %if.then ]
   ret i32 %retval.0
}
```
`entry` can directly jump to return, without passing `do.end`, and then
the if-else pattern can be simplified further:
```llvm
define i32 @test(...) {
entry:
   br i1 %c, label %return, label %if.then

if.then:                                          ; preds = %entry
   %call2 = call i32 @dummy()
   br label %return

return:                                           ; preds = %if.then
   %retval.0 = phi i32 [ 0, %entry ], [ %call2, %if.then ]
   ret i32 %retval.0
}
```


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

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/test/AST/Interp/cxx03.cpp

  Log Message:
  -----------
  [clang][Interp] Load value from MemberExpr if required


  Commit: 92e96c7bbacbb477265c7e5ff6c49a6de5d4ee69
      https://github.com/llvm/llvm-project/commit/92e96c7bbacbb477265c7e5ff6c49a6de5d4ee69
  Author: Malay Sanghi <malay.sanghi at intel.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/Utils.h
    M llvm/lib/CodeGen/GlobalISel/Utils.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
    M llvm/lib/Target/Mips/MipsRegisterBankInfo.cpp
    M llvm/lib/Target/PowerPC/GISel/PPCRegisterBankInfo.cpp
    M llvm/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.cpp
    M llvm/lib/Target/X86/GISel/X86RegisterBankInfo.cpp
    M llvm/lib/Target/X86/GISel/X86RegisterBankInfo.h
    M llvm/test/CodeGen/X86/GlobalISel/fconstant.ll
    A llvm/test/CodeGen/X86/GlobalISel/regbankselect-sse-intrinsics.ll
    M llvm/test/CodeGen/X86/GlobalISel/regbankselect-x87.ll

  Log Message:
  -----------
  [X86][GISel] Add DU chain lookups for LOAD & STORE (#87453)

For G_LOAD and G_STORE we want this information during regbankselect.
Today we treat load dest as integer and insert converts.

---------

Co-authored-by: Evgenii Kudriashov <evgenii.kudriashov at intel.com>


  Commit: ac6b4c618a52c62cef9b143a767991dbba7453e1
      https://github.com/llvm/llvm-project/commit/ac6b4c618a52c62cef9b143a767991dbba7453e1
  Author: Jon Chesterfield <jonathanchesterfield at gmail.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/Lint.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/vastart.ll
    M llvm/test/Other/lint.ll
    A llvm/test/Verifier/variadic.ll
    M mlir/test/Target/LLVMIR/Import/intrinsic.ll

  Log Message:
  -----------
  Reapply "[Verifier] Reject va_start in non-variadic function (#88809)"

This reverts commit f4960da6023b8034ae68925c3223d51624621b37.
Includes a fix for the MLIR test case.


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

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

  Log Message:
  -----------
  [clang][Interp] Don't add 'in call to' diagnostics for builtin frames


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

  Changed paths:
    M clang/lib/AST/Interp/Disasm.cpp

  Log Message:
  -----------
  [clang][Interp][NFC] Fix some build warnings

Fixes:
/buildbot/worker/arc-folder/llvm-project/clang/lib/AST/Interp/Disasm.cpp:143:25: warning: cast from type 'const clang::interp::Block*' to type 'void*' casts away qualifiers [-Wcast-qual]
/buildbot/worker/arc-folder/llvm-project/clang/lib/AST/Interp/Disasm.cpp:271:23: warning: cast from type 'const clang::interp::Block*' to type 'void*' casts away qualifiers [-Wcast-qual]


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

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/X86/any_extend_vector_inreg_of_broadcast.ll
    M llvm/test/CodeGen/X86/dpbusd.ll
    M llvm/test/CodeGen/X86/dpbusd_i4.ll
    M llvm/test/CodeGen/X86/vector-interleaved-load-i16-stride-3.ll
    M llvm/test/CodeGen/X86/vector-interleaved-store-i8-stride-7.ll
    M llvm/test/CodeGen/X86/zero_extend_vector_inreg_of_broadcast.ll

  Log Message:
  -----------
  [DAG] Fold extract_subvector(insert_subvector(x,y,c1),c2) --> extract_subvector(y,c2-c1) (#87925) (REAPPLIED)

If the extract_subvector is cheap, attempt to extract directly from an inserted subvector

Reapplied with a check to ensure we only attempt this for fixed vectors


  Commit: 71b9f6648222771470473431bc8ef2a2c25e872c
      https://github.com/llvm/llvm-project/commit/71b9f6648222771470473431bc8ef2a2c25e872c
  Author: Krystian Stasiowski <sdkrystian at gmail.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/lib/Index/USRGeneration.cpp
    M clang/test/Index/USR/func-type.cpp

  Log Message:
  -----------
  [clang][Index] Use canonical function parameter types in USRs (#68222)

This is necessary to ensure that functions declared in different
translation units whose parameter types only differ in top-level
cv-qualification generate the same USR.

For example:
```
// A.cpp
void f(const int x); // c:@F at f#1I#

// B.cpp
void f(int x);       // c:@F at f#I#
``` 
With this patch, the USR for both functions will be
`c:@F at f#I#`.


  Commit: dadcaf82274805456b7d85131cf94f921b5398b7
      https://github.com/llvm/llvm-project/commit/dadcaf82274805456b7d85131cf94f921b5398b7
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/ArmSME/Transforms/VectorLegalization.cpp
    M mlir/test/Dialect/ArmSME/vector-legalization.mlir

  Log Message:
  -----------
  [mlir][ArmSME] Support decomposing constant splats into ArmSME tiles (#88762)

This adds a simple rewrite/legalization to decompose constant splats
larger than a single ArmSME tile into multiple SME virtual tile sized
splats. E.g. a constant splat to `vector<[8]x[8]xi32>` would decompose
into four `vector<[4]x[4]xi32>` splats.


  Commit: 711df7b0ae4a9ea45e431d5c0ff4a0c8b2e732c1
      https://github.com/llvm/llvm-project/commit/711df7b0ae4a9ea45e431d5c0ff4a0c8b2e732c1
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
    M mlir/test/Dialect/Vector/canonicalize.mlir
    M mlir/test/Dialect/Vector/invalid.mlir

  Log Message:
  -----------
  [vector][mlir] Restrict vector.shuffle to fixed-width vectors (#88733)

At the moment there is no support for vector.shuffle for scalable
vectors - various hooks/helpers related to `vector.shuffle` simply
ignore the scalable flags (e.g. ` ShuffleOp::inferReturnTypes`).

This is unlikely to change any time soon (vector shuffles are known to
be tricky for scalable vectors), hence this patch restricts
`vector.shuffle` to fixed width vectors.


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

  Changed paths:
    M clang/lib/AST/Interp/InterpBuiltin.cpp
    A clang/test/AST/Interp/builtin-align-cxx.cpp

  Log Message:
  -----------
  [clang][Interp] Implement align builtins

__builtin_is_aligned
__builtin_is_align_up
__builtin_is_align_down


  Commit: 91dd844aa499d69c7ff75bf3156e2e3593a88057
      https://github.com/llvm/llvm-project/commit/91dd844aa499d69c7ff75bf3156e2e3593a88057
  Author: Brandon Wu <brandon.wu at sifive.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/test/CodeGen/RISCV/rvv/calling-conv.ll
    M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave-load.ll
    M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave.ll

  Log Message:
  -----------
  Recommit [RISCV] RISCV vector calling convention (2/2) (#79096) (#87736)

Bug fix: Handle RVV return type in calling convention correctly.
Return values are handled in a same way as function arguments.
One thing to mention is that if a type can be broken down into
homogeneous
vector types, e.g. {<vscale x 4 x i32>, {<vscale x 4 x i32>, <vscale x 4
x i32>}},
it is considered as a vector tuple type and need to be handled by tuple
type rule.


  Commit: ac1f2de7b581c26a768c4d2a2aad36505cc63c31
      https://github.com/llvm/llvm-project/commit/ac1f2de7b581c26a768c4d2a2aad36505cc63c31
  Author: Frederik Harwath <frederik.harwath at amd.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M mlir/docs/Interfaces.md

  Log Message:
  -----------
  [MLIR][docs] Mention declarePromisedInterface in Interfaces doc (#88689)

Co-authored-by: Frederik Harwath <fharwath at amd.com>
Co-authored-by: Mehdi Amini <joker.eph at gmail.com>


  Commit: 1c076b43c294c7d29d99dd50f6853b33a5b99789
      https://github.com/llvm/llvm-project/commit/1c076b43c294c7d29d99dd50f6853b33a5b99789
  Author: Spenser Bauman <sbauman at mathworks.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Tosa/IR/TosaTypesBase.td
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalgNamed.cpp
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg-named.mlir
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
    A mlir/test/Integration/Dialect/Tosa/CPU/test-maxpool-dynamic.mlir

  Log Message:
  -----------
  [mlir][tosa] Implement dynamic shape support for tosa.max_pool2d lowering (#87538)

The existing lowering for tosa.max_pool2d only supports dynamic
dimensions when the dynamic dimension is the batch dimension. This
change updates the lowering to support arbitrary dynamic dimensions on
the inputs and outputs of the tosa.max_pool2d operation.

This change also fixes a bug in the implementation of implicit
broadcasting in the tosa-to-linalg pass, which was introducing uses of
constant ops that violated dominance requirements.


  Commit: d4602a96b48b00a50c4d891673fc622ca2e37f0a
      https://github.com/llvm/llvm-project/commit/d4602a96b48b00a50c4d891673fc622ca2e37f0a
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/lldb/test/BUILD.gn

  Log Message:
  -----------
  [gn] port fe48bf672e1ab2


  Commit: c309dc6d0759b23b570c563f611530ff1a49e1bd
      https://github.com/llvm/llvm-project/commit/c309dc6d0759b23b570c563f611530ff1a49e1bd
  Author: mahtohappy <Happy.Kumar at Windriver.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/TreeTransform.h
    A clang/test/SemaCXX/instantiate-new-placement-size.cpp

  Log Message:
  -----------
  [Clang][Sema] placement new initializes typedef array with correct size (#83124)

When in-place new-ing a local variable of an array of trivial type, the
generated code calls 'memset' with the correct size of the array,
earlier it was generating size (squared of the typedef array + size).

The cause: `typedef TYPE TArray[8]; TArray x;` The type of declarator is
Tarray[8] and in `SemaExprCXX.cpp::BuildCXXNew` we check if it's of
typedef and of constant size then we get the original type and it works
fine for non-dependent cases.
But in case of template we do `TreeTransform.h:TransformCXXNEWExpr` and
there we again check the allocated type which is TArray[8] and it stays
that way, so ArraySize=(Tarray[8] type, alloc Tarray[8*type]) so the
squared size allocation.

ArraySize gets calculated earlier in `TreeTransform.h` so that
`if(!ArraySize)` condition was failing.
fix: I changed that condition to `if(ArraySize)`. 


Fixes #41441


  Commit: 34013e7ce25868aa8ddea116f79184e8603af56c
      https://github.com/llvm/llvm-project/commit/34013e7ce25868aa8ddea116f79184e8603af56c
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/vector-shuffle-combining-avx.ll
    M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512f.ll
    M llvm/test/CodeGen/X86/vector-shuffle-combining-sse41.ll

  Log Message:
  -----------
  [X86] Add shuffle tests for BLEND(PERMUTE(X),PERMUTE(Y)) patterns

Some very basic tests for a case where we could fold BLEND(PERMUTE(X),PERMUTE(Y)) -> PERMUTE(BLEND(X,Y))

These assume the permute masks are the same, and "complete" (no undefs/duplicate elements) but we could relax that depending on the blend mask


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/trunc-store-value-ty-not-power-of-2.ll

  Log Message:
  -----------
  [SLP] Make sure MinVF is a power-of-2 by using PowerOf2Ceil.

This should ensure we explore the same VFs as before 6d66db3890a18e39.

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


  Commit: e272c37934a06cd80b9b072afc09afae5fd8c218
      https://github.com/llvm/llvm-project/commit/e272c37934a06cd80b9b072afc09afae5fd8c218
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/test/Driver/windows-seh-async-verify.cpp

  Log Message:
  -----------
  clang; Try to get windows-seh-async-verify.cpp to pass on mac

On macOS, file paths start with /Users/..., which clang-cl interptrets
as the /U switch followed by a preprocessor macro name to undefine.

Put the filename after `--` to prevent this. For consistency, move %s
to the end of the regular `clang` lines (where this isn't needed) as
well.


  Commit: f69ded0d9965a6b2b76ce12db876c70f249d96d1
      https://github.com/llvm/llvm-project/commit/f69ded0d9965a6b2b76ce12db876c70f249d96d1
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/Sema.h
    A clang/include/clang/Sema/SemaOpenMP.h
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Parse/ParseExpr.cpp
    M clang/lib/Parse/ParseOpenMP.cpp
    M clang/lib/Parse/ParseStmt.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprMember.cpp
    M clang/lib/Sema/SemaLambda.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Sema/SemaStmt.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/lib/Sema/TreeTransform.h

  Log Message:
  -----------
  [clang] Introduce `SemaOpenMP` (#88642)

This patch moves OpenMP-related entities out of `Sema` to a newly
created `SemaOpenMP` class. This is a part of the effort to split `Sema`
up, and follows the recent example of CUDA, OpenACC, SYCL, HLSL.
Additional context can be found in
https://github.com/llvm/llvm-project/pull/82217,
https://github.com/llvm/llvm-project/pull/84184,
https://github.com/llvm/llvm-project/pull/87634.


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

  Changed paths:
    M clang/include/clang/Basic/Cuda.h
    M clang/lib/Basic/Cuda.cpp
    M clang/lib/Basic/Targets/NVPTX.cpp
    M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp

  Log Message:
  -----------
  [CUDA] Rename SM_32 to SM_32_ to work around AIX headers (#88779)

Summary:
AIX headers define this, so we need to work around it. In the future
this will be removed but for now we should just rename it to avoid these
issues.


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

  Changed paths:
    M clang/docs/ReleaseNotes.rst

  Log Message:
  -----------
  Switch release notes links to using markup for github issues; NFC


  Commit: 9d8be2408768912dc113a342050049231e4fc8d1
      https://github.com/llvm/llvm-project/commit/9d8be2408768912dc113a342050049231e4fc8d1
  Author: Utkarsh Saxena <usx at google.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    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
    R clang/test/CodeGenCXX/control-flow-in-stmt-expr.cpp
    R clang/test/CodeGenCoroutines/coro-suspend-cleanups.cpp

  Log Message:
  -----------
  Revert "[codegen] Emit missing cleanups for stmt-expr and coro suspensions" and related commits (#88884)

The original change caused widespread breakages in msan/ubsan tests and
causes `use-after-free`. Most likely we are adding more cleanups than
necessary.


  Commit: 9ce74d6d470437cde82e91631395322ec1c36eeb
      https://github.com/llvm/llvm-project/commit/9ce74d6d470437cde82e91631395322ec1c36eeb
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
    A llvm/test/CodeGen/AMDGPU/memcpy-libcall.ll

  Log Message:
  -----------
  [AMDGPU][CodeGen] Improve handling of memcpy for -Os/-Oz compilations (#87632)

We had some instances when LLVM would not inline fixed-count memcpy and
ended up
attempting to lower it a a libcall, which would not work on AMDGPU as
the
address space doesn't meet the requirement, causing compiler crash.

The patch relaxes the threshold used for -Os/-Oz compilation so we're
always allowed
to inline memory copy functions.

This patch basically does the same thing as
https://reviews.llvm.org/D158226 for
AMDGPU.

Fix #88497.


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

  Changed paths:
    A llvm/test/Transforms/SLPVectorizer/RISCV/smax-unsigned-operand.ll

  Log Message:
  -----------
  [SLP][NFC]Add a test with the incorrect vectorization of smax with unsigned arg.


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/RISCV/smax-unsigned-operand.ll

  Log Message:
  -----------
  [SLP]Fix PR88834: check if unsigned arg can be trunced, being used in smax/smin intrinsics.

Need to check that unsigned argument can be safely used in smax/smin
intrinsics by checking if at least single sign bit is cleared, otherwise
its value may be treated as negative instead of positive.


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

  Changed paths:
    M llvm/test/Transforms/VectorCombine/X86/shuffle-of-casts.ll
    M llvm/test/Transforms/VectorCombine/X86/shuffle.ll

  Log Message:
  -----------
  [VectorCombine][X86] Regenerate shuffle.ll + shuffle-of-casts.ll

Use v4 of UTC to improve regex matching of argument names to fix a filecheck matching in a future patch


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

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

  Log Message:
  -----------
  [LV][NFCI]Use integer for cost/trip count calculations instead of double, fix possible UB.

Using fp type in the compiler is not the best idea, here it used with
the comparison for equal to 0 and may cause undefined behavior in some
cases.

Reviewers: fhahn

Reviewed By: fhahn

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


  Commit: 254df2e35c14414564d233902b25305ed17d251c
      https://github.com/llvm/llvm-project/commit/254df2e35c14414564d233902b25305ed17d251c
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    A llvm/test/Transforms/VectorCombine/X86/shuffle-of-binops.ll
    M llvm/test/Transforms/VectorCombine/X86/shuffle.ll

  Log Message:
  -----------
  [VectorCombine][X86] shuffle-of-binops.ll - split off foldShuffleOfBinops tests from shuffle.ll


  Commit: 6133878227efc30355c02c2f089e06ce58231a3d
      https://github.com/llvm/llvm-project/commit/6133878227efc30355c02c2f089e06ce58231a3d
  Author: Erich Keane <ekeane at nvidia.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/include/clang/AST/OpenACCClause.h
    M clang/include/clang/AST/StmtOpenACC.h
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/OpenACCClauses.def
    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-clause-ast.cpp
    A clang/test/SemaOpenACC/compute-construct-self-clause.c
    A clang/test/SemaOpenACC/compute-construct-self-clause.cpp
    M clang/tools/libclang/CIndex.cpp

  Log Message:
  -----------
  [OpenACC] Implement `self` clause for compute constructs (#88760)

`self` clauses on compute constructs take an optional condition
expression. We again limit the implementation to ONLY compute constructs
to ensure we get all the rules correct for others. However, this one
will be particularly complicated, as it takes a `var-list` for `update`,
so when we get to that construct/clause combination, we need to do that
as well.

This patch also furthers uses of the `OpenACCClauses.def` as it became
useful while implementing this (as well as some other minor refactors as
I went through).

Finally, `self` and `if` clauses have an interaction with each other, if
an `if` clause evaluates to `true`, the `self` clause has no effect.
While this is intended and can be used 'meaningfully', we are warning on
this with a very granular warning, so that this edge case will be
noticed by newer users, but can be disabled trivially.


  Commit: ac791888bbbe58651e597cf7a4b2276424b77a92
      https://github.com/llvm/llvm-project/commit/ac791888bbbe58651e597cf7a4b2276424b77a92
  Author: Benjamin Kramer <benny.kra at googlemail.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

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

  Log Message:
  -----------
  [bazel] Add missing dependency for 1c076b43c294c7d29d99dd50f6853b33a5b99789


  Commit: a0f8191af3945482f0f7a7c8f030e8c519a795b7
      https://github.com/llvm/llvm-project/commit/a0f8191af3945482f0f7a7c8f030e8c519a795b7
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M libclc/CMakeLists.txt

  Log Message:
  -----------
  [libclc] Give built bytecode objects a .bc extension. NFC


  Commit: 3d118f92081ea0c7048749dc5d08c8e8217be4eb
      https://github.com/llvm/llvm-project/commit/3d118f92081ea0c7048749dc5d08c8e8217be4eb
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M libclc/CMakeLists.txt

  Log Message:
  -----------
  [libclc] Fix dependencies between targets

We need file-level - not target-level - dependencies for these custom
commands to re-trigger when their dependencies change.


  Commit: 60de56c743c414240b293a8b8ee10bc2129d7e10
      https://github.com/llvm/llvm-project/commit/60de56c743c414240b293a8b8ee10bc2129d7e10
  Author: Harald van Dijk <harald.vandijk at codeplay.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/lib/CodeGen/CGCall.cpp
    M llvm/include/llvm/Analysis/ValueTracking.h
    M llvm/lib/Analysis/BasicAliasAnalysis.cpp
    M llvm/lib/Analysis/InstructionSimplify.cpp
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/lib/Analysis/Loads.cpp
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
    M llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
    M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/unittests/Analysis/ValueTrackingTest.cpp

  Log Message:
  -----------
  [ValueTracking] Restore isKnownNonZero parameter order. (#88873)

Prior to #85863, the required parameters of llvm::isKnownNonZero were
Value and DataLayout. After, they are Value, Depth, and SimplifyQuery,
where SimplifyQuery is implicitly constructible from DataLayout. The
change to move Depth before SimplifyQuery needed callers to be updated
unnecessarily, and as commented in #85863, we actually want Depth to be
after SimplifyQuery anyway so that it can be defaulted and the caller
does not need to specify it.


  Commit: 5a34ff12b8f4a73f5dcd4be1b2575dc38cf13bee
      https://github.com/llvm/llvm-project/commit/5a34ff12b8f4a73f5dcd4be1b2575dc38cf13bee
  Author: Jeremy Kun <jkun at google.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Polynomial/IR/CMakeLists.txt

  Log Message:
  -----------
  fix Polynomial.td doc filename (#88900)

Not sure how best to test this, but I think it fixes the error
https://github.com/llvm/mlir-www/actions/runs/8699908058/job/23859264085#step:7:1111

Co-authored-by: Jeremy Kun <j2kun at users.noreply.github.com>
Co-authored-by: Jacques Pienaar <jpienaar at google.com>


  Commit: b63247627c9e87e898dec5bf0bea255b3f0eec5c
      https://github.com/llvm/llvm-project/commit/b63247627c9e87e898dec5bf0bea255b3f0eec5c
  Author: Ding Fei <fding at feysh.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaExpr.cpp
    A clang/test/Sema/recover-expr-gh88008-nocrash.c

  Log Message:
  -----------
  [AST][RecoveryExpr] Fix a crash on c89/c90 invalid InitListExpr (#88008) (#88014)

Use refactored `CheckForConstantInitializer()` to skip checking expr
with error.

---------

Co-authored-by: Aaron Ballman <aaron at aaronballman.com>


  Commit: d2d4a1bbdc455a30d600743eb59fb1c69205967a
      https://github.com/llvm/llvm-project/commit/d2d4a1bbdc455a30d600743eb59fb1c69205967a
  Author: XChy <xxs_chy at outlook.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/Local.cpp
    M llvm/test/CodeGen/AArch64/and-sink.ll
    M llvm/test/CodeGen/AArch64/combine-comparisons-by-cse.ll
    M llvm/test/CodeGen/Hexagon/vect/zext-v4i1.ll
    M llvm/test/Transforms/JumpThreading/pr79175.ll
    M llvm/test/Transforms/JumpThreading/select.ll
    M llvm/test/Transforms/JumpThreading/thread-prob-7.ll
    R llvm/test/Transforms/JumpThreading/uncond-no-phi.ll
    R llvm/test/Transforms/PhaseOrdering/thread-uncond-bb.ll

  Log Message:
  -----------
  Revert "[JumpThreading] Thread over BB with only an unconditional branch" (#88907)

Reverts llvm/llvm-project#86312


  Commit: 22629bb22a1bea95eebfc9b3171005de107c38f1
      https://github.com/llvm/llvm-project/commit/22629bb22a1bea95eebfc9b3171005de107c38f1
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M libcxx/include/__availability
    M libcxx/include/__config
    M libcxx/include/__expected/bad_expected_access.h
    M libcxx/include/__functional/function.h
    M libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/i686-linux-android21.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/powerpc-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/powerpc64-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/x86_64-linux-android21.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/x86_64-unknown-freebsd.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.noexceptions.nonew.abilist
    M libcxx/src/CMakeLists.txt
    A libcxx/src/expected.cpp
    M libcxx/src/functional.cpp

  Log Message:
  -----------
  [libc++] Use availability to rely on key functions for bad_expected_access and bad_function_call (#87390)

This patch uses our availability machinery to allow defining a key
function for bad_function_call and bad_expected_access at all times but
only rely on it when we can. This prevents compilers from complaining
about weak vtables and reduces code bloat and the amount of work done by
the dynamic linker.

rdar://111917845


  Commit: 9ddedf07ed80076e0e419940753aeaaf719a09ec
      https://github.com/llvm/llvm-project/commit/9ddedf07ed80076e0e419940753aeaaf719a09ec
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M libcxx/.clang-format
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/include/__atomic/atomic.h
    M libcxx/include/__atomic/atomic_flag.h
    M libcxx/include/__config
    M libcxx/include/barrier
    M libcxx/include/latch
    M libcxx/include/semaphore
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_notify_all.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_notify_one.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_wait.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_wait_explicit.pass.cpp
    M libcxx/test/std/thread/thread.barrier/arrive.pass.cpp
    M libcxx/test/std/thread/thread.barrier/arrive_and_drop.pass.cpp
    M libcxx/test/std/thread/thread.barrier/arrive_and_wait.pass.cpp
    M libcxx/test/std/thread/thread.barrier/completion.pass.cpp
    M libcxx/test/std/thread/thread.barrier/ctor.compile.pass.cpp
    M libcxx/test/std/thread/thread.barrier/max.pass.cpp
    M libcxx/test/std/thread/thread.latch/arrive_and_wait.pass.cpp
    M libcxx/test/std/thread/thread.latch/count_down.pass.cpp
    M libcxx/test/std/thread/thread.latch/ctor.pass.cpp
    M libcxx/test/std/thread/thread.latch/max.pass.cpp
    M libcxx/test/std/thread/thread.latch/try_wait.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/acquire.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/binary.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/ctor.compile.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/max.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/release.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/timed.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/try_acquire.pass.cpp

  Log Message:
  -----------
  [libc++] Deprecate the C++20 synchronization library before C++20 (#86410)

When we initially implemented the C++20 synchronization library, we
reluctantly accepted for the implementation to be backported to C++03
upon request from the person who provided the patch. This was when we
were only starting to have experience with the issues this can create,
so we flinched. Nowadays, we have a much stricter stance about not
backporting features to previous standards.

We have recently started fixing several bugs (and near bugs) in our
implementation of the synchronization library. A recurring theme during
these reviews has been how difficult to understand the current code is,
and upon inspection it becomes clear that being able to use a few recent
C++ features (in particular lambdas) would help a great deal. The code
would still be pretty intricate, but it would be a lot easier to reason
about the flow of callbacks through things like
__thread_poll_with_backoff.

As a result, this patch deprecates support for the synchronization
library before C++20. In the next release, we can remove that support
entirely.


  Commit: bd28889732e14ac6baca686c3ec99a82fc9cd89d
      https://github.com/llvm/llvm-project/commit/bd28889732e14ac6baca686c3ec99a82fc9cd89d
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rv64zba.ll

  Log Message:
  -----------
  [RISCV] Add coverage for strength reduction of mul 2^N +/- 3/5/9


  Commit: 1334c034a73b7bf8a7af08be1c33d24a58127c47
      https://github.com/llvm/llvm-project/commit/1334c034a73b7bf8a7af08be1c33d24a58127c47
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M flang/test/Semantics/OpenMP/clause-validity01.f90

  Log Message:
  -----------
  [flang] Fix test after 4078afc6d23e25df6baedad61b224ef86a94d42f

This tests requires the OpenMP runtime to be present, but the way that
the lit config detects it fails when "openmp" is added to RUNTIMES
instead of PROJECTS. This caused the tests to be skipped as unsupported
in local and upstream tests.

The actual bug was a missing word in the message, and putting the check
at the wrong line.


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

  Changed paths:
    A llvm/test/Transforms/VectorCombine/X86/shuffle-of-shuffles.ll

  Log Message:
  -----------
  [VectorCombine][X86] Add initial shuffle-of-shuffles.ll test cover for #88743


  Commit: f8e2ec13a8c6d33cb7b4f37869b4429ddcf43f01
      https://github.com/llvm/llvm-project/commit/f8e2ec13a8c6d33cb7b4f37869b4429ddcf43f01
  Author: Adrian Prantl <aprantl at apple.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M lldb/test/API/functionalities/asan/Makefile
    M lldb/test/API/functionalities/asan/TestMemoryHistory.py
    M lldb/test/API/functionalities/asan/TestReportData.py
    R lldb/test/API/functionalities/libsanitizers/util.py

  Log Message:
  -----------
  Revert "Add asan tests for libsanitizers. (#88349)"

This reverts commit 82f479ba315a417b6cd01a8c2efdc15c26689f2e due to bot breakage.


  Commit: 8cee94e989b5bf6fb6455087d48eb6c6e0e23c54
      https://github.com/llvm/llvm-project/commit/8cee94e989b5bf6fb6455087d48eb6c6e0e23c54
  Author: Harald van Dijk <harald.vandijk at codeplay.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

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

  Log Message:
  -----------
  [RISCV] Fix obvious copy paste error.

CASE_VFMA_OPCODE_VV and CASE_VFMA_CHANGE_OPCODE_VV need to match up if we are
are to avoid "Unexpected opcode" errors, but in CASE_VFMA_CHANGE_OPCODE_VV,
CASE_VFMA_CHANGE_OPCODE_LMULS_MF2 had mistakenly been used instead of
CASE_VFMA_CHANGE_OPCODE_LMULS_MF4.


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

  Changed paths:
    M clang/lib/Sema/CMakeLists.txt
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/test/AST/ast-dump-attr-json.cpp
    M clang/test/Sema/alias-unused-win.cpp
    M clang/test/Sema/alias-unused.cpp
    M utils/bazel/llvm-project-overlay/clang/BUILD.bazel

  Log Message:
  -----------
  Revert "[Sema] Mark alias/ifunc targets used and consider mangled names" (#88919)

Reverts llvm/llvm-project#87130

Bot is broken with clang crash:
https://lab.llvm.org/buildbot/#/builders/272/builds/14063/steps/6/logs/stdio


  Commit: 9d111286322ec99b32467eef3aeec6b588c49f18
      https://github.com/llvm/llvm-project/commit/9d111286322ec99b32467eef3aeec6b588c49f18
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M libclc/CMakeLists.txt

  Log Message:
  -----------
  [libclc] Improve clarity of CMake foreach. NFC.

Should be a bit easier to read.


  Commit: 2704ebaf2885a16155ab7144f8dd0dd459d77089
      https://github.com/llvm/llvm-project/commit/2704ebaf2885a16155ab7144f8dd0dd459d77089
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M flang/cmake/modules/AddFlangOffloadRuntime.cmake
    M flang/lib/Decimal/CMakeLists.txt
    M flang/runtime/CMakeLists.txt

  Log Message:
  -----------
  [flang][runtime] Create CUDA PTX OBJECT library target for F18 runtime CUDA build. (#88821)

This is to experiment with distributing F18 runtime CUDA library
in the form of a pure PTX library. The change is under
FLANG_EXPERIMENTAL_CUDA_RUNTIME CMake control.


  Commit: a79783d7ad00c4c10c30f637f4bf13551e47f3dd
      https://github.com/llvm/llvm-project/commit/a79783d7ad00c4c10c30f637f4bf13551e47f3dd
  Author: Robin Caloudis <robin.caloudis at gmx.de>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M libc/src/fenv/fegetexceptflag.h
    M libc/src/fenv/fesetexceptflag.h
    M libc/src/fenv/feupdateenv.cpp

  Log Message:
  -----------
  [libc][fenv] Use proxy header (#88787)

Include types `fexcept_t` and `fenv_t ` from corresponding proxy
headers, as they are available since
https://github.com/llvm/llvm-project/pull/88467.


  Commit: 38895e6578f7728cfb3d41d0880a0e9b358d9afd
      https://github.com/llvm/llvm-project/commit/38895e6578f7728cfb3d41d0880a0e9b358d9afd
  Author: Robin Caloudis <robin.caloudis at gmx.de>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M libc/src/fenv/CMakeLists.txt

  Log Message:
  -----------
  [libc][fenv] Remove unnecessary dependencies (#88788)

Remove the fenv macro dependency from the CMake files as the underlying targets
do not make use of it. Note that we do not have to worry about
[corresponding Bazel targets](https://github.com/llvm/llvm-project/blob/main/utils/bazel/llvm-project-overlay/libc/BUILD.bazel#L1138-L1288),
as they look good.


  Commit: 1c6b0f779f66494cb597884c1a52e377bde4bc54
      https://github.com/llvm/llvm-project/commit/1c6b0f779f66494cb597884c1a52e377bde4bc54
  Author: Stephen Tozer <stephen.tozer at sony.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/MachineDebugify.cpp
    M llvm/lib/Transforms/Utils/Debugify.cpp
    M llvm/test/CodeGen/Generic/MIRDebugify/check-line-and-variables-x.mir
    M llvm/test/CodeGen/Generic/MIRDebugify/check-line-and-variables.ll
    M llvm/test/CodeGen/Generic/MIRDebugify/check-line-and-variables.mir
    M llvm/test/CodeGen/Generic/MIRDebugify/locations-and-values.mir
    M llvm/test/CodeGen/Generic/MIRDebugify/multifunction-module.mir
    M llvm/test/DebugInfo/debugify-bogus-dbg-value.ll
    M llvm/test/DebugInfo/debugify-each.ll
    M llvm/test/DebugInfo/debugify-export.ll
    M llvm/test/DebugInfo/debugify-ignore-phi.ll
    M llvm/test/DebugInfo/debugify-original-no-dbg-info.ll
    M llvm/test/DebugInfo/debugify-report-missing-locs-only.ll
    M llvm/test/DebugInfo/debugify.ll
    M llvm/test/DebugInfo/pr37964.ll
    M llvm/test/DebugInfo/salvage-cast-debug-info.ll
    M llvm/test/DebugInfo/verify-di-preserve.ll

  Log Message:
  -----------
  [RemoveDI] Add support for debug records to debugify (#87383)

This patch changes debugify to support debug variable records, and
subsequently to no longer convert modules automatically to intrinsics
when entering debugify.


  Commit: 45eabd1362527d1b3a27a90f7479865785b763ee
      https://github.com/llvm/llvm-project/commit/45eabd1362527d1b3a27a90f7479865785b763ee
  Author: YunQiang Su <syq at debian.org>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M flang/test/Driver/msvc-dependent-lib-flags.f90

  Log Message:
  -----------
  [flang,test] Add -resource-dir option to msvc-dependent-lib-flags.f90 (#88894)

For aarch64-windows-msvc, clang_rt.builtins is placed in windows subdir
instead of triple subdir, and the name of clang_rt.builtins is
clang_rt.builtins-aarch64.lib.

So let's use `-resource-dir` option to fix test failure.

Please see talk for PR#87866.


  Commit: 22e6bf77ad8781810fc81fff4c447c03cdf6f419
      https://github.com/llvm/llvm-project/commit/22e6bf77ad8781810fc81fff4c447c03cdf6f419
  Author: Volodymyr Sapsai <vsapsai at apple.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/include/clang/Serialization/ModuleFileExtension.h
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    M clang/lib/Serialization/GeneratePCH.cpp
    M clang/lib/Serialization/GlobalModuleIndex.cpp
    M clang/lib/Serialization/ModuleFileExtension.cpp
    M clang/lib/Serialization/PCHContainerOperations.cpp

  Log Message:
  -----------
  [unused-includes][Serialization] Remove unused includes. NFC. (#88790)


  Commit: b566810add5b7c5695bdd2c39710b78af9dc83ba
      https://github.com/llvm/llvm-project/commit/b566810add5b7c5695bdd2c39710b78af9dc83ba
  Author: Volodymyr Sapsai <vsapsai at apple.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/include/clang/Serialization/PCHContainerOperations.h

  Log Message:
  -----------
  [unused-includes] PCHContainerOperations uses MemoryBufferRef, not MemoryBuffer. NFC. (#88794)


  Commit: 454d4496970f665200b5b300578894d78405b6ca
      https://github.com/llvm/llvm-project/commit/454d4496970f665200b5b300578894d78405b6ca
  Author: Xing Xue <xingxue at outlook.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M openmp/runtime/src/kmp_dispatch.cpp

  Log Message:
  -----------
  [OpenMP] Use a memory fence before incrementing the dispatch buffer index (#87995)

This patch uses a memory fence in function `__kmp_dispatch_next()` to
flush pending memory write invalidates before incrementing the
`volatile` variable `buffer_index` to fix intermittent time-outs of
OpenMP runtime LIT test cases `env/kmp_set_dispatch_buf.c` and
`worksharing/for/kmp_set_dispatch_buf.c`, noting that the same is needed
for incrementing `buffer_index` in function `__kmpc_next_section()`
(line 2600 of `kmp_dispatch.cpp`).


  Commit: 22bba85d82637d0446928ff6ff41f98583f3d3b2
      https://github.com/llvm/llvm-project/commit/22bba85d82637d0446928ff6ff41f98583f3d3b2
  Author: Xing Xue <xingxue at outlook.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M openmp/runtime/test/tasking/hidden_helper_task/capacity_mix_threads.cpp
    M openmp/runtime/test/tasking/hidden_helper_task/capacity_nthreads.cpp

  Log Message:
  -----------
  [OpenMP][test][AIX] Make 64 the max number of threads for capacity tests in AIX 32-bit (#88739)

This patch makes 64 the max number of threads for 2 capacity tests in
AIX 32-bit mode rather than `XFAIL`ing them.


  Commit: 8137bd9e03d636a27701a85b6efe899f9571cac5
      https://github.com/llvm/llvm-project/commit/8137bd9e03d636a27701a85b6efe899f9571cac5
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/include/llvm/ProfileData/MemProf.h
    M llvm/include/llvm/ProfileData/MemProfReader.h
    M llvm/lib/ProfileData/MemProf.cpp
    M llvm/lib/ProfileData/MemProfReader.cpp
    M llvm/unittests/ProfileData/MemProfTest.cpp

  Log Message:
  -----------
  [memprof] Use CSId to construct MemProfRecord (#88362)

We are in the process of referring to call stacks with CallStackId in
IndexedMemProfRecord and IndexedAllocationInfo instead of holding call
stacks inline (both in memory and the serialized format).  Doing so
deduplicates call stacks and reduces the MemProf profile file size.

Before we can eliminate the two fields holding call stacks inline:

- IndexedAllocationInfo::CallStack
- IndexedMemProfRecord::CallSites

we need to eliminate all the read operations on them.

This patch is a step toward that direction.  Specifically, we
eliminate the read operations in the context of MemProfReader and
RawMemProfReader.  A subsequent patch will eliminate the read
operations during the serialization.


  Commit: 8cd8ebe153391993a3668d2ac8d2994d9491f3ef
      https://github.com/llvm/llvm-project/commit/8cd8ebe153391993a3668d2ac8d2994d9491f3ef
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/unittests/CodeGen/RegAllocScoreTest.cpp

  Log Message:
  -----------
  [MLGO] Use double comparison facilities for reg alloc scoring tests (#88862)

This patch switches from using direct equality (ASSERT_EQ) to the
floating point comparison facilities (ASSERT_DOUBLE_EQ) within google
test to avoid weird floating point problems. There is at least one
downstream that maintains a patch for issues cropping up from the direct
equality.


https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/main/llvm17/allocscore.patch


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

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/ByteCodeExprGen.h
    M clang/test/AST/Interp/vectors.cpp

  Log Message:
  -----------
  [clang][Interp] Implement VectorSplat casts


  Commit: 184ba038ac1d444980b3e554b0057f3f30c516ab
      https://github.com/llvm/llvm-project/commit/184ba038ac1d444980b3e554b0057f3f30c516ab
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/addimm-mulimm.ll
    M llvm/test/CodeGen/RISCV/rv64zba.ll

  Log Message:
  -----------
  [RISCV] Avoid matching 3/5/9 * 2^N as 2^N + 2/4/8 (e.g. 24) (#88937)

The former is better as a zero extend can be folded into the sll,
whereas the later currently produces a seperate zext.w due to bad
interactions with other combines.


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

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Sema/Initialization.h
    M clang/include/clang/Sema/Overload.h
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaOverload.cpp

  Log Message:
  -----------
  Improve stack usage to increase recursive initialization depth (#88546)

We were crashing due to stack exhaustion on rather reasonable C++
template code. After some investigation, I found that we have a
stack-allocated object that was huge: `InitializationSequence` was 7016
bytes. This caused an overflow with deep call stacks in initialization
code.

With these change, `InitializationSequence` is now 248 bytes.

With the original code, testing RelWithDebInfo on Windows 10, all the
tests in SemaCXX took about 6s 800ms. The max template depth I could
reach on my machine using the code in the issue was 708. After that, I
would get `-Wstack-exhausted` warnings until crashing at 976
instantiations.

With these changes on the same machine, all the tests in SemaCXX took
about 6s 500ms. The max template depth I could reach was 1492. After
that, I would get `-Wstack-exhausted` warnings until crashing at 2898
instantiations.

This improves the behavior of #88330 but there's still an outstanding
question of why we run out of stack space and crash in some
circumstances before we're able to issue a diagnostic about stack space
exhaustion.


  Commit: aefff774a0d6f75565243263555f2513ac3c9fdf
      https://github.com/llvm/llvm-project/commit/aefff774a0d6f75565243263555f2513ac3c9fdf
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/test/CXX/drs/dr0xx.cpp
    M clang/test/CXX/drs/dr16xx.cpp
    M clang/test/CXX/drs/dr1xx.cpp
    M clang/test/CXX/drs/dr2xx.cpp
    M clang/test/CXX/drs/dr3xx.cpp
    M clang/test/CXX/drs/dr4xx.cpp
    M clang/test/CXX/drs/dr5xx.cpp
    M clang/test/CXX/drs/dr6xx.cpp

  Log Message:
  -----------
  [clang] Migrate DR tests to `static_assert` (#88611)

This patch touches a number of tests that run in C++98 mode that have
been using array size as a context that requires a constant expression,
replacing it with a `static_assert` backported via a macro. This reduces
noise in expected directives that comes from diagnostics around VLAs.

This patch also showcases that DR tests would benefit from folding in
constant expressions in C++98 mode, but I'm not sure it's even on the
table. If it is, I'd be happy to prepare a PR for that, and rebase this
PR on top of it.

CC @AaronBallman


  Commit: 6b83fe552990966fdad0e5693a79b02b87d9526e
      https://github.com/llvm/llvm-project/commit/6b83fe552990966fdad0e5693a79b02b87d9526e
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rv64zba.ll

  Log Message:
  -----------
  [RISCV] Strength reduce mul by 2^n + 2/4/8 + 1 (#88911)

With zba, we can expand this to (add (shl X, C1), (shXadd X, X)).

Note that this is our first expansion to a three instruction sequence. I
believe this to general be a reasonable tradeoff for most architectures,
but we may want to (someday) consider a tuning flag here.

I plan to support 2^n + (2/4/8 + 1) eventually as well, but that comes
behind 2^N - 2^M. Both are also three instruction sequences.

---------

Co-authored-by: Min-Yih Hsu <min at myhsu.dev>


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

  Changed paths:
    M clang/test/CodeGen/alias.cpp

  Log Message:
  -----------
  [CodeGen,test] Test llvm-libc style alias attribute with UsingShadowDecl

The pattern is quite involved and deserves a specific codegen test.
This test would catch the bug in the first attempt of #87130


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

  Changed paths:
    M libcxx/include/__chrono/formatter.h

  Log Message:
  -----------
  [NFC][libc++][TZDB] Refactors argument order. (#85781)

Putting the output reference argument first looks more sensible.


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

  Changed paths:
    M libcxx/include/__fwd/ios.h
    M libcxx/include/iosfwd
    M libcxx/utils/libcxx/test/modules.py

  Log Message:
  -----------
  [NFC][libc++] Moves ios_base's forward declaration. (#88027)

According to our synopsis it belonged to ios_fwd. This is not true in
the C++11 version of the Standard, I did not validate against C++98.

Moving this to ios's forward where it's declared in the standard allows
removing a module quirk. An earlier removal of std::vectors forward
declaration allows to remove all quirks for the iosfwd module part.

Since iosfwd includes __fwd/ios.h this does not change the required
includes.


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

  Changed paths:
    M libcxx/utils/libcxx/test/modules.py

  Log Message:
  -----------
  [libc++][modules] Removes some validation quirks. (#88031)

Recent unrelated header cleanups caused these quirks to become obsolete.


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

  Changed paths:
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/UsingLibcxx.rst
    M libcxx/include/__config
    R libcxx/test/libcxx/depr/enable_removed_cpp17_features.compile.pass.cpp
    R libcxx/test/libcxx/depr/enable_removed_cpp17_features.deprecated.verify.cpp
    R libcxx/test/libcxx/depr/enable_removed_cpp20_features.deprecated.verify.cpp

  Log Message:
  -----------
  [libc++] Removes deprecated _LIBCPP_ENABLE_<VERSION>_REMOVED_FEATURES macros (#88548)

We marked those macros as deprecated in the last release with the intent
of
removing them in LLVM 19. This commit performs the removal.


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

  Changed paths:
    M libcxx/test/libcxx/containers/sequences/vector/asan.pass.cpp

  Log Message:
  -----------
  [libc++][test] Removes Clang 16 validation. (#88558)


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

  Changed paths:
    M libcxx/docs/BuildingLibcxx.rst

  Log Message:
  -----------
  [libc++][doc] Documents -DLIBCXX_INSTALL_MODULES=ON. (#88547)

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


  Commit: 002297bdaa63f3f9f56b0051110ccf48f31c6825
      https://github.com/llvm/llvm-project/commit/002297bdaa63f3f9f56b0051110ccf48f31c6825
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

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

  Log Message:
  -----------
  [gn] port 22629bb22a1b


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

  Changed paths:
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensor.h
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorAttrDefs.td
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorOps.td
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorTypes.td
    M mlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp
    M mlir/test/Dialect/SparseTensor/invalid.mlir
    M mlir/test/Dialect/SparseTensor/roundtrip.mlir
    A mlir/test/Dialect/SparseTensor/sparse_itertion_licm.mlir

  Log Message:
  -----------
  [mlir][sparse] introduce sparse_tensor.iterate operation (#88807)

A `sparse_tensor.iterate` iterates over a sparse iteration space
extracted from `sparse_tensor.extract_iteration_space` operation
introduced in https://github.com/llvm/llvm-project/pull/88554.

*DO NOT MERGE* before https://github.com/llvm/llvm-project/pull/88554


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

  Changed paths:
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensor.h
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorAttrDefs.td
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorOps.td
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorTypes.td
    M mlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp
    M mlir/test/Dialect/SparseTensor/invalid.mlir
    M mlir/test/Dialect/SparseTensor/roundtrip.mlir
    R mlir/test/Dialect/SparseTensor/sparse_itertion_licm.mlir

  Log Message:
  -----------
  Revert "[mlir][sparse] introduce sparse_tensor.iterate operation" (#88953)

Reverts llvm/llvm-project#88807 (merged by mistake)


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

  Changed paths:
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorOps.td
    M mlir/include/mlir/Dialect/SparseTensor/IR/SparseTensorTypes.td
    M mlir/lib/Dialect/SparseTensor/IR/SparseTensorDialect.cpp
    M mlir/test/Dialect/SparseTensor/invalid.mlir
    M mlir/test/Dialect/SparseTensor/roundtrip.mlir

  Log Message:
  -----------
  [mlir][sparse] introduce `sparse_tensor.extract_iteration_space` operation. (#88554)

A `sparse_tensor.extract_space %tensor at %iterator` extracts a *sparse*
iteration space defined `%tensor`, the operation to traverse the
iteration space will be introduced in following PRs.


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

  Changed paths:
    M llvm/test/Transforms/InstCombine/known-bits.ll

  Log Message:
  -----------
  [InstCombine] Update `vector_reduce_and` tests to actually use `llvm.vector.reduce.and`; NFC


  Commit: 5c6af605b307213453a9a043532b9293db21b5c6
      https://github.com/llvm/llvm-project/commit/5c6af605b307213453a9a043532b9293db21b5c6
  Author: mahtohappy <Happy.Kumar at Windriver.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    A clang/test/SemaCXX/PR41441.cpp
    R clang/test/SemaCXX/instantiate-new-placement-size.cpp

  Log Message:
  -----------
  [Clang][Sema] placement new initializes typedef array with correct size (#88902)

Build Failure Fix
Fixes build failures due to #83124


  Commit: b01879ec1ffbd249f9bf3c4f32308443be6ac36b
      https://github.com/llvm/llvm-project/commit/b01879ec1ffbd249f9bf3c4f32308443be6ac36b
  Author: Chao Chen <116223022+chencha3 at users.noreply.github.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/XeGPU/IR/XeGPU.h
    M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUAttrs.td
    M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
    M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUTypes.td
    M mlir/lib/Dialect/XeGPU/IR/XeGPUDialect.cpp
    M mlir/lib/Dialect/XeGPU/IR/XeGPUOps.cpp
    M mlir/test/Dialect/XeGPU/XeGPUOps.mlir
    A mlir/test/Dialect/XeGPU/invalid.mlir

  Log Message:
  -----------
  [MLIR][XeGPU] Add XeGPU scattered ops (#86594)

- Extended TensorDescAttr with scattered attribute
- Add scattered ops: CreateDescOp, PrefetchOp, LoadGatherOp,
StoreScatterOp, UpdateOffsetOp
- Add a block op: UpdateNdOffsetOp

---------

Co-authored-by: Mehdi Amini <joker.eph at gmail.com>
Co-authored-by: Adam Siemieniuk <adam.siemieniuk at intel.com>


  Commit: 9ec8c961664de3b3fcc1cbd5238e40ec8c9bdddb
      https://github.com/llvm/llvm-project/commit/9ec8c961664de3b3fcc1cbd5238e40ec8c9bdddb
  Author: Samira Bazuzi <bazuzi at google.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M clang/docs/tools/clang-formatted-files.txt
    A clang/include/clang/Analysis/FlowSensitive/ASTOps.h
    M clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h
    M clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
    A clang/lib/Analysis/FlowSensitive/ASTOps.cpp
    M clang/lib/Analysis/FlowSensitive/CMakeLists.txt
    M clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
    M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
    M clang/lib/Analysis/FlowSensitive/Transfer.cpp

  Log Message:
  -----------
  [clang][dataflow] Expose getReferencedDecls and relocate free functions. (#88754)

Moves free functions from DataflowEnvironment.h/cc and
DataflowAnalysisContext.h/cc to RecordOps and a new ASTOps and exposes
them as needed for current use and to expose getReferencedDecls for
out-of-tree use.

Minimal change in functionality, only to modify the return type of
getReferenceDecls to return the collected decls instead of using output
params.

Tested with `ninja check-clang-tooling`.


  Commit: bbd64c4ddf08be468ab4eb4c161e28bdab6808bb
      https://github.com/llvm/llvm-project/commit/bbd64c4ddf08be468ab4eb4c161e28bdab6808bb
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/test/CodeGen/RISCV/mul.ll

  Log Message:
  -----------
  [RISCV] Add coverage for strength reduction of mul as 2^N - 2^M


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

  Changed paths:
    M libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp

  Log Message:
  -----------
  [libc++][chrono] Disables a test.

This tests seems problematic on different platforms. There is still a
test that ensures coverage, but in an automatic fashion. This test needs
to be investigated.


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

  Changed paths:
    M clang/lib/Sema/CMakeLists.txt
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/test/AST/ast-dump-attr-json.cpp
    M clang/test/Sema/alias-unused-win.cpp
    M clang/test/Sema/alias-unused.cpp
    M utils/bazel/llvm-project-overlay/clang/BUILD.bazel

  Log Message:
  -----------
  [Sema] Mark alias/ifunc targets used and consider mangled names

https://reviews.llvm.org/D54188 marked "alias" targets as used in C to
fix -Wunused false positives. This patch extends the approach to handle
mangled names to support global scope names in C++ and the
`overloadable` attribute in C.

(Note: we should skip `UsingShadowDecl`, which would trigger an
assertion failure in `ItaniumMangleContextImpl::mangleCXXName`.
See regression test added by commit 1c2afbae9af22b58190c10e3517242d01d89d612.)

In addition, we mark ifunc targets as used to fix #63957 (temporarily
used by xz; ifunc was removed by
https://github.com/tukaani-project/xz/commit/689ae2427342a2ea1206eb5ca08301baf410e7e0)

While our approach has false negatives for namespace scope names, the
majority of alias/ifunc C++ uses (global scope with no overloads) are
handled.

Note: The following function with internal linkage but C language
linkage type is mangled in Clang but not in GCC. This inconsistency
makes alias/ifunc difficult to use in C++ with portability (#88593).
```
extern "C" {
static void f0() {}
// GCC: void g0() __attribute__((alias("_ZL2f0v")));
// Clang: void g0() __attribute__((alias("f0")));
}
```

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


  Commit: 5422eb0b841521908c2fc60bd9c7fdc11ded12a1
      https://github.com/llvm/llvm-project/commit/5422eb0b841521908c2fc60bd9c7fdc11ded12a1
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-04-16 (Tue, 16 Apr 2024)

  Changed paths:
    M llvm/include/llvm/ProfileData/MemProfReader.h
    M llvm/unittests/ProfileData/MemProfTest.cpp

  Log Message:
  -----------
  [memprof] Add another constructor to MemProfReader (#88952)

This patch enables users of MemProfReader to directly supply mappings
from CallStackId to actual call stacks.

Once the users of the current constructor without CSIdMap switch to
the new constructor, we'll have fewer users of:

- IndexedAllocationInfo::CallStack
- IndexedMemProfRecord::CallSites

bringing us one step closer to the removal of these fields in favor
of:

- IndexedAllocationInfo::CSId
- IndexedMemProfRecord::CallSiteIds


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/extract_in_tree_user.ll
    M llvm/test/Transforms/SLPVectorizer/X86/geps-non-pow-2.ll
    M llvm/test/Transforms/SLPVectorizer/X86/opaque-ptr.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder-reused-masked-gather2.ll
    M llvm/test/Transforms/SLPVectorizer/X86/stacksave-dependence.ll

  Log Message:
  -----------
  [SLP]Keep externally used GEPs as GEPs, if possible instead of extractelement.

If the vectorized GEP instruction can be still kept as a scalar GEP,
better to keep it as scalar instead of extractelement. In many cases it
is more profitable.

Metric: size..text

Program                                                                          size..text
                                                                                 results     results0    diff
                        test-suite :: SingleSource/Benchmarks/Misc/oourafft.test    18911.00    19695.00  4.1%
                   test-suite :: SingleSource/Benchmarks/Misc-C++-EH/spirit.test    59987.00    60707.00  1.2%
       test-suite :: External/SPEC/CFP2017speed/638.imagick_s/638.imagick_s.test  1392209.00  1392753.00  0.0%
        test-suite :: External/SPEC/CFP2017rate/538.imagick_r/538.imagick_r.test  1392209.00  1392753.00  0.0%
           test-suite :: External/SPEC/CINT2006/400.perlbench/400.perlbench.test  1087996.00  1088236.00  0.0%
                         test-suite :: MultiSource/Benchmarks/Bullet/bullet.test   309310.00   309342.00  0.0%
             test-suite :: External/SPEC/CINT2017rate/525.x264_r/525.x264_r.test   664661.00   664693.00  0.0%
            test-suite :: External/SPEC/CINT2017speed/625.x264_s/625.x264_s.test   664661.00   664693.00  0.0%
        test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test 12354636.00 12354908.00  0.0%
                  test-suite :: External/SPEC/CFP2006/453.povray/453.povray.test  1152748.00  1152716.00 -0.0%
                       test-suite :: MultiSource/Applications/oggenc/oggenc.test   191787.00   191771.00 -0.0%
                     test-suite :: SingleSource/UnitTests/matrix-types-spec.test   480796.00   480476.00 -0.1%

Misc/oourafft - Extra code gets vectorized
Misc-C++-EH/spirit - same
CFP2017speed/638.imagick_s
CFP2017rate/538.imagick_r - same, extra code gets vectorized
CINT2006/400.perlbench - some extra 4 x ptr stores vectorized
Bullet/bullet - extra 4 x ptr store vectorized
CINT2017rate/525.x264_r
CINT2017speed/625.x264_s - same
CFP2017rate/526.blender_r - extra 8 x float stores (several), some extra
4 x ptr stores
CFP2006/453.povray - 2 x double loads/stores replaced by 4 x double
loads/stores
Applications/oggenc - extra code is vectorized
UnitTests/matrix-types-spec - extra code gets vectorized

Reviewers: RKSimon

Reviewed By: RKSimon

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


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/pr46983.ll

  Log Message:
  -----------
  [SLP]Attempt to vectorize long stores, if short one failed.

We can try to vectorize long store sequences, if short ones were
unsuccessful because of the non-profitable vectorization. It should not
increase compile time significantly (stores are sorted already,
complexity is n x log n), but vectorize extra code.

Metric: size..text

Program                                                                         size..text
                                                                                results     results0    diff
         test-suite :: External/SPEC/CINT2006/400.perlbench/400.perlbench.test  1088012.00  1088236.00  0.0%
                  test-suite :: SingleSource/UnitTests/matrix-types-spec.test   480396.00   480476.00  0.0%
          test-suite :: External/SPEC/CINT2017rate/525.x264_r/525.x264_r.test   664613.00   664661.00  0.0%
         test-suite :: External/SPEC/CINT2017speed/625.x264_s/625.x264_s.test   664613.00   664661.00  0.0%
        test-suite :: External/SPEC/CFP2017rate/510.parest_r/510.parest_r.test  2041105.00  2040961.00 -0.0%
                 test-suite :: MultiSource/Applications/JM/lencod/lencod.test   836563.00   836387.00 -0.0%
                 test-suite :: MultiSource/Benchmarks/7zip/7zip-benchmark.test  1035100.00  1032140.00 -0.3%

In all benchmarks extra code gets vectorized

Reviewers: RKSimon

Reviewed By: RKSimon

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


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

  Changed paths:
    M .github/CODEOWNERS
    M .github/workflows/email-check.yaml
    M .github/workflows/issue-write.yml
    M .github/workflows/libcxx-build-and-test.yaml
    M .github/workflows/pr-code-format.yml
    M .github/workflows/release-lit.yml
    M bolt/docs/BAT.md
    M bolt/include/bolt/Core/AddressMap.h
    M bolt/include/bolt/Core/BinaryContext.h
    M bolt/include/bolt/Core/BinaryData.h
    M bolt/include/bolt/Core/BinaryDomTree.h
    M bolt/include/bolt/Core/BinaryFunction.h
    M bolt/include/bolt/Core/BinaryLoop.h
    M bolt/include/bolt/Core/BinarySection.h
    M bolt/include/bolt/Core/DebugData.h
    M bolt/include/bolt/Core/DebugNames.h
    M bolt/include/bolt/Core/FunctionLayout.h
    M bolt/include/bolt/Core/MCPlus.h
    M bolt/include/bolt/Core/MCPlusBuilder.h
    M bolt/include/bolt/Passes/BinaryPasses.h
    M bolt/include/bolt/Passes/CacheMetrics.h
    M bolt/include/bolt/Passes/DominatorAnalysis.h
    M bolt/include/bolt/Passes/ReachingDefOrUse.h
    M bolt/include/bolt/Passes/ReachingInsns.h
    M bolt/include/bolt/Passes/ReorderUtils.h
    M bolt/include/bolt/Profile/BoltAddressTranslation.h
    M bolt/include/bolt/Profile/DataAggregator.h
    M bolt/include/bolt/Profile/ProfileReaderBase.h
    M bolt/include/bolt/Profile/ProfileYAMLMapping.h
    M bolt/include/bolt/Profile/YAMLProfileWriter.h
    M bolt/include/bolt/Rewrite/DWARFRewriter.h
    M bolt/include/bolt/Rewrite/MetadataManager.h
    M bolt/include/bolt/Rewrite/RewriteInstance.h
    M bolt/include/bolt/RuntimeLibs/RuntimeLibrary.h
    M bolt/include/bolt/Utils/NameShortener.h
    M bolt/lib/Core/BinaryContext.cpp
    M bolt/lib/Core/BinaryData.cpp
    M bolt/lib/Core/BinaryEmitter.cpp
    M bolt/lib/Core/BinaryFunction.cpp
    M bolt/lib/Core/DIEBuilder.cpp
    M bolt/lib/Core/DebugData.cpp
    M bolt/lib/Core/FunctionLayout.cpp
    M bolt/lib/Core/HashUtilities.cpp
    M bolt/lib/Core/MCPlusBuilder.cpp
    M bolt/lib/Core/Relocation.cpp
    M bolt/lib/Passes/CMOVConversion.cpp
    M bolt/lib/Passes/FixRISCVCallsPass.cpp
    M bolt/lib/Passes/FixRelaxationPass.cpp
    M bolt/lib/Passes/FrameOptimizer.cpp
    M bolt/lib/Passes/Hugify.cpp
    M bolt/lib/Passes/Inliner.cpp
    M bolt/lib/Passes/ShrinkWrapping.cpp
    M bolt/lib/Passes/SplitFunctions.cpp
    M bolt/lib/Passes/TailDuplication.cpp
    M bolt/lib/Passes/ValidateInternalCalls.cpp
    M bolt/lib/Profile/BoltAddressTranslation.cpp
    M bolt/lib/Profile/CMakeLists.txt
    M bolt/lib/Profile/DataAggregator.cpp
    M bolt/lib/Profile/DataReader.cpp
    M bolt/lib/Profile/Heatmap.cpp
    R bolt/lib/Profile/ProfileReaderBase.cpp
    M bolt/lib/Profile/YAMLProfileWriter.cpp
    M bolt/lib/Rewrite/BinaryPassManager.cpp
    M bolt/lib/Rewrite/DWARFRewriter.cpp
    M bolt/lib/Rewrite/JITLinkLinker.cpp
    M bolt/lib/Rewrite/MachORewriteInstance.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp
    M bolt/lib/RuntimeLibs/HugifyRuntimeLibrary.cpp
    M bolt/lib/Target/RISCV/RISCVMCPlusBuilder.cpp
    M bolt/lib/Target/X86/X86MCPlusBuilder.cpp
    M bolt/test/X86/bolt-address-translation-yaml.test
    M bolt/test/X86/bolt-address-translation.test
    M bolt/test/X86/linux-bug-table.s
    M bolt/test/X86/patch-entries.test
    M bolt/test/X86/yaml-secondary-entry-discriminator.s
    A bolt/test/runtime/X86/jt-confusion.s
    M bolt/tools/bat-dump/bat-dump.cpp
    M bolt/tools/heatmap/heatmap.cpp
    M bolt/unittests/Core/BinaryContext.cpp
    M bolt/unittests/Core/MCPlusBuilder.cpp
    M clang-tools-extra/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.cpp
    M clang-tools-extra/clang-tidy/hicpp/IgnoredRemoveResultCheck.cpp
    M clang-tools-extra/clang-tidy/linuxkernel/MustCheckErrsCheck.h
    M clang-tools-extra/clang-tidy/modernize/UseStdNumbersCheck.cpp
    M clang-tools-extra/clang-tidy/readability/AvoidReturnWithVoidValueCheck.cpp
    M clang-tools-extra/clang-tidy/readability/BracesAroundStatementsCheck.cpp
    M clang-tools-extra/clang-tidy/readability/BracesAroundStatementsCheck.h
    M clang-tools-extra/clang-tidy/readability/CMakeLists.txt
    M clang-tools-extra/clang-tidy/readability/DuplicateIncludeCheck.cpp
    A clang-tools-extra/clang-tidy/readability/EnumInitialValueCheck.cpp
    A clang-tools-extra/clang-tidy/readability/EnumInitialValueCheck.h
    M clang-tools-extra/clang-tidy/readability/ReadabilityTidyModule.cpp
    A clang-tools-extra/clang-tidy/utils/BracesAroundStatement.cpp
    A clang-tools-extra/clang-tidy/utils/BracesAroundStatement.h
    M clang-tools-extra/clang-tidy/utils/CMakeLists.txt
    M clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp
    M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
    M clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.h
    M clang-tools-extra/clangd/CodeComplete.cpp
    M clang-tools-extra/clangd/CompileCommands.cpp
    M clang-tools-extra/clangd/IncludeCleaner.h
    M clang-tools-extra/clangd/index/SymbolCollector.cpp
    M clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp
    M clang-tools-extra/clangd/unittests/HoverTests.cpp
    M clang-tools-extra/clangd/unittests/TestIndex.cpp
    M clang-tools-extra/clangd/unittests/TestIndex.h
    M clang-tools-extra/docs/ReleaseNotes.rst
    A clang-tools-extra/docs/clang-tidy/checks/linuxkernel/must-check-errs.rst
    R clang-tools-extra/docs/clang-tidy/checks/linuxkernel/must-use-errs.rst
    M clang-tools-extra/docs/clang-tidy/checks/list.rst
    A clang-tools-extra/docs/clang-tidy/checks/readability/enum-initial-value.rst
    M clang-tools-extra/include-cleaner/lib/FindHeaders.cpp
    M clang-tools-extra/include-cleaner/unittests/FindHeadersTest.cpp
    M clang-tools-extra/test/clang-tidy/check_clang_tidy.py
    M clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/missing-std-forward.cpp
    M clang-tools-extra/test/clang-tidy/checkers/hicpp/ignored-remove-result.cpp
    M clang-tools-extra/test/clang-tidy/checkers/readability/avoid-return-with-void-value.cpp
    M clang-tools-extra/test/clang-tidy/checkers/readability/duplicate-include.cpp
    A clang-tools-extra/test/clang-tidy/checkers/readability/enum-initial-value.c
    A clang-tools-extra/test/clang-tidy/checkers/readability/enum-initial-value.cpp
    M clang-tools-extra/test/clang-tidy/checkers/readability/identifier-naming.cpp
    M clang-tools-extra/test/clang-tidy/infrastructure/diagnostic.cpp
    M clang/CMakeLists.txt
    M clang/cmake/caches/Apple-stage2.cmake
    M clang/cmake/caches/CrossWinToARMLinux.cmake
    M clang/cmake/caches/Fuchsia.cmake
    M clang/cmake/caches/Release.cmake
    M clang/docs/ClangFormat.rst
    M clang/docs/ClangFormatStyleOptions.rst
    M clang/docs/HIPSupport.rst
    M clang/docs/HLSL/FunctionCalls.rst
    M clang/docs/LanguageExtensions.rst
    M clang/docs/ReleaseNotes.rst
    M clang/docs/UndefinedBehaviorSanitizer.rst
    M clang/docs/analyzer/checkers.rst
    M clang/docs/tools/clang-formatted-files.txt
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/ASTNodeTraverser.h
    M clang/include/clang/AST/Decl.h
    M clang/include/clang/AST/DeclBase.h
    M clang/include/clang/AST/DeclCXX.h
    M clang/include/clang/AST/DeclObjC.h
    M clang/include/clang/AST/DeclTemplate.h
    M clang/include/clang/AST/Expr.h
    M clang/include/clang/AST/ExprCXX.h
    M clang/include/clang/AST/ExternalASTSource.h
    M clang/include/clang/AST/FormatString.h
    M clang/include/clang/AST/JSONNodeDumper.h
    M clang/include/clang/AST/NestedNameSpecifier.h
    A clang/include/clang/AST/OpenACCClause.h
    M clang/include/clang/AST/OperationKinds.def
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/include/clang/AST/Stmt.h
    M clang/include/clang/AST/StmtOpenACC.h
    M clang/include/clang/AST/StmtOpenMP.h
    M clang/include/clang/AST/TextNodeDumper.h
    M clang/include/clang/AST/Type.h
    M clang/include/clang/AST/TypeLoc.h
    M clang/include/clang/AST/TypeProperties.td
    M clang/include/clang/ASTMatchers/ASTMatchers.h
    A clang/include/clang/Analysis/FlowSensitive/ASTOps.h
    R clang/include/clang/Analysis/FlowSensitive/ControlFlowContext.h
    M clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h
    M clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
    M clang/include/clang/Analysis/FlowSensitive/DataflowLattice.h
    M clang/include/clang/Analysis/SelectorExtras.h
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/AttrDocs.td
    M clang/include/clang/Basic/Builtins.td
    M clang/include/clang/Basic/BuiltinsAMDGPU.def
    M clang/include/clang/Basic/CMakeLists.txt
    M clang/include/clang/Basic/Cuda.h
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Basic/DiagnosticFrontendKinds.td
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticIDs.h
    M clang/include/clang/Basic/DiagnosticInstallAPIKinds.td
    M clang/include/clang/Basic/DiagnosticParseKinds.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/Features.def
    M clang/include/clang/Basic/IdentifierTable.h
    A clang/include/clang/Basic/OpenACCClauses.def
    M clang/include/clang/Basic/OpenACCKinds.h
    M clang/include/clang/Basic/Sanitizers.def
    M clang/include/clang/Basic/TargetInfo.h
    M clang/include/clang/Basic/TokenKinds.def
    M clang/include/clang/Basic/TypeNodes.td
    M clang/include/clang/Basic/arm_neon.td
    A clang/include/clang/CIR/CMakeLists.txt
    M clang/include/clang/CMakeLists.txt
    M clang/include/clang/CodeGen/CodeGenAction.h
    M clang/include/clang/Config/config.h.cmake
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/ExtractAPI/API.h
    A clang/include/clang/ExtractAPI/APIRecords.inc
    M clang/include/clang/ExtractAPI/DeclarationFragments.h
    M clang/include/clang/ExtractAPI/ExtractAPIActionBase.h
    M clang/include/clang/ExtractAPI/ExtractAPIVisitor.h
    M clang/include/clang/ExtractAPI/FrontendActions.h
    A clang/include/clang/ExtractAPI/Serialization/APISetVisitor.h
    R clang/include/clang/ExtractAPI/Serialization/SerializerBase.h
    M clang/include/clang/ExtractAPI/Serialization/SymbolGraphSerializer.h
    M clang/include/clang/Format/Format.h
    M clang/include/clang/Frontend/CompilerInstance.h
    M clang/include/clang/Frontend/FrontendOptions.h
    M clang/include/clang/InstallAPI/Context.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/InstallAPI/MachO.h
    M clang/include/clang/Lex/ExternalPreprocessorSource.h
    M clang/include/clang/Lex/HeaderSearch.h
    M clang/include/clang/Lex/MacroInfo.h
    M clang/include/clang/Lex/Preprocessor.h
    M clang/include/clang/Lex/PreprocessorOptions.h
    M clang/include/clang/Lex/Token.h
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/CodeCompleteConsumer.h
    M clang/include/clang/Sema/DeclSpec.h
    M clang/include/clang/Sema/Initialization.h
    M clang/include/clang/Sema/Overload.h
    M clang/include/clang/Sema/ParsedTemplate.h
    M clang/include/clang/Sema/Sema.h
    A clang/include/clang/Sema/SemaBase.h
    A clang/include/clang/Sema/SemaCUDA.h
    A clang/include/clang/Sema/SemaHLSL.h
    A clang/include/clang/Sema/SemaOpenACC.h
    A clang/include/clang/Sema/SemaOpenMP.h
    A clang/include/clang/Sema/SemaSYCL.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/include/clang/Serialization/ASTReader.h
    M clang/include/clang/Serialization/ASTRecordReader.h
    M clang/include/clang/Serialization/ASTRecordWriter.h
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/include/clang/Serialization/ModuleFileExtension.h
    M clang/include/clang/Serialization/PCHContainerOperations.h
    M clang/include/clang/Serialization/TypeBitCodes.def
    M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
    M clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallDescription.h
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
    M clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h
    M clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h
    M clang/lib/APINotes/APINotesReader.cpp
    M clang/lib/ARCMigrate/ObjCMT.cpp
    M clang/lib/ARCMigrate/TransAPIUses.cpp
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/ASTImporter.cpp
    M clang/lib/AST/ASTStructuralEquivalence.cpp
    M clang/lib/AST/CMakeLists.txt
    M clang/lib/AST/ComputeDependence.cpp
    M clang/lib/AST/Decl.cpp
    M clang/lib/AST/DeclBase.cpp
    M clang/lib/AST/DeclObjC.cpp
    M clang/lib/AST/DeclPrinter.cpp
    M clang/lib/AST/DeclTemplate.cpp
    M clang/lib/AST/Expr.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/AST/FormatString.cpp
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/ByteCodeExprGen.h
    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/Disasm.cpp
    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/InterpBlock.h
    M clang/lib/AST/Interp/InterpBuiltin.cpp
    M clang/lib/AST/Interp/InterpFrame.cpp
    M clang/lib/AST/Interp/InterpState.h
    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/Interp/Record.cpp
    M clang/lib/AST/Interp/Record.h
    M clang/lib/AST/Interp/State.cpp
    M clang/lib/AST/ItaniumMangle.cpp
    M clang/lib/AST/JSONNodeDumper.cpp
    M clang/lib/AST/MicrosoftMangle.cpp
    M clang/lib/AST/NSAPI.cpp
    M clang/lib/AST/NestedNameSpecifier.cpp
    M clang/lib/AST/ODRHash.cpp
    A clang/lib/AST/OpenACCClause.cpp
    M clang/lib/AST/ParentMapContext.cpp
    M clang/lib/AST/SelectorLocationsKind.cpp
    M clang/lib/AST/StmtOpenACC.cpp
    M clang/lib/AST/StmtOpenMP.cpp
    M clang/lib/AST/StmtPrinter.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/AST/TypePrinter.cpp
    A clang/lib/Analysis/FlowSensitive/ASTOps.cpp
    M clang/lib/Analysis/FlowSensitive/CMakeLists.txt
    M clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
    M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
    M clang/lib/Analysis/FlowSensitive/Transfer.cpp
    M clang/lib/Analysis/FlowSensitive/TypeErasedDataflowAnalysis.cpp
    M clang/lib/Analysis/ObjCNoReturn.cpp
    M clang/lib/Basic/Cuda.cpp
    M clang/lib/Basic/IdentifierTable.cpp
    M clang/lib/Basic/Module.cpp
    M clang/lib/Basic/TargetInfo.cpp
    M clang/lib/Basic/Targets/AArch64.cpp
    M clang/lib/Basic/Targets/AArch64.h
    M clang/lib/Basic/Targets/ARM.cpp
    M clang/lib/Basic/Targets/ARM.h
    M clang/lib/Basic/Targets/LoongArch.cpp
    M clang/lib/Basic/Targets/LoongArch.h
    M clang/lib/Basic/Targets/M68k.cpp
    M clang/lib/Basic/Targets/M68k.h
    M clang/lib/Basic/Targets/Mips.h
    M clang/lib/Basic/Targets/NVPTX.cpp
    M clang/lib/Basic/Targets/PPC.h
    M clang/lib/Basic/Targets/SPIR.h
    M clang/lib/Basic/Targets/SystemZ.h
    M clang/lib/Basic/Targets/VE.h
    M clang/lib/Basic/Targets/WebAssembly.h
    M clang/lib/Basic/Targets/X86.cpp
    M clang/lib/Basic/Targets/X86.h
    A clang/lib/CIR/CMakeLists.txt
    M clang/lib/CMakeLists.txt
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/lib/CodeGen/CGAtomic.cpp
    M clang/lib/CodeGen/CGBlocks.cpp
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CGCUDANV.cpp
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CGClass.cpp
    M clang/lib/CodeGen/CGDebugInfo.cpp
    M clang/lib/CodeGen/CGDecl.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGExprAgg.cpp
    M clang/lib/CodeGen/CGExprComplex.cpp
    M clang/lib/CodeGen/CGExprConstant.cpp
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/lib/CodeGen/CGHLSLRuntime.cpp
    M clang/lib/CodeGen/CGHLSLRuntime.h
    M clang/lib/CodeGen/CGObjC.cpp
    M clang/lib/CodeGen/CGObjCMac.cpp
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
    M clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M clang/lib/CodeGen/CodeGenAction.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/CodeGen/CodeGenTBAA.cpp
    M clang/lib/CodeGen/CodeGenTBAA.h
    M clang/lib/CodeGen/CodeGenTypes.cpp
    M clang/lib/CodeGen/ItaniumCXXABI.cpp
    M clang/lib/CodeGen/Targets/X86.cpp
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ToolChain.cpp
    M clang/lib/Driver/ToolChains/AIX.cpp
    M clang/lib/Driver/ToolChains/AMDGPU.cpp
    M clang/lib/Driver/ToolChains/Arch/AArch64.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Driver/ToolChains/Clang.h
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/lib/Driver/ToolChains/CommonArgs.h
    M clang/lib/Driver/ToolChains/Cuda.cpp
    M clang/lib/Driver/ToolChains/Darwin.cpp
    M clang/lib/Driver/ToolChains/DragonFly.cpp
    M clang/lib/Driver/ToolChains/Flang.cpp
    M clang/lib/Driver/ToolChains/FreeBSD.cpp
    M clang/lib/Driver/ToolChains/Gnu.cpp
    M clang/lib/Driver/ToolChains/Haiku.cpp
    M clang/lib/Driver/ToolChains/Linux.cpp
    M clang/lib/Driver/ToolChains/MSVC.cpp
    M clang/lib/Driver/ToolChains/NetBSD.cpp
    M clang/lib/Driver/ToolChains/OpenBSD.cpp
    M clang/lib/Driver/ToolChains/Solaris.cpp
    M clang/lib/Edit/RewriteObjCFoundationAPI.cpp
    M clang/lib/ExtractAPI/API.cpp
    M clang/lib/ExtractAPI/DeclarationFragments.cpp
    M clang/lib/ExtractAPI/ExtractAPIConsumer.cpp
    M clang/lib/ExtractAPI/Serialization/SymbolGraphSerializer.cpp
    M clang/lib/ExtractAPI/TypedefUnderlyingTypeResolver.cpp
    M clang/lib/Format/ContinuationIndenter.cpp
    M clang/lib/Format/Format.cpp
    M clang/lib/Format/FormatToken.h
    M clang/lib/Format/FormatTokenLexer.cpp
    M clang/lib/Format/FormatTokenSource.h
    M clang/lib/Format/TokenAnnotator.cpp
    M clang/lib/Format/UnwrappedLineFormatter.cpp
    M clang/lib/Format/UnwrappedLineParser.cpp
    M clang/lib/Format/WhitespaceManager.cpp
    M clang/lib/Frontend/CompilerInstance.cpp
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/lib/Frontend/FrontendActions.cpp
    M clang/lib/Frontend/InitPreprocessor.cpp
    M clang/lib/Frontend/PrecompiledPreamble.cpp
    M clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
    M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
    M clang/lib/Headers/CMakeLists.txt
    M clang/lib/Headers/__stddef_unreachable.h
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    M clang/lib/Headers/intrin.h
    M clang/lib/Headers/intrin0.h
    M clang/lib/Index/USRGeneration.cpp
    M clang/lib/InstallAPI/CMakeLists.txt
    A clang/lib/InstallAPI/DiagnosticBuilderWrappers.cpp
    A clang/lib/InstallAPI/DiagnosticBuilderWrappers.h
    M clang/lib/InstallAPI/DylibVerifier.cpp
    M clang/lib/InstallAPI/Frontend.cpp
    M clang/lib/InstallAPI/Visitor.cpp
    M clang/lib/Interpreter/Value.cpp
    M clang/lib/Lex/HeaderSearch.cpp
    M clang/lib/Lex/MacroInfo.cpp
    M clang/lib/Lex/PPLexerChange.cpp
    M clang/lib/Lex/PPMacroExpansion.cpp
    M clang/lib/Lex/Preprocessor.cpp
    M clang/lib/Parse/ParseCXXInlineMethods.cpp
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/lib/Parse/ParseExpr.cpp
    M clang/lib/Parse/ParseExprCXX.cpp
    M clang/lib/Parse/ParseHLSL.cpp
    M clang/lib/Parse/ParseObjc.cpp
    M clang/lib/Parse/ParseOpenACC.cpp
    M clang/lib/Parse/ParseOpenMP.cpp
    M clang/lib/Parse/ParsePragma.cpp
    M clang/lib/Parse/ParseStmt.cpp
    M clang/lib/Parse/ParseTemplate.cpp
    M clang/lib/Parse/Parser.cpp
    M clang/lib/Sema/CMakeLists.txt
    M clang/lib/Sema/CodeCompleteConsumer.cpp
    M clang/lib/Sema/JumpDiagnostics.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaAPINotes.cpp
    M clang/lib/Sema/SemaAccess.cpp
    M clang/lib/Sema/SemaAttr.cpp
    A clang/lib/Sema/SemaBase.cpp
    M clang/lib/Sema/SemaCUDA.cpp
    M clang/lib/Sema/SemaCast.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaCodeComplete.cpp
    M clang/lib/Sema/SemaConcept.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaDeclObjC.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaExprMember.cpp
    M clang/lib/Sema/SemaExprObjC.cpp
    M clang/lib/Sema/SemaHLSL.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaLambda.cpp
    M clang/lib/Sema/SemaLookup.cpp
    M clang/lib/Sema/SemaObjCProperty.cpp
    M clang/lib/Sema/SemaOpenACC.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaPseudoObject.cpp
    M clang/lib/Sema/SemaSYCL.cpp
    M clang/lib/Sema/SemaStmt.cpp
    M clang/lib/Sema/SemaStmtAttr.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateDeduction.cpp
    M clang/lib/Sema/SemaTemplateInstantiate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/SemaTemplateVariadic.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTCommon.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    M clang/lib/Serialization/GeneratePCH.cpp
    M clang/lib/Serialization/GlobalModuleIndex.cpp
    M clang/lib/Serialization/ModuleFileExtension.cpp
    M clang/lib/Serialization/MultiOnDiskHashTable.h
    M clang/lib/Serialization/PCHContainerOperations.cpp
    M clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
    M clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
    M clang/lib/StaticAnalyzer/Checkers/ContainerModeling.cpp
    M clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp
    M clang/lib/StaticAnalyzer/Checkers/SimpleStreamChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp
    M clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
    M clang/lib/StaticAnalyzer/Core/CallDescription.cpp
    M clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
    M clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
    M clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
    M clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
    M clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
    M clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
    M clang/lib/Tooling/Transformer/SourceCode.cpp
    A clang/test/APINotes/Inputs/Headers/Templates.apinotes
    A clang/test/APINotes/Inputs/Headers/Templates.h
    M clang/test/APINotes/Inputs/Headers/module.modulemap
    M clang/test/APINotes/instancetype.m
    M clang/test/APINotes/retain-count-convention.m
    A clang/test/APINotes/templates.cpp
    M clang/test/APINotes/versioned.m
    M clang/test/AST/Interp/arrays.cpp
    A clang/test/AST/Interp/builtin-align-cxx.cpp
    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/cxx03.cpp
    M clang/test/AST/Interp/cxx23.cpp
    M clang/test/AST/Interp/functions.cpp
    M clang/test/AST/Interp/ms.cpp
    M clang/test/AST/Interp/records.cpp
    A clang/test/AST/Interp/vectors.cpp
    A clang/test/AST/Interp/weak.cpp
    M clang/test/AST/ast-dump-attr-json.cpp
    A clang/test/AST/ast-dump-cxx2c-delete-with-message.cpp
    A clang/test/AST/ast-dump-default-arg-json.cpp
    A clang/test/AST/ast-dump-default-init-json.cpp
    A clang/test/AST/ast-dump-default-init.cpp
    M clang/test/AST/ast-dump-for-range-lifetime.cpp
    A clang/test/AST/ast-print-cxx2c-delete-with-message.cpp
    M clang/test/AST/ast-print-method-decl.cpp
    M clang/test/AST/ast-print-no-sanitize.cpp
    M clang/test/AST/attr-print-emit.cpp
    M clang/test/Analysis/Inputs/system-header-simulator-cxx.h
    M clang/test/Analysis/analyzer-config.c
    M clang/test/Analysis/cxx-uninitialized-object-ptr-ref.cpp
    M clang/test/Analysis/exercise-ps.c
    M clang/test/Analysis/explain-svals.cpp
    M clang/test/Analysis/invalidated-iterator.cpp
    A clang/test/Analysis/malloc-std-namespace.cpp
    M clang/test/Analysis/malloc.c
    M clang/test/Analysis/malloc.cpp
    M clang/test/Analysis/scopes-cfg-output.cpp
    M clang/test/Analysis/stack-addr-ps.c
    M clang/test/Analysis/stackaddrleak.c
    M clang/test/Analysis/std-c-library-functions-vs-stream-checker.c
    M clang/test/Analysis/stream-errno-note.c
    M clang/test/Analysis/stream-errno.c
    M clang/test/Analysis/stream-error.c
    M clang/test/Analysis/stream-note.c
    A clang/test/Analysis/stream-pedantic.c
    M clang/test/Analysis/stream-stdlibraryfunctionargs.c
    M clang/test/Analysis/stream.c
    A clang/test/C/C11/n1482.c
    A clang/test/C/C11/n1514.c
    M clang/test/C/C2x/n2350.c
    A clang/test/C/C99/float_h-characteristics.c
    A clang/test/C/C99/n570.c
    A clang/test/C/C99/n717.c
    A clang/test/C/C99/n782.c
    A clang/test/C/C99/n809.c
    A clang/test/C/C99/n809_2.c
    A clang/test/C/C99/n809_3.c
    A clang/test/C/C99/n835.c
    M clang/test/C/drs/dr4xx.c
    M clang/test/CMakeLists.txt
    M clang/test/CXX/dcl.decl/dcl.meaning/p1-0x.cpp
    A clang/test/CXX/drs/cwg118.cpp
    A clang/test/CXX/drs/cwg124.cpp
    A clang/test/CXX/drs/cwg158.cpp
    A clang/test/CXX/drs/cwg1748.cpp
    A clang/test/CXX/drs/cwg177x.cpp
    A clang/test/CXX/drs/cwg1807.cpp
    A clang/test/CXX/drs/cwg185.cpp
    A clang/test/CXX/drs/cwg193.cpp
    A clang/test/CXX/drs/cwg199.cpp
    A clang/test/CXX/drs/cwg201.cpp
    A clang/test/CXX/drs/cwg210.cpp
    A clang/test/CXX/drs/cwg2335.cpp
    A clang/test/CXX/drs/cwg2390.cpp
    A clang/test/CXX/drs/cwg2504.cpp
    A clang/test/CXX/drs/cwg292.cpp
    A clang/test/CXX/drs/cwg392.cpp
    A clang/test/CXX/drs/cwg412.cpp
    A clang/test/CXX/drs/cwg438.cpp
    A clang/test/CXX/drs/cwg439.cpp
    A clang/test/CXX/drs/cwg441.cpp
    A clang/test/CXX/drs/cwg462.cpp
    A clang/test/CXX/drs/cwg492.cpp
    A clang/test/CXX/drs/cwg519.cpp
    A clang/test/CXX/drs/cwg571.cpp
    A clang/test/CXX/drs/cwg605.cpp
    A clang/test/CXX/drs/cwg650.cpp
    A clang/test/CXX/drs/cwg653.cpp
    A clang/test/CXX/drs/cwg658.cpp
    A clang/test/CXX/drs/cwg661.cpp
    A clang/test/CXX/drs/cwg672.cpp
    A clang/test/CXX/drs/cwgr593.cpp
    M clang/test/CXX/drs/dr0xx.cpp
    M clang/test/CXX/drs/dr10xx.cpp
    R clang/test/CXX/drs/dr118.cpp
    M clang/test/CXX/drs/dr11xx.cpp
    R clang/test/CXX/drs/dr124.cpp
    M clang/test/CXX/drs/dr12xx.cpp
    M clang/test/CXX/drs/dr13xx.cpp
    M clang/test/CXX/drs/dr14xx.cpp
    R clang/test/CXX/drs/dr158.cpp
    M clang/test/CXX/drs/dr15xx.cpp
    M clang/test/CXX/drs/dr16xx.cpp
    R clang/test/CXX/drs/dr1748.cpp
    R clang/test/CXX/drs/dr177x.cpp
    M clang/test/CXX/drs/dr17xx.cpp
    R clang/test/CXX/drs/dr1807.cpp
    R clang/test/CXX/drs/dr185.cpp
    M clang/test/CXX/drs/dr18xx.cpp
    R clang/test/CXX/drs/dr193.cpp
    R clang/test/CXX/drs/dr199.cpp
    M clang/test/CXX/drs/dr19xx.cpp
    M clang/test/CXX/drs/dr1xx.cpp
    R clang/test/CXX/drs/dr201.cpp
    M clang/test/CXX/drs/dr20xx.cpp
    R clang/test/CXX/drs/dr210.cpp
    M clang/test/CXX/drs/dr21xx.cpp
    M clang/test/CXX/drs/dr22xx.cpp
    R clang/test/CXX/drs/dr2335.cpp
    R clang/test/CXX/drs/dr2390.cpp
    M clang/test/CXX/drs/dr23xx.cpp
    M clang/test/CXX/drs/dr24xx.cpp
    R clang/test/CXX/drs/dr2504.cpp
    M clang/test/CXX/drs/dr25xx.cpp
    M clang/test/CXX/drs/dr26xx.cpp
    M clang/test/CXX/drs/dr27xx.cpp
    M clang/test/CXX/drs/dr28xx.cpp
    R clang/test/CXX/drs/dr292.cpp
    M clang/test/CXX/drs/dr2xx.cpp
    M clang/test/CXX/drs/dr3xx.cpp
    R clang/test/CXX/drs/dr412.cpp
    R clang/test/CXX/drs/dr438.cpp
    R clang/test/CXX/drs/dr439.cpp
    R clang/test/CXX/drs/dr441.cpp
    R clang/test/CXX/drs/dr462.cpp
    R clang/test/CXX/drs/dr492.cpp
    M clang/test/CXX/drs/dr4xx.cpp
    R clang/test/CXX/drs/dr519.cpp
    R clang/test/CXX/drs/dr571.cpp
    M clang/test/CXX/drs/dr5xx.cpp
    M clang/test/CXX/drs/dr6xx.cpp
    M clang/test/CXX/drs/dr7xx.cpp
    M clang/test/CXX/drs/dr8xx.cpp
    M clang/test/CXX/drs/dr9xx.cpp
    A clang/test/CXX/module/module.glob.frag/cxx20-10-4-ex2.cppm
    M clang/test/CXX/over/over.built/ast.cpp
    M clang/test/ClangScanDeps/Inputs/removed-args/cdb.json.template
    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/ClangScanDeps/removed-args.c
    A clang/test/CodeGen/M68k/inline-asm-gcc-regs.c
    M clang/test/CodeGen/PowerPC/builtins-ppc-xlcompat-error.c
    M clang/test/CodeGen/X86/avx-shuffle-builtins.c
    M clang/test/CodeGen/X86/x86_64-arguments.c
    A clang/test/CodeGen/aapcs-bitfield-access-unit.c
    M clang/test/CodeGen/aapcs-bitfield.c
    A clang/test/CodeGen/aarch64-v8.2a-neon-intrinsics-generic.c
    M clang/test/CodeGen/aarch64-v8.2a-neon-intrinsics.c
    M clang/test/CodeGen/alias.cpp
    A clang/test/CodeGen/allow-ubsan-check.c
    M clang/test/CodeGen/arm-bitfield-alignment.c
    A clang/test/CodeGen/arm-v8.2a-neon-intrinsics-generic.c
    M clang/test/CodeGen/arm-v8.2a-neon-intrinsics.c
    M clang/test/CodeGen/arm64-be-bitfield.c
    M clang/test/CodeGen/atomic.c
    M clang/test/CodeGen/bitfield-2.c
    A clang/test/CodeGen/bitfield-access-pad.c
    A clang/test/CodeGen/bitfield-access-unit.c
    M clang/test/CodeGen/catch-implicit-conversions-basics.c
    M clang/test/CodeGen/catch-implicit-conversions-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-arithmetic-value-change-basics.c
    M clang/test/CodeGen/catch-implicit-integer-arithmetic-value-change-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-conversions-basics.c
    M clang/test/CodeGen/catch-implicit-integer-conversions-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes-CompoundAssignOperator.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes-basics.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes-incdec.c
    M clang/test/CodeGen/catch-implicit-integer-sign-changes.c
    M clang/test/CodeGen/catch-implicit-integer-truncations-CompoundAssignOperator.c
    M clang/test/CodeGen/catch-implicit-integer-truncations-basics-negatives.c
    M clang/test/CodeGen/catch-implicit-integer-truncations-basics.c
    M clang/test/CodeGen/catch-implicit-integer-truncations-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-integer-truncations.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncation-or-sign-change-CompoundAssignOperator.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncation-or-sign-change.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncations-basics-negatives.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncations-basics.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncations-incdec-basics.c
    M clang/test/CodeGen/catch-implicit-signed-integer-truncations-incdec.c
    M clang/test/CodeGen/catch-implicit-unsigned-integer-truncations-basics-negatives.c
    M clang/test/CodeGen/catch-implicit-unsigned-integer-truncations-basics.c
    M clang/test/CodeGen/clang-sections-attribute.c
    M clang/test/CodeGen/cx-complex-range.c
    M clang/test/CodeGen/debug-info-bitfield-0-struct.c
    M clang/test/CodeGen/ms-intrinsics-other.c
    M clang/test/CodeGen/ms-intrinsics.c
    M clang/test/CodeGen/no-bitfield-type-align.c
    M clang/test/CodeGen/pseudo-probe-emit.c
    R clang/test/CodeGen/remote-traps.c
    M clang/test/CodeGen/struct-x86-darwin.c
    M clang/test/CodeGen/target-data.c
    A clang/test/CodeGen/tbaa-struct-bitfield-endianness.cpp
    M clang/test/CodeGen/tbaa-struct.cpp
    M clang/test/CodeGen/thinlto-distributed-cfi-devirt.ll
    M clang/test/CodeGen/thinlto-distributed-cfi.ll
    M clang/test/CodeGen/thinlto-funcattr-prop.ll
    A 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/bitfield-access-empty.cpp
    A clang/test/CodeGenCXX/bitfield-access-tail.cpp
    A clang/test/CodeGenCXX/bitfield-ir.cpp
    M clang/test/CodeGenCXX/bitfield.cpp
    M clang/test/CodeGenCXX/clang-sections.cpp
    M clang/test/CodeGenCXX/cxx2b-deducing-this.cpp
    M clang/test/CodeGenCXX/module-funcs-from-imports.cppm
    M clang/test/CodeGenCXX/skip-vtable-pointer-initialization.cpp
    A clang/test/CodeGenCXX/ubsan-bitfield-conversion.cpp
    A clang/test/CodeGenCXX/x86_32-vaarg.cpp
    A clang/test/CodeGenHLSL/ArrayTemporary.hlsl
    A clang/test/CodeGenHLSL/builtins/all.hlsl
    M clang/test/CodeGenHLSL/builtins/any.hlsl
    M clang/test/CodeGenHLSL/builtins/rcp.hlsl
    M clang/test/CodeGenHLSL/builtins/round.hlsl
    M clang/test/CodeGenHLSL/builtins/wave_get_lane_index_subcall.hlsl
    A clang/test/CodeGenHLSL/convergent-functions.hlsl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx12.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn.cl
    R clang/test/Driver/Inputs/in.so
    R clang/test/Driver/Inputs/libomptarget/libomptarget-new-nvptx-sm_35.bc
    R clang/test/Driver/Inputs/libomptarget/libomptarget-new-nvptx-test.bc
    R clang/test/Driver/Inputs/openmp_static_device_link/empty.o
    R clang/test/Driver/Inputs/openmp_static_device_link/lib.bc
    R clang/test/Driver/Inputs/openmp_static_device_link/libFatArchive.a
    M clang/test/Driver/aarch64-fixed-x-register.c
    M clang/test/Driver/amdgpu-features.c
    M clang/test/Driver/android-link.cpp
    M clang/test/Driver/arm-compiler-rt.c
    M clang/test/Driver/cl-link.c
    M clang/test/Driver/cl-outputs.c
    M clang/test/Driver/compiler-rt-unwind.c
    M clang/test/Driver/constructors.c
    M clang/test/Driver/coverage-ld.c
    M clang/test/Driver/cuda-detect.cu
    M clang/test/Driver/cuda-external-tools.cu
    A clang/test/Driver/darwin-ld-reexports.c
    M clang/test/Driver/dragonfly.c
    M clang/test/Driver/env.c
    M clang/test/Driver/frame-pointer-elim.c
    M clang/test/Driver/fsanitize.c
    M clang/test/Driver/haiku.c
    M clang/test/Driver/hexagon-toolchain-elf.c
    M clang/test/Driver/hip-link-shared-library.hip
    M clang/test/Driver/instrprof-ld.c
    M clang/test/Driver/linker-wrapper-libs.c
    M clang/test/Driver/linux-header-search.cpp
    M clang/test/Driver/linux-ld.c
    M clang/test/Driver/linux-musl-header-search.cpp
    M clang/test/Driver/linux-per-target-runtime-dir.c
    M clang/test/Driver/lld-repro.c
    M clang/test/Driver/mcmodel.c
    M clang/test/Driver/mingw-sanitizers.c
    M clang/test/Driver/mips-reduced-toolchain.cpp
    A clang/test/Driver/module-fgen-reduced-bmi.cppm
    M clang/test/Driver/module-output.cppm
    M clang/test/Driver/msp430-toolchain.c
    M clang/test/Driver/msvc-link.c
    M clang/test/Driver/mtargetos-darwin.c
    M clang/test/Driver/netbsd.cpp
    M clang/test/Driver/ohos.c
    M clang/test/Driver/openmp-offload-gpu.c
    M clang/test/Driver/pic.c
    M clang/test/Driver/print-libgcc-file-name-clangrt.c
    M clang/test/Driver/print-runtime-dir.c
    M clang/test/Driver/riscv-features.c
    M clang/test/Driver/riscv-profiles.c
    M clang/test/Driver/riscv32-toolchain-extra.c
    M clang/test/Driver/riscv32-toolchain.c
    M clang/test/Driver/riscv64-toolchain-extra.c
    M clang/test/Driver/riscv64-toolchain.c
    M clang/test/Driver/sanitizer-ld.c
    M clang/test/Driver/solaris-ld-sanitizer.c
    M clang/test/Driver/solaris-ld-values.c
    M clang/test/Driver/solaris-ld-values.cpp
    M clang/test/Driver/solaris-ld.c
    A clang/test/Driver/version-build-config.test
    M clang/test/Driver/wasm-toolchain.c
    M clang/test/Driver/wasm-toolchain.cpp
    M clang/test/Driver/windows-cross.c
    A clang/test/Driver/windows-seh-async-verify.cpp
    M clang/test/Driver/zos-ld.c
    M clang/test/ExtractAPI/anonymous_record_no_typedef.c
    M clang/test/ExtractAPI/availability.c
    M clang/test/ExtractAPI/bool.c
    M clang/test/ExtractAPI/bool.cpp
    M clang/test/ExtractAPI/class.cpp
    M clang/test/ExtractAPI/class_template.cpp
    M clang/test/ExtractAPI/class_template_param_inheritance.cpp
    M clang/test/ExtractAPI/class_template_partial_spec.cpp
    M clang/test/ExtractAPI/class_template_spec.cpp
    M clang/test/ExtractAPI/concept.cpp
    M clang/test/ExtractAPI/constructor_destructor.cpp
    M clang/test/ExtractAPI/conversions.cpp
    M clang/test/ExtractAPI/emit-symbol-graph/multi_file.c
    M clang/test/ExtractAPI/emit-symbol-graph/single_file.c
    M clang/test/ExtractAPI/enum.c
    M clang/test/ExtractAPI/field_template.cpp
    M clang/test/ExtractAPI/function_noexcepts.cpp
    M clang/test/ExtractAPI/global_func_template.cpp
    M clang/test/ExtractAPI/global_func_template_spec.cpp
    M clang/test/ExtractAPI/global_record.c
    M clang/test/ExtractAPI/global_record_multifile.c
    M clang/test/ExtractAPI/global_var_template.cpp
    M clang/test/ExtractAPI/global_var_template_partial_spec.cpp
    M clang/test/ExtractAPI/global_var_template_spec.cpp
    M clang/test/ExtractAPI/known_files_only.c
    M clang/test/ExtractAPI/language.c
    M clang/test/ExtractAPI/macro_undefined.c
    M clang/test/ExtractAPI/macros.c
    A clang/test/ExtractAPI/metadata_and_module.c
    M clang/test/ExtractAPI/method_template.cpp
    M clang/test/ExtractAPI/method_template_spec.cpp
    M clang/test/ExtractAPI/methods.cpp
    M clang/test/ExtractAPI/multiple_inheritance.cpp
    M clang/test/ExtractAPI/namespace.cpp
    M clang/test/ExtractAPI/nested_namespaces.cpp
    M clang/test/ExtractAPI/objc_block.m
    M clang/test/ExtractAPI/objc_category.m
    A clang/test/ExtractAPI/objc_external_category.m
    M clang/test/ExtractAPI/objc_id_protocol.m
    M clang/test/ExtractAPI/objc_instancetype.m
    M clang/test/ExtractAPI/objc_interface.m
    R clang/test/ExtractAPI/objc_module_category.m
    M clang/test/ExtractAPI/objc_property.m
    M clang/test/ExtractAPI/objc_protocol.m
    R clang/test/ExtractAPI/objc_various_categories.m
    M clang/test/ExtractAPI/operator_overload.cpp
    M clang/test/ExtractAPI/relative_include.m
    M clang/test/ExtractAPI/simple_inheritance.cpp
    M clang/test/ExtractAPI/struct.c
    M clang/test/ExtractAPI/typedef.c
    M clang/test/ExtractAPI/typedef_anonymous_record.c
    M clang/test/ExtractAPI/typedef_chain.c
    M clang/test/ExtractAPI/typedef_struct_enum.c
    M clang/test/ExtractAPI/underscored.c
    M clang/test/ExtractAPI/union.c
    M clang/test/ExtractAPI/vfs_redirected_include.m
    M clang/test/Format/lit.local.cfg
    M clang/test/Headers/Inputs/include/stdint.h
    M clang/test/Headers/__clang_hip_math.hip
    M clang/test/Headers/ms-intrin.cpp
    M clang/test/Index/USR/func-type.cpp
    M clang/test/Index/extract-api-cursor.m
    A clang/test/InstallAPI/Inputs/Foundation/Foundation.framework/Headers/Foundation.h
    A clang/test/InstallAPI/Inputs/MacOSX13.0.sdk/SDKSettings.json
    A clang/test/InstallAPI/binary-attributes.test
    A clang/test/InstallAPI/diagnostics-dsym.test
    A clang/test/InstallAPI/diagnostics-zippered.test
    M clang/test/InstallAPI/driver-invalid-options.test
    M clang/test/InstallAPI/extra-exclude-headers.test
    A clang/test/InstallAPI/forwarded-search-paths.test
    A clang/test/InstallAPI/reexported-frameworks.test
    A clang/test/InstallAPI/rpath.test
    A clang/test/Interpreter/inline-asm.cpp
    M clang/test/Lexer/cxx-features.cpp
    M clang/test/Misc/warning-flags.c
    A clang/test/Modules/Inputs/ptrauth-include-from-darwin/module.modulemap
    A clang/test/Modules/Inputs/ptrauth-include-from-darwin/ptrauth.h
    A clang/test/Modules/Inputs/ptrauth-include-from-darwin/stddef.h
    M clang/test/Modules/builtin-import.mm
    A clang/test/Modules/hashing-decls-in-exprs-from-gmf-2.cppm
    A clang/test/Modules/home-is-cwd-search-paths.c
    M clang/test/Modules/import-textual-noguard.mm
    M clang/test/Modules/import-textual.mm
    M clang/test/Modules/inconsistent-deduction-guide-linkage.cppm
    M clang/test/Modules/language-linkage.cppm
    A clang/test/Modules/modules-reduced-bmi.cppm
    A clang/test/Modules/multiple-import.m
    M clang/test/Modules/named-modules-adl-2.cppm
    M clang/test/Modules/named-modules-adl.cppm
    M clang/test/Modules/placement-new-reachable.cpp
    M clang/test/Modules/polluted-operator.cppm
    M clang/test/Modules/pr62589.cppm
    M clang/test/Modules/preferred_name.cppm
    A clang/test/Modules/ptrauth-include-from-darwin.m
    A clang/test/Modules/reduced-bmi-size.cppm
    M clang/test/Modules/redundant-template-default-arg3.cpp
    M clang/test/Modules/template-function-specialization.cpp
    A clang/test/OpenMP/Inputs/nesting_of_regions.cpp
    M clang/test/OpenMP/assumes_codegen.cpp
    M clang/test/OpenMP/assumes_print.cpp
    M clang/test/OpenMP/assumes_template_print.cpp
    M clang/test/OpenMP/atomic_capture_codegen.cpp
    M clang/test/OpenMP/atomic_read_codegen.c
    M clang/test/OpenMP/atomic_update_codegen.cpp
    M clang/test/OpenMP/atomic_write_codegen.c
    M clang/test/OpenMP/declare_simd_ast_print.cpp
    M clang/test/OpenMP/declare_target_link_codegen.cpp
    M clang/test/OpenMP/declare_target_visibility_codegen.cpp
    R clang/test/OpenMP/nesting_of_regions.cpp
    A clang/test/OpenMP/nesting_of_regions_45.cpp
    A clang/test/OpenMP/nesting_of_regions_50.cpp
    A clang/test/OpenMP/nesting_of_regions_51.cpp
    A clang/test/OpenMP/nesting_of_regions_simd_45.cpp
    A clang/test/OpenMP/nesting_of_regions_simd_50.cpp
    M clang/test/OpenMP/nvptx_target_teams_generic_loop_codegen.cpp
    M clang/test/OpenMP/nvptx_target_teams_generic_loop_generic_mode_codegen.cpp
    M clang/test/OpenMP/ompx_attributes_codegen.cpp
    M clang/test/OpenMP/target_codegen_registration.cpp
    M clang/test/OpenMP/target_indirect_codegen.cpp
    M clang/test/OpenMP/target_teams_generic_loop_codegen.cpp
    A clang/test/OpenMP/target_teams_generic_loop_codegen_as_distribute.cpp
    A clang/test/OpenMP/target_teams_generic_loop_codegen_as_parallel_for.cpp
    M clang/test/OpenMP/target_teams_generic_loop_if_codegen.cpp
    M clang/test/OpenMP/target_teams_generic_loop_private_codegen.cpp
    M clang/test/OpenMP/teams_generic_loop_codegen-1.cpp
    M clang/test/OpenMP/teams_generic_loop_codegen.cpp
    M clang/test/OpenMP/teams_generic_loop_collapse_codegen.cpp
    M clang/test/OpenMP/teams_generic_loop_private_codegen.cpp
    M clang/test/OpenMP/teams_generic_loop_reduction_codegen.cpp
    A clang/test/OpenMP/thread_limit_amdgpu.c
    A clang/test/PCH/cxx23-deducing-this-lambda.cpp
    M clang/test/PCH/cxx2a-defaulted-comparison.cpp
    M clang/test/Parser/c2x-typeof-ext-warns.c
    M clang/test/Parser/cxx-class.cpp
    A clang/test/Parser/cxx2c-delete-with-message.cpp
    M clang/test/ParserOpenACC/parse-clauses.c
    M clang/test/ParserOpenACC/parse-clauses.cpp
    M clang/test/ParserOpenACC/parse-wait-clause.c
    M clang/test/Preprocessor/riscv-target-features.c
    M clang/test/Preprocessor/x86_target_features.c
    A clang/test/Sema/GH70594.cpp
    M clang/test/Sema/aarch64-incompat-sm-builtin-calls.c
    M clang/test/Sema/aarch64-sme-func-attrs.c
    A clang/test/Sema/alias-unused-win.cpp
    R clang/test/Sema/alias-unused.c
    A clang/test/Sema/alias-unused.cpp
    A clang/test/Sema/attr-target-riscv.c
    M clang/test/Sema/code_align.c
    A clang/test/Sema/complex-inc-dec.c
    A clang/test/Sema/constant-builtins-all-args-evaluated.cpp
    A clang/test/Sema/format-strings-signedness-fixit.c
    A clang/test/Sema/format-strings-signedness.c
    M clang/test/Sema/nullability.c
    A clang/test/Sema/recover-expr-gh88008-nocrash.c
    A clang/test/Sema/tentative-array-decl.c
    A clang/test/SemaCXX/PR41441.cpp
    A clang/test/SemaCXX/PR84020.cpp
    A clang/test/SemaCXX/PR86790.cpp
    M clang/test/SemaCXX/attr-no-sanitize.cpp
    M clang/test/SemaCXX/cxx11-attr-print.cpp
    M clang/test/SemaCXX/cxx20-ctad-type-alias.cpp
    M clang/test/SemaCXX/cxx2b-deducing-this.cpp
    A clang/test/SemaCXX/cxx2c-delete-with-message.cpp
    M clang/test/SemaCXX/deduced-return-type-cxx14.cpp
    A clang/test/SemaCXX/gh84473.cpp
    M clang/test/SemaCXX/nullability.cpp
    M clang/test/SemaCXX/overloaded-operator.cpp
    M clang/test/SemaCXX/type-traits.cpp
    A clang/test/SemaCXX/typeof_unqual.cpp
    M clang/test/SemaCXX/warn-unused-but-set-variables-cpp.cpp
    A clang/test/SemaHLSL/ArrayParams.hlsl
    A clang/test/SemaHLSL/ArrayTemporary.hlsl
    M clang/test/SemaHLSL/BuiltIns/half-float-only-errors.hlsl
    A clang/test/SemaHLSL/literal_suffixes.hlsl
    A clang/test/SemaHLSL/literal_suffixes_no_16bit.hlsl
    A clang/test/SemaObjCXX/Inputs/nullability-consistency-smart.h
    M clang/test/SemaObjCXX/nullability-consistency.mm
    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
    A clang/test/SemaOpenACC/compute-construct-if-clause.c
    A clang/test/SemaOpenACC/compute-construct-if-clause.cpp
    A clang/test/SemaOpenACC/compute-construct-self-clause.c
    A clang/test/SemaOpenACC/compute-construct-self-clause.cpp
    A clang/test/SemaTemplate/alias-template-with-lambdas.cpp
    M clang/test/SemaTemplate/alias-templates.cpp
    M clang/test/SemaTemplate/concepts-friends.cpp
    M clang/test/SemaTemplate/ctad.cpp
    M clang/test/SemaTemplate/deduction-guide.cpp
    A clang/test/SemaTemplate/instantiate-pure-virtual-function.cpp
    M clang/test/SemaTemplate/instantiation-depth-default.cpp
    M clang/test/lit.site.cfg.py.in
    M clang/tools/clang-format/ClangFormat.cpp
    M clang/tools/clang-installapi/CMakeLists.txt
    M clang/tools/clang-installapi/ClangInstallAPI.cpp
    M clang/tools/clang-installapi/InstallAPIOpts.td
    M clang/tools/clang-installapi/Options.cpp
    M clang/tools/clang-installapi/Options.h
    M clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
    M clang/tools/clang-repl/ClangRepl.cpp
    M clang/tools/libclang/CIndex.cpp
    M clang/tools/libclang/CIndexCodeCompletion.cpp
    M clang/tools/libclang/CXExtractAPI.cpp
    M clang/tools/scan-build/libexec/ccc-analyzer
    M clang/unittests/AST/ASTImporterTest.cpp
    M clang/unittests/AST/ASTTraverserTest.cpp
    M clang/unittests/AST/DeclPrinterTest.cpp
    M clang/unittests/AST/Interp/CMakeLists.txt
    A clang/unittests/AST/Interp/toAPValue.cpp
    M clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
    M clang/unittests/Analysis/FlowSensitive/DataflowEnvironmentTest.cpp
    M clang/unittests/Analysis/FlowSensitive/TransferTest.cpp
    M clang/unittests/Analysis/FlowSensitive/TypeErasedDataflowAnalysisTest.cpp
    M clang/unittests/Format/BracesRemoverTest.cpp
    M clang/unittests/Format/FormatTest.cpp
    M clang/unittests/Format/FormatTestComments.cpp
    M clang/unittests/Format/FormatTestMacroExpansion.cpp
    M clang/unittests/Format/FormatTestTableGen.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp
    M clang/unittests/Interpreter/InterpreterExtensionsTest.cpp
    M clang/unittests/StaticAnalyzer/CallDescriptionTest.cpp
    M clang/unittests/Tooling/CMakeLists.txt
    R clang/unittests/Tooling/DependencyScannerTest.cpp
    A clang/unittests/Tooling/DependencyScanning/DependencyScannerTest.cpp
    A clang/unittests/Tooling/DependencyScanning/DependencyScanningFilesystemTest.cpp
    M clang/unittests/Tooling/SourceCodeTest.cpp
    M clang/utils/TableGen/ClangAttrEmitter.cpp
    M clang/utils/TableGen/ClangOptionDocEmitter.cpp
    M clang/utils/TableGen/MveEmitter.cpp
    M clang/utils/TableGen/SveEmitter.cpp
    M clang/utils/TableGen/TableGen.cpp
    M clang/utils/TableGen/TableGenBackends.h
    M clang/www/c_status.html
    M clang/www/cxx_dr_status.html
    M clang/www/cxx_status.html
    M clang/www/make_cxx_dr_status
    M compiler-rt/CMakeLists.txt
    M compiler-rt/cmake/Modules/AddCompilerRT.cmake
    M compiler-rt/cmake/config-ix.cmake
    M compiler-rt/lib/asan/asan_thread.cpp
    M compiler-rt/lib/builtins/riscv/restore.S
    M compiler-rt/lib/builtins/riscv/save.S
    M compiler-rt/lib/hwasan/hwasan_thread_list.h
    M compiler-rt/lib/memprof/tests/CMakeLists.txt
    M compiler-rt/lib/msan/msan_linux.cpp
    M compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh
    M compiler-rt/lib/scudo/standalone/allocator_config.def
    M compiler-rt/lib/scudo/standalone/combined.h
    M compiler-rt/lib/scudo/standalone/common.h
    M compiler-rt/lib/scudo/standalone/primary64.h
    M compiler-rt/lib/scudo/standalone/report_linux.cpp
    M compiler-rt/lib/scudo/standalone/stack_depot.h
    M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
    M compiler-rt/lib/scudo/standalone/tests/primary_test.cpp
    M compiler-rt/lib/scudo/standalone/tests/report_test.cpp
    M compiler-rt/lib/scudo/standalone/tests/strings_test.cpp
    M compiler-rt/lib/scudo/standalone/tests/vector_test.cpp
    M compiler-rt/lib/scudo/standalone/wrappers_c.inc
    M compiler-rt/lib/scudo/standalone/wrappers_c_checks.h
    M compiler-rt/lib/ubsan/ubsan_handlers.cpp
    M compiler-rt/lib/ubsan/ubsan_handlers.h
    M compiler-rt/lib/xray/xray_trampoline_AArch64.S
    M compiler-rt/lib/xray/xray_trampoline_x86_64.S
    M compiler-rt/test/CMakeLists.txt
    M compiler-rt/test/dfsan/mmap_at_init.c
    M compiler-rt/test/fuzzer/lit.cfg.py
    M compiler-rt/test/lit.common.cfg.py
    M compiler-rt/test/lit.common.configured.in
    A compiler-rt/test/profile/Linux/instrprof-vtable-value-prof.cpp
    M compiler-rt/test/safestack/lit.cfg.py
    M compiler-rt/test/sanitizer_common/TestCases/Linux/mmap_56bit_test.c
    A compiler-rt/test/ubsan/TestCases/ImplicitConversion/bitfield-conversion.c
    M flang/.gitignore
    M flang/CMakeLists.txt
    A flang/cmake/modules/AddFlangOffloadRuntime.cmake
    A flang/docs/DebugGeneration.md
    M flang/docs/Extensions.md
    M flang/docs/GettingStarted.md
    M flang/docs/Intrinsics.md
    M flang/docs/ModFiles.md
    A flang/docs/Real16MathSupport.md
    M flang/docs/index.md
    M flang/include/flang/Common/Fortran.h
    M flang/include/flang/Common/api-attrs.h
    A flang/include/flang/Common/windows-include.h
    M flang/include/flang/Evaluate/common.h
    M flang/include/flang/Evaluate/integer.h
    M flang/include/flang/Evaluate/real.h
    M flang/include/flang/Evaluate/tools.h
    M flang/include/flang/Frontend/CodeGenOptions.h
    M flang/include/flang/Frontend/PreprocessorOptions.h
    M flang/include/flang/Lower/AbstractConverter.h
    M flang/include/flang/Optimizer/Builder/FIRBuilder.h
    M flang/include/flang/Optimizer/Dialect/FIROps.td
    M flang/include/flang/Optimizer/Dialect/FIROpsSupport.h
    M flang/include/flang/Optimizer/Dialect/FIRTypes.td
    M flang/include/flang/Optimizer/Support/Utils.h
    M flang/include/flang/Optimizer/Transforms/Passes.h
    M flang/include/flang/Optimizer/Transforms/Passes.td
    M flang/include/flang/Parser/char-block.h
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/include/flang/Parser/parsing.h
    A flang/include/flang/Parser/preprocessor.h
    A flang/include/flang/Parser/token-sequence.h
    M flang/include/flang/Runtime/extensions.h
    A flang/include/flang/Runtime/freestanding-tools.h
    M flang/include/flang/Runtime/io-api.h
    M flang/include/flang/Semantics/tools.h
    M flang/include/flang/Tools/CLOptions.inc
    M flang/lib/Decimal/CMakeLists.txt
    M flang/lib/Decimal/big-radix-floating-point.h
    M flang/lib/Decimal/binary-to-decimal.cpp
    M flang/lib/Decimal/decimal-to-binary.cpp
    M flang/lib/Evaluate/check-expression.cpp
    M flang/lib/Evaluate/fold-implementation.h
    M flang/lib/Evaluate/fold-integer.cpp
    M flang/lib/Evaluate/fold-reduction.h
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Frontend/FrontendActions.cpp
    M flang/lib/Lower/Allocatable.cpp
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/CallInterface.cpp
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Lower/ConvertVariable.cpp
    M flang/lib/Lower/DirectivesCommon.h
    M flang/lib/Lower/OpenACC.cpp
    M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
    M flang/lib/Lower/OpenMP/ClauseProcessor.h
    M flang/lib/Lower/OpenMP/Clauses.cpp
    M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
    M flang/lib/Lower/OpenMP/DataSharingProcessor.h
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M flang/lib/Lower/OpenMP/ReductionProcessor.cpp
    M flang/lib/Lower/OpenMP/ReductionProcessor.h
    M flang/lib/Lower/Runtime.cpp
    M flang/lib/Optimizer/Builder/FIRBuilder.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/LowLevelIntrinsics.cpp
    M flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/Runtime/Numeric.cpp
    M flang/lib/Optimizer/CodeGen/CodeGen.cpp
    M flang/lib/Optimizer/Dialect/FIROps.cpp
    R flang/lib/Optimizer/Transforms/AddDebugFoundation.cpp
    A flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
    M flang/lib/Optimizer/Transforms/CMakeLists.txt
    M flang/lib/Optimizer/Transforms/ExternalNameConversion.cpp
    M flang/lib/Optimizer/Transforms/SimplifyIntrinsics.cpp
    M flang/lib/Parser/Fortran-parsers.cpp
    M flang/lib/Parser/openmp-parsers.cpp
    M flang/lib/Parser/parsing.cpp
    M flang/lib/Parser/preprocessor.cpp
    R flang/lib/Parser/preprocessor.h
    M flang/lib/Parser/prescan.cpp
    M flang/lib/Parser/prescan.h
    M flang/lib/Parser/token-sequence.cpp
    R flang/lib/Parser/token-sequence.h
    M flang/lib/Parser/unparse.cpp
    M flang/lib/Semantics/check-call.cpp
    M flang/lib/Semantics/check-cuda.cpp
    M flang/lib/Semantics/check-cuda.h
    M flang/lib/Semantics/check-declarations.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/check-omp-structure.h
    M flang/lib/Semantics/mod-file.cpp
    M flang/lib/Semantics/pointer-assignment.cpp
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/module/iso_c_binding.f90
    M flang/module/iso_fortran_env.f90
    M flang/runtime/CMakeLists.txt
    M flang/runtime/buffer.h
    M flang/runtime/command.cpp
    M flang/runtime/descriptor-io.cpp
    M flang/runtime/descriptor-io.h
    M flang/runtime/edit-input.cpp
    M flang/runtime/edit-output.cpp
    M flang/runtime/emit-encoded.h
    M flang/runtime/environment.cpp
    M flang/runtime/environment.h
    M flang/runtime/execute.cpp
    M flang/runtime/extensions.cpp
    M flang/runtime/file.cpp
    M flang/runtime/format.h
    R flang/runtime/freestanding-tools.h
    M flang/runtime/internal-unit.cpp
    M flang/runtime/io-api.cpp
    M flang/runtime/io-error.cpp
    M flang/runtime/io-error.h
    M flang/runtime/io-stmt.cpp
    M flang/runtime/io-stmt.h
    M flang/runtime/lock.h
    M flang/runtime/memory.cpp
    M flang/runtime/namelist.cpp
    M flang/runtime/numeric-templates.h
    M flang/runtime/tools.h
    M flang/runtime/unit.cpp
    M flang/runtime/unit.h
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-as
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld.bfd
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld.gold
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-as
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld.bfd
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld.gold
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/as
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld.bfd
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld.gold
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/lib/.keep
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/i386-unknown-linux-gnu/10.2.0/crtbegin.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtbegin.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtbeginT.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtfastmath.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtbegin.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtbeginT.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtfastmath.o
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/as
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.bfd
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.gold
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.lld
    A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/lib/.keep
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/asanrtl.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/hip.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/ockl.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_correctly_rounded_sqrt_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_correctly_rounded_sqrt_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_daz_opt_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_daz_opt_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_finite_only_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_finite_only_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_1010.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_1011.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_1012.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_803.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_900.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_isa_version_908.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_unsafe_math_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_unsafe_math_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_wavefrontsize64_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/oclc_wavefrontsize64_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/ocml.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode-no-abi-ver/opencl.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/asanrtl.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/hip.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/ockl.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_abi_version_400.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_abi_version_500.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_abi_version_600.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_correctly_rounded_sqrt_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_correctly_rounded_sqrt_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_daz_opt_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_daz_opt_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_finite_only_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_finite_only_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_1010.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_1011.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_1012.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_803.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_900.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_isa_version_908.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_unsafe_math_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_unsafe_math_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_wavefrontsize64_off.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/oclc_wavefrontsize64_on.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/ocml.bc
    A flang/test/Driver/Inputs/rocm/amdgcn/bitcode/opencl.bc
    A flang/test/Driver/Inputs/rocm/bin/.hipVersion
    A flang/test/Driver/Inputs/rocm/include/hip/hip_runtime.h
    A flang/test/Driver/Inputs/rocm/share/hip/hipVersion
    A flang/test/Driver/arch-specific-libdir-rpath.f95
    M flang/test/Driver/driver-help-hidden.f90
    M flang/test/Driver/driver-help.f90
    A flang/test/Driver/fopenmp.f90
    A flang/test/Driver/gcc-toolchain-install-dir.f90
    M flang/test/Driver/mlir-debug-pass-pipeline.f90
    M flang/test/Driver/msvc-dependent-lib-flags.f90
    M flang/test/Driver/omp-driver-offload.f90
    A flang/test/Driver/predefined-macros-powerpc2.f90
    A flang/test/Evaluate/folding32.f90
    A flang/test/Fir/cuf-invalid.fir
    A flang/test/Fir/cuf.mlir
    M flang/test/Lower/AMD/code-object-version.f90
    M flang/test/Lower/CUDA/cuda-data-attribute.cuf
    M flang/test/Lower/CUDA/cuda-data-transfer.cuf
    M flang/test/Lower/HLFIR/assumed-rank-iface.f90
    A flang/test/Lower/HLFIR/procedure-pointer-component-default-init.f90
    M flang/test/Lower/Intrinsics/maskl.f90
    M flang/test/Lower/Intrinsics/maskr.f90
    M flang/test/Lower/Intrinsics/modulo.f90
    M flang/test/Lower/OpenMP/FIR/target.f90
    A flang/test/Lower/OpenMP/Todo/reduction-modifiers.f90
    M flang/test/Lower/OpenMP/default-clause.f90
    M flang/test/Lower/OpenMP/parallel-reduction-array.f90
    M flang/test/Lower/OpenMP/parallel-reduction-array2.f90
    A flang/test/Lower/OpenMP/parallel-reduction-complex-mul.f90
    A flang/test/Lower/OpenMP/parallel-reduction-complex.f90
    A flang/test/Lower/OpenMP/parallel-reduction3.f90
    M flang/test/Lower/OpenMP/target.f90
    M flang/test/Lower/OpenMP/use-device-ptr-to-use-device-addr.f90
    A flang/test/Lower/OpenMP/wsloop-reduction-array-assumed-shape.f90
    M flang/test/Lower/OpenMP/wsloop-reduction-array.f90
    M flang/test/Lower/OpenMP/wsloop-reduction-array2.f90
    A flang/test/Lower/allocate-source-allocatables-2.f90
    M flang/test/Lower/call-by-value.f90
    M flang/test/Lower/stop-statement.f90
    A flang/test/Parser/OpenMP/reduction-modifier.f90
    M flang/test/Parser/compiler-directives.f90
    A flang/test/Preprocessing/show-macros1.F90
    A flang/test/Preprocessing/show-macros2.F90
    A flang/test/Preprocessing/show-macros3.F90
    M flang/test/Semantics/OpenMP/clause-validity01.f90
    M flang/test/Semantics/cuf03.cuf
    M flang/test/Semantics/cuf09.cuf
    A flang/test/Semantics/cuf11.cuf
    A flang/test/Semantics/intrinsics04.f90
    A flang/test/Semantics/numeric_storage_size.f90
    M flang/test/Semantics/resolve21.f90
    M flang/test/Semantics/resolve29.f90
    M flang/test/Transforms/debug-line-table-existing.fir
    M flang/test/Transforms/debug-line-table-inc-file.fir
    M flang/test/Transforms/debug-line-table-inc-same-file.fir
    M flang/test/Transforms/debug-line-table.fir
    M flang/test/Transforms/stack-arrays.fir
    M flang/tools/f18/CMakeLists.txt
    A flang/unittests/Runtime/AccessTest.cpp
    M flang/unittests/Runtime/CMakeLists.txt
    M flang/unittests/Runtime/Numeric.cpp
    M flang/unittests/Runtime/Time.cpp
    M libc/CMakeLists.txt
    M libc/cmake/modules/LLVMLibCCheckMPFR.cmake
    M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
    M libc/config/baremetal/arm/entrypoints.txt
    M libc/config/baremetal/riscv/entrypoints.txt
    M libc/config/config.json
    M libc/config/darwin/arm/entrypoints.txt
    M libc/config/darwin/x86_64/entrypoints.txt
    M libc/config/gpu/api.td
    M libc/config/gpu/entrypoints.txt
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/api.td
    M libc/config/linux/arm/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/config/windows/entrypoints.txt
    M libc/docs/c23.rst
    M libc/docs/configure.rst
    A libc/docs/ctype.rst
    M libc/docs/dev/code_style.rst
    M libc/docs/dev/printf_behavior.rst
    A libc/docs/fenv.rst
    M libc/docs/gpu/building.rst
    M libc/docs/gpu/rpc.rst
    M libc/docs/index.rst
    M libc/docs/math/index.rst
    A libc/docs/signal.rst
    M libc/docs/stdbit.rst
    M libc/docs/usage_modes.rst
    M libc/fuzzing/CMakeLists.txt
    A libc/fuzzing/__support/CMakeLists.txt
    A libc/fuzzing/__support/uint_fuzz.cpp
    M libc/fuzzing/math/CMakeLists.txt
    M libc/fuzzing/math/RemQuoDiff.h
    M libc/fuzzing/stdlib/CMakeLists.txt
    M libc/fuzzing/stdlib/strtofloat_fuzz.cpp
    A libc/hdr/CMakeLists.txt
    A libc/hdr/fenv_macros.h
    A libc/hdr/math_macros.h
    A libc/hdr/signal_macros.h
    A libc/hdr/sys_epoll_macros.h
    A libc/hdr/types/CMakeLists.txt
    A libc/hdr/types/fenv_t.h
    A libc/hdr/types/fexcept_t.h
    A libc/hdr/types/sigset_t.h
    A libc/hdr/types/struct_epoll_event.h
    A libc/hdr/types/struct_timespec.h
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-macros/CMakeLists.txt
    M libc/include/llvm-libc-macros/linux/CMakeLists.txt
    A libc/include/llvm-libc-macros/linux/sys-epoll-macros.h
    M libc/include/llvm-libc-macros/math-macros.h
    A libc/include/llvm-libc-macros/sys-epoll-macros.h
    M libc/include/llvm-libc-types/rpc_opcodes_t.h
    M libc/include/llvm-libc-types/sigset_t.h
    M libc/include/llvm-libc-types/struct_epoll_event.h
    M libc/include/sys/epoll.h.def
    M libc/spec/gpu_ext.td
    M libc/spec/posix.td
    M libc/spec/stdc.td
    M libc/src/__support/CMakeLists.txt
    M libc/src/__support/CPP/bit.h
    M libc/src/__support/FPUtil/BasicOperations.h
    M libc/src/__support/FPUtil/CMakeLists.txt
    M libc/src/__support/FPUtil/FEnvImpl.h
    M libc/src/__support/FPUtil/FPBits.h
    M libc/src/__support/FPUtil/Hypot.h
    M libc/src/__support/FPUtil/ManipulationFunctions.h
    M libc/src/__support/FPUtil/NearestIntegerOperations.h
    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/dyadic_float.h
    M libc/src/__support/FPUtil/generic/CMakeLists.txt
    M libc/src/__support/FPUtil/generic/FMA.h
    M libc/src/__support/FPUtil/generic/FMod.h
    M libc/src/__support/FPUtil/generic/sqrt.h
    M libc/src/__support/FPUtil/generic/sqrt_80_bit_long_double.h
    M libc/src/__support/FPUtil/riscv/FEnvImpl.h
    M libc/src/__support/FPUtil/rounding_mode.h
    M libc/src/__support/FPUtil/x86_64/FEnvImpl.h
    M libc/src/__support/RPC/rpc.h
    R libc/src/__support/UInt.h
    R libc/src/__support/UInt128.h
    M libc/src/__support/arg_list.h
    A libc/src/__support/big_int.h
    M libc/src/__support/float_to_string.h
    M libc/src/__support/hash.h
    M libc/src/__support/integer_literals.h
    M libc/src/__support/integer_to_string.h
    M libc/src/__support/macros/config.h
    M libc/src/__support/math_extras.h
    M libc/src/__support/number_pair.h
    M libc/src/__support/str_to_float.h
    M libc/src/__support/str_to_integer.h
    A libc/src/__support/uint128.h
    M libc/src/fenv/CMakeLists.txt
    M libc/src/fenv/fegetenv.h
    M libc/src/fenv/fegetexceptflag.cpp
    M libc/src/fenv/fegetexceptflag.h
    M libc/src/fenv/feholdexcept.cpp
    M libc/src/fenv/feholdexcept.h
    M libc/src/fenv/fesetenv.h
    A libc/src/fenv/fesetexcept.cpp
    A libc/src/fenv/fesetexcept.h
    M libc/src/fenv/fesetexceptflag.cpp
    M libc/src/fenv/fesetexceptflag.h
    M libc/src/fenv/feupdateenv.cpp
    M libc/src/fenv/feupdateenv.h
    M libc/src/gpu/CMakeLists.txt
    A libc/src/gpu/rpc_fprintf.cpp
    A libc/src/gpu/rpc_fprintf.h
    M libc/src/math/CMakeLists.txt
    A libc/src/math/exp2m1f.h
    M libc/src/math/generic/CMakeLists.txt
    A libc/src/math/generic/atan2f.cpp
    M libc/src/math/generic/atanf.cpp
    A libc/src/math/generic/exp2m1f.cpp
    M libc/src/math/generic/exp_utils.cpp
    M libc/src/math/generic/explogxf.h
    M libc/src/math/generic/inv_trigf_utils.cpp
    M libc/src/math/generic/inv_trigf_utils.h
    M libc/src/math/generic/log1p.cpp
    M libc/src/math/generic/log_range_reduction.h
    R libc/src/math/generic/math_utils.cpp
    R libc/src/math/generic/math_utils.h
    A libc/src/math/generic/roundeven.cpp
    A libc/src/math/generic/roundevenf.cpp
    A libc/src/math/generic/roundevenf128.cpp
    A libc/src/math/generic/roundevenl.cpp
    A libc/src/math/roundeven.h
    A libc/src/math/roundevenf.h
    A libc/src/math/roundevenf128.h
    A libc/src/math/roundevenl.h
    M libc/src/signal/linux/CMakeLists.txt
    M libc/src/signal/linux/raise.cpp
    M libc/src/signal/linux/sigaction.cpp
    M libc/src/signal/linux/sigaddset.cpp
    M libc/src/signal/linux/sigdelset.cpp
    M libc/src/signal/linux/sigfillset.cpp
    M libc/src/signal/linux/signal_utils.h
    M libc/src/signal/linux/sigprocmask.cpp
    M libc/src/signal/sigaddset.h
    M libc/src/signal/sigdelset.h
    M libc/src/signal/sigemptyset.h
    M libc/src/signal/sigfillset.h
    M libc/src/signal/sigprocmask.h
    M libc/src/stdio/CMakeLists.txt
    A libc/src/stdio/fseeko.h
    A libc/src/stdio/ftello.h
    M libc/src/stdio/generic/CMakeLists.txt
    M libc/src/stdio/generic/fseek.cpp
    A libc/src/stdio/generic/fseeko.cpp
    M libc/src/stdio/generic/ftell.cpp
    A libc/src/stdio/generic/ftello.cpp
    M libc/src/stdio/printf_core/CMakeLists.txt
    M libc/src/stdio/printf_core/converter_utils.h
    M libc/src/stdio/printf_core/core_structs.h
    M libc/src/stdio/printf_core/float_dec_converter.h
    M libc/src/stdio/printf_core/int_converter.h
    M libc/src/stdio/printf_core/parser.h
    M libc/src/stdio/printf_core/write_int_converter.h
    M libc/src/sys/epoll/CMakeLists.txt
    A libc/src/sys/epoll/epoll_create.h
    A libc/src/sys/epoll/epoll_create1.h
    A libc/src/sys/epoll/epoll_ctl.h
    M libc/src/sys/epoll/epoll_pwait.h
    M libc/src/sys/epoll/epoll_pwait2.h
    M libc/src/sys/epoll/epoll_wait.h
    M libc/src/sys/epoll/linux/CMakeLists.txt
    A libc/src/sys/epoll/linux/epoll_create.cpp
    A libc/src/sys/epoll/linux/epoll_create1.cpp
    A libc/src/sys/epoll/linux/epoll_ctl.cpp
    M libc/src/sys/epoll/linux/epoll_pwait.cpp
    M libc/src/sys/epoll/linux/epoll_pwait2.cpp
    M libc/src/sys/epoll/linux/epoll_wait.cpp
    M libc/src/sys/select/linux/select.cpp
    M libc/src/unistd/CMakeLists.txt
    A libc/src/unistd/_exit.cpp
    A libc/src/unistd/_exit.h
    M libc/src/unistd/linux/CMakeLists.txt
    A libc/src/unistd/linux/pipe.cpp
    A libc/src/unistd/pipe.h
    M libc/test/CMakeLists.txt
    M libc/test/UnitTest/CMakeLists.txt
    M libc/test/UnitTest/FPExceptMatcher.cpp
    M libc/test/UnitTest/FPMatcher.h
    M libc/test/UnitTest/LibcDeathTestExecutors.cpp
    M libc/test/UnitTest/LibcTest.cpp
    M libc/test/UnitTest/PrintfMatcher.cpp
    M libc/test/UnitTest/RoundingModeUtils.cpp
    M libc/test/UnitTest/StringUtils.h
    M libc/test/UnitTest/TestLogger.cpp
    M libc/test/integration/src/stdio/CMakeLists.txt
    A libc/test/integration/src/stdio/gpu/CMakeLists.txt
    A libc/test/integration/src/stdio/gpu/printf.cpp
    M libc/test/src/CMakeLists.txt
    M libc/test/src/__support/CMakeLists.txt
    M libc/test/src/__support/CPP/CMakeLists.txt
    M libc/test/src/__support/CPP/bit_test.cpp
    M libc/test/src/__support/CPP/limits_test.cpp
    M libc/test/src/__support/FPUtil/dyadic_float_test.cpp
    M libc/test/src/__support/FPUtil/rounding_mode_test.cpp
    A libc/test/src/__support/big_int_test.cpp
    M libc/test/src/__support/high_precision_decimal_test.cpp
    M libc/test/src/__support/integer_literals_test.cpp
    M libc/test/src/__support/integer_to_string_test.cpp
    M libc/test/src/__support/math_extras_test.cpp
    M libc/test/src/__support/str_to_fp_test.h
    R libc/test/src/__support/uint_test.cpp
    M libc/test/src/fenv/CMakeLists.txt
    M libc/test/src/fenv/enabled_exceptions_test.cpp
    M libc/test/src/fenv/exception_flags_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/feholdexcept_test.cpp
    M libc/test/src/fenv/feupdateenv_test.cpp
    M libc/test/src/fenv/getenv_and_setenv_test.cpp
    M libc/test/src/fenv/rounding_mode_test.cpp
    M libc/test/src/math/CMakeLists.txt
    M libc/test/src/math/CeilTest.h
    M libc/test/src/math/CopySignTest.h
    M libc/test/src/math/FAbsTest.h
    M libc/test/src/math/FDimTest.h
    M libc/test/src/math/FMaxTest.h
    M libc/test/src/math/FMinTest.h
    M libc/test/src/math/FModTest.h
    M libc/test/src/math/FloorTest.h
    M libc/test/src/math/FmaTest.h
    M libc/test/src/math/FrexpTest.h
    M libc/test/src/math/HypotTest.h
    M libc/test/src/math/ILogbTest.h
    M libc/test/src/math/LdExpTest.h
    M libc/test/src/math/LogbTest.h
    M libc/test/src/math/ModfTest.h
    M libc/test/src/math/NextAfterTest.h
    M libc/test/src/math/RIntTest.h
    R libc/test/src/math/RandUtils.cpp
    R libc/test/src/math/RandUtils.h
    M libc/test/src/math/RemQuoTest.h
    A libc/test/src/math/RoundEvenTest.h
    M libc/test/src/math/RoundTest.h
    M libc/test/src/math/RoundToIntegerTest.h
    M libc/test/src/math/SqrtTest.h
    M libc/test/src/math/TruncTest.h
    M libc/test/src/math/acosf_test.cpp
    M libc/test/src/math/acoshf_test.cpp
    M libc/test/src/math/asinf_test.cpp
    M libc/test/src/math/asinhf_test.cpp
    A libc/test/src/math/atan2f_test.cpp
    M libc/test/src/math/atanf_test.cpp
    M libc/test/src/math/atanhf_test.cpp
    M libc/test/src/math/cos_test.cpp
    M libc/test/src/math/cosf_test.cpp
    M libc/test/src/math/coshf_test.cpp
    M libc/test/src/math/erff_test.cpp
    M libc/test/src/math/exhaustive/CMakeLists.txt
    A libc/test/src/math/exhaustive/exp2m1f_test.cpp
    M libc/test/src/math/exp10_test.cpp
    M libc/test/src/math/exp10f_test.cpp
    M libc/test/src/math/exp2_test.cpp
    M libc/test/src/math/exp2f_test.cpp
    A libc/test/src/math/exp2m1f_test.cpp
    M libc/test/src/math/exp_test.cpp
    M libc/test/src/math/expf_test.cpp
    M libc/test/src/math/explogxf_test.cpp
    M libc/test/src/math/expm1_test.cpp
    M libc/test/src/math/expm1f_test.cpp
    M libc/test/src/math/fdim_test.cpp
    M libc/test/src/math/fdimf_test.cpp
    M libc/test/src/math/fdiml_test.cpp
    M libc/test/src/math/generic/CMakeLists.txt
    M libc/test/src/math/ilogb_test.cpp
    M libc/test/src/math/ilogbf_test.cpp
    M libc/test/src/math/ilogbl_test.cpp
    M libc/test/src/math/log10_test.cpp
    M libc/test/src/math/log10f_test.cpp
    M libc/test/src/math/log1p_test.cpp
    M libc/test/src/math/log1pf_test.cpp
    M libc/test/src/math/log2_test.cpp
    M libc/test/src/math/log2f_test.cpp
    M libc/test/src/math/log_test.cpp
    M libc/test/src/math/logf_test.cpp
    M libc/test/src/math/powf_test.cpp
    A libc/test/src/math/roundeven_test.cpp
    A libc/test/src/math/roundevenf_test.cpp
    A libc/test/src/math/roundevenl_test.cpp
    M libc/test/src/math/sin_test.cpp
    M libc/test/src/math/sincosf_test.cpp
    M libc/test/src/math/sinf_test.cpp
    M libc/test/src/math/sinhf_test.cpp
    M libc/test/src/math/smoke/CMakeLists.txt
    M libc/test/src/math/smoke/CanonicalizeTest.h
    M libc/test/src/math/smoke/CeilTest.h
    M libc/test/src/math/smoke/CopySignTest.h
    M libc/test/src/math/smoke/FAbsTest.h
    M libc/test/src/math/smoke/FModTest.h
    M libc/test/src/math/smoke/FloorTest.h
    M libc/test/src/math/smoke/HypotTest.h
    M libc/test/src/math/smoke/ModfTest.h
    M libc/test/src/math/smoke/NextAfterTest.h
    M libc/test/src/math/smoke/NextTowardTest.h
    M libc/test/src/math/smoke/RIntTest.h
    M libc/test/src/math/smoke/RemQuoTest.h
    A libc/test/src/math/smoke/RoundEvenTest.h
    M libc/test/src/math/smoke/RoundTest.h
    M libc/test/src/math/smoke/RoundToIntegerTest.h
    M libc/test/src/math/smoke/SqrtTest.h
    M libc/test/src/math/smoke/TruncTest.h
    M libc/test/src/math/smoke/acosf_test.cpp
    M libc/test/src/math/smoke/acoshf_test.cpp
    M libc/test/src/math/smoke/asinf_test.cpp
    M libc/test/src/math/smoke/asinhf_test.cpp
    A libc/test/src/math/smoke/atan2f_test.cpp
    M libc/test/src/math/smoke/atanf_test.cpp
    M libc/test/src/math/smoke/atanhf_test.cpp
    M libc/test/src/math/smoke/cosf_test.cpp
    M libc/test/src/math/smoke/coshf_test.cpp
    M libc/test/src/math/smoke/erff_test.cpp
    M libc/test/src/math/smoke/exp10_test.cpp
    M libc/test/src/math/smoke/exp10f_test.cpp
    M libc/test/src/math/smoke/exp2_test.cpp
    M libc/test/src/math/smoke/exp2f_test.cpp
    A libc/test/src/math/smoke/exp2m1f_test.cpp
    M libc/test/src/math/smoke/exp_test.cpp
    M libc/test/src/math/smoke/expf_test.cpp
    M libc/test/src/math/smoke/expm1_test.cpp
    M libc/test/src/math/smoke/expm1f_test.cpp
    M libc/test/src/math/smoke/log10_test.cpp
    M libc/test/src/math/smoke/log10f_test.cpp
    M libc/test/src/math/smoke/log1p_test.cpp
    M libc/test/src/math/smoke/log1pf_test.cpp
    M libc/test/src/math/smoke/log2_test.cpp
    M libc/test/src/math/smoke/log2f_test.cpp
    M libc/test/src/math/smoke/log_test.cpp
    M libc/test/src/math/smoke/logf_test.cpp
    M libc/test/src/math/smoke/nanf128_test.cpp
    M libc/test/src/math/smoke/powf_test.cpp
    A libc/test/src/math/smoke/roundeven_test.cpp
    A libc/test/src/math/smoke/roundevenf128_test.cpp
    A libc/test/src/math/smoke/roundevenf_test.cpp
    A libc/test/src/math/smoke/roundevenl_test.cpp
    M libc/test/src/math/smoke/sincosf_test.cpp
    M libc/test/src/math/smoke/sinf_test.cpp
    M libc/test/src/math/smoke/sinhf_test.cpp
    M libc/test/src/math/smoke/tanf_test.cpp
    M libc/test/src/math/smoke/tanhf_test.cpp
    M libc/test/src/math/tan_test.cpp
    M libc/test/src/math/tanf_test.cpp
    M libc/test/src/math/tanhf_test.cpp
    M libc/test/src/stdio/CMakeLists.txt
    M libc/test/src/stdio/ftell_test.cpp
    M libc/test/src/stdio/printf_core/parser_test.cpp
    M libc/test/src/stdio/sprintf_test.cpp
    M libc/test/src/stdlib/strtold_test.cpp
    M libc/test/src/sys/epoll/linux/CMakeLists.txt
    A libc/test/src/sys/epoll/linux/epoll_create1_test.cpp
    A libc/test/src/sys/epoll/linux/epoll_create_test.cpp
    A libc/test/src/sys/epoll/linux/epoll_ctl_test.cpp
    M libc/test/src/sys/epoll/linux/epoll_pwait2_test.cpp
    M libc/test/src/sys/epoll/linux/epoll_pwait_test.cpp
    M libc/test/src/sys/epoll/linux/epoll_wait_test.cpp
    M libc/test/src/sys/random/linux/CMakeLists.txt
    M libc/test/src/unistd/CMakeLists.txt
    A libc/test/src/unistd/_exit_test.cpp
    A libc/test/src/unistd/pipe_test.cpp
    M libc/test/utils/FPUtil/CMakeLists.txt
    M libc/test/utils/FPUtil/x86_long_double_test.cpp
    M libc/utils/HdrGen/Generator.cpp
    M libc/utils/MPFRWrapper/CMakeLists.txt
    M libc/utils/MPFRWrapper/MPFRUtils.cpp
    M libc/utils/MPFRWrapper/MPFRUtils.h
    A libc/utils/docgen/ctype.json
    A libc/utils/docgen/docgen.py
    A libc/utils/docgen/fenv.json
    A libc/utils/docgen/signal.json
    A libc/utils/docgen/stdbit.json
    M libc/utils/gpu/loader/Loader.h
    M libc/utils/gpu/loader/amdgpu/Loader.cpp
    M libc/utils/gpu/loader/nvptx/Loader.cpp
    M libc/utils/gpu/server/CMakeLists.txt
    M libc/utils/gpu/server/llvmlibc_rpc_server.h
    M libc/utils/gpu/server/rpc_server.cpp
    M libclc/CMakeLists.txt
    R libclc/cmake/CMakeCLCCompiler.cmake.in
    R libclc/cmake/CMakeCLCInformation.cmake
    R libclc/cmake/CMakeDetermineCLCCompiler.cmake
    R libclc/cmake/CMakeDetermineLLAsmCompiler.cmake
    R libclc/cmake/CMakeLLAsmCompiler.cmake.in
    R libclc/cmake/CMakeLLAsmInformation.cmake
    R libclc/cmake/CMakeTestCLCCompiler.cmake
    R libclc/cmake/CMakeTestLLAsmCompiler.cmake
    A libclc/cmake/modules/AddLibclc.cmake
    M libclc/generic/lib/SOURCES
    M libcxx/.clang-format
    M libcxx/CMakeLists.txt
    M libcxx/benchmarks/CMakeLists.txt
    A libcxx/benchmarks/algorithms/minmax.bench.cpp
    M libcxx/benchmarks/algorithms/mismatch.bench.cpp
    A libcxx/benchmarks/shared_mutex_vs_mutex.bench.cpp
    M libcxx/docs/BuildingLibcxx.rst
    A libcxx/docs/DesignDocs/NodiscardPolicy.rst
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/docs/Status/Cxx20.rst
    M libcxx/docs/Status/Cxx20Issues.csv
    M libcxx/docs/Status/Cxx20Papers.csv
    M libcxx/docs/Status/Cxx23.rst
    M libcxx/docs/Status/Cxx23Issues.csv
    M libcxx/docs/Status/Cxx23Papers.csv
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/docs/Status/FormatIssues.csv
    M libcxx/docs/Status/FormatPaper.csv
    M libcxx/docs/Status/SpaceshipPapers.csv
    M libcxx/docs/Status/SpaceshipProjects.csv
    M libcxx/docs/UsingLibcxx.rst
    M libcxx/docs/index.rst
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__algorithm/comp.h
    M libcxx/include/__algorithm/equal.h
    M libcxx/include/__algorithm/mismatch.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backend.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/any_of.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/backend.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/fill.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/find_if.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/for_each.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/libdispatch.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/merge.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/serial.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/stable_sort.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/thread.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/transform.h
    M libcxx/include/__algorithm/pstl_backends/cpu_backends/transform_reduce.h
    M libcxx/include/__algorithm/ranges_contains_subrange.h
    M libcxx/include/__algorithm/ranges_minmax.h
    M libcxx/include/__algorithm/ranges_mismatch.h
    M libcxx/include/__algorithm/simd_utils.h
    M libcxx/include/__algorithm/sort.h
    M libcxx/include/__atomic/atomic.h
    M libcxx/include/__atomic/atomic_flag.h
    M libcxx/include/__availability
    M libcxx/include/__bit/countl.h
    M libcxx/include/__bit/countr.h
    M libcxx/include/__bit/popcount.h
    M libcxx/include/__chrono/formatter.h
    A libcxx/include/__chrono/leap_second.h
    A libcxx/include/__chrono/sys_info.h
    M libcxx/include/__chrono/time_zone.h
    M libcxx/include/__chrono/time_zone_link.h
    M libcxx/include/__chrono/tzdb.h
    M libcxx/include/__chrono/tzdb_list.h
    M libcxx/include/__config
    A libcxx/include/__debug_utils/sanitizers.h
    M libcxx/include/__exception/operations.h
    M libcxx/include/__expected/bad_expected_access.h
    M libcxx/include/__filesystem/copy_options.h
    M libcxx/include/__filesystem/directory_options.h
    M libcxx/include/__filesystem/file_status.h
    M libcxx/include/__filesystem/file_time_type.h
    M libcxx/include/__filesystem/file_type.h
    M libcxx/include/__filesystem/perm_options.h
    M libcxx/include/__filesystem/perms.h
    M libcxx/include/__filesystem/space_info.h
    M libcxx/include/__format/escaped_output_table.h
    M libcxx/include/__format/format_args.h
    M libcxx/include/__format/format_context.h
    M libcxx/include/__format/formatter.h
    M libcxx/include/__format/formatter_bool.h
    M libcxx/include/__format/formatter_char.h
    M libcxx/include/__format/formatter_floating_point.h
    M libcxx/include/__format/formatter_integer.h
    M libcxx/include/__format/formatter_pointer.h
    M libcxx/include/__format/formatter_string.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/__functional/bind_back.h
    M libcxx/include/__functional/function.h
    M libcxx/include/__functional/operations.h
    M libcxx/include/__functional/ranges_operations.h
    M libcxx/include/__fwd/format.h
    M libcxx/include/__fwd/ios.h
    M libcxx/include/__iterator/advance.h
    M libcxx/include/__iterator/counted_iterator.h
    M libcxx/include/__iterator/move_iterator.h
    M libcxx/include/__locale
    M libcxx/include/__mdspan/mdspan.h
    M libcxx/include/__memory/allocator_traits.h
    M libcxx/include/__memory/construct_at.h
    M libcxx/include/__memory/shared_ptr.h
    M libcxx/include/__memory/uses_allocator_construction.h
    M libcxx/include/__memory_resource/polymorphic_allocator.h
    M libcxx/include/__numeric/pstl_transform_reduce.h
    A libcxx/include/__pstl/cpu_algos/cpu_traits.h
    M libcxx/include/__random/seed_seq.h
    M libcxx/include/__ranges/subrange.h
    M libcxx/include/__ranges/zip_view.h
    M libcxx/include/__stop_token/stop_callback.h
    M libcxx/include/__system_error/errc.h
    M libcxx/include/__thread/support/pthread.h
    R libcxx/include/__tuple/pair_like.h
    M libcxx/include/__tuple/tuple_like.h
    A libcxx/include/__tuple/tuple_like_no_subrange.h
    M libcxx/include/__type_traits/copy_cv.h
    A libcxx/include/__type_traits/desugars_to.h
    R libcxx/include/__type_traits/operation_traits.h
    M libcxx/include/__utility/is_pointer_in_range.h
    A libcxx/include/__utility/is_valid_range.h
    M libcxx/include/__utility/pair.h
    A libcxx/include/__utility/private_constructor_tag.h
    M libcxx/include/algorithm
    M libcxx/include/any
    M libcxx/include/barrier
    M libcxx/include/bit
    M libcxx/include/cerrno
    M libcxx/include/charconv
    M libcxx/include/chrono
    M libcxx/include/compare
    M libcxx/include/concepts
    M libcxx/include/coroutine
    M libcxx/include/deque
    M libcxx/include/fstream
    M libcxx/include/functional
    M libcxx/include/future
    M libcxx/include/iosfwd
    M libcxx/include/iterator
    M libcxx/include/latch
    M libcxx/include/libcxx.imp
    M libcxx/include/locale
    M libcxx/include/mdspan
    M libcxx/include/memory
    M libcxx/include/module.modulemap
    M libcxx/include/new
    M libcxx/include/ostream
    M libcxx/include/print
    M libcxx/include/semaphore
    M libcxx/include/shared_mutex
    M libcxx/include/span
    M libcxx/include/stddef.h
    M libcxx/include/streambuf
    M libcxx/include/string
    M libcxx/include/strstream
    M libcxx/include/thread
    M libcxx/include/tuple
    M libcxx/include/typeinfo
    M libcxx/include/variant
    M libcxx/include/vector
    M libcxx/include/version
    M libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/i686-linux-android21.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/powerpc-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/powerpc64-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/x86_64-linux-android21.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/x86_64-unknown-freebsd.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.noexceptions.nonew.abilist
    M libcxx/modules/std/chrono.inc
    M libcxx/modules/std/functional.inc
    M libcxx/modules/std/locale.inc
    M libcxx/modules/std/memory.inc
    M libcxx/modules/std/strstream.inc
    M libcxx/src/CMakeLists.txt
    A libcxx/src/expected.cpp
    M libcxx/src/functional.cpp
    M libcxx/src/include/overridable_function.h
    R libcxx/src/include/tzdb/time_zone_link_private.h
    M libcxx/src/include/tzdb/time_zone_private.h
    M libcxx/src/include/tzdb/types_private.h
    M libcxx/src/include/tzdb/tzdb_list_private.h
    M libcxx/src/locale.cpp
    M libcxx/src/pstl/libdispatch.cpp
    M libcxx/src/random.cpp
    M libcxx/src/time_zone.cpp
    M libcxx/src/tzdb.cpp
    M libcxx/test/libcxx/algorithms/half_positive.pass.cpp
    M libcxx/test/libcxx/algorithms/pstl.libdispatch.chunk_partitions.pass.cpp
    M libcxx/test/libcxx/atomics/diagnose_invalid_memory_order.verify.cpp
    M libcxx/test/libcxx/containers/sequences/vector/asan.pass.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_compare_exchange_strong.depr_in_cxx20..verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_compare_exchange_strong_explicit.depr_in_cxx20.verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_compare_exchange_weak.depr_in_cxx20..verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_compare_exchange_weak_explicit.depr_in_cxx20..verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_exchange.depr_in_cxx20..verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_exchange_explicit.verify.depr_in_cxx20..cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_is_lock_free.depr_in_cxx20..verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_load.depr_in_cxx20..verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_load_explicit.depr_in_cxx20..verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_store.depr_in_cxx20..verify.cpp
    A libcxx/test/libcxx/depr/depr.util.smartptr.shared.atomic/atomic_store_explicit.depr_in_cxx20..verify.cpp
    R libcxx/test/libcxx/depr/enable_removed_cpp17_features.compile.pass.cpp
    R libcxx/test/libcxx/depr/enable_removed_cpp17_features.deprecated.verify.cpp
    R libcxx/test/libcxx/depr/enable_removed_cpp20_features.deprecated.verify.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
    M libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp
    M libcxx/test/libcxx/input.output/file.streams/fstreams/fstream.cons/wchar_pointer.pass.cpp
    M libcxx/test/libcxx/input.output/file.streams/fstreams/fstream.members/open_wchar_pointer.pass.cpp
    M libcxx/test/libcxx/input.output/file.streams/fstreams/ofstream.cons/wchar_pointer.pass.cpp
    M libcxx/test/libcxx/input.output/file.streams/fstreams/ofstream.members/open_wchar_pointer.pass.cpp
    M libcxx/test/libcxx/input.output/filesystems/class.directory_entry/directory_entry.mods/last_write_time.pass.cpp
    M libcxx/test/libcxx/input.output/filesystems/convert_file_time.pass.cpp
    M libcxx/test/libcxx/localization/locales/locale.convenience/conversions/conversions.string/ctor_move.pass.cpp
    M libcxx/test/libcxx/numerics/bit.ops.pass.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.lazy.split/no_unique_address.compile.pass.cpp
    M libcxx/test/libcxx/ranges/range.adaptors/range.split/no_unique_address.compile.pass.cpp
    M libcxx/test/libcxx/ranges/range.factories/range.istream.view/no_unique_address.compile.pass.cpp
    M libcxx/test/libcxx/time/convert_to_tm.pass.cpp
    A libcxx/test/libcxx/time/time.zone/time.zone.db/leap_seconds.pass.cpp
    M libcxx/test/libcxx/time/time.zone/time.zone.db/rules.pass.cpp
    A libcxx/test/libcxx/time/time.zone/time.zone.db/time.zone.db.tzdb/locate_zone.pass.cpp
    M libcxx/test/libcxx/time/time.zone/time.zone.db/zones.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/cxx03.csv
    M libcxx/test/libcxx/transitive_includes/cxx11.csv
    M libcxx/test/libcxx/transitive_includes/cxx14.csv
    M libcxx/test/libcxx/transitive_includes/cxx17.csv
    M libcxx/test/libcxx/transitive_includes/cxx20.csv
    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/libcxx/utilities/is_valid_range.pass.cpp
    M libcxx/test/libcxx/utilities/tuple/__tuple_like.compile.pass.cpp
    A libcxx/test/libcxx/utilities/utility/private_constructor_tag.compile.pass.cpp
    M libcxx/test/std/algorithms/alg.nonmodifying/alg.contains/ranges.contains_subrange.pass.cpp
    M libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/left_folds.pass.cpp
    M libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/requirements.compile.pass.cpp
    M libcxx/test/std/algorithms/alg.nonmodifying/mismatch/mismatch.pass.cpp
    M libcxx/test/std/algorithms/algorithms.results/in_found_result.pass.cpp
    M libcxx/test/std/algorithms/algorithms.results/in_fun_result.pass.cpp
    M libcxx/test/std/algorithms/algorithms.results/in_in_out_result.pass.cpp
    M libcxx/test/std/algorithms/algorithms.results/in_in_result.pass.cpp
    M libcxx/test/std/algorithms/algorithms.results/in_out_out_result.pass.cpp
    M libcxx/test/std/algorithms/algorithms.results/in_out_result.pass.cpp
    M libcxx/test/std/algorithms/algorithms.results/in_value_result.pass.cpp
    M libcxx/test/std/algorithms/algorithms.results/min_max_result.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_strong.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_weak.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_notify_all.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_notify_one.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_wait.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.wait/atomic_wait_explicit.pass.cpp
    M libcxx/test/std/containers/views/mdspan/mdspan/deduction.pass.cpp
    M libcxx/test/std/containers/views/views.span/span.cons/deduct.pass.cpp
    R libcxx/test/std/depr.cerro/cerrno.syn.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/ccp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/ccp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/cp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.cons/cp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.members/rdbuf.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.istrstream.members/str.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/depr.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.istrstream/types.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.cons/cp_size_mode.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.cons/default.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/freeze.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/pcount.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/rdbuf.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.ostrstream.members/str.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/depr.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.ostrstream/types.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.cons/cp_size_mode.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.cons/default.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.dest/rdbuf.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.oper/freeze.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.oper/pcount.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.strstream.oper/str.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/depr.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstream/types.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/ccp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/cp_size_cp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/cscp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/cucp_size.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/custom_alloc.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/default.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/scp_size_scp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.cons/ucp_size_ucp.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/freeze.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/overflow.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/pcount.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/str.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/overflow.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/pbackfail.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/seekoff.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/seekpos.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/setbuf.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.virtuals/underflow.pass.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.verify.cpp
    M libcxx/test/std/depr/depr.str.strstreams/depr.strstreambuf/types.pass.cpp
    M libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/generic_category.pass.cpp
    M libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/fstream.cons/path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ifstream.cons/path.pass.cpp
    M libcxx/test/std/input.output/file.streams/fstreams/ofstream.cons/path.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.formatted.print/locale-specific_form.pass.cpp
    M libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.formatted.print/println.pass.cpp
    M libcxx/test/std/input.output/iostream.format/print.fun/no_file_description.pass.cpp
    A libcxx/test/std/input.output/iostream.format/print.fun/println.blank_line.sh.cpp
    M libcxx/test/std/input.output/iostream.format/print.fun/println.file.pass.cpp
    M libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp
    M libcxx/test/std/iterators/predef.iterators/counted.iterator/increment.pass.cpp
    A libcxx/test/std/iterators/predef.iterators/move.iterators/sized_sentinel.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/filesystem.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.compile.pass.cpp
    A libcxx/test/std/language.support/support.limits/support.limits.general/random.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/variant.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    M libcxx/test/std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/ctor.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/overflow.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/pbackfail.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/rdbuf.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/seekoff.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/state.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/test.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.buffer/underflow.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/converted.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_codecvt.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_codecvt_state.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_copy.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_err_string.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/depr.verify.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/from_bytes.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/state.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/to_bytes.pass.cpp
    M libcxx/test/std/localization/locales/locale.convenience/conversions/conversions.string/types.pass.cpp
    A libcxx/test/std/numerics/rand/rand.util/rand.util.seedseq/generate.mandates.verify.cpp
    M libcxx/test/std/ranges/range.adaptors/range.elements/range.concept.compile.pass.cpp
    M libcxx/test/std/ranges/range.adaptors/range.zip/borrowing.compile.pass.cpp
    M libcxx/test/std/ranges/range.utility/range.subrange/operator.pair_like.pass.cpp
    M libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp
    M libcxx/test/std/thread/thread.barrier/arrive.pass.cpp
    M libcxx/test/std/thread/thread.barrier/arrive_and_drop.pass.cpp
    M libcxx/test/std/thread/thread.barrier/arrive_and_wait.pass.cpp
    M libcxx/test/std/thread/thread.barrier/completion.pass.cpp
    M libcxx/test/std/thread/thread.barrier/ctor.compile.pass.cpp
    M libcxx/test/std/thread/thread.barrier/max.pass.cpp
    M libcxx/test/std/thread/thread.latch/arrive_and_wait.pass.cpp
    M libcxx/test/std/thread/thread.latch/count_down.pass.cpp
    M libcxx/test/std/thread/thread.latch/ctor.pass.cpp
    M libcxx/test/std/thread/thread.latch/max.pass.cpp
    M libcxx/test/std/thread/thread.latch/try_wait.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/acquire.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/binary.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/ctor.compile.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/max.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/release.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/timed.pass.cpp
    M libcxx/test/std/thread/thread.semaphore/try_acquire.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/leap_seconds.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.access/current_zone.pass.cpp
    M libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.access/get_tzdb.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.access/locate_zone.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.tzdb/current_zone.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.tzdb/locate_zone.pass.cpp
    M libcxx/test/std/time/time.zone/time.zone.db/time.zone.db.tzdb/tzdb.members.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.leap/assign.copy.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.leap/cons.copy.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.leap/members/date.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.leap/members/value.pass.cpp
    A libcxx/test/std/time/time.zone/time.zone.leap/nonmembers/comparison.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
    A libcxx/test/std/utilities/expected/expected.bad/base.compile.pass.cpp
    A libcxx/test/std/utilities/expected/expected.bad/void-specialization.pass.cpp
    R libcxx/test/std/utilities/expected/expected.bad/what.noexcept.compile.pass.cpp
    A libcxx/test/std/utilities/expected/expected.bad/what.pass.cpp
    M libcxx/test/std/utilities/format/format.arguments/format.arg/visit.pass.cpp
    M libcxx/test/std/utilities/format/format.arguments/format.arg/visit.return_type.pass.cpp
    M libcxx/test/std/utilities/format/format.arguments/format.arg/visit_format_arg.deprecated.verify.cpp
    A libcxx/test/std/utilities/function.objects/func.bind.partial/bind_back.pass.cpp
    A libcxx/test/std/utilities/function.objects/func.bind.partial/bind_back.verify.cpp
    A libcxx/test/std/utilities/function.objects/func.bind.partial/types.h
    M libcxx/test/std/utilities/function.objects/func.bind_front/bind_front.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_strong.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_strong_explicit.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_weak.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_weak_explicit.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_exchange.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_exchange_explicit.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_is_lock_free.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_load.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_load_explicit.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_store.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_store_explicit.pass.cpp
    M libcxx/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_incomplete.pass.cpp
    M libcxx/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_structured_bindings.pass.cpp
    M libcxx/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_value_sfinae.pass.cpp
    M libcxx/test/std/utilities/variant/variant.visit.member/robust_against_adl.pass.cpp
    M libcxx/test/std/utilities/variant/variant.visit.member/visit.pass.cpp
    M libcxx/test/std/utilities/variant/variant.visit.member/visit_return_type.pass.cpp
    A libcxx/test/support/test_chrono_leap_second.h
    M libcxx/test/support/test_iterators.h
    M libcxx/test/support/test_macros.h
    M libcxx/test/tools/CMakeLists.txt
    M libcxx/test/tools/clang_tidy_checks/CMakeLists.txt
    M libcxx/utils/CMakeLists.txt
    M libcxx/utils/ci/Dockerfile
    M libcxx/utils/ci/buildkite-pipeline.yml
    M libcxx/utils/ci/oss-fuzz.sh
    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
    M libcxx/utils/generate_feature_test_macro_components.py
    A libcxx/utils/generate_indic_conjunct_break_table.py
    M libcxx/utils/generate_iwyu_mapping.py
    M libcxx/utils/libcxx/test/features.py
    M libcxx/utils/libcxx/test/modules.py
    M libcxxabi/src/aix_state_tab_eh.inc
    M libcxxabi/src/private_typeinfo.cpp
    M lld/COFF/Chunks.cpp
    M lld/COFF/Chunks.h
    M lld/COFF/Driver.cpp
    M lld/COFF/ICF.cpp
    M lld/COFF/PDB.cpp
    M lld/COFF/SymbolTable.cpp
    M lld/COFF/Writer.cpp
    M lld/ELF/Arch/AArch64.cpp
    M lld/ELF/Config.h
    M lld/ELF/DWARF.h
    M lld/ELF/Driver.cpp
    M lld/ELF/ICF.cpp
    M lld/ELF/InputFiles.cpp
    M lld/ELF/InputFiles.h
    M lld/ELF/InputSection.cpp
    M lld/ELF/Relocations.cpp
    M lld/ELF/Relocations.h
    M lld/ELF/SyntheticSections.cpp
    M lld/ELF/SyntheticSections.h
    M lld/ELF/Writer.cpp
    M lld/ELF/Writer.h
    M lld/MachO/DriverUtils.cpp
    M lld/MachO/ObjC.cpp
    M lld/MinGW/Driver.cpp
    M lld/docs/ReleaseNotes.rst
    M lld/docs/ld.lld.1
    A lld/test/COFF/arm64x-icf.s
    M lld/test/COFF/autoimport-arm-data.s
    M lld/test/COFF/autoimport-arm64-data.s
    A lld/test/COFF/autoimport-gc.s
    M lld/test/COFF/autoimport-gnu-implib.s
    A lld/test/COFF/autoimport-handler-func.s
    M lld/test/COFF/autoimport-warn.s
    M lld/test/COFF/autoimport-x86.s
    A lld/test/COFF/print-search-paths-arm64.s
    M lld/test/COFF/undefined-symbol-cv.s
    M lld/test/ELF/aarch64-bti-pac-cli-error.s
    A lld/test/ELF/aarch64-feature-pauth.s
    A lld/test/ELF/aarch64-reloc-implicit-addend.test
    A lld/test/ELF/aarch64-reloc-pauth-ro.s
    A lld/test/ELF/aarch64-reloc-pauth.s
    M lld/test/ELF/allow-shlib-undefined.s
    M lld/test/ELF/gnu-ifunc-nonpreemptible.s
    R lld/test/ELF/gnu-ifunc-relative.s
    M lld/test/ELF/linkerscript/symbolreferenced.s
    A lld/test/ELF/loongarch-relax-align-ldr.s
    M lld/test/ELF/loongarch-relax-emit-relocs.s
    M lld/test/ELF/lto/comdat-nodeduplicate.ll
    M lld/test/ELF/pack-dyn-relocs.s
    M lld/test/ELF/shlib-undefined-local.s
    M lld/wasm/Driver.cpp
    M lldb/bindings/interface/SBFrameExtensions.i
    M lldb/bindings/interface/SBMemoryRegionInfoDocstrings.i
    M lldb/bindings/interface/SBProcessDocstrings.i
    M lldb/bindings/interface/SBQueueDocstrings.i
    M lldb/bindings/interface/SBThreadDocstrings.i
    M lldb/cmake/caches/Apple-lldb-Linux.cmake
    M lldb/cmake/caches/Apple-lldb-base.cmake
    M lldb/cmake/caches/Apple-lldb-macOS.cmake
    M lldb/cmake/modules/LLDBFramework.cmake
    M lldb/include/lldb/API/SBDebugger.h
    M lldb/include/lldb/lldb-enumerations.h
    M lldb/include/lldb/lldb-private-enumerations.h
    M lldb/packages/Python/lldbsuite/test/lldbtest.py
    M lldb/source/Breakpoint/BreakpointIDList.cpp
    M lldb/source/DataFormatters/TypeCategoryMap.cpp
    M lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h
    M lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.h
    M lldb/source/Plugins/ExpressionParser/Clang/NameSearchContext.h
    M lldb/source/Plugins/Language/CPlusPlus/CMakeLists.txt
    M lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxx.h
    A lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp
    M lldb/source/Plugins/Process/Utility/AuxVector.h
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
    M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
    M lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp
    M lldb/source/Utility/RegisterValue.cpp
    M lldb/test/API/commands/expression/diagnostics/TestExprDiagnostics.py
    M lldb/test/API/commands/expression/options/TestExprOptions.py
    M lldb/test/API/commands/frame/diagnose/dereference-function-return/TestDiagnoseDereferenceFunctionReturn.py
    M lldb/test/API/functionalities/breakpoint/breakpoint_locations/TestBreakpointLocations.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/chrono/TestDataFormatterLibcxxChrono.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/chrono/main.cpp
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/valarray/TestDataFormatterLibcxxValarray.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/valarray/main.cpp
    M lldb/test/API/functionalities/diagnostic_reporting/TestDiagnosticReporting.py
    M lldb/test/API/functionalities/progress_reporting/TestProgressReporting.py
    M lldb/test/API/functionalities/progress_reporting/clang_modules/TestClangModuleBuildProgress.py
    M lldb/test/API/functionalities/type_find_first/Makefile
    M lldb/test/API/functionalities/type_find_first/TestFindFirstType.py
    M lldb/test/API/functionalities/type_find_first/main.cpp
    A lldb/test/API/functionalities/type_find_first/other.cpp
    M lldb/test/API/lang/objcxx/objc-builtin-types/TestObjCBuiltinTypes.py
    M lldb/test/API/lang/objcxx/objc-builtin-types/main.cpp
    A lldb/test/API/lang/objcxx/objc-from-cpp-frames-without-debuginfo/Makefile
    A lldb/test/API/lang/objcxx/objc-from-cpp-frames-without-debuginfo/TestObjCFromCppFramesWithoutDebugInfo.py
    A lldb/test/API/lang/objcxx/objc-from-cpp-frames-without-debuginfo/main.cpp
    M lldb/test/API/lit.cfg.py
    M lldb/test/API/macosx/rosetta/TestRosetta.py
    M lldb/test/API/python_api/frame/TestFrames.py
    M lldb/test/Shell/lit.cfg.py
    M lldb/test/Shell/lit.site.cfg.py.in
    M lldb/tools/lldb-dap/lldb-dap.cpp
    M lldb/unittests/Host/FileSystemTest.cpp
    M lldb/unittests/UnwindAssembly/CMakeLists.txt
    A lldb/unittests/UnwindAssembly/x86-but-no-x86-target/CMakeLists.txt
    A lldb/unittests/UnwindAssembly/x86-but-no-x86-target/Testx86AssemblyInspectionEngine.cpp
    M lldb/unittests/tools/CMakeLists.txt
    M llvm/CMakeLists.txt
    M llvm/CODE_OWNERS.TXT
    M llvm/cmake/modules/AddLLVM.cmake
    M llvm/docs/Benchmarking.rst
    M llvm/docs/CMake.rst
    M llvm/docs/CommandGuide/llvm-objcopy.rst
    M llvm/docs/GlobalISel/GenericOpcode.rst
    M llvm/docs/LangRef.rst
    M llvm/docs/NewPassManager.rst
    M llvm/docs/RISCVUsage.rst
    M llvm/docs/ReleaseNotes.rst
    M llvm/docs/requirements-hashed.txt
    M llvm/docs/requirements.txt
    M llvm/include/llvm-c/Core.h
    M llvm/include/llvm/ADT/ADL.h
    M llvm/include/llvm/ADT/APInt.h
    M llvm/include/llvm/ADT/FoldingSet.h
    M llvm/include/llvm/ADT/STLExtras.h
    M llvm/include/llvm/ADT/StringMap.h
    M llvm/include/llvm/ADT/iterator_range.h
    M llvm/include/llvm/Analysis/EHUtils.h
    M llvm/include/llvm/Analysis/IndirectCallVisitor.h
    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/TargetTransformInfo.h
    M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
    M llvm/include/llvm/Analysis/TypeMetadataUtils.h
    M llvm/include/llvm/Analysis/ValueTracking.h
    M llvm/include/llvm/Analysis/VecFuncs.def
    M llvm/include/llvm/AsmParser/LLParser.h
    M llvm/include/llvm/AsmParser/LLToken.h
    M llvm/include/llvm/BinaryFormat/Dwarf.h
    M llvm/include/llvm/BinaryFormat/ELF.h
    M llvm/include/llvm/BinaryFormat/ELFRelocs/AArch64.def
    M llvm/include/llvm/CodeGen/AsmPrinter.h
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/include/llvm/CodeGen/DeadMachineInstructionElim.h
    M llvm/include/llvm/CodeGen/FreeMachineFunction.h
    M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
    M llvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h
    M llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
    M llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
    M llvm/include/llvm/CodeGen/GlobalISel/Utils.h
    A llvm/include/llvm/CodeGen/LiveDebugVariables.h
    M llvm/include/llvm/CodeGen/LivePhysRegs.h
    M llvm/include/llvm/CodeGen/MIRPrinter.h
    M llvm/include/llvm/CodeGen/MachineCombinerPattern.h
    M llvm/include/llvm/CodeGen/MachineFunction.h
    M llvm/include/llvm/CodeGen/MachinePassManager.h
    M llvm/include/llvm/CodeGen/RegisterBankInfo.h
    M llvm/include/llvm/CodeGen/SelectionDAG.h
    M llvm/include/llvm/CodeGen/TargetInstrInfo.h
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/include/llvm/CodeGen/TargetSubtargetInfo.h
    M llvm/include/llvm/Config/config.h.cmake
    M llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
    M llvm/include/llvm/ExecutionEngine/Orc/Core.h
    M llvm/include/llvm/Frontend/OpenMP/ClauseT.h
    M llvm/include/llvm/Frontend/OpenMP/OMP.td
    M llvm/include/llvm/IR/AutoUpgrade.h
    M llvm/include/llvm/IR/BasicBlock.h
    M llvm/include/llvm/IR/DebugProgramInstruction.h
    M llvm/include/llvm/IR/Function.h
    M llvm/include/llvm/IR/IRBuilder.h
    M llvm/include/llvm/IR/InstrTypes.h
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
    M llvm/include/llvm/IR/IntrinsicsDirectX.td
    M llvm/include/llvm/IR/IntrinsicsPowerPC.td
    M llvm/include/llvm/IR/IntrinsicsSPIRV.td
    M llvm/include/llvm/IR/Mangler.h
    M llvm/include/llvm/IR/Module.h
    M llvm/include/llvm/IR/ModuleSummaryIndex.h
    M llvm/include/llvm/IR/ModuleSummaryIndexYAML.h
    M llvm/include/llvm/IR/PassManager.h
    M llvm/include/llvm/IR/PatternMatch.h
    M llvm/include/llvm/IR/PrintPasses.h
    M llvm/include/llvm/IR/Verifier.h
    M llvm/include/llvm/InitializePasses.h
    M llvm/include/llvm/LinkAllPasses.h
    M llvm/include/llvm/MC/MCContext.h
    M llvm/include/llvm/ObjCopy/CommonConfig.h
    M llvm/include/llvm/Object/COFF.h
    M llvm/include/llvm/Object/COFFImportFile.h
    M llvm/include/llvm/Object/ELFTypes.h
    M llvm/include/llvm/Object/GOFF.h
    M llvm/include/llvm/Object/GOFFObjectFile.h
    M llvm/include/llvm/Object/WindowsMachineFlag.h
    M llvm/include/llvm/Option/OptParser.td
    M llvm/include/llvm/Option/OptTable.h
    M llvm/include/llvm/Passes/CodeGenPassBuilder.h
    M llvm/include/llvm/Passes/MachinePassRegistry.def
    M llvm/include/llvm/Passes/PassBuilder.h
    M llvm/include/llvm/Passes/StandardInstrumentations.h
    M llvm/include/llvm/ProfileData/InstrProf.h
    M llvm/include/llvm/ProfileData/InstrProfReader.h
    M llvm/include/llvm/ProfileData/InstrProfWriter.h
    M llvm/include/llvm/ProfileData/MemProf.h
    A llvm/include/llvm/ProfileData/MemProfReader.h
    M llvm/include/llvm/ProfileData/RawMemProfReader.h
    M llvm/include/llvm/ProfileData/SampleProf.h
    M llvm/include/llvm/Support/CommandLine.h
    M llvm/include/llvm/Support/Endian.h
    M llvm/include/llvm/Support/FormatAdapters.h
    M llvm/include/llvm/Support/FormatCommon.h
    M llvm/include/llvm/Support/FormatProviders.h
    M llvm/include/llvm/Support/FormatVariadic.h
    M llvm/include/llvm/Support/FormatVariadicDetails.h
    M llvm/include/llvm/Support/OnDiskHashTable.h
    M llvm/include/llvm/Support/ToolOutputFile.h
    M llvm/include/llvm/Support/VirtualFileSystem.h
    M llvm/include/llvm/Support/raw_socket_stream.h
    M llvm/include/llvm/Target/GlobalISel/Combine.td
    M llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
    M llvm/include/llvm/TextAPI/DylibReader.h
    M llvm/include/llvm/TextAPI/InterfaceFile.h
    M llvm/include/llvm/TextAPI/Record.h
    M llvm/include/llvm/TextAPI/Utils.h
    M llvm/include/llvm/Transforms/IPO/SampleProfileProbe.h
    A llvm/include/llvm/Transforms/Instrumentation/LowerAllowCheckPass.h
    R llvm/include/llvm/Transforms/Instrumentation/RemoveTrapsPass.h
    M llvm/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/include/llvm/Transforms/Utils/SCCPSolver.h
    M llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
    M llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h
    M llvm/lib/Analysis/AliasSetTracker.cpp
    M llvm/lib/Analysis/Analysis.cpp
    M llvm/lib/Analysis/BasicAliasAnalysis.cpp
    M llvm/lib/Analysis/CMakeLists.txt
    M llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp
    M llvm/lib/Analysis/InstructionSimplify.cpp
    R llvm/lib/Analysis/Interval.cpp
    R llvm/lib/Analysis/IntervalPartition.cpp
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/lib/Analysis/Lint.cpp
    M llvm/lib/Analysis/Loads.cpp
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp
    M llvm/lib/Analysis/LoopCacheAnalysis.cpp
    M llvm/lib/Analysis/MemorySSA.cpp
    M llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
    M llvm/lib/Analysis/ReplayInlineAdvisor.cpp
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/Analysis/TargetLibraryInfo.cpp
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/Analysis/TypeMetadataUtils.cpp
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/AsmParser/LLLexer.cpp
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp
    M llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
    M llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
    M llvm/lib/CodeGen/AtomicExpandPass.cpp
    M llvm/lib/CodeGen/BranchFolding.cpp
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/lib/CodeGen/ExpandLargeDivRem.cpp
    M llvm/lib/CodeGen/ExpandLargeFpConvert.cpp
    M llvm/lib/CodeGen/GlobalISel/CMakeLists.txt
    M llvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    A llvm/lib/CodeGen/GlobalISel/CombinerHelperVectorOps.cpp
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
    M llvm/lib/CodeGen/GlobalISel/Utils.cpp
    M llvm/lib/CodeGen/IntrinsicLowering.cpp
    M llvm/lib/CodeGen/LiveDebugVariables.cpp
    R llvm/lib/CodeGen/LiveDebugVariables.h
    M llvm/lib/CodeGen/LowerEmuTLS.cpp
    M llvm/lib/CodeGen/MIRParser/MIRParser.cpp
    M llvm/lib/CodeGen/MIRPrinter.cpp
    M llvm/lib/CodeGen/MachineBasicBlock.cpp
    M llvm/lib/CodeGen/MachineCombiner.cpp
    M llvm/lib/CodeGen/MachineDebugify.cpp
    M llvm/lib/CodeGen/MachineModuleInfo.cpp
    M llvm/lib/CodeGen/MachinePipeliner.cpp
    M llvm/lib/CodeGen/MachineScheduler.cpp
    M llvm/lib/CodeGen/MachineVerifier.cpp
    M llvm/lib/CodeGen/RegAllocBasic.cpp
    M llvm/lib/CodeGen/RegAllocGreedy.cpp
    M llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/CodeGen/ShrinkWrap.cpp
    M llvm/lib/CodeGen/TargetInstrInfo.cpp
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
    M llvm/lib/CodeGen/VirtRegMap.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/Frontend/OpenMP/OMPIRBuilder.cpp
    M llvm/lib/IR/AsmWriter.cpp
    M llvm/lib/IR/AutoUpgrade.cpp
    M llvm/lib/IR/BasicBlock.cpp
    M llvm/lib/IR/Core.cpp
    M llvm/lib/IR/DiagnosticInfo.cpp
    M llvm/lib/IR/Function.cpp
    M llvm/lib/IR/IRPrintingPasses.cpp
    M llvm/lib/IR/Instruction.cpp
    M llvm/lib/IR/LegacyPassManager.cpp
    M llvm/lib/IR/Mangler.cpp
    M llvm/lib/IR/ModuleSummaryIndex.cpp
    M llvm/lib/IR/Operator.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/lib/Linker/IRMover.cpp
    M llvm/lib/MC/MCContext.cpp
    M llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp
    M llvm/lib/ObjCopy/ELF/ELFObject.cpp
    M llvm/lib/Object/COFFImportFile.cpp
    M llvm/lib/Object/COFFObjectFile.cpp
    M llvm/lib/Object/GOFFObjectFile.cpp
    M llvm/lib/Object/WindowsResource.cpp
    M llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp
    M llvm/lib/Option/OptTable.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Passes/StandardInstrumentations.cpp
    M llvm/lib/ProfileData/CMakeLists.txt
    M llvm/lib/ProfileData/InstrProf.cpp
    M llvm/lib/ProfileData/InstrProfReader.cpp
    M llvm/lib/ProfileData/InstrProfWriter.cpp
    M llvm/lib/ProfileData/MemProf.cpp
    A llvm/lib/ProfileData/MemProfReader.cpp
    R llvm/lib/ProfileData/RawMemProfReader.cpp
    M llvm/lib/Support/APInt.cpp
    M llvm/lib/Support/CommandLine.cpp
    M llvm/lib/Support/FileCollector.cpp
    M llvm/lib/Support/FormatVariadic.cpp
    M llvm/lib/Support/Parallel.cpp
    M llvm/lib/Support/RISCVISAInfo.cpp
    M llvm/lib/Support/ToolOutputFile.cpp
    M llvm/lib/Support/Unix/Threading.inc
    M llvm/lib/Support/VirtualFileSystem.cpp
    M llvm/lib/Support/Windows/Path.inc
    M llvm/lib/Support/raw_socket_stream.cpp
    M llvm/lib/Target/AArch64/AArch64.h
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/lib/Target/AArch64/AArch64Arm64ECCallLowering.cpp
    M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
    M llvm/lib/Target/AArch64/AArch64Combine.td
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.h
    M llvm/lib/Target/AArch64/AArch64InstrAtomics.td
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.h
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64LoopIdiomTransform.cpp
    M llvm/lib/Target/AArch64/AArch64PerfectShuffle.h
    A llvm/lib/Target/AArch64/AArch64PostCoalescerPass.cpp
    M llvm/lib/Target/AArch64/AArch64RegisterInfo.td
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
    M llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp
    M llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.h
    M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
    M llvm/lib/Target/AArch64/AArch64Subtarget.h
    M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
    M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    M llvm/lib/Target/AArch64/CMakeLists.txt
    M llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
    M llvm/lib/Target/AArch64/SMEInstrFormats.td
    M llvm/lib/Target/AArch64/SVEInstrFormats.td
    M llvm/lib/Target/AArch64/Utils/AArch64SMEAttributes.cpp
    M llvm/lib/Target/AMDGPU/AMDGPU.td
    M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/DSDIRInstructions.td
    M llvm/lib/Target/AMDGPU/DSInstructions.td
    M llvm/lib/Target/AMDGPU/FLATInstructions.td
    M llvm/lib/Target/AMDGPU/GCNCreateVOPD.cpp
    M llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
    M llvm/lib/Target/AMDGPU/GCNSubtarget.h
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.td
    M llvm/lib/Target/AMDGPU/SIInstructions.td
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.td
    M llvm/lib/Target/AMDGPU/SOPInstructions.td
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
    M llvm/lib/Target/AMDGPU/VINTERPInstructions.td
    M llvm/lib/Target/AMDGPU/VOP2Instructions.td
    M llvm/lib/Target/AMDGPU/VOPCInstructions.td
    M llvm/lib/Target/AMDGPU/VOPInstructions.td
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.h
    M llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
    M llvm/lib/Target/ARM/ARMParallelDSP.cpp
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.h
    M llvm/lib/Target/ARM/Thumb1InstrInfo.cpp
    M llvm/lib/Target/ARM/Thumb2InstrInfo.cpp
    M llvm/lib/Target/ARM/Thumb2InstrInfo.h
    M llvm/lib/Target/AVR/AVRInstrInfo.td
    M llvm/lib/Target/BPF/BPFISelLowering.cpp
    M llvm/lib/Target/DirectX/DXIL.td
    M llvm/lib/Target/DirectX/DXILIntrinsicExpansion.cpp
    M llvm/lib/Target/Hexagon/HexagonSubtarget.cpp
    M llvm/lib/Target/Hexagon/HexagonSubtarget.h
    M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
    M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
    M llvm/lib/Target/LoongArch/LoongArchFrameLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchFrameLowering.h
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
    M llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.cpp
    M llvm/lib/Target/LoongArch/LoongArchTargetTransformInfo.h
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
    M llvm/lib/Target/M68k/M68kInstrArithmetic.td
    M llvm/lib/Target/M68k/M68kInstrInfo.td
    M llvm/lib/Target/Mips/Mips32r6InstrInfo.td
    M llvm/lib/Target/Mips/MipsISelLowering.cpp
    M llvm/lib/Target/Mips/MipsRegisterBankInfo.cpp
    M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
    M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
    M llvm/lib/Target/PowerPC/GISel/PPCRegisterBankInfo.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp
    M llvm/lib/Target/PowerPC/PPC.td
    M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
    M llvm/lib/Target/PowerPC/PPCExpandAtomicPseudoInsts.cpp
    M llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
    M llvm/lib/Target/PowerPC/PPCInstrInfo.h
    M llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
    M llvm/lib/Target/PowerPC/PPCSubtarget.cpp
    M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
    M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
    M llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp
    M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
    M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.h
    M llvm/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.cpp
    M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
    M llvm/lib/Target/RISCV/RISCVFeatures.td
    M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInstrFormats.td
    M llvm/lib/Target/RISCV/RISCVInstrGISel.td
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.h
    M llvm/lib/Target/RISCV/RISCVInstrInfo.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoA.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoXSf.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZcmop.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZimop.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZvk.td
    M llvm/lib/Target/RISCV/RISCVOptWInstrs.cpp
    M llvm/lib/Target/RISCV/RISCVProcessors.td
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.h
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.td
    M llvm/lib/Target/RISCV/RISCVSchedRocket.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFiveP400.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFiveP600.td
    M llvm/lib/Target/RISCV/RISCVSchedSyntacoreSCR1.td
    M llvm/lib/Target/RISCV/RISCVSchedXiangShanNanHu.td
    M llvm/lib/Target/RISCV/RISCVSchedule.td
    M llvm/lib/Target/RISCV/RISCVScheduleV.td
    A llvm/lib/Target/RISCV/RISCVScheduleXSf.td
    M llvm/lib/Target/RISCV/RISCVSubtarget.h
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/lib/Target/SPIRV/SPIRV.h
    M llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp
    M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.h
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.h
    M llvm/lib/Target/SPIRV/SPIRVInstrInfo.cpp
    M llvm/lib/Target/SPIRV/SPIRVInstrInfo.td
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    M llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp
    M llvm/lib/Target/SPIRV/SPIRVPreLegalizer.cpp
    M llvm/lib/Target/SPIRV/SPIRVRegisterBankInfo.cpp
    M llvm/lib/Target/SPIRV/SPIRVRegisterBanks.td
    M llvm/lib/Target/SPIRV/SPIRVRegisterInfo.td
    M llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.h
    M llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
    M llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
    M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
    M llvm/lib/Target/SystemZ/SystemZISelLowering.h
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
    M llvm/lib/Target/TargetLoweringObjectFile.cpp
    M llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h
    M llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h
    M llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
    M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
    M llvm/lib/Target/X86/GISel/X86RegisterBankInfo.cpp
    M llvm/lib/Target/X86/GISel/X86RegisterBankInfo.h
    M llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
    M llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
    M llvm/lib/Target/X86/X86FrameLowering.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86ISelLoweringCall.cpp
    M llvm/lib/Target/X86/X86InstrAsmAlias.td
    M llvm/lib/Target/X86/X86InstrCMovSetCC.td
    M llvm/lib/Target/X86/X86InstrCompiler.td
    M llvm/lib/Target/X86/X86InstrControl.td
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86InstrInfo.h
    M llvm/lib/Target/X86/X86InstrSSE.td
    M llvm/lib/Target/X86/X86MCInstLower.cpp
    M llvm/lib/Target/X86/X86SchedBroadwell.td
    M llvm/lib/Target/X86/X86SchedHaswell.td
    M llvm/lib/Target/X86/X86SchedSapphireRapids.td
    M llvm/lib/Target/X86/X86SchedSkylakeClient.td
    M llvm/lib/Target/X86/X86SchedSkylakeServer.td
    M llvm/lib/Target/X86/X86ScheduleZnver3.td
    M llvm/lib/Target/X86/X86SelectionDAGInfo.cpp
    M llvm/lib/Target/X86/X86TargetMachine.cpp
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/lib/Target/X86/X86TargetTransformInfo.h
    M llvm/lib/TextAPI/BinaryReader/CMakeLists.txt
    M llvm/lib/TextAPI/BinaryReader/DylibReader.cpp
    M llvm/lib/TextAPI/InterfaceFile.cpp
    M llvm/lib/TextAPI/TextStubV5.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/lib/Transforms/IPO/MemProfContextDisambiguation.cpp
    M llvm/lib/Transforms/IPO/MergeFunctions.cpp
    M llvm/lib/Transforms/IPO/SCCP.cpp
    M llvm/lib/Transforms/IPO/SampleProfile.cpp
    M llvm/lib/Transforms/IPO/SampleProfileMatcher.cpp
    M llvm/lib/Transforms/IPO/SampleProfileProbe.cpp
    M llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
    M llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/lib/Transforms/Instrumentation/CMakeLists.txt
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp
    M llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
    A llvm/lib/Transforms/Instrumentation/LowerAllowCheckPass.cpp
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
    R llvm/lib/Transforms/Instrumentation/RemoveTrapsPass.cpp
    M llvm/lib/Transforms/Instrumentation/ValueProfilePlugins.inc
    M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
    M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
    M llvm/lib/Transforms/Scalar/GVN.cpp
    M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
    M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
    M llvm/lib/Transforms/Scalar/NewGVN.cpp
    M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
    M llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
    M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
    M llvm/lib/Transforms/Utils/CodeMoverUtils.cpp
    M llvm/lib/Transforms/Utils/Debugify.cpp
    M llvm/lib/Transforms/Utils/FunctionComparator.cpp
    M llvm/lib/Transforms/Utils/Local.cpp
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
    M llvm/lib/Transforms/Utils/SCCPSolver.cpp
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
    M llvm/lib/Transforms/Vectorize/VPlanValue.h
    M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
    M llvm/lib/Transforms/Vectorize/VectorCombine.cpp
    M llvm/lib/WindowsDriver/MSVCPaths.cpp
    M llvm/test/Analysis/AliasSet/intrinsics.ll
    M llvm/test/Analysis/CostModel/AArch64/masked_ldst.ll
    M llvm/test/Analysis/CostModel/AArch64/mem-op-cost-model.ll
    M llvm/test/Analysis/CostModel/AArch64/shuffle-other.ll
    A llvm/test/Analysis/CostModel/AArch64/shuffle-store.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-gather.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-intrinsics.ll
    M llvm/test/Analysis/CostModel/ARM/intrinsic-cost-kinds.ll
    M llvm/test/Analysis/CostModel/RISCV/active_lane_mask.ll
    M llvm/test/Analysis/CostModel/RISCV/cast.ll
    M llvm/test/Analysis/CostModel/RISCV/fixed-vector-gather.ll
    M llvm/test/Analysis/CostModel/RISCV/fixed-vector-scatter.ll
    M llvm/test/Analysis/CostModel/RISCV/int-min-max.ll
    M llvm/test/Analysis/CostModel/RISCV/masked_ldst.ll
    M llvm/test/Analysis/CostModel/RISCV/reduce-max.ll
    M llvm/test/Analysis/CostModel/RISCV/reduce-min.ll
    M llvm/test/Analysis/CostModel/RISCV/reduce-scalable-fp.ll
    M llvm/test/Analysis/CostModel/RISCV/reduce-scalable-int.ll
    M llvm/test/Analysis/CostModel/RISCV/rvv-cmp.ll
    M llvm/test/Analysis/CostModel/RISCV/rvv-insertelement.ll
    M llvm/test/Analysis/CostModel/RISCV/rvv-intrinsics.ll
    M llvm/test/Analysis/CostModel/RISCV/rvv-select.ll
    M llvm/test/Analysis/CostModel/RISCV/shuffle-broadcast.ll
    M llvm/test/Analysis/CostModel/RISCV/stepvector.ll
    M llvm/test/Analysis/CostModel/SystemZ/reduce-add.ll
    M llvm/test/Analysis/CostModel/X86/cast.ll
    M llvm/test/Analysis/CostModel/X86/extend.ll
    M llvm/test/Analysis/CostModel/X86/intrinsic-cost-kinds.ll
    A llvm/test/Analysis/CostModel/X86/masked-intrinsic-codesize.ll
    M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost-inseltpoison.ll
    M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll
    A llvm/test/Analysis/CostModel/X86/masked-intrinsic-latency.ll
    A llvm/test/Analysis/CostModel/X86/masked-intrinsic-sizelatency.ll
    M llvm/test/Analysis/CostModel/free-intrinsics-datalayout.ll
    M llvm/test/Analysis/CostModel/free-intrinsics-no_info.ll
    A llvm/test/Analysis/LoopAccessAnalysis/non-constant-strides-backward.ll
    A llvm/test/Analysis/LoopAccessAnalysis/non-constant-strides-forward.ll
    A llvm/test/Analysis/LoopAccessAnalysis/positive-dependence-distance-different-access-sizes.ll
    A llvm/test/Analysis/MemorySSA/allow-check.ll
    A llvm/test/Analysis/ScalarEvolution/pr87798.ll
    A llvm/test/Analysis/ScalarEvolution/range-attribute.ll
    M llvm/test/Assembler/atomic.ll
    M llvm/test/Assembler/flags.ll
    A llvm/test/Assembler/invalid-atomicrmw-scalable.ll
    A llvm/test/Assembler/invalid-atomicrmw-xchg-fp-vector.ll
    M llvm/test/Assembler/thinlto-memprof-summary.ll
    M llvm/test/Assembler/thinlto-multiple-summaries-for-guid.ll
    M llvm/test/Assembler/thinlto-summary-visibility.ll
    M llvm/test/Assembler/thinlto-summary.ll
    M llvm/test/Assembler/thinlto-vtable-summary.ll
    M llvm/test/Bindings/llvm-c/atomics.ll
    M llvm/test/Bitcode/attributes.ll
    A llvm/test/Bitcode/dbg-label-record-bc.ll
    M llvm/test/Bitcode/dbg-record-roundtrip.ll
    M llvm/test/Bitcode/flags.ll
    M llvm/test/Bitcode/thinlto-alias.ll
    A llvm/test/Bitcode/thinlto-func-summary-vtableref-pgo.ll
    M llvm/test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll
    M llvm/test/Bitcode/thinlto-function-summary-callgraph-relbf.ll
    M llvm/test/Bitcode/thinlto-function-summary-refgraph.ll
    M llvm/test/Bitcode/thinlto-index-disassembled-by-llvm-dis.ll
    M llvm/test/Bitcode/thinlto-type-tests.ll
    M llvm/test/Bitcode/thinlto-type-vcalls.ll
    A llvm/test/Bitcode/upgrade-implicit-section-name.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-load-rcpc_immo.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-pcsections.ll
    A llvm/test/CodeGen/AArch64/GlobalISel/atomic-anyextending-load-crash.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/call-translator-tail-call-sret.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-build-vector.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/combine-commute-const-infinite-loop.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-commute-fp-const-lhs.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/combine-commute-int-const-lhs.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-const-fold-barrier-rhs.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-extract-vec-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-icmp-to-lhs-known-bits.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-insert-vec-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/combine-udiv.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/constant-dbg-loc.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-store-metadata.ll
    A llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-vscale.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-cmp.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-cmpxchg-128.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-cmpxchg-with-success.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-extract-vector-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-insert-vector-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-phi.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/load-addressing-modes.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-lowering-shuffle-splat.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/prelegalizer-combiner-icmp-to-true-false-known-bits.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/prelegalizer-combiner-select-to-fminmax.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/regbank-inlineasm.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/regbank-insert-vector-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/select-insert-vector-elt.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/select-to-fmin-fmax.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/select.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/vastart.ll
    M llvm/test/CodeGen/AArch64/O3-pipeline.ll
    M llvm/test/CodeGen/AArch64/aarch64-bit-gen.ll
    M llvm/test/CodeGen/AArch64/aarch64-fold-lslfast.ll
    M llvm/test/CodeGen/AArch64/aarch64-known-bits-hadd.ll
    M llvm/test/CodeGen/AArch64/aarch64-minmaxv.ll
    M llvm/test/CodeGen/AArch64/aarch64-split-and-bitmask-immediate.ll
    M llvm/test/CodeGen/AArch64/abd-combine.ll
    A llvm/test/CodeGen/AArch64/allow-check.ll
    M llvm/test/CodeGen/AArch64/arm64-abi_align.ll
    M llvm/test/CodeGen/AArch64/arm64-addr-mode-folding.ll
    M llvm/test/CodeGen/AArch64/arm64-neon-aba-abd.ll
    M llvm/test/CodeGen/AArch64/arm64-neon-copy.ll
    M llvm/test/CodeGen/AArch64/arm64-platform-reg.ll
    M llvm/test/CodeGen/AArch64/arm64-vector-ldst.ll
    A llvm/test/CodeGen/AArch64/atomicrmw-fadd-fp-vector.ll
    M llvm/test/CodeGen/AArch64/avoid-free-ext-promotion.ll
    M llvm/test/CodeGen/AArch64/cheap-as-a-move.ll
    R llvm/test/CodeGen/AArch64/clang-section-macho.ll
    M llvm/test/CodeGen/AArch64/complex-deinterleaving-add-mull-scalable-fast.ll
    M llvm/test/CodeGen/AArch64/dllexport.ll
    M llvm/test/CodeGen/AArch64/elf-globals-static.ll
    M llvm/test/CodeGen/AArch64/emit_fneg_with_non_register_operand.mir
    M llvm/test/CodeGen/AArch64/extract-bits.ll
    M llvm/test/CodeGen/AArch64/extract-vector-elt.ll
    M llvm/test/CodeGen/AArch64/extractvector-oob-load.mir
    M llvm/test/CodeGen/AArch64/fp-intrinsics.ll
    M llvm/test/CodeGen/AArch64/func-sanitizer.ll
    M llvm/test/CodeGen/AArch64/hadd-combine.ll
    M llvm/test/CodeGen/AArch64/insertextract.ll
    M llvm/test/CodeGen/AArch64/llvm-ir-to-intrinsic.ll
    M llvm/test/CodeGen/AArch64/lrint-conv-fp16.ll
    M llvm/test/CodeGen/AArch64/lrint-conv.ll
    M llvm/test/CodeGen/AArch64/machine-licm-hoist-load.ll
    M llvm/test/CodeGen/AArch64/misched-bundle.mir
    A llvm/test/CodeGen/AArch64/note-gnu-property-elf-pauthabi.ll
    M llvm/test/CodeGen/AArch64/peephole-insvigpr.mir
    M llvm/test/CodeGen/AArch64/sadd_sat.ll
    M llvm/test/CodeGen/AArch64/sadd_sat_vec.ll
    M llvm/test/CodeGen/AArch64/sink-and-fold.ll
    M llvm/test/CodeGen/AArch64/sme-avoid-coalescing-locally-streaming.ll
    M llvm/test/CodeGen/AArch64/sme-call-streaming-compatible-to-normal-fn-wihout-sme-attr.ll
    M llvm/test/CodeGen/AArch64/sme-disable-gisel-fisel.ll
    M llvm/test/CodeGen/AArch64/sme-pstate-sm-changing-call-disable-coalescing.ll
    M llvm/test/CodeGen/AArch64/sme-streaming-body-streaming-compatible-interface.ll
    M llvm/test/CodeGen/AArch64/sme-streaming-body.ll
    M llvm/test/CodeGen/AArch64/sme-streaming-compatible-interface.ll
    M llvm/test/CodeGen/AArch64/sme-streaming-interface.ll
    M llvm/test/CodeGen/AArch64/sme-streaming-mode-changing-call-disable-stackslot-scavenging.ll
    A llvm/test/CodeGen/AArch64/sms-regpress.mir
    M llvm/test/CodeGen/AArch64/spillfill-sve.mir
    M llvm/test/CodeGen/AArch64/ssub_sat.ll
    M llvm/test/CodeGen/AArch64/ssub_sat_vec.ll
    M llvm/test/CodeGen/AArch64/stackmap.ll
    A llvm/test/CodeGen/AArch64/streaming-compatible-memory-ops.ll
    M llvm/test/CodeGen/AArch64/strictfp_f16_abi_promote.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-build-vector.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-fp-arith.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-fp-fma.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-fp-minmax.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-int-arith.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-int-minmax.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-int-mulh.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-int-rem.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-int-shifts.ll
    M llvm/test/CodeGen/AArch64/sve-fpext-load.ll
    M llvm/test/CodeGen/AArch64/sve-fptosi-sat.ll
    M llvm/test/CodeGen/AArch64/sve-fptoui-sat.ll
    M llvm/test/CodeGen/AArch64/sve-gather-scatter-addr-opts.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-imm.ll
    M llvm/test/CodeGen/AArch64/sve-masked-gather-legalize.ll
    A llvm/test/CodeGen/AArch64/sve-nontemporal-masked-ldst.ll
    M llvm/test/CodeGen/AArch64/sve-smulo-sdnode.ll
    M llvm/test/CodeGen/AArch64/sve-split-fcvt.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-extend-trunc.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-div.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-rem.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-to-fp.ll
    M llvm/test/CodeGen/AArch64/sve-umulo-sdnode.ll
    M llvm/test/CodeGen/AArch64/sve-vecreduce-dot.ll
    A llvm/test/CodeGen/AArch64/sve2-bsl.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-while.ll
    M llvm/test/CodeGen/AArch64/sve2-xar.ll
    M llvm/test/CodeGen/AArch64/tagged-globals-pic.ll
    M llvm/test/CodeGen/AArch64/uadd_sat_vec.ll
    M llvm/test/CodeGen/AArch64/usub_sat_vec.ll
    M llvm/test/CodeGen/AArch64/vector-lrint.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-extract-vector-load.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fcanonicalize.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergent-control-flow.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-non-integral-address-spaces-vectors.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-atomic-cmpxchg-with-success.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extract-vector-elt.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extractelement-crash.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-insert-vector-elt.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-saddo.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-saddsat.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ssubo.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ssubsat.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.interp.inreg.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.is.private.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.is.shared.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sbfe.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/postlegalizercombiner-and.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i32.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i64.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/smed3.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/umed3.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/urem.i64.ll
    A llvm/test/CodeGen/AMDGPU/allow-check.ll
    M llvm/test/CodeGen/AMDGPU/amdgpu-codegenprepare-fdiv.ll
    M llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
    M llvm/test/CodeGen/AMDGPU/atomicrmw-expand.ll
    M llvm/test/CodeGen/AMDGPU/bf16.ll
    M llvm/test/CodeGen/AMDGPU/build_vector.ll
    M llvm/test/CodeGen/AMDGPU/cgp-addressing-modes-gfx908.ll
    M llvm/test/CodeGen/AMDGPU/convergence-tokens.ll
    M llvm/test/CodeGen/AMDGPU/div_i128.ll
    M llvm/test/CodeGen/AMDGPU/div_v2i128.ll
    M llvm/test/CodeGen/AMDGPU/dpp_combine_gfx11.mir
    M llvm/test/CodeGen/AMDGPU/extract-subvector-16bit.ll
    M llvm/test/CodeGen/AMDGPU/fold-fabs.ll
    M llvm/test/CodeGen/AMDGPU/fptoi.i128.ll
    M llvm/test/CodeGen/AMDGPU/function-args.ll
    M llvm/test/CodeGen/AMDGPU/function-returns.ll
    M llvm/test/CodeGen/AMDGPU/gfx-callable-return-types.ll
    M llvm/test/CodeGen/AMDGPU/global_atomics_i32_system.ll
    A llvm/test/CodeGen/AMDGPU/half-alloca-promotion.ll
    A llvm/test/CodeGen/AMDGPU/insert_waitcnt_for_precise_memory.ll

  Log Message:
  -----------
  Rebase

Created using spr 1.3.5


Compare: https://github.com/llvm/llvm-project/compare/bc6b50256747...83fb37c2e863

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