[all-commits] [llvm/llvm-project] ad4cd2: [libcxx] Use debug() instead of note() for substit...

Julian Brown via All-commits all-commits at lists.llvm.org
Mon Apr 27 12:13:59 PDT 2026


  Branch: refs/heads/users/jtb20/spr/main.openmp-add-replayable-clause-for-taskgraph-support
  Home:   https://github.com/llvm/llvm-project
  Commit: ad4cd22cebf51e9bb33ba214659b8762a27cb041
      https://github.com/llvm/llvm-project/commit/ad4cd22cebf51e9bb33ba214659b8762a27cb041
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M libcxx/utils/libcxx/test/config.py

  Log Message:
  -----------
  [libcxx] Use debug() instead of note() for substitutions (#193667)

This reduces the noise in the lit output when running tests like this:

```
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{cxx} substitution: 'bin/clang++'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{flags} substitution: ' --target=x86_64-unknown-linux-gnu'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{compile_flags} substitution: '-nostdinc++ -I %{include} -D_LIBUNWIND_HAVE_GETAUXVAL -funwind-tables -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wshift-negative-value -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Wno-nullability-completeness -flax-vector-conversions=none -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -Wuser-defined-warnings'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{link_flags} substitution: '-L %{lib} -Wl,-rpath,%{lib} -lunwind -Wl,--export-dynamic -ldl -latomic'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{benchmark_flags} substitution: ''
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) Using %{exec} substitution: '%{executor} --execdir %{temp} -- '
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libunwind-shared.cfg.in) All available features: add-latomic-workaround, buildhost=linux, c++26, can-create-symlinks, character-conversion-warnings, clang, clang-23, clang-23.0, clang-23.0.0, diagnose-if-support, enable-benchmarks=run, gcc-style-warnings, has-fblocks, has-fconstexpr-steps, has-filecheck, has-unix-headers, host-has-gdb-with-python, large_tests, libcpp-has-no-experimental-hardening-observe-semantic, libcpp-has-no-experimental-optional-iterator, libcpp-has-no-experimental-syncstream, libcpp-has-no-experimental-tzdb, libcpp-has-no-incomplete-pstl, linux, locale.cs_CZ.ISO8859-2, locale.en_US.UTF-8, locale.fr_CA.ISO8859-1, locale.fr_FR.UTF-8, locale.ja_JP.UTF-8, locale.ru_RU.UTF-8, locale.zh_CN.UTF-8, long_tests, objcopy-available, objective-c++, optimization=none, std-at-least-c++03, std-at-least-c++11, std-at-least-c++14, std-at-least-c++17, std-at-least-c++20, std-at-least-c++23, std-at-least-c++26, stdlib=libc++, stdlib=llvm-libc++, target=x86_64-unknown-linux-gnu, verify-support, win32-broken-utf8-wchar-ctype
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{cxx} substitution: 'bin/clang++'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{flags} substitution: '-pthread --target=x86_64-unknown-linux-gnu'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{compile_flags} substitution: '-nostdinc++ -I %{target-include-dir} -I %{include-dir} -I %{libcxx-dir}/test/support -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wshift-negative-value -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Wno-nullability-completeness -flax-vector-conversions=none -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_ENABLE_EXPERIMENTAL -Wuser-defined-warnings'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{link_flags} substitution: '-lc++experimental -nostdlib++ -L %{lib-dir} -Wl,-rpath,%{lib-dir} -lc++ -latomic'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{benchmark_flags} substitution: '-I runtimes/runtimes-bins/libcxx/test/benchmarks/google-benchmark/include -L runtimes/runtimes-bins/libcxx/test/benchmarks/google-benchmark/lib -L runtimes/runtimes-bins/libcxx/test/benchmarks/google-benchmark/lib64 -l benchmark'
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) Using %{exec} substitution: '%{executor} --execdir %{temp} -- '
llvm-lit: llvm-project/libcxx/utils/libcxx/test/config.py:24: note: (llvm-libc++-shared.cfg.in) All available features: add-latomic-workaround, buildhost=linux, c++26, c++experimental, can-create-symlinks, character-conversion-warnings, clang, clang-23, clang-23.0, clang-23.0.0, diagnose-if-support, enable-benchmarks=no, gcc-style-warnings, has-1024-bit-atomics, has-64-bit-atomics, has-fblocks, has-fconstexpr-steps, has-filecheck, has-unix-headers, host-has-gdb-with-python, large_tests, libcpp-abi-version=1, libcpp-hardening-mode=extensive, libcpp-has-no-availability-markup, libcpp-has-thread-api-pthread, linux, locale.cs_CZ.ISO8859-2, locale.en_US.UTF-8, locale.fr_CA.ISO8859-1, locale.fr_FR.UTF-8, locale.ja_JP.UTF-8, locale.ru_RU.UTF-8, locale.zh_CN.UTF-8, objective-c++, optimization=none, std-at
```

Note: "All available features" is still preserved.

Can be re-enabled runtime with LIT_OPTS=-debug


  Commit: 0b255fe83f17b96936474d37f14c955513074b70
      https://github.com/llvm/llvm-project/commit/0b255fe83f17b96936474d37f14c955513074b70
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M mlir/include/mlir/IR/DialectRegistry.h
    M mlir/include/mlir/Transforms/Passes.td
    M mlir/lib/Dialect/Linalg/Transforms/ShardingInterfaceImpl.cpp
    M mlir/lib/IR/Dialect.cpp
    M mlir/lib/IR/MLIRContext.cpp
    M mlir/lib/Pass/Pass.cpp
    M mlir/lib/Tools/mlir-opt/MlirOptMain.cpp
    M mlir/lib/Transforms/Canonicalizer.cpp
    A mlir/test/Transforms/canonicalize-filter-dialects.mlir

  Log Message:
  -----------
  [mlir][canonicalize] Add filter-dialects option (#193041)

Add a new `filter-dialects` list option to the canonicalize pass. When
provided, only canonicalization patterns from the listed dialects are
collected, and the named dialects are force-loaded via
getDependentDialects.

Loading flow: the Canonicalizer's getDependentDialects override calls
`registry.addDialectToPreload(name)` for each filter-dialect name, which
records the name in a new `dialectsToPreload` list on DialectRegistry.
The PassManager's pipeline-init then calls
`dependentDialects.preloadSelectDialects(ctx, emitError)`, which loads
each preload entry via `context->getOrLoadDialect(name)` — the real
allocator is resolved from the context's own registry (registered by
the tool) and the dialect is loaded before multi-threaded execution
begins. If a requested dialect has no registration in the context, a
diagnostic `"can't load dialect '<name>': missing registration?"` is
emitted.

DialectRegistry API changes:
- New `addDialectToPreload(StringRef)` method: records a dialect name
  that should be loaded into the MLIRContext but whose allocator lives
  in the context's own registry. The registry itself does not load the
  dialect — it just carries the request.
- New `preloadSelectDialects(MLIRContext *,
function_ref<InFlightDiagnostic()> = {})`
  method: loads every preload-registered dialect into the context,
  returning failure (and optionally emitting a diagnostic) for the
  first name that cannot be resolved.
- `getDialectNames()` is split into two accessors:
  * `getRegisteredDialectNames()` — names of allocator-backed entries
    from the registry map.
  * `getDialectsToPreload()` — preload-only entries added via
    `addDialectToPreload(StringRef)`.


Assisted-by: Claude Code


  Commit: 6d826cb602f87e20727e2bc93527c0baea4b4399
      https://github.com/llvm/llvm-project/commit/6d826cb602f87e20727e2bc93527c0baea4b4399
  Author: Vineet Kumar <173554+vntkmr at users.noreply.github.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M flang/examples/FeatureList/FeatureList.cpp
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/lib/Parser/program-parsers.cpp
    M flang/lib/Parser/unparse.cpp
    M flang/lib/Semantics/expression.cpp
    A flang/test/Parser/conditional-arg.f90
    A flang/test/Semantics/conditional-arg.f90

  Log Message:
  -----------
  [flang] Add parser support for Fortran 2023 conditional arguments (F2023 R1526-R1528) (#191303)

Implement parsing, unparsing, and parse tree nodes for the Fortran 2023
conditional argument syntax (F2023 R1526-R1528). This enables calls of
the form:

  call sub((flag ? a : b))
  call sub((x > 10 ? a : x > 5 ? b : c))
  call sub((flag ? a : .NIL.))

- Add ConditionalArg and ConditionalArgTail parse tree nodes
- Add Nil empty class for .NIL. representation
- Add ConditionalArg as a new alternative in ActualArg
- Add parser rules for conditional-arg, consequent, and chained branches
- Add unparse support for round-trip printing
- Add dump-parse-tree and FeatureList support
- Add parser tests covering simple, multi-branch, .NIL., BOZ, NULL(),
keyword arguments, and module procedure cases


  Commit: ecefc4a2ec2b582481652d7734165166ec8e3acc
      https://github.com/llvm/llvm-project/commit/ecefc4a2ec2b582481652d7734165166ec8e3acc
  Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

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

  Log Message:
  -----------
  [VPlan] Shallow-traverse vector-loop in dropPoisonGen (NFC) (#193635)

A shallow-traversal of the vector loop region is sufficient to operate
on Memory and Interleave recipes.


  Commit: 3baafed3e779afc9c60149cd2528d70b81f3ff29
      https://github.com/llvm/llvm-project/commit/3baafed3e779afc9c60149cd2528d70b81f3ff29
  Author: Kevin Sala Penades <salapenades1 at llnl.gov>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M openmp/docs/design/Runtimes.rst

  Log Message:
  -----------
  [NFC][offload][OpenMP] Fix kernel replay documentation (#193832)


  Commit: 6b31a99ee4f5f91c52610b13cabb9980984afdc3
      https://github.com/llvm/llvm-project/commit/6b31a99ee4f5f91c52610b13cabb9980984afdc3
  Author: Akira Hatanaka <ahatanak at gmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/lib/Driver/ToolChains/Darwin.cpp
    M clang/test/Driver/darwin-objc-selector-stubs.m

  Log Message:
  -----------
  Revert "[Darwin] Remove linker version checks for objc_msgSend selector stubs (#193637)" (#193828)

This reverts commit a6ab955369ae401cec75ced651c52c2348f117ad.

The linker version checks cannot be removed yet. The commit broke builds
that were using old linkers.


  Commit: de82b4790943b2a48d9c974ed3c6c1707c3edeb0
      https://github.com/llvm/llvm-project/commit/de82b4790943b2a48d9c974ed3c6c1707c3edeb0
  Author: Vigneshwar Jayakumar <vigneshwar.jayakumar at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/lib/CodeGen/CGExprAgg.cpp
    M clang/lib/CodeGen/ItaniumCXXABI.cpp
    M clang/lib/CodeGen/MicrosoftCXXABI.cpp
    M clang/lib/CodeGen/TargetInfo.h
    M clang/lib/CodeGen/Targets/AMDGPU.cpp
    M clang/test/CodeGenCXX/no-elide-constructors.cpp
    M clang/test/CodeGenHIP/sret-nontrivial-copyable.hip
    M clang/test/CodeGenHIP/store-addr-space.hip
    M clang/test/OpenMP/amdgcn_sret_ctor.cpp

  Log Message:
  -----------
  [Clang] Fix sret AS for non-trivial-copy returns. (#186275)

classifyReturnType used getAllocaAddrSpace() for sret, which is wrong
on targets like AMDGPU where alloca lives in addrspace(5). For types
with deleted copy/move constructors, there is no way to construct into
a temp and copy out — the sret pointer must point directly to the caller's 
destination in the default address space.

Add a target hook getSRetAddrSpace() so AMDGPU can return LangAS::Default
for non-register-passable types.

Fixes issue #185744


  Commit: 7ed9d965f29ebedaa74ebe720b2d25d0254c8602
      https://github.com/llvm/llvm-project/commit/7ed9d965f29ebedaa74ebe720b2d25d0254c8602
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/test/Transforms/PreISelIntrinsicLowering/AArch64/expand-exp.ll
    M llvm/test/Transforms/PreISelIntrinsicLowering/AArch64/expand-fp-math-binary.ll
    M llvm/test/Transforms/PreISelIntrinsicLowering/AArch64/expand-fp-math.ll
    M llvm/test/Transforms/PreISelIntrinsicLowering/AArch64/expand-log.ll

  Log Message:
  -----------
  [AArch64][PreISelIntrinsicLowering] Adjust tests to include -march=+sve (#193833)

These tests are exercising expansion of scalable vectors. This is
ill-defined without SVE as there aren't such legal vector types. This
mostly doesn't change the output (since the ops being exercised are
Expand in both configurations), but for fcanonicalize we're testing the
wrong result as this _shouldn't_ be (and isn't) expanded when you have
SVE.


  Commit: 8ebc7307fa4adea4f504ecc9e747d841c9c7f42d
      https://github.com/llvm/llvm-project/commit/8ebc7307fa4adea4f504ecc9e747d841c9c7f42d
  Author: Hervé Poussineau <hpoussin at reactos.org>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Object/COFFObjectFile.cpp
    M llvm/lib/Object/WindowsResource.cpp
    M llvm/test/tools/llvm-rc/windres-target.test
    M llvm/tools/llvm-rc/llvm-rc.cpp

  Log Message:
  -----------
  [llvm-rc] Add support for MIPS machine (#193830)


  Commit: 3cd4a795d9fd249a578fb98765f821c2651bae4a
      https://github.com/llvm/llvm-project/commit/3cd4a795d9fd249a578fb98765f821c2651bae4a
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/lib/Basic/OffloadArch.cpp
    M clang/lib/Basic/Targets/SPIR.cpp
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Sema/SemaAMDGPU.cpp

  Log Message:
  -----------
  clang: Avoid hardcoding some offload triple strings (#193811)

This will make it easier to use the subarch field in the future.


  Commit: 281f993aafa692408404d21b40eeb4df19618237
      https://github.com/llvm/llvm-project/commit/281f993aafa692408404d21b40eeb4df19618237
  Author: adams381 <adams at nvidia.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenCall.cpp
    M clang/test/CIR/CodeGen/coro-task.cpp
    M clang/test/CIR/CodeGen/new-delete-deactivation.cpp
    M clang/test/CIR/CodeGen/new-delete.cpp
    M clang/test/CIR/CodeGen/new.cpp
    A clang/test/CIR/CodeGen/nonnull.c
    M clang/test/CIR/CodeGen/paren-list-agg-init.cpp
    M clang/test/CIR/CodeGenBuiltins/builtin-new-delete.cpp
    M clang/test/CIR/CodeGenCXX/new-array-init.cpp

  Log Message:
  -----------
  [CIR] Add nonnull on returns and pointer params (#188281)

Add nonnull to return attributes when the function has
ReturnsNonNullAttr (e.g. operator new), guarded by !NullPointerIsValid.
Add nonnull to pointer parameters with __attribute__((nonnull)), both
per-parameter and function-level forms.

Thread targetDecl into constructFunctionArgumentAttributes and build a
parallel ParmVarDecl array in the zip_equal loop to access
parameter-level attributes without manual index arithmetic.

Restrict->noalias handling has been moved to #191483.


  Commit: 42077db9afb515f6131d43b0243c60009e280052
      https://github.com/llvm/llvm-project/commit/42077db9afb515f6131d43b0243c60009e280052
  Author: Med Ismail Bennani <ismail at bennani.ma>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M lldb/test/API/functionalities/plugins/python_os_plugin/os_plugin_in_dsym/TestOSIndSYM.py

  Log Message:
  -----------
  [lldb/test] Fix TestOSIndSYM for Darwin embedded platforms (#193839)

The test used CreateTarget(None) and relied on the attach to discover
the executable and load the dSYM. On remote platforms this doesn't find
the local dSYM, so the OS plugin never loads. Switch to
CreateTarget(executable) so the dSYM Python module is loaded before
attach.

Also split the test into two methods: test_python_os_plugin uses
spawn+attach which works both locally and on real remote platforms,
while test_python_os_plugin_remote simulates remote debugging by
manually spawning debugserver and is skipped on embedded platforms where
this setup conflicts with lldb-platform.

rdar://175455380

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>


  Commit: b756be64cad6fe566fbfeddc69a2bd0894a9d997
      https://github.com/llvm/llvm-project/commit/b756be64cad6fe566fbfeddc69a2bd0894a9d997
  Author: Zhen Wang <zhenw at nvidia.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M flang/lib/Optimizer/Dialect/CMakeLists.txt
    M flang/lib/Optimizer/Dialect/FIROps.cpp
    A flang/test/Fir/array-coor-canonicalization-cuf.fir

  Log Message:
  -----------
  [flang][cuda] Preserve fir.rebox captured by cuf.kernel in SimplifyArrayCoorOp (#193837)

SimplifyArrayCoorOp folds fir.rebox → fir.array_coor by rewriting the
array_coor to consume the rebox's source box directly. This is unsafe
when the array_coor is inside a cuf.kernel and the rebox is not: in CUF,
a rebox of a device-attributed value (e.g. a dummy with cuf.data_attr =
device) is the op whose lowering copies the descriptor into
GPU-accessible memory. Folding it out skips the copy, so the kernel
dereferences a host-side descriptor on the device, causing
cudaErrorIllegalAddress (or cudaErrorUnknown on H100 under ATS).

The pattern already guards this hazard for OpenACC via
ACC_COMPUTE_AND_DATA_CONSTRUCT_OPS / ACC_DATA_ENTRY_OPS; this change
adds the analogous guard for cuf::KernelOp.


  Commit: 464392e9d3b5c31d22ce4751526ffbfed8f01852
      https://github.com/llvm/llvm-project/commit/464392e9d3b5c31d22ce4751526ffbfed8f01852
  Author: Matthew Nagy <matthew.nagy at sony.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M compiler-rt/lib/tysan/tysan.cpp

  Log Message:
  -----------
  [TySan] add internal interface support (#192413)

Partial reland of https://github.com/llvm/llvm-project/pull/183310
Trying to avoid the parts that blow up mac ci until I can fix that
issue.


  Commit: 8b96c2104e74f90d6431022001cac2dccdbdeed0
      https://github.com/llvm/llvm-project/commit/8b96c2104e74f90d6431022001cac2dccdbdeed0
  Author: nvptm <pmathew at nvidia.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/module/__fortran_builtins.f90
    A flang/test/Lower/Intrinsics/c_devptr_eq_ne.f90
    M openmp/module/CMakeLists.txt

  Log Message:
  -----------
  [flang] Add comparison operators for c_devptr (#192687)


  Commit: 6364bf68058b5cb6951dd2f6e8ca89d89575c6e0
      https://github.com/llvm/llvm-project/commit/6364bf68058b5cb6951dd2f6e8ca89d89575c6e0
  Author: Dave Lee <davelee.com at gmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M lldb/include/lldb/ValueObject/ValueObject.h
    M lldb/source/ValueObject/ValueObject.cpp

  Log Message:
  -----------
  [lldb] Remove unused ValueObject::IsBaseClass(uint32_t &depth) (NFC) (#193849)


  Commit: 28027f8ffee15197b99c4388b5d536fd45bb582b
      https://github.com/llvm/llvm-project/commit/28027f8ffee15197b99c4388b5d536fd45bb582b
  Author: Owen Anderson <resistor at mac.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

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

  Log Message:
  -----------
  [MachineOutliner] Do not allow debug instructions to affect liveness computations. (#192336)

Because DBG_VALUE precedes the actual definition of a physical register,
considering
these during the liveness updating phase of MachineOutliner was causing
every register
definition to also be marked as a use, which would eventually lead to a
verifier error
when a use without a def was detected.

A MIR testcase for this is present at
https://github.com/CHERIoT-Platform/llvm-project/commit/b71f6d67e338e70a1dc23e15a77805da3e3cd015
but it depends on CHERIoT instructions that are not in LLVM upstream at
present. It's also very senstive to small changes to the input, so I
have not been able to reproduce it on an in-tree target. That said, I
believe this change is small enough that its correctness is verifiable
by inspection.


  Commit: dca61067836e1890f7ecce0fa380b800bf20b520
      https://github.com/llvm/llvm-project/commit/dca61067836e1890f7ecce0fa380b800bf20b520
  Author: Charitha Saumya <136391709+charithaintc at users.noreply.github.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUDialect.td
    M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUTypes.td
    M mlir/lib/Conversion/VectorToXeGPU/VectorToXeGPU.cpp
    M mlir/lib/Dialect/XeGPU/IR/XeGPUDialect.cpp
    M mlir/lib/Dialect/XeGPU/IR/XeGPUOps.cpp
    M mlir/test/Conversion/VectorToXeGPU/transfer-read-to-xegpu.mlir
    M mlir/test/Conversion/VectorToXeGPU/transfer-write-to-xegpu.mlir

  Log Message:
  -----------
  [mlir][xegpu] Add support for `vector.transfer_read/write` on SLM buffers (#192757)

Adds lowering support when `vector.transfer_read/write` operate on SLM
buffers. These ops will be lowered to `xegpu.load/store_matrix`


  Commit: 689dc6c58c01613e956f405a79324f88dcb9a3dc
      https://github.com/llvm/llvm-project/commit/689dc6c58c01613e956f405a79324f88dcb9a3dc
  Author: Andy Kaylor <akaylor at nvidia.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenBuilder.cpp
    M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
    M clang/test/CIR/CodeGen/amdgpu-array-addrspace.cpp
    M clang/test/CIR/CodeGen/array-init-loop-exprs.cpp
    M clang/test/CIR/CodeGen/array.cpp
    M clang/test/CIR/CodeGen/binassign.c
    M clang/test/CIR/CodeGen/complex.cpp
    M clang/test/CIR/CodeGen/no-odr-use.cpp
    M clang/test/CIR/CodeGen/pointers.cpp
    M clang/test/CIR/CodeGen/union.c
    M clang/test/CIR/CodeGen/vector-ext-element.cpp
    M clang/test/CIR/CodeGen/vla.c
    M clang/test/CIR/CodeGenBuiltins/builtin-constant-p.c
    M clang/test/CIR/CodeGenOpenACC/combined-copy.c

  Log Message:
  -----------
  [CIR] Handle boolean expression as array indexes (#193814)

We were hitting a CIR verification error in some cases when a boolean
expression was used as an index to an array because the GetElementOp
verifier expected the index operand to be a fundamental integer type. To
fix this, I'm updating the emitArraySubscriptExpr to cast index values
to ptrDiffTy, which more closely matches what classic codegen does in
the corrsponding code.

The improved alignment with the classic codegen implementation caused
some minor changes in generated IR that required some tests to be
updated.

Assisted-by: Cursor / claude-4.7-opus-high


  Commit: 9473873906b611b484952e4ca9462c2d1c338dde
      https://github.com/llvm/llvm-project/commit/9473873906b611b484952e4ca9462c2d1c338dde
  Author: Naveen Seth Hanig <naveen.hanig at outlook.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Driver/ModulesDriver.h
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ModulesDriver.cpp
    A clang/test/Driver/modules-driver-both-modules-types.cpp
    A clang/test/Driver/modules-driver-cxx-modules-only.cpp
    A clang/test/Driver/modules-driver-import-std.cpp
    A clang/test/Driver/modules-driver-incompatible-options.cpp

  Log Message:
  -----------
  Reapply "[clang][modules-driver] Add support for C++ named modules and `import std`" (#193815)

This reverts #193677 and relands #193312.

This adds basic support for explicit C++ named module builds, managed
natively by the Clang driver, including support for use of the Standard
library modules. This follows #187606, which adds the same for Clang
modules.

Current limitations:
- Standard library modules are still compiled to object files instead of
using the provided shared library. (This will be addressed in a
follow-up soon.)
- Caching is not supported yet (but likely to be added during the
upcoming GSoC cycle).
- Importing C++ standard library modules into Clang modules is not
supported (and not expected in the near term).

RFC:

https://discourse.llvm.org/t/rfc-modules-support-simple-c-20-modules-use-from-the-clang-driver-without-a-build-system


  Commit: 3174c94eaf2066a3b565e59a4f9d8d30444d2cd7
      https://github.com/llvm/llvm-project/commit/3174c94eaf2066a3b565e59a4f9d8d30444d2cd7
  Author: Zhen Wang <zhenw at nvidia.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M flang/lib/Optimizer/Dialect/CMakeLists.txt
    M flang/lib/Optimizer/Dialect/FIROps.cpp
    R flang/test/Fir/array-coor-canonicalization-cuf.fir

  Log Message:
  -----------
  Revert "[flang][cuda] Preserve fir.rebox captured by cuf.kernel in SimplifyArrayCoorOp" (#193855)

Reverts llvm/llvm-project#193837


  Commit: 0d1bf3ac8eb10ecf062a938955637f8f809c0380
      https://github.com/llvm/llvm-project/commit/0d1bf3ac8eb10ecf062a938955637f8f809c0380
  Author: Deric C. <cheung.deric at gmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/utils/TableGen/HLSLEmitter.cpp

  Log Message:
  -----------
  [HLSL][NFC] Refactor worklist loop in HLSLEmitter.cpp to use index-based iteration (#193638)

As suggested by @shafik, the worklist loop in HLSLEmitter.cpp would be
more readable as an index-based for-loop as opposed to a range-based
for-loop. This PR changes the range-based for-loop over worklist items
into an index-based for-loop.


  Commit: 0bdcf4ee4dd54f1b1f3bc36518f59dc8068b934f
      https://github.com/llvm/llvm-project/commit/0bdcf4ee4dd54f1b1f3bc36518f59dc8068b934f
  Author: Naveen Seth Hanig <naveen.hanig at outlook.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Driver/ModulesDriver.h
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ModulesDriver.cpp
    R clang/test/Driver/modules-driver-both-modules-types.cpp
    R clang/test/Driver/modules-driver-cxx-modules-only.cpp
    R clang/test/Driver/modules-driver-import-std.cpp
    R clang/test/Driver/modules-driver-incompatible-options.cpp

  Log Message:
  -----------
  Revert "Reapply "[clang][modules-driver] Add support for C++ named modules and `import std`" (#193857)

Reverts llvm/llvm-project#193815 due to a test failure
(`clang/test/Driver/modules-driver-import-std.cpp`) on some systems.


  Commit: 2a74f30cc20e11ef47a96965f3285ee0f991e3f1
      https://github.com/llvm/llvm-project/commit/2a74f30cc20e11ef47a96965f3285ee0f991e3f1
  Author: Andres-Salamanca <andrealebarbaritos at gmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/include/clang/CIR/Dialect/IR/CIROps.td
    M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
    M clang/lib/CIR/CodeGen/CIRGenCoroutine.cpp
    M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
    M clang/lib/CIR/CodeGen/CIRGenFunction.h
    M clang/lib/CIR/CodeGen/CIRGenModule.h
    M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
    M clang/test/CIR/CodeGen/coro-task.cpp
    M clang/test/CIR/IR/await.cir
    A clang/test/CIR/IR/co-return.cir
    A clang/test/CIR/IR/coro-body.cir
    M clang/test/CIR/IR/func.cir
    M clang/test/CIR/IR/invalid-await.cir
    A clang/test/CIR/IR/invalid-co-return.cir
    A clang/test/CIR/IR/invalid-coro-body.cir

  Log Message:
  -----------
  [CIR] Add coroutine cleanup handling and update co_return semantics (#189281)

This PR adds cleanup handling for coroutine frame destruction. The
cleanup is emitted as a conditional that checks the result of the
`coro.free` builtin, which is used to determine whether the coroutine
frame was heap-allocated, if the returned pointer is null, no
destruction is performed. Additionally, this PR changes how co_return is
represented: previously, it was lowered directly into a branch to the
block containing the final suspend logic, but now a new `cir.coro.body`
operation is introduced to represent the user-written coroutine body.
Inside this region, `cir.co_return` operations mark exits from the
coroutine body and represent structured control flow that transfers
execution to the final suspend point. The lowering of this structured
control flow into explicit branches is deferred to a future PR in the
FlattenCFG pass.


  Commit: 6b4cdb036471a493f1e16fa73d4e86e36fd75b55
      https://github.com/llvm/llvm-project/commit/6b4cdb036471a493f1e16fa73d4e86e36fd75b55
  Author: Nico Weber <thakis at chromium.org>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/utils/gn/secondary/lldb/test/BUILD.gn

  Log Message:
  -----------
  Revert "[gn] port 40fcd2517a110 (#193293)" (#193860)

This reverts commit dd5632f51d3f36d08b125193c067a813aac26823.

40fcd2517a110 was reverted in 39865a002e6b51.


  Commit: 4f877e47e69b59ffd4baecb6b68e70c76f428316
      https://github.com/llvm/llvm-project/commit/4f877e47e69b59ffd4baecb6b68e70c76f428316
  Author: Nico Weber <thakis at chromium.org>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

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

  Log Message:
  -----------
  [gn build] Port 2039a51881bb (#193861)


  Commit: 0cd635ca45048a50c22f3e94a3d3ad0a2a54b59a
      https://github.com/llvm/llvm-project/commit/0cd635ca45048a50c22f3e94a3d3ad0a2a54b59a
  Author: Nico Weber <thakis at chromium.org>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

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

  Log Message:
  -----------
  [gn build] Port d64dd5a2afea (#193865)


  Commit: 9b7b83b3499bb34a909c8a58eaeea40eeb02e2fa
      https://github.com/llvm/llvm-project/commit/9b7b83b3499bb34a909c8a58eaeea40eeb02e2fa
  Author: Nico Weber <thakis at chromium.org>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

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

  Log Message:
  -----------
  [gn build] Port d137e6601f1c (#193864)


  Commit: 2611f151c3a493d10d6f9eeffa792014da174120
      https://github.com/llvm/llvm-project/commit/2611f151c3a493d10d6f9eeffa792014da174120
  Author: Nico Weber <thakis at chromium.org>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysisFramework/Analyses/BUILD.gn

  Log Message:
  -----------
  [gn build] Port a4538a3ad902 (#193863)


  Commit: deb238e224b79a898820a355b8be0254c3676b53
      https://github.com/llvm/llvm-project/commit/deb238e224b79a898820a355b8be0254c3676b53
  Author: Nico Weber <thakis at chromium.org>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/unittests/MC/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 3081d52d8242 (#193862)


  Commit: c6b9984435899562ce6eee513d098ea9875d0202
      https://github.com/llvm/llvm-project/commit/c6b9984435899562ce6eee513d098ea9875d0202
  Author: Shafik Yaghmour <shafik.yaghmour at intel.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/include/clang/Sema/Sema.h

  Log Message:
  -----------
  [NFC][Clang][Sema] Apply rule of three to Sema helper classes (#193835)

Static analysis flagged these classes. They declared a destructor but
not copy constructor or copy assignment. Since these classes don't need
them, this change declares them deleted.


  Commit: a95a1c40edbabaee15285323ccbc74e83611314f
      https://github.com/llvm/llvm-project/commit/a95a1c40edbabaee15285323ccbc74e83611314f
  Author: Jim Lin <jim at andestech.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll

  Log Message:
  -----------
  [LazyValueInfo] Support vector types in ICmp condition handling (#192900)

Use m_APInt matcher instead of ConstantInt dyn_cast so splat vector
constants are handled, and relax the integer type check to accept
integer vector types.

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


  Commit: f3192382c33691e4d3cff07ab645aad3343de81b
      https://github.com/llvm/llvm-project/commit/f3192382c33691e4d3cff07ab645aad3343de81b
  Author: Wenju He <wenju.he at intel.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M libclc/cmake/modules/CMakeDetermineCLCCompiler.cmake

  Log Message:
  -----------
  [libclc][CMake] Remove CMAKE_C_COMPILER_ID check (#186717)

When LLVM_TARGETS_TO_BUILD does not contain the host target, runtime
build can not identify a compatible target triple for the host compiler.
CMAKE_C_COMPILER is set to clang, and CMAKE_C_COMPILER_ID is empty
although the compiler is functional.

Remove CMAKE_C_COMPILER_ID check. CMakeTestCLCCompiler.cmake already
provides a real functional guard.

This change ensures valid configurations can proceed, e.g.:
LLVM_TARGETS_TO_BUILD=AMDGPU;
RUNTIMES_amdgcn-amd-amdhsa-llvm_LLVM_ENABLE_RUNTIMES=libclc;
LLVM_RUNTIME_TARGETS="amdgcn-amd-amdhsa-llvm".

Note CMAKE_C_COMPILER_WORKS is always true after `project(Runtimes C CXX
ASM)` in runtimes/CMakeLists.txt.


  Commit: 969247cc47a35ad73155f97f7d66c3f558ea96c5
      https://github.com/llvm/llvm-project/commit/969247cc47a35ad73155f97f7d66c3f558ea96c5
  Author: Wenju He <wenju.he at intel.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M libclc/CMakeLists.txt
    M libclc/test/CMakeLists.txt

  Log Message:
  -----------
  [libclc] Allow testing unresolved symbols on multiple libraries (#193647)

Our downstream generates multiple libraries for a single target. This
change allows testing multiple libraries.


  Commit: 528e673fec477b087bf55da282585a9ed20b809a
      https://github.com/llvm/llvm-project/commit/528e673fec477b087bf55da282585a9ed20b809a
  Author: Vigneshwar Jayakumar <vigneshwar.jayakumar at amd.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/lib/CodeGen/CGCall.cpp
    A clang/test/CodeGenHIP/sret-lifetime-markers.cpp

  Log Message:
  -----------
  [Clang][CodeGen] Fix sret lifetime marker AS mismatch after #186275 (#193850)

After #186275, the sret address space can differ from the alloca address
space (e.g., AS 0 vs AS 5 on AMDGPU). In CGCall.cpp EmitCall(), when a
discarded-value sret temporary is created, SRetPtr is allocated in the
alloca AS and a lifetime.start is emitted. The pointer is then
addrspacecast'd to match the sret AS, but the CallLifetimeEnd cleanup
was using the addrspacecast'd pointer, triggering an assertion in
EmitLifetimeEnd ("Pointer should be in alloca address space").

Saves the original alloca pointer before the addrspacecast and uses it
for the lifetime-end cleanup.

Fixes buildbot failure: hip-third-party-libs-tests


  Commit: 6e2f5e9679cd03a84ab0dcca32ec9e782c83413f
      https://github.com/llvm/llvm-project/commit/6e2f5e9679cd03a84ab0dcca32ec9e782c83413f
  Author: Wenju He <wenju.he at intel.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaType.cpp
    M clang/test/Misc/languageOptsOpenCL.cl
    A clang/test/SemaOpenCL/zero-length-array.cl

  Log Message:
  -----------
  [OpenCL] Diagnose error for zero-length array (#193163)

OpenCL C is based on C99 and C11, which don't support zero-length array.

Update clang/docs/ReleaseNotes.rst for potential breaking change.


  Commit: e3ab3688e1c60f4484e20f84325e82bf12776495
      https://github.com/llvm/llvm-project/commit/e3ab3688e1c60f4484e20f84325e82bf12776495
  Author: Haohai Wen <haohai.wen at intel.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/test/Driver/basic-block-address-map.c
    M llvm/lib/MC/MCObjectFileInfo.cpp
    M llvm/test/CodeGen/X86/basic-block-address-map-function-sections.ll
    M llvm/test/CodeGen/X86/basic-block-address-map.ll

  Log Message:
  -----------
  [X86][COFF] Enable basic-block-address-map emission (#191347)

Enable -fbasic-block-address-map fo X86 COFF.
Add COFF section creation for .llvm_bb_addr_map.


  Commit: 67e1411de83682ef15527499eb5891745c59431b
      https://github.com/llvm/llvm-project/commit/67e1411de83682ef15527499eb5891745c59431b
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/test/Transforms/LoopVectorize/RISCV/iv-select-cmp.ll

  Log Message:
  -----------
  [VPlan] Fold lhs | (headermask && rhs) -> vp.merge rhs, true, lhs, evl (#193511)

This is a combine on mask vectors that can show up with EVL tail
folding.

Split off from #190196


  Commit: 61b0de5f14a3474f0fedfdb228b3dea8eac5d9fb
      https://github.com/llvm/llvm-project/commit/61b0de5f14a3474f0fedfdb228b3dea8eac5d9fb
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

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

  Log Message:
  -----------
  [RISCV] Remove codegen for vp_fneg, vp_fma. NFC (#193214)

Part of the work to remove trivial VP intrinsics from the RISC-V
backend, see
https://discourse.llvm.org/t/rfc-remove-codegen-support-for-trivial-vp-intrinsics-in-the-risc-v-backend/87999

We began expanding these nodes in #190589 since vp_fadd/vp_fmul/vp_fsub
could be combined into them. Now that these intrinsics are expanded too,
the lowering for these is dead and can be removed.


  Commit: 1249cb6aea8893c3d2ba7221697b68b0ef4520e9
      https://github.com/llvm/llvm-project/commit/1249cb6aea8893c3d2ba7221697b68b0ef4520e9
  Author: Katya Romanova <56653669+romanova-ekaterina at users.noreply.github.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    A clang/test/ClangScanDeps/p1689-mf-nested-dir.c
    M clang/tools/clang-scan-deps/ClangScanDeps.cpp

  Log Message:
  -----------
  [clang-scan-deps] Fixes an assertion in clang-scan-deps (#193619)

Please see ticket #191921 for detailed description of the issue and a reproducer.

clang-scan-deps crashes with an assertion failure if a compile_commands.json entry contains a depfile path (-MF) whose parent directory does not exist.

The fix is made so that clang-scan-deps tool create the directory if it doesn't exist and finish execution without failing.


  Commit: af166f419fb94ce87c6ff553ad2042b114fdb057
      https://github.com/llvm/llvm-project/commit/af166f419fb94ce87c6ff553ad2042b114fdb057
  Author: Zhaoxin Yang <yangzhaoxin at loongson.cn>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    A llvm/test/CodeGen/LoongArch/lasx/ir-instruction/fpext.ll
    A llvm/test/CodeGen/LoongArch/lsx/ir-instruction/fpext.ll

  Log Message:
  -----------
  [LoongArch][NFC] Pre-commit tests for vector fpext from vxf32 to vxf64 (#164740)


  Commit: 28d2537af2b618c5ef942f54101832a185acd2f9
      https://github.com/llvm/llvm-project/commit/28d2537af2b618c5ef942f54101832a185acd2f9
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang-tools-extra/clangd/ModulesBuilder.cpp
    M clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp

  Log Message:
  -----------
  [clangd] [C++20] [Modules] Introduce persistent cache for clangd built module file (#193883)

Currently clangd lacks a persistent cache for clangd built module file.

It implies that every time a new clangd process starts, or a user close
all tabs and opening all a new tab. Clangd will build all the module
files required. This is a slow process. Especially, the building happens
in the building thread for the opening tab. That is, if the user only
opens a single tab, clangd needs to build all the module file in a
single thread. This is very slow in practice.

As clangd is basically a wrapper for clang, we can't do nothing to speed
the building process actually and the only thing we can do is to
introduce a better cache mechanism.

So everytime the user opens a new tab, now clangd won't try to build all
the needed module file at first but try to see if these module files are
already built and up-to-date. So clangd can try to avoid a lot of time
to rebuilding the same thing.

For details,

now the built module file will live in

<cache-root>/<module-unit-source-name>-<source-hash>/<command-hash>/<module-name>[-<version>].pcm

Here <cache-root> stands for
<path-to-compilation-database>/.cache/clangd/modules or
<user-home>/.cache/clangd/modules

the <source-hash> in <module-unit-source-name>-<source-hash> means the
hash of the path of the corresponding module unit, as we can have
different a.cppm in different directories in a project.

<command-hash> means the hash of the command. As we can produce
different BMI with different command.

Then <module-name>.pcm means the newest BMI. And
<module-name>-<version>.pcm means a CopyOnRead BMI of <module-name>.pcm.
We did this to ease the concurrency management. As now, we can be sure
<module-name>.pcm won't be used by anyone in clangd itself.

TODO: We didn't implement a GC so that cache size may increase
consistently. We will didi that in following patches.

AI assisted.


  Commit: 70fcb235250bf125f478e4a8f439164dd18ad402
      https://github.com/llvm/llvm-project/commit/70fcb235250bf125f478e4a8f439164dd18ad402
  Author: Med Ismail Bennani <ismail at bennani.ma>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/lldbtest.py

  Log Message:
  -----------
  [lldb/test] Fix TestCompletion on Windows after realpath change (#193878)


  Commit: eef81b7a0a6376aedadb23bab73e2af0ce3b8097
      https://github.com/llvm/llvm-project/commit/eef81b7a0a6376aedadb23bab73e2af0ce3b8097
  Author: Med Ismail Bennani <ismail at bennani.ma>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M lldb/test/API/functionalities/target-new-solib-notifications/TestModuleLoadedNotifys.py

  Log Message:
  -----------
  [lldb/test] Fix TestModuleLoadedNotifys duplicate module check (#193846)


  Commit: dbaa12a89f450d32a889f2c0ceac0b5bf1512245
      https://github.com/llvm/llvm-project/commit/dbaa12a89f450d32a889f2c0ceac0b5bf1512245
  Author: Changpeng Fang <changpeng.fang at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/test/MC/AMDGPU/gfx1250_asm_vop3p.s
    M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vop3p.txt

  Log Message:
  -----------
  [AMDGPU] Add MC tests for scalar operands for packed fp32 instructions (#193866)

To remind that a SGPR is acceptable only if op_sel = op_sel_hi = 0 for that operand.
Note that the default is op_sel = 0 and op_sel_hi = 1.


  Commit: 104ee2aed28df595a90a7869f1af5f369b0b795b
      https://github.com/llvm/llvm-project/commit/104ee2aed28df595a90a7869f1af5f369b0b795b
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp

  Log Message:
  -----------
  [NFC] [clangd] [C++20] [Modules] Add a test for testing transtive change detection (#193888)


  Commit: 5d4b17e963b1dcdfc87df1603f9405f5454addce
      https://github.com/llvm/llvm-project/commit/5d4b17e963b1dcdfc87df1603f9405f5454addce
  Author: Vigneshwar Jayakumar <vigneshwar.jayakumar at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/lib/CodeGen/Targets/SPIR.cpp
    M clang/test/CodeGenCXX/no-elide-constructors.cpp
    M clang/test/CodeGenHIP/sret-lifetime-markers.cpp
    M clang/test/CodeGenHIP/sret-nontrivial-copyable.hip
    M clang/test/CodeGenHIP/store-addr-space.hip

  Log Message:
  -----------
  [Clang][SPIRV] Add getSRetAddrSpace() for SPIRV (#193875)

Override getSRetAddrSpace() so that sret pointers for non-trivially-
copyable types use the generic address space (addrspace 4), matching the
"this" pointer convention on spirv64-amd-amdhsa.


  Commit: aadf3959eb0d0fedc82fb6a31038b05329d13dfa
      https://github.com/llvm/llvm-project/commit/aadf3959eb0d0fedc82fb6a31038b05329d13dfa
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M .github/workflows/libcxx-build-and-test.yaml
    M libcxx/utils/ci/run-buildbot

  Log Message:
  -----------
  [libcxx][Github] Add generic-llvm-libc config to CI (#193822)

Add the generic-llvm-libc config for CI so that we can ensure we do not
regress the config and easily test changes as we do more work.

Only run libcxx/libxxabi tests for now as libunwind fails to build due
to a missing dl_iterate_phdr implementation. It technically passes when
we enable the stub implementation, but we should have a reasonable
implementation before actually enabling.


  Commit: 3041708a17b32273a3fb9ae069f654cc842349fa
      https://github.com/llvm/llvm-project/commit/3041708a17b32273a3fb9ae069f654cc842349fa
  Author: Zeyi Xu <mitchell.xu2 at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp
    M clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp
    M clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp
    M clang-tools-extra/clang-move/tool/ClangMove.cpp
    M clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    A clang-tools-extra/test/clang-change-namespace/argument-parsing-error-no-abort.cpp
    A clang-tools-extra/test/clang-include-fixer/argument-parsing-error-no-abort.cpp
    A clang-tools-extra/test/clang-include-fixer/find-all-symbols/argument-parsing-error-no-abort.cpp
    A clang-tools-extra/test/clang-move/argument-parsing-error-no-abort.cpp
    A clang-tools-extra/test/clang-reorder-fields/argument-parsing-error-no-abort.cpp
    M clang/include/clang/Tooling/CommonOptionsParser.h
    A clang/test/Refactor/argument-parsing-error-no-abort.cpp
    A clang/test/Tooling/argument-parsing-error-no-abort.cpp
    M clang/tools/clang-check/ClangCheck.cpp
    M clang/tools/clang-refactor/ClangRefactor.cpp

  Log Message:
  -----------
  [Tooling][clang-tools-extra] Consume CommonOptionsParser errors in tools (#193675)

Several LibTooling-based tools printed errors returned from
CommonOptionsParser::create() directly. However, printing an
`llvm::Error` does not consume it, so argument parsing failures such as
unknown tool options could abort. This commit fixes the problem.

Closes https://github.com/llvm/llvm-project/issues/183009


  Commit: a7368c3b48f892787590c7010bf1da03c62938ba
      https://github.com/llvm/llvm-project/commit/a7368c3b48f892787590c7010bf1da03c62938ba
  Author: Corentin Jabot <corentinjabot at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/www/cxx_status.html

  Log Message:
  -----------
  [NFC][Clang][docs] Clarify the status of P1949R7 (unicode identifiers) (#193483)

Clang does not check identifiers are NFC-normalized, which the standard
requires.


  Commit: 347f1ac86d54460c797d97ac5afc84358c10d4d7
      https://github.com/llvm/llvm-project/commit/347f1ac86d54460c797d97ac5afc84358c10d4d7
  Author: Princeton Ferro <pferro at nvidia.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
    M mlir/lib/Dialect/Vector/Transforms/LowerVectorContract.cpp
    M mlir/test/Dialect/Vector/vector-contract-to-dot-transforms.mlir

  Log Message:
  -----------
  [MLIR][Vector] Add fastmath attribute to vector.contract (#192788)

`vector.contract` has no fastmath attribute, making it impossible to
propagate fast-math flags to lowered ops. This can help backends that
rely on flags like `contract` to enable FMA fusion.

This change adds a `fastmath` attribute to `vector::ContractionOp` and
propagates it to lowered operations.


  Commit: e7e85a744871820febdf58e75a2d1c351d5551e1
      https://github.com/llvm/llvm-project/commit/e7e85a744871820febdf58e75a2d1c351d5551e1
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/Analysis/CostModel/AArch64/loop_dependence_mask.ll
    M llvm/test/CodeGen/AArch64/alias_mask.ll
    A llvm/test/CodeGen/AArch64/alias_mask_i128.ll
    M llvm/test/CodeGen/AArch64/alias_mask_nosve.ll
    M llvm/test/CodeGen/AArch64/alias_mask_scalable.ll
    M llvm/test/CodeGen/AArch64/alias_mask_scalable_nosve2.ll

  Log Message:
  -----------
  [IR] Remove pointer arguments from loop.dependence.{war|raw}.mask (#188248)

Passing pointer arguments is quite inconvenient for practical use. These
intrinincs only care about the difference between the address bits of
two pointers, but by taking pointer arguments it is implying they care
about other details of the pointers (such as addrspace, or other pointer
bits).

This metadata is currently not preserved when gathering diff checks in
the loop vectorizer, so requiring pointers makes emitting these
intrinsic more complex (or requires preserving information that is
ultimately unused).


  Commit: b565800d99a4b4b151a5ec3f5cbe35a7203db17d
      https://github.com/llvm/llvm-project/commit/b565800d99a4b4b151a5ec3f5cbe35a7203db17d
  Author: GeorgeHuyubo <113479859+GeorgeHuyubo at users.noreply.github.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M lldb/test/API/functionalities/statusline/TestStatusline.py

  Log Message:
  -----------
  [lldb] Add regression test for stale Symbol pointer crash in statusline (#193854)

Add a test that exercises the code path fixed in
[88f024223cc4](https://github.com/llvm/llvm-project/pull/188377)
("[lldb] Fix stale Symbol pointer crash in statusline after 'target
symbols add'").

The bug: when `target symbols add` is called, `Symtab::AddSymbol()` can
reallocate the underlying `std::vector<Symbol>`, invalidating all
existing `Symbol*` pointers. The statusline caches an
`ExecutionContextRef` containing a `StackID` with a
`SymbolContextScope*` (which can be a `Symbol*`). If a concurrent
statusline redraw occurs between the Symtab reallocation and
`Process::Flush()` (e.g. from a progress event on the event handler
thread), the cached `StackID` matches the old frame via pointer-equal
comparison, and `GetSymbolContext()` dereferences the dangling
`Symbol*`.

The test:
  1. Builds a stripped binary and its unstripped counterpart.
  2. Runs the stripped binary and stops at a breakpoint in `main`.
3. Enables the statusline (populating the cached `ExecutionContextRef`).
  4. Calls `target symbols add` to add debug symbols back.
5. Forces a statusline redraw via terminal resize, which calls
`Redraw(std::nullopt)` using the cached (potentially stale) execution
context.
  6. Verifies the statusline still renders correctly.

The dangling pointer is a use-after-free that silently succeeds in
non-sanitizer builds (the freed memory is still accessible). This test
is most effective under AddressSanitizer, which poisons freed memory and
immediately detects the stale access.

Co-authored-by: George Hu <georgehuyubo at gmail.com>


  Commit: 99c9a1f566df3ab4f37e156b62afd1d743882de0
      https://github.com/llvm/llvm-project/commit/99c9a1f566df3ab4f37e156b62afd1d743882de0
  Author: ioana ghiban <ioana.ghiban at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    A mlir/test/Dialect/EmitC/arith/ops.mlir

  Log Message:
  -----------
  [mlir][EmitC] Add tests for arith.max/min float/signed int conversions (#190160)

This patch adds test coverage for the combined `-arith-expand |
-convert-arith-to-emitc` pipeline for selected `arith` max/min operations.

The new tests exercise:

- `arith.maximumf`
- `arith.minimumf`
- `arith.minsi`
- `arith.maxsi`

The intent is not to re-test the individual passes in isolation. Expansion is
already covered in `test/Dialect/Arith/expand-ops.mlir`, and the direct
Arith-to-EmitC lowering is already covered in
`test/Conversion/ArithToEmitC/arith-to-emitc.mlir`. This patch specifically
checks that the combined pipeline produces the expected EmitC operations after
expansion.

For floating-point max/min, the test verifies the expanded form lowers to the
expected sequence of `emitc.cmp`, `emitc.logical_or`, and `emitc.conditional`
operations. For signed integer min/max, it verifies lowering to the expected
`emitc.cmp` and `emitc.conditional` sequence.

The test also documents currently unsupported cases for the combined pipeline:
vector cases are excluded because expansion introduces `arith.cmpf`, and
`ArithToEmitC` does not convert `VectorType`; tensor cases are excluded because
`ArithToEmitC` only lowers scalar `cmpf`.

Assisted-by: Codex (refine tests and comments).
I reviewed all code and tests before submission.


  Commit: b5483871391b098cb3ec051b871ff3d307c12e71
      https://github.com/llvm/llvm-project/commit/b5483871391b098cb3ec051b871ff3d307c12e71
  Author: Mel Chen <mel.chen at sifive.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/test/Transforms/LoopVectorize/RISCV/first-order-recurrence-scalable-vf1.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-fixed-order-recurrence.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence-tail-folding.ll
    M llvm/test/Transforms/LoopVectorize/optsize.ll
    M llvm/test/Transforms/LoopVectorize/tail-folding-vectorization-factor-1.ll

  Log Message:
  -----------
  [LV] Simplify live-out extraction for first-order recurrence phis when tail folding (#176108)

The idea is similar to ba40a7bc2e65be86ac23c9cf6038ac085dda77eb. Due to
tail folding, the recurrence vector in the final iteration may contain
only a single active element, making it impossible to extract the
penultimate active element. This patch instead directly extracts the
last active element from the vector produced by splicing the recurrence
phi and the previous value, without needing to select which value to
extract based on the number of active lanes.


  Commit: 0d332848bf287a3320f7a432368cd14f2ffe944d
      https://github.com/llvm/llvm-project/commit/0d332848bf287a3320f7a432368cd14f2ffe944d
  Author: Juan Manuel Martinez Caamaño <jmartinezcaamao at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicsSPIRV.td
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    M llvm/lib/Target/SPIRV/SPIRVTypeInst.cpp
    M llvm/lib/Target/SPIRV/SPIRVTypeInst.h
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_memory_access_aliasing/alias-load-store-atomic.ll
    A llvm/test/CodeGen/SPIRV/transcoding/atomic-load-store-unsupported.ll
    M llvm/test/CodeGen/SPIRV/transcoding/load-atomic.ll
    M llvm/test/CodeGen/SPIRV/transcoding/store-atomic.ll

  Log Message:
  -----------
  [SPIRV] Lower load/store atomic to OpAtomicLoad/OpAtomicStore (#185696)

Lower LLVM's `load atomic` `store atomic` as `OpAtomicStore` and
`OpAtomicLoad`.

Closes #185629


  Commit: 7758ee59e7a2653fb26c29ecc7ce7bbd00e66091
      https://github.com/llvm/llvm-project/commit/7758ee59e7a2653fb26c29ecc7ce7bbd00e66091
  Author: Jeff Bailey <jbailey at raspberryginger.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M libc/test/src/time/mktime_test.cpp

  Log Message:
  -----------
  [libc] Fix implicit conversion warning in mktime_test (#193504)

Specified template argument time_t for Succeeds and Fails in
mktime_test.cpp to avoid implicit conversion warnings when matching
time_t results on 64-bit systems.


  Commit: 65e766dfda81c12a26750adc21bec7f13166a42f
      https://github.com/llvm/llvm-project/commit/65e766dfda81c12a26750adc21bec7f13166a42f
  Author: Jeff Bailey <jbailey at raspberryginger.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M libc/cmake/modules/prepare_libc_gpu_build.cmake
    M libc/test/lit.site.cfg.py.in

  Log Message:
  -----------
  [libc] Honour LIBC_GPU_TEST_JOBS in lit test runs (#193797)

Under CTest, LIBC_GPU_TEST_JOBS controlled a ninja job pool that limited
concurrent GPU test processes. The AMD GPU buildbot sets this to 4 to
avoid overloading the GPU driver.

When running tests via lit, this constraint was lost because lit uses
its own -j flag (defaulting to nproc, or set to 64 on the AMD bot via
LLVM_LIT_ARGS). All GPU loader processes launched simultaneously,
leading to hangs from GPU resource exhaustion.

Propagated LIBC_GPU_TEST_JOBS into the lit site config as a parallelism
group so lit throttles GPU test concurrency independently of the global
-j setting.


  Commit: fc9f14e424229e3e90494921e1cb7e5575064ac7
      https://github.com/llvm/llvm-project/commit/fc9f14e424229e3e90494921e1cb7e5575064ac7
  Author: Jeff Bailey <jbailey at raspberryginger.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M libc/test/CMakeLists.txt
    M libc/test/include/CMakeLists.txt
    M libc/test/integration/CMakeLists.txt

  Log Message:
  -----------
  [libc] Switch check-libc from CTest to lit (#193798)

Renamed check-libc-lit to check-libc, replacing the old CTest-driven
target. Dependencies now use -build targets (e.g.
libc-hermetic-tests-build) so that check-libc only builds test
executables and delegates execution to lit.


  Commit: e4f1530edcc95a41e8fd8d13dca295aad814f75d
      https://github.com/llvm/llvm-project/commit/e4f1530edcc95a41e8fd8d13dca295aad814f75d
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M flang/include/flang/Optimizer/Dialect/FIROps.td
    M flang/include/flang/Optimizer/Transforms/Passes.td
    M flang/lib/Optimizer/CodeGen/CodeGen.cpp
    M flang/lib/Optimizer/Passes/Pipelines.cpp
    M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
    A flang/test/Fir/fake_use-codegen.fir
    A flang/test/Transforms/debug-fake-use.fir

  Log Message:
  -----------
  [flang][debug] generate llvm.fake.use for arguments at -g and O0 (#187044)

Fix for https://github.com/llvm/llvm-project/issues/185432.

This patch extends the lifetime of procedure dummy arguments using llvm.fake.use
so that they are accessible in debugger during the whole lifetime of the function.

This is done by:
- adding a new fir.fake_use operation and emitting it in AddDebugInfo.cpp for
   dummy arguments at the end of the procedure scope.
- lower this new fir.fake_use to the llvm.fake.use intrinsic.

This is done under -g at O0 only to avoid pessimizing the generated code when
optimizations are requested.


  Commit: 248192d5bef14428ab7cbaa2e1c9e70109fb0747
      https://github.com/llvm/llvm-project/commit/248192d5bef14428ab7cbaa2e1c9e70109fb0747
  Author: Boyao Wang <wangboyao at bytedance.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-deinterleave2.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-zipeven-zipodd.ll
    M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave-fixed.ll
    M llvm/test/CodeGen/RISCV/rvv/vector-interleave-fixed.ll

  Log Message:
  -----------
  [RISCV] Add bf16 tests for interleave and deinterleave (#193720)

Add missing bf16 tests for interleave and deinterleave


  Commit: 6c16fc8a1a1d6eba2b368fc981a3b943abb5018a
      https://github.com/llvm/llvm-project/commit/6c16fc8a1a1d6eba2b368fc981a3b943abb5018a
  Author: David Spickett <david.spickett at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M lldb/test/API/commands/breakpoint/command/list/TestBreakpointCommandList.py
    M lldb/test/API/commands/command/container/TestContainerCommands.py
    M lldb/test/API/commands/command/delete/TestCommandDelete.py
    M lldb/test/API/commands/command/invalid-args/TestInvalidArgsCommand.py
    M lldb/test/API/commands/expression/dont_allow_jit/TestAllowJIT.py
    M lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
    M lldb/test/API/commands/log/invalid-args/TestInvalidArgsLog.py
    M lldb/test/API/commands/process/signal/TestProcessSignal.py
    M lldb/test/API/commands/register/register_command/TestRegisters.py
    M lldb/test/API/commands/target/modules/search-paths/insert/TestTargetModulesSearchpathsInsert.py
    M lldb/test/API/commands/target/stop-hook/delete/TestTargetStopHookDelete.py
    M lldb/test/API/commands/target/stop-hook/disable/TestTargetStopHookDisable.py
    M lldb/test/API/commands/target/stop-hook/enable/TestTargetStopHookEnable.py
    M lldb/test/API/commands/thread/select/TestThreadSelect.py
    M lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py
    M lldb/test/API/functionalities/gdb_remote_client/TestGDBServerTargetXML.py
    M lldb/test/Shell/Commands/list-header.test
    M lldb/test/Shell/Minidump/disassemble-no-module.yaml

  Log Message:
  -----------
  [lldb][test] Remove full stop from expected error messages (#193748)

I am about to update a bunch of uses of AppendErrorWithFormat to not
have a full stop at the end, to confirm to
https://llvm.org/docs/CodingStandards.html#error-and-warning-messages.

Reviewing all those changes is going to be difficult so I am updating
the tests first and then we can land the other changes in batches
(because the tests will continue to pass as we do that).

Note that I have only run the test suite on Linux AArch64, so there are
probably more that need to be updated. We will catch those in CI or
post-commit.


  Commit: 6114cbb611c8183798e43118a0cca73293241b02
      https://github.com/llvm/llvm-project/commit/6114cbb611c8183798e43118a0cca73293241b02
  Author: Harald van Dijk <hdijk at accesssoftek.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/DirectX/DXILWriter/DXILValueEnumerator.cpp

  Log Message:
  -----------
  [DirectX] Fix debug dump of ValueEnumerator (#191251)

Consistently print to OS, and do not try to print uses of values without
a use list.


  Commit: eb6eb9fa0a0c02c43b800d6b5d44b6b92333b65a
      https://github.com/llvm/llvm-project/commit/eb6eb9fa0a0c02c43b800d6b5d44b6b92333b65a
  Author: Harald van Dijk <hdijk at accesssoftek.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/DirectX/DXILPrepare.cpp
    M llvm/test/tools/dxil-dis/debug-info.ll

  Log Message:
  -----------
  [DirectX] Convert debug values to old style (#192162)


  Commit: 8b3eac05aa742730a89889e90c375ad1f7359fe0
      https://github.com/llvm/llvm-project/commit/8b3eac05aa742730a89889e90c375ad1f7359fe0
  Author: Harald van Dijk <hdijk at accesssoftek.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
    A llvm/test/tools/dxil-dis/di-compile-unit-versioned-language.ll

  Log Message:
  -----------
  [DirectX] Convert DICompileUnit versioned language (#192574)

Versioned languages did not exist in LLVM 3.7.


  Commit: 3de31988417de7a733d56d5be21405366b507f63
      https://github.com/llvm/llvm-project/commit/3de31988417de7a733d56d5be21405366b507f63
  Author: Harald van Dijk <hdijk at accesssoftek.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
    A llvm/test/tools/dxil-dis/vla.ll

  Log Message:
  -----------
  [DirectX] Replace non-const count of DISubrange with -1 (#192576)

Non-const count is only emitted for C99 VLA, which are not supported.

Co-authored-by: Andrew Savonichev <andrew.savonichev at gmail.com>


  Commit: efffb04c2b7b2528308f68ca24906048781298c0
      https://github.com/llvm/llvm-project/commit/efffb04c2b7b2528308f68ca24906048781298c0
  Author: Harald van Dijk <hdijk at accesssoftek.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
    M llvm/test/tools/dxil-dis/debug-info.ll

  Log Message:
  -----------
  [DirectX] Fix DILocalVariable (#192573)

LLVM 3.7 did not allow the DW_TAG_variable tag for them and had two
custom tags instead.


  Commit: 347aa3f6fbcc48cd752d02aa581b74c33d18dd41
      https://github.com/llvm/llvm-project/commit/347aa3f6fbcc48cd752d02aa581b74c33d18dd41
  Author: Cullen Rhodes <cullen.rhodes at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/include/llvm/Target/GlobalISel/Combine.td
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-store-outline_atomics.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-store-rcpc.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-store-v8_1a.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-store-v8a.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-lse2.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-lse2_lse128.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-lsfe.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-outline_atomics.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-rcpc.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-rcpc3.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-v8_1a.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-v8a.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-v8a_fp.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/localizer-arm64-tti.ll
    M llvm/test/CodeGen/AArch64/aarch64-tbz.ll
    M llvm/test/CodeGen/AArch64/cpa-globalisel.ll
    M llvm/test/CodeGen/AArch64/misched-fusion-cmp-bcc.ll
    M llvm/test/CodeGen/AArch64/pcsections.ll
    M llvm/test/DebugInfo/AArch64/fallthrough-branch.ll

  Log Message:
  -----------
  [GISel] Disable opt_brcond_by_inverting_cond combine at O0 (#193417)

This combine should not be necessary at O0 and disabling it is a -0.39%
geomean compile-time improvement on stage1-aarch64-O0-g CTMark [1] with
no change to code-size [2].

I also measured code-size without -g (cmake/caches/O0.cmake) locally
since it's not on llvm-compile-time-tracker and found no change.

[1] https://llvm-compile-time-tracker.com/compare.php?from=f2efeabe314bb0a9b1ef46c07b11f605ed351b9c&to=3d28cf0bb7fb2fc5baebc4b5de09b735c1115e7f&stat=instructions%3Au
[2] https://llvm-compile-time-tracker.com/compare.php?from=f2efeabe314bb0a9b1ef46c07b11f605ed351b9c&to=3d28cf0bb7fb2fc5baebc4b5de09b735c1115e7f&stat=size-total


  Commit: bd469e8a1d4768b278182aa982763128d40e7e90
      https://github.com/llvm/llvm-project/commit/bd469e8a1d4768b278182aa982763128d40e7e90
  Author: David Green <david.green at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

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

  Log Message:
  -----------
  [SDAG] Minor cleanup to TargetLowering::expandFP_ROUND. NFC (#193793)

Noticed when porting to GISel, constants might as well be added to the
RHS of an add and a bitcast from the same type can be removed.


  Commit: 340ba1191cfc49588119a93724f5c26810ddc1a6
      https://github.com/llvm/llvm-project/commit/340ba1191cfc49588119a93724f5c26810ddc1a6
  Author: Juan Manuel Martinez Caamaño <jmartinezcaamao at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_memory_access_aliasing/alias-load-store-atomic.ll

  Log Message:
  -----------
  [SPIRV] Do not add aliasing decorations to OpAtomicStore/OpAtomicLoad (#193779)

Do not attach them to store atomic or load atomic intrinsics /
instructions since the extension is inconsistent at the moment (we
cannot add the decoration to atomic stores because they do not have an
id).


  Commit: c55a73c44e4af903ded70aec5c8d6af1cb312440
      https://github.com/llvm/llvm-project/commit/c55a73c44e4af903ded70aec5c8d6af1cb312440
  Author: David Spickett <david.spickett at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M lldb/source/API/SBCommandInterpreter.cpp
    M lldb/source/Commands/CommandObjectBreakpoint.cpp
    M lldb/source/Commands/CommandObjectBreakpointCommand.cpp
    M lldb/source/Commands/CommandObjectCommands.cpp
    M lldb/source/Commands/CommandObjectDisassemble.cpp
    M lldb/source/Commands/CommandObjectExpression.cpp
    M lldb/source/Commands/CommandObjectFrame.cpp
    M lldb/source/Commands/CommandObjectLog.cpp
    M lldb/source/Commands/CommandObjectMemory.cpp
    M lldb/source/Commands/CommandObjectMemoryTag.cpp

  Log Message:
  -----------
  [lldb] Remove full stop from AppendErrorWithFormat format strings (part 1) (#193750)

To fit the style guide:
https://llvm.org/docs/CodingStandards.html#error-and-warning-messages

I found these with:
* Find `(\.AppendErrorWithFormat\(([\s\r\n]+)?"(?:(?:\\.|[^"\\])*))\."`
and replace with `$1"` using Visual Studio Code.
* Putting a call to `validate_diagnostic` in `AppendErrorWithFormat`.
* Manual inspection.

Note that this change *does not* include a call to `validate_diagnostic`
because I do not know what's going to crash on platforms that I haven't
tested on.


  Commit: 4852c5b159c8469f204b60a0974a33d1072bcee3
      https://github.com/llvm/llvm-project/commit/4852c5b159c8469f204b60a0974a33d1072bcee3
  Author: Mark Murray <mark.murray at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/ARM/ARMInstrThumb2.td
    A llvm/test/MC/ARM/thumb-hvc-virt-diagnostics.s

  Log Message:
  -----------
  [ARM][MC] Gate Thumb hvc alias on virtualization (#193532)


  Commit: 297fb9377a6ac0c8e7f81928e0df84c0bfe251d8
      https://github.com/llvm/llvm-project/commit/297fb9377a6ac0c8e7f81928e0df84c0bfe251d8
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/test/Transforms/LICM/atomics.ll

  Log Message:
  -----------
  [LICM] Generate test checks (NFC) (#193921)


  Commit: 3ec9bbc3da9c75c4b586a7350dd271b0528715da
      https://github.com/llvm/llvm-project/commit/3ec9bbc3da9c75c4b586a7350dd271b0528715da
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    R llvm/test/Transforms/DeadStoreElimination/fence-todo.ll
    M llvm/test/Transforms/DeadStoreElimination/fence.ll

  Log Message:
  -----------
  [DSE] Merge two test files and generate checks (NFC) (#193922)

Merge the todo file into the main test, showing current codegen.


  Commit: 170f030c22c52bc5d840cd8f76756c9fba5ee816
      https://github.com/llvm/llvm-project/commit/170f030c22c52bc5d840cd8f76756c9fba5ee816
  Author: Longsheng Mou <longshengmou at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M mlir/lib/Dialect/Math/IR/MathOps.cpp

  Log Message:
  -----------
  [mlir][math] Use APFloat::SemanticsToEnum in constant folding (#193914)

Refactor constant folding in the Math dialect to use APFloat::SemanticsToEnum() instead of getSizeInBits() when checking
floating-point semantics. Inferring semantics from bitwidth is fragile: different formats may share the same bit width but have distinct semantics, leading to incorrect dispatch. SemanticsToEnum() matches on the exact semantics descriptor, making the intent explicit and ensuring correct dispatch.


  Commit: 839a22f449b3092a32537e9dc1cc474a5e19c909
      https://github.com/llvm/llvm-project/commit/839a22f449b3092a32537e9dc1cc474a5e19c909
  Author: Jack Styles <jack.styles at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M flang/docs/Directives.md
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Parser/Fortran-parsers.cpp
    M flang/lib/Parser/unparse.cpp
    M flang/lib/Semantics/canonicalize-directives.cpp
    M flang/lib/Semantics/resolve-names.cpp
    A flang/test/Lower/inlinealways-directive.f90
    A flang/test/Parser/inlinealways-directive.f90
    A flang/test/Semantics/inlinealways-directive01.f90

  Log Message:
  -----------
  [Flang] Add `INLINEALWAYS` Compiler Directive (#192674)

Adds support for the INLINEALWAYS Compiler Directive to Flang. This was
previously supported in Classic-Flang, and works in the same way as
FORCEINLINE.

It can either be defined at the call site, or within the function the
user wishes to inline.

The missing support was highlighted while building an opensource
benchmark, as build warnings were indicating that this compiler
directive was being ignored.


  Commit: 8685fb10938f0fb2bd3293ffbe292fbcdd962927
      https://github.com/llvm/llvm-project/commit/8685fb10938f0fb2bd3293ffbe292fbcdd962927
  Author: Longsheng Mou <longshengmou at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/CommonFolders.h
    M mlir/include/mlir/Dialect/Math/IR/MathOps.td
    M mlir/lib/Dialect/Math/IR/MathOps.cpp
    M mlir/test/Dialect/Math/canonicalize.mlir
    M mlir/test/lib/Dialect/Test/TestPatterns.cpp

  Log Message:
  -----------
  [mlir][math] Add constant folding for `math.fpowi` (#193761)

Adds a constant folder for `math.fpowi` when both operands are constant
and the integer exponent is exactly representable in the floating-point
type of the base.


  Commit: f780e46d6e0e2b537dbe45092fb62c4a46b95916
      https://github.com/llvm/llvm-project/commit/f780e46d6e0e2b537dbe45092fb62c4a46b95916
  Author: Ivan R. Ivanov <iivanov at nvidia.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

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

  Log Message:
  -----------
  [llvm][ExpandMemCmp] Avoid making copy of loop value (#193915)

This fixes a compiler warning.


  Commit: ca136926c125dd925549b596efd29b900a379045
      https://github.com/llvm/llvm-project/commit/ca136926c125dd925549b596efd29b900a379045
  Author: divVerent <rpolzer at google.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/lib/Serialization/ASTReader.cpp
    M clang/test/Sema/redefine_extname.cpp

  Log Message:
  -----------
  Fix formatting of changes in recent redefine_extname changes. (#189938)

My recent commits fd7388d14083bb5094bce6a75444a37e424689d7 and
37888541a96e4f10bf1b71b869145f0d31a9d580 had minor formatting issues
which happened during editing the PR as I had forgotten to rerun
clang-format. Sorry for that. So here is the update.

Did not fix line lengths in the FileCheck tests as exceeding line length
in these seems more consistent.


  Commit: faf37adb3b33a984c585bb5a53f0caa8f0934c0f
      https://github.com/llvm/llvm-project/commit/faf37adb3b33a984c585bb5a53f0caa8f0934c0f
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/utils/TableGen/ClangOptionDocEmitter.cpp

  Log Message:
  -----------
  [Clang] Use const std::string & in ClangOptionDocEmitter. NFC. (#193926)

Fixes #94373


  Commit: 69724c88e3e0ed4b23d2fc446c3d472b414146bd
      https://github.com/llvm/llvm-project/commit/69724c88e3e0ed4b23d2fc446c3d472b414146bd
  Author: David Spickett <david.spickett at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M lldb/docs/resources/lldbgdbremote.md
    M lldb/include/lldb/Target/MemoryRegionInfo.h
    M lldb/source/Commands/CommandObjectMemory.cpp
    M lldb/source/Plugins/Process/Utility/LinuxProcMaps.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
    M lldb/source/Target/MemoryRegionInfo.cpp
    M lldb/test/API/linux/aarch64/permission_overlay/TestAArch64LinuxPOE.py
    M lldb/test/API/linux/aarch64/permission_overlay/main.c
    M lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
    M lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp

  Log Message:
  -----------
  [lldb][Linux] Read memory protection keys for memory regions (#182246)

Memory protection keys
(https://docs.kernel.org/core-api/protection-keys.html) are implemented
using two things:
* A key value attached to each page table entry.
* A set of permissions stored somewhere else (in a register on AArch64
and X86), which is indexed into by that protection key.

So far I have updated LLDB to show the permissions part on AArch64 Linux
by reading the por register. Now I am adding the ability to see which
key each memory region is using.

```
(lldb) memory region --all
[0x0000000000000000-0x000aaaae3b140000) ---
[0x000aaaae3b140000-0x000aaaae3b150000) r-x /tmp/test_lldb/linux/aarch64/permission_overlay/2/TestAArch64LinuxPOE/a.out PT_LOAD[0]
protection key: 0
[0x000aaaae3b150000-0x000aaaae3b160000) rw- /tmp/test_lldb/linux/aarch64/permission_overlay/2/TestAArch64LinuxPOE/a.out
protection key: 0
```

The key is parsed from the /proc/.../smaps file, and so will only be
present for live processes, not core files.

This is sent as part of the qMemoryRegionInfo response as a new
"protection-key" key. As far as I know "memory protection keys" are
Linux specific, but I don't know of a good generic name for it, so I've
copied what smaps calls it.

I have updated the "memory region" command to show this key. A lot of
the time this will be the default 0 key. I considered hiding this, but
decided that for this initial support it's better to be explicit and
verbose (this also prevents a Linux specific detail being added to the top level
memory region command).

I have not added protection keys to the SBAPI because:
* I don't know of a specific need for them.
* They are very easy to add if someone does want them later (just a
HasProtectionKey and GetProtectionKey).
* Arm's POE2
(https://developer.arm.com/community/arm-community-blogs/b/architectures-and-processors-blog/posts/future-architecture-technologies-poe2-and-vmte)
is coming soon, which makes these permissions more complex. There's no
need to risk adding something too simple to handle those.

The ability to see the permissions the key refers to, and the final
permissions after the overlay, will be in a follow up PR.


  Commit: e2159f8e3c1a9905bdfc82d73c006945fe72c456
      https://github.com/llvm/llvm-project/commit/e2159f8e3c1a9905bdfc82d73c006945fe72c456
  Author: Fabian Ritter <fabian.ritter at amd.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/docs/LangRef.rst

  Log Message:
  -----------
  [LangRef] Allow monotonic & seq_cst accesses to inter-operate with other accesses (#189014)

Currently, the LangRef says that atomic operations (which includes `unordered`
operations, which don't participate in the monotonic modification order) must
read a value from the modification order of monotonic operations.

In the following example, this means that the load does not have a store it
could read from, because all stores it may see do not participate in the
monotonic modification order:

```
; thread 0:
  store atomic i32 1, ptr %p unordered, align 4

; thread 1:
  store atomic i32 2, ptr %p unordered, align 4
  load atomic i32, ptr %p unordered, align 4
```

The same applies if the load is monotonic instead of unordered (or if it is
replaced by a monotonic RMW operation). Either case seems wrong.

Similarly, the LangRef currently says "Each sequentially-consistent read sees
the last preceding write to the same address in this global order [of seq_cst
operations]." Strictly read, this means that the load in the following example
must read from the first store (or at least cannot read the second one),
because the second one is not sequentially consistent and therefore not in the
seq_cst order. That also seems wrong.

```
; thread 0
  store atomic i32 1, ptr %p seq_cst, align 4
  store atomic i32 2, ptr %p monotonic, align 4
  load atomic i32, ptr %p seq_cst, align 4
```

This patch aims to resolve these inconsistencies.

Related RFC: https://discourse.llvm.org/t/rfc-clarifying-llvm-irs-concurrent-memory-model/90480


  Commit: 390a29ea833965f481a7011b07deed9612229d6e
      https://github.com/llvm/llvm-project/commit/390a29ea833965f481a7011b07deed9612229d6e
  Author: David Spickett <david.spickett at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M lldb/docs/resources/lldbgdbremote.md
    M lldb/include/lldb/Target/MemoryRegionInfo.h
    M lldb/source/Commands/CommandObjectMemory.cpp
    M lldb/source/Plugins/Process/Utility/LinuxProcMaps.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
    M lldb/source/Target/MemoryRegionInfo.cpp
    M lldb/test/API/linux/aarch64/permission_overlay/TestAArch64LinuxPOE.py
    M lldb/test/API/linux/aarch64/permission_overlay/main.c
    M lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
    M lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp

  Log Message:
  -----------
  Revert "[lldb][Linux] Read memory protection keys for memory regions" (#193934)

Reverts llvm/llvm-project#182246

Test failures on x86 bot:
```
Failed Tests (2):
  lldb-api :: tools/lldb-server/TestGdbRemote_qMemoryRegion.py
  lldb-api :: tools/lldb-server/libraries-svr4/TestGdbRemoteLibrariesSvr4Support.py
```


  Commit: 23ea7363ff76d3dc56bb1bf8c8581ded4ba21859
      https://github.com/llvm/llvm-project/commit/23ea7363ff76d3dc56bb1bf8c8581ded4ba21859
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Analysis/AliasAnalysisEvaluator.cpp
    A llvm/test/Analysis/BasicAA/atomics.ll

  Log Message:
  -----------
  [AAEval] Print ModRefInfo for atomic operations (#193935)

Print ModRefInfo for fence, atomicrmw, etc. Also for atomic
load and store, as these may have additional effects beyond
what is implied by the simple alias result.


  Commit: 9df51a964ddbe4094f7e5a5b4a43f2776dd0da47
      https://github.com/llvm/llvm-project/commit/9df51a964ddbe4094f7e5a5b4a43f2776dd0da47
  Author: Guray Ozen <guray.ozen at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
    M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
    A mlir/test/Dialect/LLVMIR/nvvm-transcendentals.mlir
    A mlir/test/Target/LLVMIR/nvvm/transcendentals.mlir

  Log Message:
  -----------
  [MLIR][NVVM] Add `nvvm.sin` OP (#193775)

Implement `nvvm.sin` with ftz flag


  Commit: cc0913eacf88e5b38f19bb25b1b14a61a653e1ec
      https://github.com/llvm/llvm-project/commit/cc0913eacf88e5b38f19bb25b1b14a61a653e1ec
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/Compiler.cpp
    A clang/test/AST/ByteCode/libcxx/static-reference-load.cpp
    M clang/test/AST/ByteCode/records.cpp

  Log Message:
  -----------
  [clang][bytecode] Fix `MemberExpr`s with a static member (#193902)

We need logic to load from the reference pointer, similar to the one we
have for regular `DeclRefExpr`s.


  Commit: 3fa0ac20705b9571e07216f08215fd6168a98012
      https://github.com/llvm/llvm-project/commit/3fa0ac20705b9571e07216f08215fd6168a98012
  Author: David Spickett <david.spickett at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M lldb/docs/resources/lldbgdbremote.md
    M lldb/include/lldb/Target/MemoryRegionInfo.h
    M lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
    M lldb/source/Commands/CommandObjectMemory.cpp
    M lldb/source/Plugins/Process/Utility/LinuxProcMaps.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
    M lldb/source/Target/MemoryRegionInfo.cpp
    M lldb/test/API/linux/aarch64/permission_overlay/TestAArch64LinuxPOE.py
    M lldb/test/API/linux/aarch64/permission_overlay/main.c
    M lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
    M lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp

  Log Message:
  -----------
  Reland "[lldb][Linux] Read memory protection keys for memory regions (#193934)" (#193936)

This reverts commit 390a29ea833965f481a7011b07deed9612229d6e.

Two tests failed on the X86 buildbot but not in GitHub CI because the
buildbot has protection keys and the CI machines do not. I ran the tests
on an AArch64 host without protection keys, and only selected tests on a
simulated AArch64 machine with protection keys, so I did not find this
earlier.

The fix was to add "protection-key" to the list of possible
qMemoryRegionInfo response keys.


  Commit: 90020486aa8941d77c6a40afef0f20c94f333433
      https://github.com/llvm/llvm-project/commit/90020486aa8941d77c6a40afef0f20c94f333433
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/test/CodeGen/X86/masked-sdiv.ll
    M llvm/test/CodeGen/X86/masked-srem.ll
    M llvm/test/CodeGen/X86/masked-udiv.ll
    M llvm/test/CodeGen/X86/masked-urem.ll

  Log Message:
  -----------
  [X86] masked div/rem tests - fix avx512 and add sse4/avx2 test coverage (#193933)

Noticed the incorrect "-mattr=+avx512" attribute, and replaced it with proper x86-64-v* level test coverage


  Commit: cedcf1876cb15455a92b539007e122107e66518a
      https://github.com/llvm/llvm-project/commit/cedcf1876cb15455a92b539007e122107e66518a
  Author: divVerent <rpolzer at google.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Sema/SemaDecl.cpp
    M clang/test/PCH/pragma-redefine-extname.c
    M clang/test/PCH/pragma-redefine-extname.h

  Log Message:
  -----------
  [Clang][Sema] Change `ExtnameUndeclaredIdentifiers` to MapVector. (#193924)

Iteration order of this map does not matter for compilation, except that
since 475f71e8fa15ee71f99e450a0e1c90d3961005f9, this data is dumped into
precompiled header files and thus affects content of those files.

To make precompiled header file contents deterministic, changing its
type to one that has deterministic iteration order, matching the nearby
`WeakUndeclaredIdentifiers`.

Fixes #193923


  Commit: a48159df9ce57c2bf377588b52563966865514a2
      https://github.com/llvm/llvm-project/commit/a48159df9ce57c2bf377588b52563966865514a2
  Author: Jonathan Thackray <jonathan.thackray at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/test/Driver/aarch64-v97a.c
    M clang/test/Driver/print-supported-extensions-aarch64.c
    M llvm/lib/Target/AArch64/AArch64Features.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64SystemOperands.td
    M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
    M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp
    M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
    M llvm/test/CodeGen/AArch64/aarch64-sys-intrinsic.ll
    R llvm/test/MC/AArch64/armv9.7a-mpamv2-diagnostics.s
    M llvm/test/MC/AArch64/armv9.7a-mpamv2.s
    M llvm/unittests/TargetParser/TargetParserTest.cpp

  Log Message:
  -----------
  [AArch64][llvm] Remove support for FEAT_MPAMv2_VID (#193191)

`FEAT_MPAMv2_VID` instructions and system registers, as introduced
in change d30f18d2c, are being removed at this time, as they've been
removed from the latest Arm ARM, which doesn't preclude them returning
in some form in future.

Other system registers introduced with `FEAT_MPAMv2` are unaffected,
and these continue to be ungated, but since `+mpamv2` gating is now
empty,
I'm removing this superfluous gating code.


  Commit: f64e8d1567ad40b4c584bc842f1c8ebfdcc1d491
      https://github.com/llvm/llvm-project/commit/f64e8d1567ad40b4c584bc842f1c8ebfdcc1d491
  Author: Rohit Aggarwal <44664450+rohitaggarwal007 at users.noreply.github.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/include/llvm/Analysis/VecFuncs.def
    M llvm/include/llvm/IR/RuntimeLibcalls.td
    M llvm/test/Transforms/LoopVectorize/X86/amdlibm-calls.ll

  Log Message:
  -----------
  [AMDLIBM] Remove the mapping of the deleted vector call (#193760)

Removing the mapping of deleted vector from the
[amdlibm_vec.h](https://github.com/amd/aocl-libm-ose/blob/master/include/external/amdlibm_vec.h)


  Commit: a227dc7c0980c414c4a7d9f1f3f64130b1956b0c
      https://github.com/llvm/llvm-project/commit/a227dc7c0980c414c4a7d9f1f3f64130b1956b0c
  Author: Xinlong Chen <xinlongchen at tencent.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/RISCV/combine-is_fpclass.ll

  Log Message:
  -----------
  [DAG] visitIS_FPCLASS - fold to constant when result is fully determined by KnownFPClass (#193737)

This PR teaches `DAGCombiner::visitIS_FPCLASS` to fold directly to
constant `true` based on the source's `KnownFPClass`, instead of only
narrowing the test mask.

Prep work to help with https://github.com/llvm/llvm-project/pull/193672


  Commit: 48e65b6c433753cb09c4057305fc2b49b2ee4168
      https://github.com/llvm/llvm-project/commit/48e65b6c433753cb09c4057305fc2b49b2ee4168
  Author: David Green <david.green at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/test/CodeGen/AArch64/bf16-v8-instructions.ll

  Log Message:
  -----------
  [AArch64][GlobalISel] Add a variant of gi_extract_high_v8bf16 (#193345)

This allows the upper extract_high to match for bf16 types, allowing us
to generate a sshl2 instruction.


  Commit: 8141a4351c5e0803902e27182a9ff0ebb7cb7bee
      https://github.com/llvm/llvm-project/commit/8141a4351c5e0803902e27182a9ff0ebb7cb7bee
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M flang/examples/FeatureList/FeatureList.cpp
    M flang/include/flang/Lower/OpenMP.h
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/openmp-utils.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
    M flang/lib/Parser/openmp-parsers.cpp
    M flang/lib/Parser/unparse.cpp
    M flang/lib/Semantics/canonicalize-omp.cpp
    M flang/lib/Semantics/check-omp-loop.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/check-omp-structure.h
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/test/Lower/pre-fir-tree03.f90
    M flang/test/Parser/OpenMP/bind-clause.f90
    M flang/test/Parser/OpenMP/cross-label-do.f90
    M flang/test/Parser/OpenMP/declare-reduction-multi.f90
    M flang/test/Parser/OpenMP/declare-reduction-unparse.f90
    M flang/test/Parser/OpenMP/depth-clause.f90
    M flang/test/Parser/OpenMP/do-interchange.f90
    M flang/test/Parser/OpenMP/do-tile-size.f90
    M flang/test/Parser/OpenMP/doacross-clause.f90
    M flang/test/Parser/OpenMP/fuse-looprange.f90
    M flang/test/Parser/OpenMP/fuse01.f90
    M flang/test/Parser/OpenMP/fuse02.f90
    M flang/test/Parser/OpenMP/in-reduction-clause.f90
    M flang/test/Parser/OpenMP/interchange-permutation.f90
    M flang/test/Parser/OpenMP/interchange.f90
    M flang/test/Parser/OpenMP/linear-clause.f90
    M flang/test/Parser/OpenMP/loop-transformation-construct01.f90
    M flang/test/Parser/OpenMP/loop-transformation-construct02.f90
    M flang/test/Parser/OpenMP/loop-transformation-construct03.f90
    M flang/test/Parser/OpenMP/loop-transformation-construct04.f90
    M flang/test/Parser/OpenMP/loop-transformation-construct05.f90
    M flang/test/Parser/OpenMP/masked-unparse.f90
    M flang/test/Parser/OpenMP/master-unparse.f90
    M flang/test/Parser/OpenMP/nonblock-do-nested-omp.f90
    M flang/test/Parser/OpenMP/order-clause01.f90
    M flang/test/Parser/OpenMP/ordered-depend.f90
    M flang/test/Parser/OpenMP/parallel-loop-unparse.f90
    M flang/test/Parser/OpenMP/reduction-modifier.f90
    M flang/test/Parser/OpenMP/target-loop-unparse.f90
    M flang/test/Parser/OpenMP/taskloop.f90
    M flang/test/Parser/OpenMP/threadset-clause.f90
    M flang/test/Parser/OpenMP/tile-size.f90
    M flang/test/Parser/OpenMP/tile.f90
    M flang/test/Parser/OpenMP/transparent-clause.f90
    M flang/test/Parser/OpenMP/unroll-full.f90
    M flang/test/Parser/OpenMP/unroll-heuristic.f90
    M flang/test/Parser/OpenMP/unroll-partial.f90
    M flang/unittests/Semantics/OpenMPUtils.cpp

  Log Message:
  -----------
  [flang][OpenMP] Make OpenMPLoopConstruct inherit from OmpBlockConstruct (#193823)

Conceptually OpenMPLoopConstruct has the exact same structure as
OmpBlockConstruct: directive specification for the begin directive,
optional one for the end directive, and a block of code. The reason why
OpenMPLoopConstruct was not originally made to be a descendant of
OmpBlockConstruct was to preserve the behavior of AST visitors, where a
separate (type-based) visitor could be defined for the begin/end
directives of a block construct, and for a loop construct. The AST nodes
representing the begin/end directives in block and loop construct had
different types: Omp{Begin|End}Directive for block constructs, and
Omp{Begin|End}LoopDirective for loop constructs.
Today this distinction is not needed anywhere, and so the loop construct
will be represented in the same way as a block construct.


  Commit: 0571ce414ec0c499976fb73d9e4796326b4e3c1b
      https://github.com/llvm/llvm-project/commit/0571ce414ec0c499976fb73d9e4796326b4e3c1b
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M flang/lib/Semantics/check-omp-loop.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/check-omp-structure.h
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/test/Semantics/OpenMP/parallel-master-goto.f90

  Log Message:
  -----------
  [flang][OpenMP] Move branching verification to semantic checks (#193324)

Move the check for branching into and out of an OpenMP construct from
symbol resolution into semantic checks.
Instead of using directive contexts to check for crossing a construct
boundary, use construct pointers and source ranges.


  Commit: c59c19bf5921925f40d767aa79eea252b0184f6a
      https://github.com/llvm/llvm-project/commit/c59c19bf5921925f40d767aa79eea252b0184f6a
  Author: Valery Pykhtin <valery.pykhtin at amd.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    A llvm/include/llvm/CodeGen/MachineIDFSSAUpdater.h
    M llvm/lib/CodeGen/CMakeLists.txt
    A llvm/lib/CodeGen/MachineIDFSSAUpdater.cpp
    M llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-used-outside-loop.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-structurizer.mir
    M llvm/test/CodeGen/AMDGPU/si-i1-copies.mir
    M llvm/test/CodeGen/AMDGPU/si-lower-i1-copies-order-of-phi-incomings.mir

  Log Message:
  -----------
  [MachineSSAUpdater][AMDGPU] Add faster version of MachineSSAUpdater class. (#145722)

This is a port of SSAUpdaterBulk to machine IR minus "bulk" part. Phi
deduplication and simplification are not yet implemented but can be
added if needed.

When used in AMDGPU to replace MachineSSAUpdater for i1 copy lowering,
it reduced compilation time from 417 to 180 seconds for the pass on a
large test case (56% improvement).


  Commit: 0844fdfd725501264dbaade58698e9f81576f021
      https://github.com/llvm/llvm-project/commit/0844fdfd725501264dbaade58698e9f81576f021
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/Interp.cpp
    M clang/lib/AST/ByteCode/Pointer.cpp
    M clang/test/AST/ByteCode/unions.cpp

  Log Message:
  -----------
  [clang][bytecode] Start lifetime when activating pointers (#192589)

This can be used to revive union members.


  Commit: c0844b7b65b470ba73356177177105bcdb8309e3
      https://github.com/llvm/llvm-project/commit/c0844b7b65b470ba73356177177105bcdb8309e3
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/test/CodeGen/X86/known-never-zero.ll

  Log Message:
  -----------
  [X86] known-never-zero.ll - regenerate to show VPADD constant asm comments (#193943)


  Commit: e7edfd81ca1a943ccbcf19bfb64ad3f11580f9db
      https://github.com/llvm/llvm-project/commit/e7edfd81ca1a943ccbcf19bfb64ad3f11580f9db
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/test/CodeGen/X86/vector-sext.ll
    M llvm/test/CodeGen/X86/vector-zext.ll

  Log Message:
  -----------
  [X86] Regenerate vector ext tests to show VPADD constant asm comments (#193942)


  Commit: 17861903e6bb2297a63c453728e2a8a9167413bc
      https://github.com/llvm/llvm-project/commit/17861903e6bb2297a63c453728e2a8a9167413bc
  Author: ZhaoQi <zhaoqi01 at loongson.cn>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/test/CodeGen/LoongArch/lasx/ir-instruction/shuffle-as-xvshuf4i.ll
    M llvm/test/CodeGen/LoongArch/lasx/vec-shuffle-byte-rotate.ll

  Log Message:
  -----------
  [LoongArch] Custom legalize vector_shuffle to `xvshuf4i.d` (#164213)


  Commit: e3443a1189b97f1f25a7805096417d7cb28e691e
      https://github.com/llvm/llvm-project/commit/e3443a1189b97f1f25a7805096417d7cb28e691e
  Author: Schrodinger ZHU Yifan <yifanzhu at rochester.edu>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  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/docs/dev/undefined_behavior.rst
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-macros/pthread-macros.h
    M libc/include/llvm-libc-types/CMakeLists.txt
    A libc/include/llvm-libc-types/pthread_cond_t.h
    M libc/include/pthread.yaml
    M libc/include/sys/types.yaml
    M libc/src/__support/threads/CndVar.h
    M libc/src/__support/threads/mutex.h
    M libc/src/__support/threads/unix_mutex.h
    M libc/src/pthread/CMakeLists.txt
    A libc/src/pthread/pthread_cond_broadcast.cpp
    A libc/src/pthread/pthread_cond_broadcast.h
    A libc/src/pthread/pthread_cond_clockwait.cpp
    A libc/src/pthread/pthread_cond_clockwait.h
    A libc/src/pthread/pthread_cond_destroy.cpp
    A libc/src/pthread/pthread_cond_destroy.h
    A libc/src/pthread/pthread_cond_init.cpp
    A libc/src/pthread/pthread_cond_init.h
    A libc/src/pthread/pthread_cond_signal.cpp
    A libc/src/pthread/pthread_cond_signal.h
    A libc/src/pthread/pthread_cond_timedwait.cpp
    A libc/src/pthread/pthread_cond_timedwait.h
    A libc/src/pthread/pthread_cond_utils.h
    A libc/src/pthread/pthread_cond_wait.cpp
    A libc/src/pthread/pthread_cond_wait.h
    M libc/test/integration/src/pthread/CMakeLists.txt
    A libc/test/integration/src/pthread/pthread_cond_test.cpp

  Log Message:
  -----------
  [libc] add `pthread_cond_*` public interfaces (#193656)


  Commit: e2170a0f18cd221a06c43aa9af9a53a5ea7abab3
      https://github.com/llvm/llvm-project/commit/e2170a0f18cd221a06c43aa9af9a53a5ea7abab3
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  Log Message:
  -----------
  [VPlan] Remove unused LVer arg from tryToBuildVplanWithVPRecipes (NFC). (#193950)

LVer is not used.


  Commit: a528529064db20a0d18645eebee9ebb4e05e7eb0
      https://github.com/llvm/llvm-project/commit/a528529064db20a0d18645eebee9ebb4e05e7eb0
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/Interp.cpp
    M clang/lib/AST/ByteCode/Interp.h
    A clang/test/AST/ByteCode/libcxx/constexpr-unknown-getbase.cpp

  Log Message:
  -----------
  [clang][bytecode] Allow constexpr-unknown values in GetPtrBase{,Pop} (#193903)

We can handle them here and it's needed to make some libc++ tests work.


  Commit: 4c66205b070cdb8d18f9456ebbb5c592b5134487
      https://github.com/llvm/llvm-project/commit/4c66205b070cdb8d18f9456ebbb5c592b5134487
  Author: David Spickett <david.spickett at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M lldb/include/lldb/Target/ABI.h
    M lldb/source/Commands/CommandObjectMemory.cpp
    M lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp
    M lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.h
    M lldb/test/API/linux/aarch64/permission_overlay/TestAArch64LinuxPOE.py
    M lldb/test/API/linux/aarch64/permission_overlay/main.c

  Log Message:
  -----------
  [lldb][Linux] Add overlay and effective permissions to "memory region" (#184115)

In this change I'm extending the "memory region" command to show users
the
overlay permissions that a protection key refers to, and the result of
applying that overlay to the page table permissions.

For example, protection key 0 refers to Perm0 in the por register.
```
(lldb) register read por 
             Perm0 = Read, Write, Execute
```
This is the default key, so many regions use it. 
```
(lldb) memory region --all
<...>
[0x000ffffff7db0000-0x000ffffff7f40000) r-x /usr/lib/aarch64-linux-gnu/libc.so.6 PT_LOAD[0]
protection key: 0 (rwx, effective: r-x)
```
Protection keys can only change what was already enabled in the 
page table. So we start with read and execute. Then a read/write/execute
overlay
is applied. We cannot add write, so the result is read and execute.

Here's an example of its use with a real crash (output edited):
```
(lldb) c
* thread #1, name = 'test.o', stop reason = signal SIGSEGV: failed protection key checks (fault address=0xffffff7d60000)
-> 106    read_only_page[0] = '?';
(lldb) memory region 0xffffff7d60000
[0x000ffffff7d60000-0x000ffffff7d70000) rw- 
protection key: 6 (r--, effective: r--)
(lldb) register read por 
             Perm6 = Read
```
The calculation of permissions is implemented by a new ABI method.
It's in ABI for 2 reasons:
* These overlays are usually in a register (X86 and AArch64 are)
  and that register name is architecture specific.
* The way the overlay values apply may differ between architecture.
  AArch64 treats a set bit as adding a permission, but some may 
  treat it as removing.

Technically this is dependent on operating system and architecture.
However, so are the methods for removing non-address bits, and those
are in ABI too.

To test this I have changed the allocations in the test program
to use read+execute permissions by default. With read+write+execute
I could not observe that the overlay only changes enabled permissions.


  Commit: bb3d25167abe9e8f4afa5cf8925577f1843674d5
      https://github.com/llvm/llvm-project/commit/bb3d25167abe9e8f4afa5cf8925577f1843674d5
  Author: Petter Berntsson <petter.berntsson at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M libc/docs/CMakeLists.txt
    M libc/docs/headers/index.rst
    A libc/utils/docgen/sys/select.yaml

  Log Message:
  -----------
  [libc][docs][POSIX] Add sys/select.h implementation status (#122006) (#193948)

Add sys/select.h implementation-status docs to llvm-libc.


  Commit: d3f4fc750db91378aaf6e2170ceea45af022f3e7
      https://github.com/llvm/llvm-project/commit/d3f4fc750db91378aaf6e2170ceea45af022f3e7
  Author: Jonathan Thackray <jonathan.thackray at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/arm_sve.td

  Log Message:
  -----------
  [AArch64][clang] Fix typos in `arm_sve.td` (NFC) (#192981)

Rename some typos in `arm_sve.td`, rather than perpetuate them (since
I'll be adding more MMLA intrinsics shortly).

No functional change.


  Commit: 7b68b4b2c196c922a10f6406675d5dbc3bfbc716
      https://github.com/llvm/llvm-project/commit/7b68b4b2c196c922a10f6406675d5dbc3bfbc716
  Author: David Spickett <david.spickett at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M lldb/docs/use/aarch64-linux.md
    M llvm/docs/ReleaseNotes.md

  Log Message:
  -----------
  [lldb][docs] Document AArch64 Linux Permission Overlay support (#184119)

This change adds a user guide and release notes for POE.


  Commit: 629f81599d6e2069fcaafb3947ad65d60844f127
      https://github.com/llvm/llvm-project/commit/629f81599d6e2069fcaafb3947ad65d60844f127
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/test/CodeGen/X86/freeze-binary.ll

  Log Message:
  -----------
  [X86] freeze-binary.ll - regenerate to show VPADD constant asm comments (#193953)


  Commit: 48e0e16886f96e80de2f3390785ef7a373b562bc
      https://github.com/llvm/llvm-project/commit/48e0e16886f96e80de2f3390785ef7a373b562bc
  Author: Charles Zablit <c_zablit at apple.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py

  Log Message:
  -----------
  [lldb-dap] extend env when testing reverse request (#193743)

When testing lldb-dap's "runInTerminal" mode, the `"env"` argument is
meant to extend/override the current environment, not replace it.

This causes issues on Windows when Python is not in the System's Path.
The reverse request fails because lldb-dap can't find Python.


  Commit: b5d253cf31c2f72fd54a039ac20ae9b56bc933fb
      https://github.com/llvm/llvm-project/commit/b5d253cf31c2f72fd54a039ac20ae9b56bc933fb
  Author: Eugene Epshteyn <eepshteyn at nvidia.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M flang/test/Lower/OpenMP/Todo/omp-default-clause-inner-loop.f90
    M flang/test/Lower/namelist-common-block.f90
    M flang/test/Lower/nested-where.f90
    M flang/test/Lower/nullify.f90
    M flang/test/Lower/optional-value-caller.f90

  Log Message:
  -----------
  [flang][NFC] Converted five tests from old lowering to new lowering (part 47) (#193886)

Tests converted from test/Lower: namelist-common-block.f90,
nested-where.f90, nullify.f90,
OpenMP/Todo/omp-default-clause-inner-loop.f90, optional-value-caller.f90


  Commit: ee4d927dfc01f124cbb3f0302d6f273e0894c637
      https://github.com/llvm/llvm-project/commit/ee4d927dfc01f124cbb3f0302d6f273e0894c637
  Author: Henry Wu <henrywu at mathworks.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg-resize.mlir

  Log Message:
  -----------
  [mlir][tosa] Fix integer bilinear (quantized) tosa.resize lowering to use floordivsi (#193821)

## Background

`tosa.resize` in bilinear integer (quantized) mode lowers to a
`linalg.generic`
body that, for each output pixel, computes a corresponding input
coordinate and
blends the four neighboring input pixels. The mapping is:

```
val   = out_coord * scale_d + offset
index = val / scale_n          // integer part — which input pixel to start from
delta = val - index * scale_n  // fractional part, scaled to [0, scale_n)
```

`delta` is the interpolation weight toward the next pixel. The bilinear
formula
(integer path) is:

```
topAcc    = pixel[y0,x0] * (scale_x - dx) + pixel[y0,x1] * dx
bottomAcc = pixel[y1,x0] * (scale_x - dx) + pixel[y1,x1] * dx
result    = topAcc * (scale_y - dy) + bottomAcc * dy
```

For this to be a valid convex combination (interpolation, not
extrapolation),
`dx` and `dy` must be in `[0, scale_n]`.

The pixel indices `y0`, `y1`, `x0`, `x1` are computed by
`getClampedIdxs`:

```cpp
y0 = clamp(iy,   0, H-1)
y1 = clamp(iy+1, 0, H-1)
```

---

## The Bug

The integer path uses `DivSIOp` (truncation toward zero):

```cpp
// getIndexAndDeltaInt — mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
index = arith::DivSIOp::create(b, val, scaleN);   // truncates toward zero
delta = arith::MulIOp::create(b, index, scaleN);
delta = arith::SubIOp::create(b, val, delta);      // = val - (val/scaleN)*scaleN
```

When `val < 0` (which happens at boundary output pixels when `offset` is
negative), `DivSIOp` truncates toward zero instead of toward -∞. This
produces
a negative remainder, i.e. a negative `delta`, which causes
extrapolation.

Note: the code comment on line 2058 already says `// ix = floor(x /
scale_n)`,
but the code uses truncation — this mismatch is the root cause of the
bug.

The float path (`getIndexAndDeltaFp`) uses `FloorDivSIOp` and is
unaffected:
with floor division, `r = val - floor(val/scaleN)*scaleN` is always in
`[0, scaleN-1]`.

---

## Concrete Example

**Setup:** 2×2 input upsampled to 4×4, `scale=[4,2,4,2]`,
`offset=[-1,-1]`

- `scale_y_n=4`, `scale_y_d=2`, `scale_x_n=4`, `scale_x_d=2`
- `offset_y=-1`, `offset_x=-1`
- Input: `tensor<1x2x2x1xi8>` with `input[0,0,0,0]=100`, all others `0`

**At output pixel (0,0):**

```
val  = 0 * 2 + (-1) = -1
```

### Without any fix (DivSIOp, buggy)

```
iy  = DivSIOp(-1, 4) = 0     // truncates -0.25 toward zero
dy  = -1 - 0*4 = -1          // OUT OF RANGE: should be in [0, 4]

y0 = clamp(0,   0, 1) = 0
y1 = clamp(0+1, 0, 1) = 1    // different rows

ix  = DivSIOp(-1, 4) = 0
dx  = -1                      // same issue

x0 = clamp(0,   0, 1) = 0
x1 = clamp(0+1, 0, 1) = 1

// pixels:
y0x0 = input[0,0,0,0] = 100
y0x1 = input[0,0,1,0] = 0
y1x0 = input[0,1,0,0] = 0
y1x1 = input[0,1,1,0] = 0

topAcc    = 100*(4-(-1)) + 0*(-1) = 500   // EXTRAPOLATION
bottomAcc = 0*(4-(-1))   + 0*(-1) = 0
result    = 500*(4-(-1)) + 0*(-1) = 2500  // WRONG
```


### Fix w/ FloorDivSIOp

```
iy  = FloorDivSIOp(-1, 4) = -1   // floors -0.25 toward -∞
dy  = -1 - (-1)*4 = 3            // naturally in [0, scale_n-1]

y0 = clamp(-1,  0, 1) = 0
y1 = clamp(-1+1, 0, 1) = 0      // SAME row — both snap to boundary

dx  = 3 (same by symmetry)

// all four neighbors collapse to the same boundary pixel:
y0x0 = y0x1 = y1x0 = y1x1 = input[0,0,0,0] = 100

topAcc    = 100*(4-3) + 100*3 = 400
bottomAcc = 100*(4-3) + 100*3 = 400
result    = 400*(4-3) + 400*3 = 1600  // correct
```

`y0=y1=0` means boundary replication is enforced by `getClampedIdxs`,
making
`dy` irrelevant.

## Semantic Analysis of the fix

- `iy=-1` correctly signals "this position is before the first input
pixel."
- `getClampedIdxs` does its intended job: both `y0` and `y1` snap to the
  boundary pixel, enforcing replication explicitly.
- `dy=3` **appears** valid (it's in `[0, scale_n-1]`) but is
semantically
meaningless: the true position is `-0.25`, which is outside the image —
there
is no "3/4 toward the next pixel" to interpolate toward. It is harmless
only
  because `y0=y1`. 
- Same analysis for dx=3 by symmetry.
- Fixes the root cause (wrong division op, matching the existing code
comment
and mirroring the float path), but `delta` still carries a misleading
value
  at out-of-bounds positions.


  Commit: 97b7cee34583c4f1a1b9fc258d29969423762fed
      https://github.com/llvm/llvm-project/commit/97b7cee34583c4f1a1b9fc258d29969423762fed
  Author: Erich Keane <ekeane at nvidia.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
    M clang/include/clang/CIR/Dialect/IR/CIROps.td
    M clang/lib/CIR/CodeGen/CIRGenCXX.cpp
    M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
    M clang/lib/CIR/CodeGen/CIRGenDeclCXX.cpp
    M clang/lib/CIR/CodeGen/CIRGenFunction.h
    M clang/lib/CIR/CodeGen/CIRGenModule.h
    M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
    M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
    M clang/test/CIR/CodeGen/static-local.cpp
    M clang/test/CIR/IR/invalid-static-local.cir
    M clang/test/CIR/IR/static-local.cir

  Log Message:
  -----------
  [CIR] Introduce LocalInitOp, & lower static locals (#193576)

During an investigation of something else, I discovered that our
handling of static-local as a ctor/dtor on a GlobalOp meant that it
couldn't actually be initialized with reference to any local, parameter,
or member declarations. This is obviously problematic.

This patch instead introduces a `LocalInitOp`, which is an operation
that represents the location of initialization for the static local.
This is lowered during lowering-prepare, same as we did previously (in
fact, it uses basically the exact same lowering code, with some slight
modifications).

Lowering from AST itself splits slightly from global declarations, but
the two share implementation as closely as possible.

At the moment, this operation only works for static-locals, and has a
handful of asserts to do the same. It is intended that the
thread-local-storage use the exact same mechanism, with some slight
modifications to the lowering-prepare pass to introduce the different
init behavior.


  Commit: aca5d1ed27f7191435e5560329aaa99bb4fac593
      https://github.com/llvm/llvm-project/commit/aca5d1ed27f7191435e5560329aaa99bb4fac593
  Author: NeKon69 <nobodqwe at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/include/clang/Analysis/Analyses/LifetimeSafety/Facts.h
    M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
    M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeSafety.h
    M clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Analysis/LifetimeSafety/Checker.cpp
    M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
    M clang/lib/Analysis/LifetimeSafety/Loans.cpp
    M clang/lib/Sema/SemaLifetimeSafety.h
    M clang/test/Sema/Inputs/lifetime-analysis.h
    M clang/test/Sema/warn-lifetime-safety-suggestions.cpp
    M clang/test/Sema/warn-lifetime-safety.cpp

  Log Message:
  -----------
  [LifetimeSafety] Remerge "Add support for `new`/`delete`" (#193776)

This PR extends LifetimeSafety to support heap allocations via
`new`/`delete`.

# Contents

* Adds a new warning emitted for use-after-free.

* Renames `reportUseAfterFree` to `reportUseAfterScope`, since the old
name was misleading (the warnings are still called `use_after_scope`).

* Adds a new `AccessPath::Kind` value, `NewAllocation`, which is used
for loans issued from `new` allocations.

* Adds `VisitCXXNewExpr` and `VisitCXXDeleteExpr`, which handle loan
issuance and origin propagation for `new` and `delete`.

* Comes with extensive test coverage for the new features, including new
use-after-free tests and use-after-scope coverage for `new`.

Remerges #192504

# Changes over original PR

* Fixed a crash when allocating `void*`, and added a regression test for
it

* The `AccessPath` root implementation was changed in #193520, so this
now builds on 32-bit systems

Completes part of #164963

Assisted-by: GPT-5.4 for writing most of the tests (the remaining tests,
and everything else in this PR, were written by me).


  Commit: 8baf33522df35c4e3c1dcd90e66d68976c0de256
      https://github.com/llvm/llvm-project/commit/8baf33522df35c4e3c1dcd90e66d68976c0de256
  Author: Amina Chabane <amina.chabane at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M bolt/lib/Passes/JTFootprintReduction.cpp
    M bolt/test/AArch64/unsupported-passes.test

  Log Message:
  -----------
  [BOLT][AArch64] Refuse to run JTFootprintReduction pass (#193946)

JTFootprintReduction results in a no-op on AArch64. This is because it
emits createIJmp32Frag() which is unimplemented for AArch64 and is only
overridden by x86.

- Add a guard for non-x86
- Update unsupported-passes.test with expected error message


  Commit: 8e5b38383f1ecb1c93fbe19b6228b45659decf2d
      https://github.com/llvm/llvm-project/commit/8e5b38383f1ecb1c93fbe19b6228b45659decf2d
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M flang/lib/Parser/openmp-parsers.cpp

  Log Message:
  -----------
  [flang][OpenMP] Rename dirSpec to spec in openmp-parsers.cpp, NFC (#193967)


  Commit: 6c7d16c0bfd38afc8c4131510740737113451f22
      https://github.com/llvm/llvm-project/commit/6c7d16c0bfd38afc8c4131510740737113451f22
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M libclc/CMakeLists.txt

  Log Message:
  -----------
  [libclc] Use 'LLVM_DEFAULT_TARGET_TRIPLE' instead of 'LLVM_RUNTIMES_TARGET' (#193969)

Summary:
The 'LLVM_RUNTIMES_TARGET' variable is the raw value used by the LLVM
CMake. It can contain multilib arguments which will not compile when
used as a triple. The more canonical value is
`LLVM_DEFAULT_TARGET_TRIPLE`, which is used by flang-rt, libc, openmp,
etc.


  Commit: 771440f5bb2e0684a82c770293f561d17aedd0c0
      https://github.com/llvm/llvm-project/commit/771440f5bb2e0684a82c770293f561d17aedd0c0
  Author: Petter Berntsson <petter.berntsson at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M libc/docs/CMakeLists.txt
    M libc/docs/headers/index.rst
    A libc/utils/docgen/dlfcn.yaml

  Log Message:
  -----------
  [libc][docs] Add dlfcn.h implementation status (#122006) (#193972)

Add dlfcn.h implementation-status docs to llvm-libc.


  Commit: c49b1773b2236a759dfedd3b5b67eb11856a9cbb
      https://github.com/llvm/llvm-project/commit/c49b1773b2236a759dfedd3b5b67eb11856a9cbb
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang-tools-extra/clangd/ModulesBuilder.cpp
    M clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp

  Log Message:
  -----------
  [clangd] [C++20] [Modules] Introduce GC for clangd built modules (#193973)

This patch introduces simple GC for clangd built module files to avoid
the clangd built module cache to increase infinitely.

The strategy is, in a clangd built module file cache, if the clangd
built module (we think all PCM files in clangd cache are built by
clangd) was not accessed in a time (by default 3 day, controlled by
--modules-builder-versioned-gc-threshold-seconds),clangd will remove it.

The strategy is not perfect. e.g., I heard in some systems, the atime
was forbid or not update. But given a trade off between usability and
maintainability. I feel the current stategy is fine.

AI assisted.


  Commit: 2168f4b3d3bf22e360d016b583ef5f1f0650cc70
      https://github.com/llvm/llvm-project/commit/2168f4b3d3bf22e360d016b583ef5f1f0650cc70
  Author: Eugene Epshteyn <eepshteyn at nvidia.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M flang/test/Lower/pointer-args-caller.f90
    M flang/test/Lower/pointer-assignments.f90
    M flang/test/Lower/pointer-association-polymorphic.f90
    M flang/test/Lower/pointer-default-init.f90
    M flang/test/Lower/pointer-disassociate.f90

  Log Message:
  -----------
  [flang][NFC] Converted five tests from old lowering to new lowering (part 48) (#193889)

Tests converted from test/Lower: pointer-args-caller.f90,
pointer-assignments.f90, pointer-association-polymorphic.f90,
pointer-default-init.f90, pointer-disassociate.f90


  Commit: f1f2022f4f18ff31aea852a0e903ba85d28f5717
      https://github.com/llvm/llvm-project/commit/f1f2022f4f18ff31aea852a0e903ba85d28f5717
  Author: Petter Berntsson <petter.berntsson at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M libc/docs/CMakeLists.txt
    M libc/docs/headers/index.rst
    A libc/utils/docgen/sys/uio.yaml

  Log Message:
  -----------
  [libc][docs] Add sys/uio.h implementation status (#122006) (#193980)

Add sys/uio.h implementation-status docs to llvm-libc.


  Commit: 52534a1e1207aa1a983d7ee47e5e3a871b7373e5
      https://github.com/llvm/llvm-project/commit/52534a1e1207aa1a983d7ee47e5e3a871b7373e5
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/lib/AST/StmtProfile.cpp
    R clang/test/Modules/callable-require-clause-merge.cppm
    M clang/test/Modules/polluted-operator.cppm

  Log Message:
  -----------
  Revert "[C++20] [Modules] Don't profiling the callee of CXXFoldExpr (#190732)" (#193975)

This reverts commit 4c2e49dc5ce3125be9fb07dcefe9be970ce739ec.

See the discussion in https://github.com/llvm/llvm-project/pull/193885
for detail


  Commit: c92bf56cd7bb9861bb52eaf2a75680149a25ec5c
      https://github.com/llvm/llvm-project/commit/c92bf56cd7bb9861bb52eaf2a75680149a25ec5c
  Author: David Spickett <david.spickett at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M lldb/docs/use/aarch64-linux.md
    M lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
    M lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp
    M lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h
    M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
    M lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp
    M lldb/test/API/linux/aarch64/permission_overlay/TestAArch64LinuxPOE.py
    M lldb/test/API/linux/aarch64/permission_overlay/main.c

  Log Message:
  -----------
  [lldb][AArch64][Linux] Rename "por" register to "por_el0" (#193983)

As agreed with my Arm colleagues working on GDB.

The suffix means we are matching the architectural name exactly, and
reducing confusion if you're
debuging multiple exception levels where there could be por_el<N> as
well.

In the process of updating the tests I found some
"register read" output has changed alignment so I
have fixed that too.


  Commit: 785d7246bf16e72c367f7428866cb0cc5ad884bb
      https://github.com/llvm/llvm-project/commit/785d7246bf16e72c367f7428866cb0cc5ad884bb
  Author: Joe Nash <joseph.nash at amd.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/VOPDInstructions.td
    A llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vopd3_unused_operands.txt

  Log Message:
  -----------
  [AMDGPU][Disassembler] Permit unneeded VOPD3 operands to be non-zero (#193974)

Use ? instead of 0 in the tablegen definitions for those unused operands
of VOPD3 instructions.
This enables the instruction to be disassembled regardless of what bits
are in those fields, which helps diagnose broken code. Previously, the
disassembler would reject these.


  Commit: 4837b0a476ebf54bdd19c783b01f7235a428a7cc
      https://github.com/llvm/llvm-project/commit/4837b0a476ebf54bdd19c783b01f7235a428a7cc
  Author: Utkarsh Saxena <usx at google.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/lib/Analysis/LifetimeSafety/Checker.cpp
    M clang/test/Sema/Inputs/lifetime-analysis.h
    M clang/test/Sema/warn-lifetime-safety-suggestions.cpp

  Log Message:
  -----------
  [LifetimeSafety] Suppress suggestion/inference for moved loans (#193899)

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


  Commit: 08992737d23113d3b9a78974b87b1ba3e7ecb6cb
      https://github.com/llvm/llvm-project/commit/08992737d23113d3b9a78974b87b1ba3e7ecb6cb
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

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

  Log Message:
  -----------
  [VPlan] Use early continue in ::buildVPlansWithVPRecipes (NFC). (#193979)

Reduce nesting by using early continue, split off from
https://github.com/llvm/llvm-project/pull/192868


  Commit: 25a035d944868def9b5a43399eb48cdee2ef2fa3
      https://github.com/llvm/llvm-project/commit/25a035d944868def9b5a43399eb48cdee2ef2fa3
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/Interp.h
    M clang/test/AST/ByteCode/c.c

  Log Message:
  -----------
  [clang][bytecode] Reject float-to-int casts on non-numbers (#193968)


  Commit: b0931483280db3a34c0228a859bd1fcb9af3902f
      https://github.com/llvm/llvm-project/commit/b0931483280db3a34c0228a859bd1fcb9af3902f
  Author: hulxv <hulxxv at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M libc/shared/math.h
    A libc/shared/math/dmulf128.h
    A libc/shared/math/dmull.h
    M libc/src/__support/math/CMakeLists.txt
    A libc/src/__support/math/dmulf128.h
    A libc/src/__support/math/dmull.h
    M libc/src/math/generic/CMakeLists.txt
    M libc/src/math/generic/dmulf128.cpp
    M libc/src/math/generic/dmull.cpp
    M libc/test/shared/CMakeLists.txt
    M libc/test/shared/shared_math_constexpr_test.cpp
    M libc/test/shared/shared_math_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc][math] Refactor dmul family to header-only (#182151)

Refactors the dmul math family to be header-only.

Closes https://github.com/llvm/llvm-project/issues/182150

Target Functions:
  - dmulf128
  - dmull


  Commit: 87a9cbaed1d6a6c7759d20279436914bb15343f0
      https://github.com/llvm/llvm-project/commit/87a9cbaed1d6a6c7759d20279436914bb15343f0
  Author: Brian Cain <brian.cain at oss.qualcomm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
    M compiler-rt/lib/tysan/tysan_platform.h

  Log Message:
  -----------
  [compiler-rt][TySan] Add Hexagon target support (#191603)

Add shadow memory mapping for Hexagon (32-bit architecture) and enable
the TySan build for the Hexagon target.

Hexagon uses a 4-byte shadow entry (PtrShift=2) with the shadow region
at 0x80000000-0xBFFFFFFF (1GB). A 28-bit mask (kAppMemMsk) covers 256MB
of app address space; addresses differing only in bits 28-31 alias in
the shadow. kAppAddr is set to 0xC0000000 to size the mmap to exactly
the 1GB shadow region.


  Commit: 94cdc55d8a7734ed06d60c169c878231d4952470
      https://github.com/llvm/llvm-project/commit/94cdc55d8a7734ed06d60c169c878231d4952470
  Author: Jianhui Li <jian.hui.li at intel.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
    M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir

  Log Message:
  -----------
  [MLIR][XeGPU] Remove use-by-broadcast-only restriction for ShapeCast op in Wg-to-Sg distribution pass (#193640)

The WgToSgVectorShapeCastOp pattern previously required that
vector.shape_cast operations expanding unit dimensions could only be
used by vector.broadcast operations. This constraint was not necessary
anymore after the recent refectory.


  Commit: cd4ac81779e0ce4ca967705f2182676e7473e814
      https://github.com/llvm/llvm-project/commit/cd4ac81779e0ce4ca967705f2182676e7473e814
  Author: Ryan Buchner <rbuchner at qti.qualcomm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/test/Transforms/SLPVectorizer/RISCV/basic-strided-loads.ll

  Log Message:
  -----------
  [SLP] Add new test for widened strided loads of > i8 width (#193901)

Currently we don't vectorize into strided loads as expected.


  Commit: 0642d03c76b3a084935f94869b8ab7508aa889fc
      https://github.com/llvm/llvm-project/commit/0642d03c76b3a084935f94869b8ab7508aa889fc
  Author: Guray Ozen <guray.ozen at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td

  Log Message:
  -----------
  [MLIR][NVVM] Remove ptx version for consistency (#193991)


  Commit: 0f861ec33ae6c0b0573207e4796e5a85748ff413
      https://github.com/llvm/llvm-project/commit/0f861ec33ae6c0b0573207e4796e5a85748ff413
  Author: Guray Ozen <guray.ozen at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
    M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
    M mlir/test/Dialect/LLVMIR/nvvm-transcendentals.mlir
    M mlir/test/Target/LLVMIR/nvvm/transcendentals.mlir

  Log Message:
  -----------
  [MLIR][NVVM] Add `nvvm.cos` OP (#193792)

Implement `nvvm.cos` with ftz flag


  Commit: 1bd6f6636a395bdf0d995bf0d8fae2cd334ae590
      https://github.com/llvm/llvm-project/commit/1bd6f6636a395bdf0d995bf0d8fae2cd334ae590
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/LowerVectorIntrinsics.h
    M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/Transforms/Utils/LowerVectorIntrinsics.cpp
    R llvm/test/Transforms/PreISelIntrinsicLowering/AArch64/expand-fp-math-binary.ll
    R llvm/test/Transforms/PreISelIntrinsicLowering/RISCV/expand-fp-math-binary.ll

  Log Message:
  -----------
  Revert "[PreISelIntrinsicLowering] Expand binary elementwise intrinsics (#193552) (#193580) (#193990)

This reverts commit a1d11348aba4b70295ef9ada4a13a722455165d3.

Two problems have been identified:
- The expansion for powi was functionally wrong - the second argument
stales scalar even when the first is a vector.
- AArch64 uses the Expand option on libcalls to select vector libcalls
in some cases. The test coverage for this uses -start-after which
happens to miss this pass.


  Commit: eb17a2e19c854b0f4f3018f3e17d70340a3eb45f
      https://github.com/llvm/llvm-project/commit/eb17a2e19c854b0f4f3018f3e17d70340a3eb45f
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M libclc/CMakeLists.txt

  Log Message:
  -----------
  [libclc] Make sure PACKAGE_VERSION is set for libclc (#193966)

Summary:
This can be unset because CMake does not expose this as a raw variable
when you use the find_package interface. If it is not set as in the case
of standalone builds the clang resource directory won't be found


  Commit: deb84db5b4056eed1457a6b03148a486bbadd8ea
      https://github.com/llvm/llvm-project/commit/deb84db5b4056eed1457a6b03148a486bbadd8ea
  Author: Justin Bogner <mail at justinbogner.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/DirectX/DXILOpBuilder.cpp
    M llvm/test/CodeGen/DirectX/BufferLoad-sm61.ll
    M llvm/test/CodeGen/DirectX/BufferLoad.ll
    M llvm/test/CodeGen/DirectX/BufferStore-sm61.ll
    M llvm/test/CodeGen/DirectX/BufferStore.ll
    M llvm/test/CodeGen/DirectX/CreateHandle-NURI.ll
    M llvm/test/CodeGen/DirectX/CreateHandle.ll
    M llvm/test/CodeGen/DirectX/CreateHandleFromBinding-NURI.ll
    M llvm/test/CodeGen/DirectX/CreateHandleFromBinding.ll
    M llvm/test/CodeGen/DirectX/UAddc.ll
    M llvm/test/CodeGen/DirectX/WaveGetLaneIndex.ll
    M llvm/test/CodeGen/DirectX/abs.ll
    M llvm/test/CodeGen/DirectX/acos.ll
    M llvm/test/CodeGen/DirectX/asin.ll
    M llvm/test/CodeGen/DirectX/atan.ll
    M llvm/test/CodeGen/DirectX/ceil.ll
    M llvm/test/CodeGen/DirectX/comput_ids.ll
    M llvm/test/CodeGen/DirectX/cos.ll
    M llvm/test/CodeGen/DirectX/cosh.ll
    M llvm/test/CodeGen/DirectX/countbits.ll
    M llvm/test/CodeGen/DirectX/dot4add_i8packed.ll
    M llvm/test/CodeGen/DirectX/dot4add_u8packed.ll
    M llvm/test/CodeGen/DirectX/exp.ll
    M llvm/test/CodeGen/DirectX/fdot.ll
    M llvm/test/CodeGen/DirectX/floor.ll
    M llvm/test/CodeGen/DirectX/fma.ll
    M llvm/test/CodeGen/DirectX/fmad.ll
    M llvm/test/CodeGen/DirectX/fmax.ll
    M llvm/test/CodeGen/DirectX/fmin.ll
    M llvm/test/CodeGen/DirectX/frac.ll
    M llvm/test/CodeGen/DirectX/idot.ll
    M llvm/test/CodeGen/DirectX/imad.ll
    M llvm/test/CodeGen/DirectX/is_fpclass.ll
    M llvm/test/CodeGen/DirectX/isinf.ll
    M llvm/test/CodeGen/DirectX/isnan.ll
    M llvm/test/CodeGen/DirectX/log.ll
    M llvm/test/CodeGen/DirectX/log10.ll
    M llvm/test/CodeGen/DirectX/log2.ll
    M llvm/test/CodeGen/DirectX/reversebits.ll
    M llvm/test/CodeGen/DirectX/round.ll
    M llvm/test/CodeGen/DirectX/rsqrt.ll
    M llvm/test/CodeGen/DirectX/saturate.ll
    M llvm/test/CodeGen/DirectX/sin.ll
    M llvm/test/CodeGen/DirectX/sinh.ll
    M llvm/test/CodeGen/DirectX/smax.ll
    M llvm/test/CodeGen/DirectX/smin.ll
    M llvm/test/CodeGen/DirectX/splitdouble.ll
    M llvm/test/CodeGen/DirectX/sqrt.ll
    M llvm/test/CodeGen/DirectX/tan.ll
    M llvm/test/CodeGen/DirectX/tanh.ll
    M llvm/test/CodeGen/DirectX/trunc.ll
    M llvm/test/CodeGen/DirectX/umad.ll
    M llvm/test/CodeGen/DirectX/umax.ll
    M llvm/test/CodeGen/DirectX/umin.ll

  Log Message:
  -----------
  [DirectX] Apply DXIL op fnattrs to declarations (#193622)

We need to apply DXIL op attributes to the functions themselves, and all
DXIL ops should have the `unwind` attribute. This matches the DXC
behaviour and what consumers like warp's GPU-based validation expect.

Fixes #193620


  Commit: 0b449f66927f1dcfdbcfac58efdb037dd6f77a33
      https://github.com/llvm/llvm-project/commit/0b449f66927f1dcfdbcfac58efdb037dd6f77a33
  Author: Abid Qadeer <haqadeer at amd.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/test/Driver/do_concurrent_to_omp_cli.f90

  Log Message:
  -----------
  [flang] Fix abort on invalid -fdo-concurrent-to-openmp value. (#193929)

We observed that following command can cause an assertion fail
 `flang -fopenmp -fdo-concurrent-to-openmp=devic,e` <file>

It happened because `parseDoConcurrentMapping` reported an error but
still called `val.value()` on failure, tripping std::optional
assertions.

The fix is to return false on error and wire return into
`createFromArgs`.


  Commit: a614cd391a402c8682c7b4781121eab07da09ec7
      https://github.com/llvm/llvm-project/commit/a614cd391a402c8682c7b4781121eab07da09ec7
  Author: Charles Zablit <c_zablit at apple.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M lldb/tools/lldb-dap/Handler/RequestHandler.cpp

  Log Message:
  -----------
  [lldb-dap][windows] fix a race condition in runInTerminal mode (#193773)


  Commit: 1823355d06b854854701a8ba430aa1f6be9994f4
      https://github.com/llvm/llvm-project/commit/1823355d06b854854701a8ba430aa1f6be9994f4
  Author: SiliconA-Z <gfunni234 at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/test/CodeGen/ARM/hoist-and-by-const-from-lshr-in-eqcmp-zero.ll
    M llvm/test/CodeGen/ARM/hoist-and-by-const-from-shl-in-eqcmp-zero.ll

  Log Message:
  -----------
  [ARM] Fold SELECT (AND(X,1) == 0), C1, C2 -> XOR(C1,AND(NEG(AND(X,1)),XOR(C1,C2)) in Thumb1 (#185898)

Thumb1 has no native cmov, so this is a better solution.


  Commit: e8f32abba9a156257429b812eb867791800bc774
      https://github.com/llvm/llvm-project/commit/e8f32abba9a156257429b812eb867791800bc774
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetInstrInfo.h
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.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/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.h
    M llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
    M llvm/lib/Target/ARM/ARMBaseInstrInfo.h
    M llvm/lib/Target/CSKY/CSKYInstrInfo.cpp
    M llvm/lib/Target/LoongArch/LoongArchInstrInfo.cpp
    M llvm/lib/Target/MSP430/MSP430InstrInfo.cpp
    M llvm/lib/Target/Mips/MipsBranchExpansion.cpp
    M llvm/lib/Target/Mips/MipsInstrInfo.cpp
    M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.h
    M llvm/lib/Target/Sparc/SparcInstrInfo.cpp
    M llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
    M llvm/lib/Target/Xtensa/XtensaInstrInfo.cpp

  Log Message:
  -----------
  CodeGen: Fix double counting bundles in inst size verification (#191460)

The AMDGPU implementation handles bundles by summing the
member instructions. This was starting with the size of the
bundle instruction, then re-adding all of the same instructions.

This loop is over the iterator, not instr_iterator, so it should
not be looking through the bundled instructions. Most of the other
uses of getInstSizeInBytes are also on the iterator, not the
instr_iterator so the convention seems to be targets need to handle
BUNDLE correctly themselves.


  Commit: cbda767c2a413e8fb621bcc9460e948a7a444c74
      https://github.com/llvm/llvm-project/commit/cbda767c2a413e8fb621bcc9460e948a7a444c74
  Author: yonghong-song <yhs at fb.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/IR/ModuleSummaryIndex.cpp
    M llvm/lib/Transforms/IPO/FunctionImport.cpp
    M llvm/lib/Transforms/Utils/FunctionImportUtils.cpp
    A llvm/test/ThinLTO/X86/reduce-promotion-distributed.ll
    A llvm/test/ThinLTO/X86/reduce-promotion-same-local-name-distributed.ll

  Log Message:
  -----------
  [ThinLTO] Reduce the number of renaming due to promotions in distribu… (#188074)

…ted mode

For thin-lto, the pull request [1] reduced the number of renaming due to
promotions in process mode. This has been used in linux kernel ([2]) as
it helps kernel live patching a lot.

Recently, I found Rong Xu has added thin-lto distributed mode support in
linux kenrel ([3]) and it is likely to be merged in kernel as well. So
it would be a good idea for llvm to support reducing the number of
renaming in distributed mode too.

To implement this, in function gatherImportedSummariesForModule(),
import functions into summaries if those functions does not need rename.
This will ensure that imported functions have the same name as in there
original module.

  [1] https://github.com/llvm/llvm-project/pull/183793
[2]
https://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux.git/commit/?h=kbuild-for-next&id=dc3b90751d6ffa8865e09a81645a539b9de6d642
[3]
https://lore.kernel.org/linux-kbuild/20251028182822.3210436-3-xur@google.com/


  Commit: 1ba6cc0e318bb022dfd322e39df49c5f0dc89068
      https://github.com/llvm/llvm-project/commit/1ba6cc0e318bb022dfd322e39df49c5f0dc89068
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
    M clang/test/CodeGen/AArch64/neon-intrinsics.c
    M clang/test/CodeGen/AArch64/neon/intrinsics.c

  Log Message:
  -----------
  [clang][CIR] Add lowering for vcvtd_n_ and vcvts_n_ conversion intrinsics (#190961) (#193273)

This PR adds lowering for the missing conversion intrinsics with an
immediate argument (identified by `_n_` in the intrinsic name), namely
the `vcvts_n_` and `vcvtd_n_` variants.

It also moves the corresponding tests from:
  * clang/test/CodeGen/AArch64/neon_intrinsics.c

to:
  * clang/test/CodeGen/AArch64/neon/intrinsics.c

The lowering follows the existing implementation in
CodeGen/TargetBuiltins/ARM.cpp.

Reference:
[1] https://arm-software.github.io/acle/neon_intrinsics/advsimd.html#conversions


  Commit: df359d81659a248caccd935817fd3f20609b548c
      https://github.com/llvm/llvm-project/commit/df359d81659a248caccd935817fd3f20609b548c
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/slp-fma-loss.ll

  Log Message:
  -----------
  [SLP] Skip FMulAdd conversion for alt-shuffle FAdd/FSub nodes (#193960)

isAddSubLikeOp() admits alt-shuffle nodes that mix FAdd and FSub, so
transformNodes() was marking them with CombinedOp = FMulAdd. The cost
model then priced the node as a single llvm.fmuladd vector intrinsic,
but emission for an alt shuffle still goes through the ShuffleVector
path and produces fmul + fadd + fsub + shufflevector, which the backend
cannot fuse into a single fmuladd. The resulting under-count made SLP
choose the vector form over the scalar form even when the scalar form
lowers to real FMAs (e.g. fmadd + fmsub on AArch64).


  Commit: 63e36755decfc92ee5e457c292aeeb0a69cfa484
      https://github.com/llvm/llvm-project/commit/63e36755decfc92ee5e457c292aeeb0a69cfa484
  Author: Finn Plummer <mail at inbelic.dev>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicsDirectX.td
    A llvm/test/Transforms/DirectX/getpointer-sink-behavior.ll
    M llvm/test/Transforms/GVN/no-sink-dxgetpointer.ll
    M llvm/test/Transforms/SimplifyCFG/DirectX/no-sink-dxgetpointer.ll

  Log Message:
  -----------
  [DirectX] Denote `dx.resource.getpointer` with `IntrInaccessibleMemOnly` and `IntrReadMem` (#193593)

`IntrConvergent` was originally added to `dx.resource.getpointer` to
prevent optimization passes (`SimplifyCFG`, `GVN`) from sinking the
intrinsic out of control flow branches, which would create phi nodes on
the returned pointer.

Using `IntrInaccessibleMemOnly` and `IntrReadMem` semantics still
prevent passes from merging or sinking identical calls across branches.
However, this allows the call to be moved within a single control flow
path.

Updates relevant tests and adds a new test to demonstrate a now legal
potential optimization.

This was discovered when
https://github.com/llvm/llvm-project/pull/188792 caused the following
failure:
https://github.com/llvm/llvm-project/actions/runs/24577221310/job/71865579618.
When emitting convergence control tokens, each resource access is then a
user of the convergence control tokens, which makes it's use more
unnecessarily restrictive for optimizations and in this case would
prevent a loop unroll from taking place.

Assisted by: Claude Opus 4.6


  Commit: 0dc6e8c41e5f41ce3c7320eb4a1b2f2c9bc3da38
      https://github.com/llvm/llvm-project/commit/0dc6e8c41e5f41ce3c7320eb4a1b2f2c9bc3da38
  Author: Adel Ejjeh <adel.ejjeh at amd.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCExpr.cpp

  Log Message:
  -----------
  [AMDGPU][NFC] Refactor TryGetMCExprValue into evaluateMCExprs helper (#193859)

Replace the duplicated `TryGetMCExprValue` lambda in
`evaluateExtraSGPRs`, `evaluateTotalNumVGPR`, `evaluateAlignTo`, and
`evaluateOccupancy` with a shared static helper `evaluateMCExprs` that
takes an `initializer_list` of `uint64_t` references, enabling callers
to write:

```cpp
uint64_t VCCUsed, FlatScrUsed, XNACKUsed;
if (!evaluateMCExprs(Args, Asm, {VCCUsed, FlatScrUsed, XNACKUsed}))
  return false;
```

Split out from #192306 per reviewer feedback.

This PR was created with the help of Github Copilot Claude Opus.

---------

Co-authored-by: Copilot <copilot at github.com>


  Commit: 7c043b7a571c7a05f45110a94e7424a0eaa52fd8
      https://github.com/llvm/llvm-project/commit/7c043b7a571c7a05f45110a94e7424a0eaa52fd8
  Author: Andrey Pavlenko <andrey.a.pavlenko at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUTypes.td
    M mlir/lib/Conversion/VectorToXeGPU/VectorToXeGPU.cpp
    M mlir/test/Conversion/VectorToXeGPU/transfer-read-to-xegpu.mlir
    M mlir/test/Conversion/VectorToXeGPU/transfer-write-to-xegpu.mlir

  Log Message:
  -----------
  [MLIR][XeGPU][VectorToXeGPU] Fixed lowering of transfer_read/write for rank > 2 (#193308)

If rank > 2, load gather/store scatter are used.
Increased value type rank to 8.


  Commit: 61bfd7db9f551fabeb928c141ac1993ee143b37b
      https://github.com/llvm/llvm-project/commit/61bfd7db9f551fabeb928c141ac1993ee143b37b
  Author: Andy Kaylor <akaylor at nvidia.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
    A clang/test/CIR/CodeGen/self-assign.c
    M clang/test/CIR/IR/invalid-copy.cir

  Log Message:
  -----------
  [CIR] Tolerate identical source and destination in cir.copy (#193852)

The SIBsim4 test in the llvm-test-suite MultiSource tests has code that
initializes a structure with itself. This was triggering a CIR
verifcation error because we were checking for source and destination
addresses matching. Since Clang allows this, this change is updating the
cir.copy operation to allow it.


  Commit: b3cc1929966eed250d9207692aa15fc91e3e8a36
      https://github.com/llvm/llvm-project/commit/b3cc1929966eed250d9207692aa15fc91e3e8a36
  Author: Shafik Yaghmour <shafik.yaghmour at intel.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/Context.cpp
    M clang/lib/AST/ByteCode/Context.h

  Log Message:
  -----------
  [NFC][Clang][ByteCode] Apply rule of three to Context and EvalIDScope (#193856)

Static analysis flagged these because they had destructor but did not
define copy constructor or copy assignment. For `EvalIDScope` I defined
them as deleted and was able to default the destructor for `Context`.


  Commit: 323c3da8dcb81c0fa478fa837954d95b9f39f83e
      https://github.com/llvm/llvm-project/commit/323c3da8dcb81c0fa478fa837954d95b9f39f83e
  Author: laoshd <shandong.lao at hpe.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M flang-rt/include/flang-rt/runtime/format-implementation.h
    M flang-rt/include/flang-rt/runtime/format.h
    M flang-rt/lib/runtime/edit-input.cpp
    M flang-rt/lib/runtime/edit-output.cpp
    M flang-rt/unittests/Runtime/Format.cpp
    M flang-rt/unittests/Runtime/NumericalFormatTest.cpp
    M flang/docs/F202X.md
    M flang/include/flang/Common/format.h
    M flang/include/flang/Parser/format-specification.h
    M flang/lib/Parser/io-parsers.cpp
    M flang/lib/Parser/unparse.cpp
    A flang/test/Semantics/io19.f90

  Log Message:
  -----------
  [flang] [flang-rt] Implement AT edit descriptor for Fortran 202X with appropriate handling and tests (#189157)

This PR is to add AT edit descriptor, a new feature of Fortran 2023, 5.1
US 10.

AT is like A (character output) but trims trailing blanks before
emitting the string. AT is functionally the same as TRIM intrinsic.

AT is treated as a variant of A during parse. The trimming of the
trailing spaces are implemented the same as TRIM(). There exists a
method, LenTrim, that can be used to do the trimming. However it's local
to a different .cpp file, character.cpp. And the code is so simple that
no need to make extra effort to use LenTrim.

AT is output only and do not accept width.

This PR will fix #181379.


  Commit: b06f62f7fc82ae464528e364119f30e9c8bbbe42
      https://github.com/llvm/llvm-project/commit/b06f62f7fc82ae464528e364119f30e9c8bbbe42
  Author: Narayan <nsreekumar6 at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    A llvm/include/llvm/ABI/TargetInfo.h
    M llvm/include/llvm/ABI/Types.h
    M llvm/lib/ABI/CMakeLists.txt
    A llvm/lib/ABI/TargetInfo.cpp
    M llvm/lib/ABI/Types.cpp

  Log Message:
  -----------
  [llvm] Introduce TargetInfo (#190730)

This PR introduces ABIInfo and TargetCodeGenInfo, the abstract ABI
lowering layer for the LLVM ABI library introduced in #158329.

This is a direct parallel to clang::ABIInfo and
clang::TargetCodeGenInfo, but operating entirely on the llvm::abi type
system rather than Clang's AST, keeping ABI logic independent of the
frontend. It is a prerequisite for implementing the target specific
lowering passes that lower FunctionInfo to LLVM IR calling conventions.

Co-authored-by: Nikita Popov <npopov at redhat.com>


  Commit: a1a4da0416ad66e31d7cacda3231e4683dd026a8
      https://github.com/llvm/llvm-project/commit/a1a4da0416ad66e31d7cacda3231e4683dd026a8
  Author: hulxv <hulxxv at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M libc/shared/math.h
    A libc/shared/math/ddivf128.h
    A libc/shared/math/ddivl.h
    M libc/src/__support/math/CMakeLists.txt
    A libc/src/__support/math/ddivf128.h
    A libc/src/__support/math/ddivl.h
    M libc/src/math/generic/CMakeLists.txt
    M libc/src/math/generic/ddivf128.cpp
    M libc/src/math/generic/ddivl.cpp
    M libc/test/shared/CMakeLists.txt
    M libc/test/shared/shared_math_constexpr_test.cpp
    M libc/test/shared/shared_math_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc][math] Refactor ddiv family to header-only (#182149)

Refactors the ddiv math family to be header-only.

Closes https://github.com/llvm/llvm-project/issues/182148

Target Functions:
  - ddivf128
  - ddivl


  Commit: 8e4f0ce6985354e90caa4deed80331e34cd7fb1c
      https://github.com/llvm/llvm-project/commit/8e4f0ce6985354e90caa4deed80331e34cd7fb1c
  Author: Helena Kotas <hekotas at microsoft.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaDeclCXX.cpp
    R clang/test/CodeGenHLSL/GlobalDestructors.hlsl
    R clang/test/CodeGenHLSL/inline-constructors.hlsl
    A clang/test/SemaHLSL/Constructors.hlsl
    M clang/test/SemaHLSL/GlobalConstructors.hlsl

  Log Message:
  -----------
  [HLSL] Remove support for user-defined constructors and destructors (#193375)

This change removes the support for user-defined constructors and
destructors.

Authored-by: Sarah Spall <sarahspall at microsoft.com>

Related to #185466


  Commit: 589d337d3d442bbf77530452bd2322de73904ba1
      https://github.com/llvm/llvm-project/commit/589d337d3d442bbf77530452bd2322de73904ba1
  Author: Ryan Buchner <rbuchner at qti.qualcomm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/RISCV/basic-strided-loads.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/revec-strided-load.ll

  Log Message:
  -----------
  [SLP] Update analyzeRtStrideCandidate() to correctly handle types widen than i8 (including revectorization)  (#191878)

Previously there was an implicit assumption that each input access only accessed a single byte.


  Commit: b785dc42c7b1877dfae16a15ff4091b699579c8c
      https://github.com/llvm/llvm-project/commit/b785dc42c7b1877dfae16a15ff4091b699579c8c
  Author: Andy Kaylor <akaylor at nvidia.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenModule.cpp
    M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
    A clang/test/CIR/CodeGen/no-proto-then-def.c
    M clang/test/CIR/CodeGen/no-prototype.c
    A clang/test/CIR/Transforms/cast-bitcast-funcptr-roundtrip-fold.cir

  Log Message:
  -----------
  [CIR] Update uses of no-prototype GetGlobalOp (#193868)

When a no-prototype function is replaced by a proper definition, we
update uses of the previous function, mostly cir::GetGlobalOp
operations. If the result of the GetGlobalOp was being used in a store,
this was leading to verifier errors because the type being stored no
longer matched the expected type. This change fixes that by introducing
a bitcast when the GetGlobalOp is updated. It also introduces a new cast
folder to eliminate cast chains that are circular after this new bitcast
is inserted.

Assisted-by: Cursor / claude-4.7-opus-high


  Commit: 3f3c26039f135688f832c1d228f20c32dca366bd
      https://github.com/llvm/llvm-project/commit/3f3c26039f135688f832c1d228f20c32dca366bd
  Author: Finn Plummer <mail at inbelic.dev>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/DirectX/DXILLegalizePass.cpp
    A llvm/test/CodeGen/DirectX/legalize-switch-unreachable.ll

  Log Message:
  -----------
  [DirectX] Resolve unreachable default branches in switch statements (#193592)

Add a legalization to resolve unreachable default branches in switch
statements. These are introduced when the
`CorrelatedValuePropagationPass` proves all cases of a switch are
covered, leaving the default as an unreachable block.

The default destination is replaced with either the common successor
block or the first switch case destination.

This was discovered from the following case:
https://godbolt.org/z/W7zE1GMT6, where we can see that the unrolling of
the outer loop is not successful and the switch statement with an
`unreachable` branch remains.

Assisted by: Claude Opus 4.6


  Commit: a497f90dc0914d3cc6eb82254751115e562181ca
      https://github.com/llvm/llvm-project/commit/a497f90dc0914d3cc6eb82254751115e562181ca
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h
    M compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp

  Log Message:
  -----------
  [compiler-rt] Improve ubsan-minimal runtime for GPU use (#193597)

Summary:
GPUs are resource constrained, and we don't want to incur too much
overhead for using the runtime over a trap version. Unlike the other
targets, we have cheap `printf` on account of all the complexity being
done on the host, so we use that directly instead of custom formatting.
Additionally, we split the main function out into a helper function.
Listing it as `[cold]` prevents spurious inlining that massively bloated
register costs (this is an error reporting mechanism so hopefully that's
not controversial).

In practice for some basic tests, This cuts the register usage by more
than half and the stack size is no longer dynamically sized. The only
stack I saw was for the PC relative checks. This could be lowered
further with more intelligent PC caching, but this is a good, minimally
invasive, start.


  Commit: f24bfb8967cb9a128ca28cb454be6883a347379a
      https://github.com/llvm/llvm-project/commit/f24bfb8967cb9a128ca28cb454be6883a347379a
  Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRV.h
    M llvm/lib/Target/SPIRV/SPIRVLegalizeImplicitBinding.cpp
    A llvm/lib/Target/SPIRV/SPIRVLegalizeImplicitBinding.h
    M llvm/lib/Target/SPIRV/SPIRVLegalizePointerCast.cpp
    A llvm/lib/Target/SPIRV/SPIRVLegalizePointerCast.h
    M llvm/lib/Target/SPIRV/SPIRVMergeRegionExitTargets.cpp
    A llvm/lib/Target/SPIRV/SPIRVMergeRegionExitTargets.h
    M llvm/lib/Target/SPIRV/SPIRVPassRegistry.def
    M llvm/lib/Target/SPIRV/SPIRVRegularizer.cpp
    A llvm/lib/Target/SPIRV/SPIRVRegularizer.h
    M llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp
    M llvm/test/CodeGen/SPIRV/ctor-dtor-lowering-ir.ll
    M llvm/test/CodeGen/SPIRV/llc-pipeline.ll
    A llvm/test/CodeGen/SPIRV/passes/SPIRVLegalizeImplicitBinding.ll
    A llvm/test/CodeGen/SPIRV/passes/SPIRVLegalizePointerCast.ll
    A llvm/test/CodeGen/SPIRV/passes/SPIRVMergeRegionExitTargets.ll
    A llvm/test/CodeGen/SPIRV/passes/SPIRVRegularizer-i1-icmp.ll
    M llvm/test/CodeGen/SPIRV/pointers/load-vector-from-array-of-vectors.ll
    M llvm/test/CodeGen/SPIRV/pointers/store-array-of-vectors-to-vector.ll

  Log Message:
  -----------
  [SPIR-V][NewPM] Register IR-level passes with the new pass manager (#193660)

Add NPM wrappers for SPIRVRegularizer, SPIRVLegalizeImplicitBinding,
SPIRVLegalizePointerCast, and SPIRVMergeRegionExitTargets


  Commit: 7b336dcfce1d66c6764644698a8ac49e1fa5fe36
      https://github.com/llvm/llvm-project/commit/7b336dcfce1d66c6764644698a8ac49e1fa5fe36
  Author: Philip DePetro <subpremium at hotmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M lldb/include/lldb/API/SBExpressionOptions.h
    M lldb/include/lldb/Target/Process.h
    M lldb/include/lldb/Target/Target.h
    M lldb/include/lldb/Target/Thread.h
    M lldb/source/API/SBExpressionOptions.cpp
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
    M lldb/source/Target/Process.cpp
    M lldb/source/Target/StopInfo.cpp
    M lldb/source/Target/Thread.cpp
    M lldb/source/Target/ThreadPlanCallFunction.cpp
    A lldb/test/API/commands/expression/expr-with-fork/Makefile
    A lldb/test/API/commands/expression/expr-with-fork/TestExprWithFork.py
    A lldb/test/API/commands/expression/expr-with-fork/main.cpp

  Log Message:
  -----------
  [lldb] Allow forks to occur in expression evaluation (#184815)

@jimingham You had suggested to @clayborg that we should call DidFork(),
DidVFork() and DidVForkDone() after a corresponding stop in expression
evaluation. Those functions require parameters that are private to the
specific child StopInfo class. I went with reusing the existing
StopInfo::PerformAction() virtual function, rather than create a new one
just for this purpose.


  Commit: 600efe3dd9bb8a267c8ebe9faf9a6f5f82e25831
      https://github.com/llvm/llvm-project/commit/600efe3dd9bb8a267c8ebe9faf9a6f5f82e25831
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.h

  Log Message:
  -----------
  AMDGPU: Implement getInstSizeVerifyMode (#191461)

Replace the custom instruction size check.


  Commit: a3285a1a14dbf9f5c5f013d31d9eb9c14865fc73
      https://github.com/llvm/llvm-project/commit/a3285a1a14dbf9f5c5f013d31d9eb9c14865fc73
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/lib/Driver/ToolChain.cpp
    M clang/test/Driver/Xarch.c

  Log Message:
  -----------
  clang: Check -Xarch compatibility using Triple parsed architecture. (#189651)

This will allow recognizing any of the triple aliases for the 
architecture. This will avoid test failures when the amdgcn triple top 
level architecture is renamed.


  Commit: 2948f9a784e8d25793d864f8c0f4b9a151d6f771
      https://github.com/llvm/llvm-project/commit/2948f9a784e8d25793d864f8c0f4b9a151d6f771
  Author: Bruno Cardoso Lopes <bruno.cardoso at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
    M clang/include/clang/CIR/Dialect/IR/CIROps.td
    M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
    M clang/lib/CIR/CodeGen/CIRGenModule.cpp
    M clang/lib/CIR/CodeGen/CIRGenModule.h
    M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
    M clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
    M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
    A clang/test/CIR/CodeGen/annotate-attribute.c
    A clang/test/CIR/CodeGen/annotate-attribute.cpp
    A clang/test/CIR/IR/annotation.cir
    A clang/test/CIR/IR/invalid-annotation.cir

  Log Message:
  -----------
  [CIR] Add `__attribute__((annotate(...)))` support (#193329)

Implement end-to-end (Dialect, CIRGen, Lowering) support for
__attribute__((annotate(...))) on functions and global variables.

Dialect:
  - cir::AnnotationAttr (#cir.annotation<name = "...", args = [...]>).
- $annotations on cir.func and cir.global (ArrayAttr of AnnotationAttr).
FuncOp gets a custom parser/printer entry; for GlobalOp it's tacked onto
the assemblyFormat.

CIRGen:
- Annotations are attached as deferred entries in CIRGenModule and
flushed at end-of-TU so the most up-to-date ValueDecl wins (decl
annotations + def annotations both stick).
- emitAnnotationArgs uniques arg ArrayAttrs via FoldingSetNodeID so two
functions with identical args share one ArrayAttr (and one .args
constant in LLVM lowering).
- addGlobalAnnotations supports both GlobalOp and FuncOp paths,
including function-local statics (emitStaticVarDecl).

Lowering:
  - CXXABILowering treats AnnotationAttr as legal (no ABI conversion).
- Direct-to-LLVM lowering filters the annotations attribute off
cir.func, then collects (sym_name, AnnotationAttr, loc) tuples
pre-conversion and post-conversion emits @llvm.global.annotations plus
the supporting strings/args constants in section "llvm.metadata" —
bit-for-bit comparable to OGCG. String constants and per-arg structs are
deduplicated; identical args ArrayAttrs share one .args global (an
improvement over OGCG's per-site copies).


  Commit: dc41953559a6e34e82320da93e9f2e714556aaaf
      https://github.com/llvm/llvm-project/commit/dc41953559a6e34e82320da93e9f2e714556aaaf
  Author: Guray Ozen <guray.ozen at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
    M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
    M mlir/test/Dialect/LLVMIR/nvvm-transcendentals.mlir
    M mlir/test/Target/LLVMIR/nvvm/transcendentals.mlir

  Log Message:
  -----------
  [MLIR][NVVM] Add `nvvm.ex2` OP (#193790)


  Commit: 25ec1baf2eb92e439289d71f5c3c82e3156bdc0a
      https://github.com/llvm/llvm-project/commit/25ec1baf2eb92e439289d71f5c3c82e3156bdc0a
  Author: Bruno Cardoso Lopes <bruno.cardoso at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/include/clang/CIR/Dialect/IR/CIROps.td
    M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp

  Log Message:
  -----------
  [CIR] Fix remaining (part 2) FlattenCFG rewriter contract violations (#192503)

Fix all 17 remaining MLIR expensive pattern check violations in
CIRFlattenCFGPass. Found by MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS=ON.

Fingerprint violations (patterns modifying IR without notifying
rewriter):
- Use rewriter.replaceAllUsesWith() instead of direct
replaceAllUsesWith() in replaceCallWithTryCall (tests: invoke-attrs.cpp,
try-catch.cpp, try-catch-all-with-cleanup.cpp)
- Use rewriter.modifyOpInPlace() for removeCleanupAttr() in TryOp
flattening (tests: flatten-try-op.cir, flatten-cleanup-scope-eh.cir,
flatten-throwing-in-cleanup.cir)

IR verification failures (invalid intermediate IR after pattern
application):
- Expand nested op checks in Switch, Loop, CleanupScope, and TryOp
flattening to include all structured CIR ops (ScopeOp, IfOp, TernaryOp,
etc.), not just CleanupScopeOp. Break/continue/return inside nested
structured ops creates invalid cross-region branches when the enclosing
op hasn't been flattened yet (tests: switch.cir, loop.cpp,
cleanup-scope-return-in-loop.cpp, partial-array-cleanup.cpp, switch.cpp,
typeid.cpp, flatten-cleanup-scope-simple.cir,
flatten-cleanup-scope-multi-exit.cir)
- Relax CIR_ResumeOp ParentOneOf to include all structured ops, since
cir.resume can temporarily appear inside them during flattening (test:
new-delete-deactivation.cpp). Feels weird to do that, but extended
documentation to account for.
- Change loop region constraints from SizedRegion<1> to
MinSizedRegion<1> for cond/step regions, since cleanup scope flattening
inside these regions may create multiple blocks (test:
loop-cond-cleanup.cpp)


  Commit: 72ca372fa7c9029d2b7a77c59a4cc24530e99e43
      https://github.com/llvm/llvm-project/commit/72ca372fa7c9029d2b7a77c59a4cc24530e99e43
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.h

  Log Message:
  -----------
  Revert "AMDGPU: Implement getInstSizeVerifyMode" (#194026)

Reverts llvm/llvm-project#191461

Fails on miscomputed V_MADMK_F32 size


  Commit: ec5862a28e595c86fbc38ce73d3f698f0c8e4b36
      https://github.com/llvm/llvm-project/commit/ec5862a28e595c86fbc38ce73d3f698f0c8e4b36
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M .github/workflows/issue-subscriber.yml
    M .github/workflows/new-issues.yml
    M .github/workflows/new-prs.yml
    M .github/workflows/pr-subscriber.yml
    M .github/workflows/release-asset-audit.yml

  Log Message:
  -----------
  Re-apply: workflows: Use main-branch-only environment when using ISSUE_SUBSCRIBER_TOKEN (#179990) (#193801)

This way we can prevent the secret from being used in user branches.

We originally reverted this because it was spamming the PRs with
'deployment' messages. GitHub has added a new feature to disable these
messages, so it should be safe to re-apply this.


  Commit: d4ba0194f52b41855884b00a2baddb19ebd249dd
      https://github.com/llvm/llvm-project/commit/d4ba0194f52b41855884b00a2baddb19ebd249dd
  Author: Max191 <44243577+Max191 at users.noreply.github.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M flang/lib/Optimizer/Transforms/StackArrays.cpp
    M mlir/include/mlir/Analysis/DataFlowFramework.h
    M mlir/lib/Analysis/DataFlowFramework.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPropagateLayout.cpp
    A mlir/test/Analysis/DataFlow/test-staged-analyses.mlir
    M mlir/test/lib/Analysis/DataFlow/TestDeadCodeAnalysis.cpp
    M mlir/test/lib/Analysis/DataFlow/TestDenseBackwardDataFlowAnalysis.cpp
    M mlir/test/lib/Analysis/DataFlow/TestDenseForwardDataFlowAnalysis.cpp
    M mlir/test/lib/Analysis/DataFlow/TestSparseBackwardDataFlowAnalysis.cpp
    M mlir/test/lib/Analysis/TestDataFlowFramework.cpp
    M mlir/tools/mlir-opt/mlir-opt.cpp

  Log Message:
  -----------
  [mlir] Add analysis filter in dataflow solver (#192998)

Adds an optional filtering control function to the dataflow solver's
initializeAndRun callback, which controls which analyses will be
initialized when running the solver. This makes it possible to reuse
existing dataflow solver instances that have already run to a fixpoint
without re-initializing all of the analyses that have already converged.

A new analysis and test pass is also added, which illustrates how the
filtering can be useful to run a staged analysis, which would not have
been possible before. The example analysis, called `BarAnalysis`,
depends on the converged state of the `FooAnalysis`. The Bar analysis is
a forward analysis that tracks, for each program point, whether any of
the preceding program points hold a `foo_state` that is divisible by 4.
In the example test, the control flow graph looks like the following:

```
  entry-block
   /       \
bb0         bb2
    \     /
      bb1
```
The `foo_state` of `bb1` depends on the `foo_state` of `bb0` and `bb2`.
If the solver goes through `bb0->bb1` before `bb2->bb1`, then there is
an intermediate stage in the analyses where the state of `bb1` could be
divisible by 4, even though the final state of `bb1` will not be
divisible by 4 in the converged state. If the `BarAnalysis` runs on
`bb1` in this intermediate state, then it will get stuck with the
"divisible by 4" state, and the analysis will not yield the desired
results.

This PR ensures that the `BarAnalysis` will see the correct state
`foo_state`, because the `FooAnalysis` will fully run to a fixpoint
before the `BarAnalysis` is loaded, initialized, and run.

The Foo and Bar analyses are just trivial examples, but this pattern is
useful when there are analyses that can be made more effective by using
complementary analyses like integer range/divisibility analyses.

**Note for integration:**

DataFlowSolver::load now stores the concrete analysis TypeID, exposed
via DataFlowAnalysis::getTypeID(). Downstream DataFlowAnalysis
subclasses defined in anonymous namespaces must add
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(ClassName) to their class
body.

Assisted-by: Codex (gpt-5.4)


  Commit: b08ec97d37cc8df35e2f60245b49b10ddb23dcc4
      https://github.com/llvm/llvm-project/commit/b08ec97d37cc8df35e2f60245b49b10ddb23dcc4
  Author: Thurston Dang <thurston at google.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    A llvm/test/Transforms/LoopVectorize/extract-value-widen.ll

  Log Message:
  -----------
  [LoopVectorize] Don't replace widen with replicate for ExtractValueInst (#193404)

VPWidenRecipe with an underlying ExtractValueInst stores the
ExtractValue's indices() as part of the recipe's "operands",
necessitating special handling (see VPRecipeBuilder::tryToWiden() and
VPWidenRecipe::execute()). This makes it incompatible with conversion to
VPReplicateRecipe, because VPReplicateRecipe's scalarizeInstruction()
may attempt to set each operand of the cloned ExtractValueInst, but the
indices cannot be set via setOperand().

This patch works around the issue by preventing the conversion of
ExtractValueInst-based VPWidenRecipe to VPReplicateRecipe.

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


  Commit: 7de8b11607bf981c146c2e4c0e4e38bde05bb539
      https://github.com/llvm/llvm-project/commit/7de8b11607bf981c146c2e4c0e4e38bde05bb539
  Author: Justin Fargnoli <jfargnoli at nvidia.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/UnrollLoop.h
    M llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
    M llvm/lib/Transforms/Utils/LoopUnroll.cpp
    A llvm/test/Transforms/LoopUnroll/debug-and-remarks.ll
    R llvm/test/Transforms/LoopUnroll/debug.ll

  Log Message:
  -----------
  [LoopUnroll] Make optimization remarks more precise (#190714)

This PR adopts the following strategy for emitting optimization remarks
in loop unrolling:
- Emit passing optimization remarks any time we decide to unroll. 
- Only emit missed optimization remarks if the user explicitly requested
unrolling and we aren't able to honor their request.
- Only emit passing or missed optimization remarks when we're certain
that unrolling will succeed or fail.
- In lieu of emitting more informative passing/failing optimization
remarks when unrolling may still fail/pass, emit analysis optimization
remarks so users can understand the reason as to why unrolling may have
failed on that loop.


  Commit: 719c38062a3b06faee91c255d2b8abc9e1dd3813
      https://github.com/llvm/llvm-project/commit/719c38062a3b06faee91c255d2b8abc9e1dd3813
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M lld/test/ELF/fill-trap-ppc.s
    M lld/test/ELF/fill-trap.s

  Log Message:
  -----------
  [NFC][lld] Avoid hex address case sensitivity in fill-trap tests (#194037)

Ubuntu is switching from GNU coreutils to Rust version, and new
od util has different case in output.

https://github.com/uutils/coreutils/issues/11985


  Commit: 125f69d71ad1778a811461c0bbd30f12607073e5
      https://github.com/llvm/llvm-project/commit/125f69d71ad1778a811461c0bbd30f12607073e5
  Author: hulxv <hulxxv at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M libc/shared/math.h
    A libc/shared/math/fabs.h
    A libc/shared/math/fabsbf16.h
    A libc/shared/math/fabsf.h
    A libc/shared/math/fabsf128.h
    A libc/shared/math/fabsf16.h
    A libc/shared/math/fabsl.h
    M libc/src/__support/FPUtil/BasicOperations.h
    M libc/src/__support/math/CMakeLists.txt
    A libc/src/__support/math/fabs.h
    A libc/src/__support/math/fabsbf16.h
    A libc/src/__support/math/fabsf.h
    A libc/src/__support/math/fabsf128.h
    A libc/src/__support/math/fabsf16.h
    A libc/src/__support/math/fabsl.h
    M libc/src/math/generic/CMakeLists.txt
    M libc/src/math/generic/fabs.cpp
    M libc/src/math/generic/fabsbf16.cpp
    M libc/src/math/generic/fabsf.cpp
    M libc/src/math/generic/fabsf128.cpp
    M libc/src/math/generic/fabsf16.cpp
    M libc/src/math/generic/fabsl.cpp
    M libc/test/shared/CMakeLists.txt
    M libc/test/shared/shared_math_constexpr_test.cpp
    M libc/test/shared/shared_math_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc][math] Refactor fabs family to header-only (#182173)

Refactors the fabs math family to be header-only.

Closes https://github.com/llvm/llvm-project/issues/182172

Target Functions:
  - fabs
  - fabsbf16
  - fabsf
  - fabsf128
  - fabsf16
  - fabsl


  Commit: ad5a7609df9b7a67d588bb99578990e8430939f6
      https://github.com/llvm/llvm-project/commit/ad5a7609df9b7a67d588bb99578990e8430939f6
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/X86/split-node-reused-in-later-vector.ll
    M llvm/test/Transforms/SLPVectorizer/X86/split-node-throttled.ll

  Log Message:
  -----------
  [SLP]Do not cache sentinel position for SplitVectorize nodes

setInsertPointAfterBundle records LastInstructionToPos[LastInst] = Res
so later bundles reuse the sentinel as an insertion point. For a
SplitVectorize bundle this entry is stale: operand entries are
materialized lazily via recursive vectorizeTree calls and can land in
the IR after the cached sentinel. A later bundle that hits the cache
then inserts its shuffles ahead of values they consume, tripping the
verifier with "Instruction does not dominate all uses".
Fixes #193919

Reviewers: 

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


  Commit: 32eb90bfdf9f28a4cf11d4897e48942977fada78
      https://github.com/llvm/llvm-project/commit/32eb90bfdf9f28a4cf11d4897e48942977fada78
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/include/clang/DependencyScanning/DependencyScanningService.h
    M clang/include/clang/DependencyScanning/InProcessModuleCache.h
    M clang/lib/DependencyScanning/InProcessModuleCache.cpp
    M clang/lib/Serialization/ModuleCache.cpp
    M clang/tools/clang-scan-deps/ClangScanDeps.cpp
    M clang/tools/clang-scan-deps/Opts.td

  Log Message:
  -----------
  [clang][deps] Keep module cache in memory (#192347)

With this PR, module cache PCMs are kept in-memory and can be flushed to
disk at the end of the build if desired. Not going to disk at all speeds
up dependency scans by around 4.7% by avoiding contention in the kernel.


  Commit: f098aa3b5b58133a5db79692e1aae2a191d27c80
      https://github.com/llvm/llvm-project/commit/f098aa3b5b58133a5db79692e1aae2a191d27c80
  Author: Jason Molenda <jmolenda at apple.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M lldb/docs/resources/lldbgdbremote.md
    M lldb/include/lldb/Target/Thread.h
    M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
    M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
    M lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp
    M lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h
    M lldb/tools/debugserver/source/DNB.cpp
    M lldb/tools/debugserver/source/DNB.h
    M lldb/tools/debugserver/source/JSONGenerator.h
    M lldb/tools/debugserver/source/MacOSX/MachProcess.mm
    M lldb/tools/debugserver/source/MacOSX/arm64/DNBArchImplARM64.cpp
    M lldb/tools/debugserver/source/RNBRemote.cpp

  Log Message:
  -----------
  [lldb][Darwin] debugserver expedite new binary info, lldb use (#192754)

When lldb stops at the "new binaries loaded" internal breakpoint, it
must read the list of addresses of the new binaries out of process
memory, then send a jGetLoadedDynamicLibrariesInfos packet to
debugserver to get the filepath, uuid, and addresses of where all the
segments are loaded in memory.

It's possible for debugserver to find the "new binaries loaded" function
address in the inferior itself, recognize when it has stopped at a
breakpoint there, and expedite some/all of the information lldb is going
to ask for in the stop info packet that we send to lldb. This will make
big improvements to a large-batch-of-binaries loaded stop event, but
also focuses even more on the single-binary-loaded `dlopen()` use case,
which can be quite expensive when many binaries are loaded one by one.

This PR reduces the packet traffic for a new binary load notifications
by

1. When debugserver sees a thread that has hit a breakpoint, and the pc
matches the new-binaries-loaded function address, reads the list of
binaries that have been newly added and includes them in the stop info
packet (or the jThreadsInfo packet) in the `added-binaries` key. The
value is a list (array) of binary addresses.

2. If the number of binaries is small (today: one), debugserver may
collect the full information that jGetLoadedDynamicLibrariesInfos would
send back about it, and also expedite that in the stop info packet (or
jThreadsInfo) in the `detailed-binaries-info` key. This is a JSON
string, and the stop info packet is a semicolon separated series of
key-values, so it must be asciihex encoded, just like the `jstopinfo`
key. In the jThreadsInfo packet, the JSON for the binary information is
included in the response as-is as the value-dictionary.

3. If the remote stub doesn't provide these new keys, lldb will use the
same process as before. However, in
DynamicLoaderMacOS::NotifyBreakpointHit I was reading the load addresses
out of memory individually, with each binary having a 24-byte entry.
lldb's memory cache meant we read 512 bytes per 8-byte read, but when
1000 binaries were being loaded at process launch time, that was 24,000
bytes of VM that we would read in 512 byte batches. This patch changes
that to read the entire VM range that we will be accessing in one large
memory read (as large as the remote gdb RSP stub will support),
dramatically reducing packet traffic in that case.

4. debugserver needs to read the "new binaries loaded" function pointer
out of the "dyld_all_image_infos" structure in the inferior, and it is a
signed function pointer on arm64e processes, so debugserver needs to
strip off the signing bits before comparing the pc. I hoisted the strip
function out of DNBArchImplArm64 into DNBFixAddress(), and the only
complicated bit here is in DNBProcessAddrSize(), when an arm64e
debugserver is debugging an arm64_32 process on a watch. It's not a
common combination (mostly we will have arm64e debugservers debugging
arm64 processes, or arm64_32 debugservers debuggging arm64_32 processe),
but it is supported.

5. A very minor enhancement, I have debugserver now include a new key,
`sizeof_mh_and_loadcmds` in the full binary information that
jGetLoadedDynamicLibrariesInfos returns. When lldb needs to read a
binary out of memory, it needs to read the Mach-O header & load
commands, and it doesn't know the full size of that, so we end up doing
one read of the Mach-O header, then the header + load commands. I'm not
using this information in lldb yet, but I would like to, to improve
that.

At an implementation detail level, ProcessGDBRemote collects these two
new data from the stop packet / jThreadsInfo, and passes them to the
method that creates a new ThreadGDBRemote. I added two methods to the
Thread base class to retrieve the information. DynamicLoaderMacOS will
try to read the data from the thread that hit the "new binaries loaded"
breakpoint, and if the number of entries matches the number expected by
the register value, uses them. Else it falls back to fetching them the
traditional way. On an old debugserver that doesn't support these new
expedited fields, DynamicLoaderMacOS will get back a zero-length of
binary addresses and a null StructuredData dictionary for the detailed
image information, and behave as it always does. I tested this patch
with both the debugserver changes, and without.

Testing is clearly the big questionmark here - I added none. While
writing these patches, I had some bugs and the lldb testsuite on macOS
was very good at finding them, simply with our normal process launching
and dlopen'ing in our existing API tests. I could imagine a test that
would capture the packet log and try to ensure that the expedited
information is being used by lldb and we are not re-fetching the
information, though.

rdar://175033129

---------

Co-authored-by: Jonas Devlieghere <jonas at devlieghere.com>
Co-authored-by: Felipe de Azevedo Piovezan <piovezan.fpi at gmail.com>


  Commit: 6fb343619009376c19953a82aa52cf293418c9eb
      https://github.com/llvm/llvm-project/commit/6fb343619009376c19953a82aa52cf293418c9eb
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/include/llvm/BinaryFormat/Dwarf.h
    M llvm/include/llvm/DWARFLinker/AddressesMap.h
    M llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
    M llvm/lib/DWARFLinker/Classic/DWARFLinkerCompileUnit.cpp
    M llvm/test/tools/dsymutil/X86/tls-variable.test

  Log Message:
  -----------
  [dsymutil] Handle DW_OP_GNU_push_tls_address in markEverythingAsKept (#193870)

markEverythingAsKept() only checked for DW_OP_form_tls_address when
deciding whether a TLS variable should be added to accelerator tables,
missing the DW_OP_GNU_push_tls_address extension. This caused TLS
variables using the GNU form to be absent from .apple_names when linking
in update mode (-u) or when processing Clang modules.

The same bug was previously fixed in getVariableRelocAdjustment()
(f9f92f13f62a) but was missed here.

rdar://120678908


  Commit: 9805381e5f014ce66d6c066e095f5b554dcacb45
      https://github.com/llvm/llvm-project/commit/9805381e5f014ce66d6c066e095f5b554dcacb45
  Author: PiJoules <leonardchan at google.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M libc/src/__support/math_extras.h
    M libc/src/__support/memory_size.h
    M libc/src/search/lfind.cpp
    M libc/src/search/lsearch.cpp

  Log Message:
  -----------
  [libc] Move mul_overflow to math_extras.h (#194033)

This way downstream llvm-libc users could use this as part of
math_extras.h.


  Commit: a47eca0ae99f3fa39f90acb06de0bbf86c31980e
      https://github.com/llvm/llvm-project/commit/a47eca0ae99f3fa39f90acb06de0bbf86c31980e
  Author: Alex Langford <alangford at apple.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M lldb/test/API/functionalities/breakpoint/same_cu_name/Makefile

  Log Message:
  -----------
  [lldb] Rewrite make rules for TestFileBreakpointsSameCUName.py (#193871)

The logic for building the test cases did not consider the target
triple. The easiest thing to do is use the CXXFLAGS computed by
Makefile.rules (which calculates this correctly).


  Commit: 83302553295529712fb999db22a7d770f18af055
      https://github.com/llvm/llvm-project/commit/83302553295529712fb999db22a7d770f18af055
  Author: Alex Langford <alangford at apple.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M lldb/test/API/commands/expression/ptrauth/TestPtrAuthExpressions.py

  Log Message:
  -----------
  [lldb] Fix build logic in TestPtrAuthExpressions.py (#193847)

If the triple already has `arm64e` in it, we'll end up with `arm64ee`
which is definitely wrong.


  Commit: 39e02c141d03552938d5fe35ab650bd50e2dcc80
      https://github.com/llvm/llvm-project/commit/39e02c141d03552938d5fe35ab650bd50e2dcc80
  Author: Kewen Meng <Kewen.Meng at amd.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M offload/plugins-nextgen/amdgpu/dynamic_hsa/hsa_ext_amd.h
    M offload/plugins-nextgen/amdgpu/src/rtl.cpp

  Log Message:
  -----------
  [Offload][AMDGPU] Use ROCr API for APU check (#193887)

Use ROCr API for checking whether a device is an APU to replace the old
implementation with hard-coded target name. This PR will make the APU
check cleaner and better maintainable.

Tested on MI210, MI300A, Strix Halo (gfx1151).


  Commit: 7ec8037f32433322ad643bb54c811dd7a4f68b0c
      https://github.com/llvm/llvm-project/commit/7ec8037f32433322ad643bb54c811dd7a4f68b0c
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M .github/workflows/issue-release-workflow.yml

  Log Message:
  -----------
  workflows/issue-release-workflow: Use GitHub app for generating tokens (#193825)

This will allow us to eliminate the RELEASE_WORKFLOW_PR_CREATE secret.


  Commit: ef739b97b108d81de23f9fc0f6ca6de001482164
      https://github.com/llvm/llvm-project/commit/ef739b97b108d81de23f9fc0f6ca6de001482164
  Author: Eric Feng <55723758+efric at users.noreply.github.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUOps.td
    M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
    M mlir/lib/Dialect/AMDGPU/IR/AMDGPUOps.cpp
    M mlir/test/Conversion/AMDGPUToROCDL/sparse-mfma-gfx950.mlir
    M mlir/test/Dialect/AMDGPU/invalid.mlir
    M mlir/test/Dialect/AMDGPU/ops.mlir

  Log Message:
  -----------
  [AMDGPU] Correct gfx950 smfmac sparse index verifier (#193541)

Originally, the smfmac verifier expects for the sparse indices, which
describe which the positions of the non-zero elements per lane, the
following:

```
8 bit source -> require vector<2xi16>, ABID range [0, 1]
16 bit source -> require vector<4xi8>, ABID range [0, 3]
```

which is correct for CDNA3 and what was stated in the CDNA4 ISA
description as well. However, because the CDNA4 variants have double K
of the CDNA3 variants, meaning e.g, for 16 bit variants, each lane
carries 8 non-zero values rather than 4, we need 16 bit sparse indices
to express the full range of non-zero elements. This is in line with the
layout tables presented in the CDNA4 ISA.

Direct comparison for 16 bit elements:
On gfx942; we can select from one of four 8-bit sets of sparse indices
with ABID. Each set represents the location of four non-zero values per
8 following 4:2 structured sparsity. For example:
```
a0 a1 0 0 a3 a4 0 0 | a5 a6 0 0 0 0 a7 a8 | a9 0 0 a10 0 a11 0 a12 | 0 a13 0 a14 0 a15 0
```

On gfx950; because each lane carries 8 non-zero values; we can only
specify the full range of 8 non-zero values per 16 from one of two
16-bit sets. For example:
```
a0 a1 0 0 a3 a4 0 0 a5 a6 0 0 0 0 a7 a8 | a9 0 0 a10 0 a11 0 a12 0 a13 0 a14 0 a15 0
```

Similarly, for 8 bit variants on gfx950, we would need the full 32 bits
to describe the full range of the locations for the 16 non-zero 8 bit
elements. In this case, there is no option to select from different sets
of indices.

The issue arises in downstream use cases if we want to use use a set of
sparse indices targeting gfx950; because we are unable to specify the
full range of the non-zero values at the moment, we will get numerical
issues.

Assisted by: Claude

---------

Signed-off-by: Eric Feng <Eric.Feng at amd.com>


  Commit: 0da7c12e43bf8b995c5fdd5e62180546fa007338
      https://github.com/llvm/llvm-project/commit/0da7c12e43bf8b995c5fdd5e62180546fa007338
  Author: Kartik Ohlan <kartik7ohlan at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsAMDGPU.td
    M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx12-err.cl
    A clang/test/CodeGenOpenCL/builtins-amdgcn-smfmac-err.cl

  Log Message:
  -----------
  [AMD-GPU]  Fix smfmac builtin target (#193999)

Fixes #193882

For builins mentioned below, changed "mai-insts" to "gfx940-insts" so it
can match the backend isGFX940Plus predicate.
Added test coverage and kept the structure similar to
`clang/test/CodeGenOpenCL/builtins-amdgcn-smfmac-err.cl`

__builtin_amdgcn_smfmac_f32_16x16x32_f16
__builtin_amdgcn_smfmac_f32_32x32x16_f16
__builtin_amdgcn_smfmac_f32_16x16x32_bf16
__builtin_amdgcn_smfmac_f32_32x32x16_bf16
__builtin_amdgcn_smfmac_i32_16x16x64_i8
__builtin_amdgcn_smfmac_i32_32x32x32_i8


  Commit: bfa88a8d3c3b8885c9e0166afb1c78ede4f24c6c
      https://github.com/llvm/llvm-project/commit/bfa88a8d3c3b8885c9e0166afb1c78ede4f24c6c
  Author: Hardik Chona <masterhc321 at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/include/wchar.yaml
    M libc/src/wchar/CMakeLists.txt
    A libc/src/wchar/wcscoll.cpp
    A libc/src/wchar/wcscoll.h
    M libc/test/src/wchar/CMakeLists.txt
    A libc/test/src/wchar/wcscoll_test.cpp

  Log Message:
  -----------
  [libc] Implement wcscoll (#192778)

_Closes #191073_
- `libc/src/wchar/wcscoll.cpp` - Implementation of wcscoll
- `libc/src/wchar/wcscoll.h` - Internal header for wcscoll
- `libc/include/wchar.yaml` - Added wcscoll to public header spec
- `libc/src/wchar/CMakeLists.txt` - Added build target for wcscoll
- `libc/config/linux/x86_64/entrypoints.txt` - Registered wcscoll
entrypoint
- `libc/test/src/wchar/wcscoll_test.cpp` - Unit tests for wcscoll
- `libc/test/src/wchar/CMakeLists.txt` - Added test target for wcscoll

Note: Locale support is not yet implemented. `wcscoll` currently behaves
identically to `wcscmp` until locale support is available in llvm-libc.


  Commit: fa2588e3110f31603d92c05ee3cdfc66860f8047
      https://github.com/llvm/llvm-project/commit/fa2588e3110f31603d92c05ee3cdfc66860f8047
  Author: Rahul Joshi <rjoshi at nvidia.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp

  Log Message:
  -----------
  [NFC][NSAN] Use `getIntrinsicSignature` instead of `matchIntrinsicSignature` (#194025)

`getIntrinsicSignature` internally handles the decoding of the IIT table
and running the match, which is what this code is doing. So use that
instead of manually doing what `getIntrinsicSignature` does.


  Commit: 5b570d1b3b1d525a04b0d3edbffd619510801551
      https://github.com/llvm/llvm-project/commit/5b570d1b3b1d525a04b0d3edbffd619510801551
  Author: Rahul Joshi <rjoshi at nvidia.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp

  Log Message:
  -----------
  [NFC][MLIR] Use `getIntrinsicSignature` to verify overloaded intrinsics (#194035)

`getIntrinsicSignature` internally handles the decoding of the IIT table
and running the match, which is what this code is doing. So, use that
instead of manually doing what `getIntrinsicSignature` does.


  Commit: da2c4a9efe996e8a6acf02576be9b39cd69a06df
      https://github.com/llvm/llvm-project/commit/da2c4a9efe996e8a6acf02576be9b39cd69a06df
  Author: Eli Friedman <efriedma at qti.qualcomm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/Compiler.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/CodeGen/CGExprConstant.cpp
    M clang/test/AST/ByteCode/const-eval.c

  Log Message:
  -----------
  [clang] Add constant evaluation support for CK_ToUnion. (#193370)

Implementation is heavily based on the evaluation code for initializer
lists, but it's different enough that I couldn't figure out a good way
to share the code.

This fixes one of the few remaining gaps where CodeGen can
constant-evaluate a value which AST can't evaluate.


  Commit: ebbaa93e005eecf2023341d644cf8f750912e73f
      https://github.com/llvm/llvm-project/commit/ebbaa93e005eecf2023341d644cf8f750912e73f
  Author: Narayan <nsreekumar6 at gmail.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/include/llvm/ABI/TargetInfo.h
    M llvm/lib/ABI/CMakeLists.txt
    A llvm/lib/ABI/Targets/BPF.cpp

  Log Message:
  -----------
  [llvm] Implement the BPF ABI (#194031)

Implements BPFTargetInfo, the first target-specific ABI lowering for the
LLVM ABI library introduced in #158329.

BPFTargetInfo mirrors the BPF ABI rules currently encoded in
`clang::BPFABIInfo` (clang/lib/CodeGen/Targets/BPF.cpp), but operates
entirely on `llvm::abi` types, keeping the logic frontend-independent:

  - Empty aggregates and void returns are ignored
  - Aggregates ≤64 bits are coerced to an aligned integer type
  - Aggregates 65–128 bits are coerced to [2 x i64]
- Aggregates >128 bits and oversized _BitInt types are passed/returned
indirectly
  - Promotable integers are sign/zero extended
  - All aggregate returns are indirect

Also adds the `createBPFTargetInfo` factory function declaration to
TargetInfo.h.


  Commit: 7ea78deff2d1eace00d113bcd4aba694e418a84c
      https://github.com/llvm/llvm-project/commit/7ea78deff2d1eace00d113bcd4aba694e418a84c
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M .github/workflows/issue-release-workflow.yml

  Log Message:
  -----------
  Revert "workflows/issue-release-workflow: Use GitHub app for generating tokens" (#194058)

Reverts llvm/llvm-project#193825

Fails due to insufficient permissions:

`
github.GithubException.GithubException: 422 {"message": "Validation
Failed", "errors": [{"resource": "PullRequest", "code": "custom",
"field": "fork_collab", "message": "fork_collab Fork collab can't be
granted by someone without permission"}], "documentation_url":
"https://docs.github.com/rest/pulls/pulls#create-a-pull-request",
"status": "422"}
`


  Commit: b49855fc5684eebd47d177df1fbfbd329653bbd1
      https://github.com/llvm/llvm-project/commit/b49855fc5684eebd47d177df1fbfbd329653bbd1
  Author: Jun Wang <jwang_2024 at outlook.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.td
    M llvm/test/MC/AMDGPU/gfx10_asm_mubuf.s
    M llvm/test/MC/AMDGPU/gfx7_asm_mubuf.s
    M llvm/test/MC/AMDGPU/gfx8_asm_mubuf.s
    M llvm/test/MC/AMDGPU/gfx9_asm_mubuf.s

  Log Message:
  -----------
  [AMDGPU][MC] Allow the nolds modifier (#185129)

Some pre-GFX11 buffer_load instructions have two variants: one
requires the lds modifier and one does not allow lds. For the latter
allow nolds to be used.


  Commit: 2b43da5ac0fa4c49b7f5f443b6a3a6ffec8b7494
      https://github.com/llvm/llvm-project/commit/2b43da5ac0fa4c49b7f5f443b6a3a6ffec8b7494
  Author: Leonardo Román Carrillo <leonardoroman at google.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64.h
    M llvm/lib/Target/AArch64/AArch64PassRegistry.def
    M llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp
    M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp

  Log Message:
  -----------
  [NewPM] Port for AArch64StackTaggingPreRA (#194021)

This patch migrates the AArch64StackTaggingPreRA pass to the New Pass
Manager.

Following the standard pattern for pass migrations:
- The core logic has been extracted into a standalone
AArch64StackTaggingPreRAImpl class.
- A new pass manager wrapper (AArch64StackTaggingPreRAPass) has been
created.
- The legacy pass manager wrapper has been renamed to
AArch64StackTaggingPreRALegacy and updated to call the shared
implementation.
- The pass is registered in AArch64PassRegistry.def to make it available
to the New PM.


  Commit: d14866f029e94f806f2bccc0c87840d950d9bd50
      https://github.com/llvm/llvm-project/commit/d14866f029e94f806f2bccc0c87840d950d9bd50
  Author: Peter Collingbourne <pcc at google.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysisFramework/Analyses/BUILD.gn

  Log Message:
  -----------
  gn build: Port a4538a3ad902



Reviewers: 

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


  Commit: d0c91de53e3b89043ea1527bb4acf24b519093e6
      https://github.com/llvm/llvm-project/commit/d0c91de53e3b89043ea1527bb4acf24b519093e6
  Author: Sam Elliott <aelliott at qti.qualcomm.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    A clang/test/Driver/Inputs/multilib_linux_tree/usr/bin/.keep
    A clang/test/Driver/Inputs/multilib_linux_tree/usr/include/x86_64-unknown-linux-gnu/.keep
    A clang/test/Driver/Inputs/multilib_linux_tree/usr/include/x86_64-unknown-linux-gnu/debug/.keep
    A clang/test/Driver/Inputs/multilib_linux_tree/usr/include/x86_64-unknown-linux-gnu/noexcept/.keep
    A clang/test/Driver/Inputs/multilib_linux_tree/usr/include/x86_64-unknown-linux-gnu/release/.keep
    A clang/test/Driver/Inputs/multilib_mingw_tree/bin/.keep
    A clang/test/Driver/Inputs/multilib_mingw_tree/include/x86_64-w64-windows-gnu/.keep
    A clang/test/Driver/Inputs/multilib_mingw_tree/include/x86_64-w64-windows-gnu/debug/.keep
    A clang/test/Driver/Inputs/multilib_mingw_tree/include/x86_64-w64-windows-gnu/noexcept/.keep
    A clang/test/Driver/Inputs/multilib_mingw_tree/include/x86_64-w64-windows-gnu/release/.keep
    M clang/test/Driver/linux-multilib.yaml
    M clang/test/Driver/mingw-multilib.yaml

  Log Message:
  -----------
  [clang][NFC] Linux/Windows Multilib Include Path Tests (#193869)

This adds checks to the tests to show how the include path is changed by
the multilib logic for Linux/Windows added in commit
78820cb91605693b7d768be4ebc8b66181d3e9c3.

Assisted By: Claude


  Commit: d1c9b4a5397588bbe8260a05591faf5a661b006a
      https://github.com/llvm/llvm-project/commit/d1c9b4a5397588bbe8260a05591faf5a661b006a
  Author: Sang Ik Lee <sang.ik.lee at intel.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M mlir/lib/Conversion/XeVMToLLVM/XeVMToLLVM.cpp
    M mlir/test/Conversion/XeVMToLLVM/xevm_mx-to-llvm.mlir
    M mlir/test/Integration/Dialect/XeVM/GPU/xevm_block_scaled_dpas_bf8.mlir

  Log Message:
  -----------
  [MLIR][XeVM] Update API usage. Some OpenCL APIs are not supported. (#193320)

In such case, use internal APIs for Intel Graphics Compiler directly.


  Commit: 5536a4c7122eb799fee189139e27309efb0a6c4d
      https://github.com/llvm/llvm-project/commit/5536a4c7122eb799fee189139e27309efb0a6c4d
  Author: Zachary Yedidia <zyedidia at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/docs/LFI.rst
    M llvm/include/llvm/MC/MCInstrDesc.h
    M llvm/include/llvm/MC/MCLFIRewriter.h
    M llvm/lib/MC/MCInstrDesc.cpp
    M llvm/lib/MC/MCLFIRewriter.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.h
    A llvm/test/MC/AArch64/LFI/branch.s
    A llvm/test/MC/AArch64/LFI/return.s

  Log Message:
  -----------
  [LFI][AArch64] Add rewrites for control flow (#192602)

Adds LFI rewrites for control flow instructions (indirect branches and
returns). Indirect branches must go through `x28`, which is always
guaranteed to hold a sandbox address. Modifications to `x30` must guard
`x30` afterwards, to uphold the invariant that `x30` always holds a
sandbox address. As a result, bare return instructions can be used
without any additional rewrites.


  Commit: ca934b892fdd2a23de8494af702b4ab301c8a02b
      https://github.com/llvm/llvm-project/commit/ca934b892fdd2a23de8494af702b4ab301c8a02b
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/include/llvm/DWARFLinker/Classic/DWARFLinker.h
    M llvm/include/llvm/DWARFLinker/Classic/DWARFStreamer.h
    M llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
    M llvm/lib/DWARFLinker/Classic/DWARFStreamer.cpp

  Log Message:
  -----------
  [dsymutil] Report error when section offsets exceed DWARF32 limit (#193867)

When linking very large binaries, debug section offsets can exceed the 4
GB DWARF32 limit. Previously this caused an assertion in
MCStreamer::emitIntValue when trying to emit an overflowing
DW_FORM_sec_offset value.

Detect the overflow at the point where section offsets are patched in
DWARFStreamer (for .debug_ranges, .debug_rnglists, .debug_loc,
.debug_loclists) and in DWARFLinker (for .debug_line and .debug_addr).

rdar://107413300


  Commit: 327f027f108e2013ad02f5a8f345c44fca831665
      https://github.com/llvm/llvm-project/commit/327f027f108e2013ad02f5a8f345c44fca831665
  Author: Ivan R. Ivanov <iivanov at nvidia.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M offload/plugins-nextgen/amdgpu/src/rtl.cpp

  Log Message:
  -----------
  [offload] Fix compilation (#194081)


  Commit: e3bd61890e68303a33fdd33fbdd9abeda1037450
      https://github.com/llvm/llvm-project/commit/e3bd61890e68303a33fdd33fbdd9abeda1037450
  Author: gulfemsavrun <gulfem at google.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/docs/CommandGuide/llvm-profgen.rst
    M llvm/docs/ReleaseNotes.md
    A llvm/include/llvm/ProfileData/ETMTraceDecoder.h
    M llvm/lib/ProfileData/CMakeLists.txt
    A llvm/lib/ProfileData/ETMTraceDecoder.cpp
    A llvm/test/tools/llvm-profgen/Inputs/etm-opencsd.yaml
    A llvm/test/tools/llvm-profgen/etm-arch.test
    A llvm/test/tools/llvm-profgen/etm-opencsd.test
    M llvm/test/tools/llvm-profgen/lit.local.cfg
    M llvm/tools/llvm-profgen/PerfReader.cpp
    M llvm/tools/llvm-profgen/PerfReader.h
    M llvm/tools/llvm-profgen/ProfiledBinary.cpp
    M llvm/tools/llvm-profgen/ProfiledBinary.h
    M llvm/tools/llvm-profgen/llvm-profgen.cpp

  Log Message:
  -----------
  [llvm-profgen] Add support for ETM trace decoding (#191584)

This patch introduces ETMReader to llvm-profgen,
enabling the reconstruction of execution profiles from ETM formatted
trace data.

- Integrate OpenCSD (CoreSight Decoding Library) as an optional
dependency via the LLVM_ENABLE_OPENCSD flag.
- Implement ETMTraceDecoder in ProfileData to interface with OpenCSD.
- Implement ETMReader, which uses hardware configuration and ELF memory
mapping to decode instruction traces.
- Add the --etm command-line option to specify raw trace inputs.
- Add the --target-triple command-line option to override the target
architecture for the binary.

The implementation targets microcontroller-class (Cortex-M) devices
based on the binary's target triple.

RFC:
https://discourse.llvm.org/t/rfc-add-etm-trace-support-to-llvm-profgen/90525


  Commit: 5064b936bec6677445b0c856371bba7c1d8af352
      https://github.com/llvm/llvm-project/commit/5064b936bec6677445b0c856371bba7c1d8af352
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/lib/DependencyScanning/InProcessModuleCache.cpp

  Log Message:
  -----------
  [clang][deps] Always initialize module cache out params (#194082)

We did not initialize the out parameters in #192347, causing the
"sanitizer-x86_64-linux-fast" bot to complain with:

```
SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1525:63 in compileModuleImpl(clang::CompilerInstance&, clang::SourceLocation, clang::SourceLocation, clang::Module*, clang::ModuleFileName)
Exiting
==clang==3084515==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x586360f7a604 in compileModuleImpl(clang::CompilerInstance&, clang::SourceLocation, clang::SourceLocation, clang::Module*, clang::ModuleFileName) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1525:63
    #1 <...>
```

This PR should fix that.


  Commit: b4c1e1a14e47c383da308bcd3195b6dee9ba086e
      https://github.com/llvm/llvm-project/commit/b4c1e1a14e47c383da308bcd3195b6dee9ba086e
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    A llvm/test/CodeGen/RISCV/rvv/fcanonicalize-sdnode.ll
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fcanonicalize-sdnode.ll

  Log Message:
  -----------
  [RISCV] Expand fcanonicalize on vector types (#193842)

This change does a couple of related things:
1) It changes the default expansion strategy for scalable
   vectors for fcanonicalize.  This switches us from
   emitting a loop (directly parallel to unrolling)
   to using the already available fmul expansion.
2) Mark RISC-V legal scalable vector types as Expand
   to leverage the previous item.
3) Wrap fixed vector types in their corresponding
   scalable types to avoid unrolling.

The net effect is to improve the lowering for fixed vector cases and to
no longer crash for the scalable ones. We were crashing because the
scalable cases were marked Legal, not Expand. We could have just fixed that, but doing everyone at once seemed like a good investment.

Note that we can also choose to follow Aarch64 and consider a vfmin
based lowering. I left that until later thought it is worthwhile noting
that's what we do for scalar code.


  Commit: ecdcd40e233bd2c9d38877ee444c6199f1885b95
      https://github.com/llvm/llvm-project/commit/ecdcd40e233bd2c9d38877ee444c6199f1885b95
  Author: joaosaffran <joaosaffranllvm at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/DirectX/DXILOpLowering.cpp
    A llvm/test/CodeGen/DirectX/Metadata/dx_precise.ll
    M llvm/test/CodeGen/DirectX/WaveActiveMax.ll
    M llvm/test/CodeGen/DirectX/WaveActiveMin.ll
    M llvm/test/CodeGen/DirectX/WaveReadLaneAt-vec.ll
    M llvm/test/CodeGen/DirectX/WaveReadLaneAt.ll

  Log Message:
  -----------
  [DirectX] Emit `dx.precise` metadata when fast math is not present (#192526)

This patch introduces the ability for DXILOpBuilder to annotate
instructions with `dx.precise` whenever fast math flags are not present.

Fix: https://github.com/llvm/llvm-project/issues/149127


  Commit: ec9d7d18bdfe21c30c94c02f14f3613f7b69a17b
      https://github.com/llvm/llvm-project/commit/ec9d7d18bdfe21c30c94c02f14f3613f7b69a17b
  Author: gulfemsavrun <gulfem at google.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/docs/CommandGuide/llvm-profgen.rst
    M llvm/docs/ReleaseNotes.md
    R llvm/include/llvm/ProfileData/ETMTraceDecoder.h
    M llvm/lib/ProfileData/CMakeLists.txt
    R llvm/lib/ProfileData/ETMTraceDecoder.cpp
    R llvm/test/tools/llvm-profgen/Inputs/etm-opencsd.yaml
    R llvm/test/tools/llvm-profgen/etm-arch.test
    R llvm/test/tools/llvm-profgen/etm-opencsd.test
    M llvm/test/tools/llvm-profgen/lit.local.cfg
    M llvm/tools/llvm-profgen/PerfReader.cpp
    M llvm/tools/llvm-profgen/PerfReader.h
    M llvm/tools/llvm-profgen/ProfiledBinary.cpp
    M llvm/tools/llvm-profgen/ProfiledBinary.h
    M llvm/tools/llvm-profgen/llvm-profgen.cpp

  Log Message:
  -----------
  Revert "[llvm-profgen] Add support for ETM trace decoding" (#194087)

Reverts llvm/llvm-project#191584

Caused build failures in llvm-profgen:
https://lab.llvm.org/buildbot/#/builders/46/builds/34367
https://lab.llvm.org/buildbot/#/builders/10/builds/27229


  Commit: e38b8da23b0bfcf0585eda4bb5e2a2b8b3bb7539
      https://github.com/llvm/llvm-project/commit/e38b8da23b0bfcf0585eda4bb5e2a2b8b3bb7539
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

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

  Log Message:
  -----------
  [RISCV][P-ext] Remove dead code from LowerOperation handling of ISD::STORE. NFC (#194088)

We rely on default type legaliation of v2i16 and v4i8 stores for RV64P.


  Commit: 0c472c1401584bccc256ff0ae3763bac8ccbb76e
      https://github.com/llvm/llvm-project/commit/0c472c1401584bccc256ff0ae3763bac8ccbb76e
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M lldb/source/Expression/IRMemoryMap.cpp
    M lldb/unittests/Expression/IRMemoryMapTest.cpp

  Log Message:
  -----------
  [lldb] Handle partial memory region coverage in IRMemoryMap::FindSpace (#194001)

FindSpace walks process memory regions to find addresses that won't
collide with the inferior's real memory. This is necessary even for
host-only allocations because the IR Interpreter works entirely in
inferior virtual addresses. IRMemoryMap remaps those addresses to read
from host memory instead of inferior memory, so overlapping ranges would
silently read the wrong data.

For WebAssembly, GetMemoryRegionInfo succeeds for the first region
(linear memory) but fails for addresses beyond it. The previous fix
(#193124) skipped the memory region walk entirely when `CanJIT()` is
false. However, as Jason points out, that removes the
collision-avoidance mechanism and risks overlapping with real inferior
memory.

Instead, handle the GetMemoryRegionInfo failure gracefully. If the
target can't describe memory beyond a certain point, treat the remaining
address space as unmapped and use it for the allocation. This preserves
the collision avoidance while avoiding the lldbassert.


  Commit: 87317d39f44ae99a5522d00dd14f4fe58fc87a21
      https://github.com/llvm/llvm-project/commit/87317d39f44ae99a5522d00dd14f4fe58fc87a21
  Author: Trevor Gross <tg at trevorgross.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M compiler-rt/lib/builtins/fp_compare_impl.inc

  Log Message:
  -----------
  [compiler-rt][WebAssembly] Use an int as CMP_RESULT (#194093)

LLVM uses an i32 as the default for `getCmpLibcallReturnType`, but
compiler-rt uses a word-sized integer by default. On most physical
hardware this happens to work because `i32` is largely ABI-compatible
with a word. On wasm64, however, they are not compatible so this causes
problems.

Resolve this by using `int` as the comparison result in compiler-rt.

Closes: https://github.com/llvm/llvm-project/issues/75302
Closes: https://github.com/llvm/llvm-project/issues/192416


  Commit: 4a7ae4b900fdbc699c4aa57d4490827564f435ba
      https://github.com/llvm/llvm-project/commit/4a7ae4b900fdbc699c4aa57d4490827564f435ba
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
    M llvm/test/Transforms/LowerTypeTests/aarch64-jumptable-dbg.ll
    M llvm/test/Transforms/LowerTypeTests/x86-jumptable-dbg.ll

  Log Message:
  -----------
  Revert "Reland: [LowerTypeTests] Add debug info to jump table entries" (#194095)

Reverts llvm/llvm-project#193670

Downstream test failure.


  Commit: f478220dd06278c6ee725db710eb587ca80130d2
      https://github.com/llvm/llvm-project/commit/f478220dd06278c6ee725db710eb587ca80130d2
  Author: Zhaoxin Yang <yangzhaoxin at loongson.cn>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
    M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
    M llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
    M llvm/test/CodeGen/LoongArch/lasx/ir-instruction/fpext.ll
    M llvm/test/CodeGen/LoongArch/lsx/ir-instruction/fpext.ll

  Log Message:
  -----------
  [LoongArch] Add support for vector FP_EXTEND from vxf32 to vxf64 (#164746)


  Commit: e66613f38124ff1f39132a15bfdd465f4d18ed8c
      https://github.com/llvm/llvm-project/commit/e66613f38124ff1f39132a15bfdd465f4d18ed8c
  Author: Fangrui Song <i at maskray.me>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/CSKY/CSKYInstrInfo.cpp

  Log Message:
  -----------
  [CSKY] Fix build after #191460 (#194102)


  Commit: bd1c3081172303588b576ea687a3e78f8a39a4bd
      https://github.com/llvm/llvm-project/commit/bd1c3081172303588b576ea687a3e78f8a39a4bd
  Author: Igor Kudrin <ikudrin at accesssoftek.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticFrontendKinds.td
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/test/CodeGen/alias.c
    M clang/test/Sema/attr-alias-elf.c
    A clang/test/SemaObjC/attr-alias.m
    M compiler-rt/lib/dfsan/dfsan_custom.cpp

  Log Message:
  -----------
  [Clang][CodeGen] Report when an alias points to an incompatible target (#192397)

Add checks to ensure that an alias and its target have compatible types:
- Generate an error if a function alias points to a variable or vice
  versa.
 - Issue a warning for mismatches in function types.
 - Ignore type discrepancies for variables.

This behavior aligns with similar diagnostics in GCC.

Resolves: #47301


  Commit: 6dd373f8aaab96b293a1374d3039b3c658b292e1
      https://github.com/llvm/llvm-project/commit/6dd373f8aaab96b293a1374d3039b3c658b292e1
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M compiler-rt/test/sanitizer_common/TestCases/Linux/pthread_join.cpp

  Log Message:
  -----------
  [sanitizer] Relax pthread_join tests for different glibc versions (#194100)

New (2.43) glibc successfully joins already joined threads.
Probably result of
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=f7648bf44384118b6658ddcd741408fc4fbdd056


  Commit: c3df8f8c83372a53f6949c585d1a5a03b775332c
      https://github.com/llvm/llvm-project/commit/c3df8f8c83372a53f6949c585d1a5a03b775332c
  Author: joaosaffran <joaosaffranllvm at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/reversebits.ll

  Log Message:
  -----------
  [SPIRV] Add 64 bit lowering for bitreverse (#193068)

Bit reverse didn't handle 64-bit ints; this patch adds such handling.

#fix: https://github.com/llvm/llvm-project/issues/192756


  Commit: 7059fc556bfe5e8787a00c47a649459c6ab1a1c6
      https://github.com/llvm/llvm-project/commit/7059fc556bfe5e8787a00c47a649459c6ab1a1c6
  Author: Igor Kudrin <ikudrin at accesssoftek.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticFrontendKinds.td
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/test/CodeGen/alias.c
    M clang/test/Sema/attr-alias-elf.c
    R clang/test/SemaObjC/attr-alias.m
    M compiler-rt/lib/dfsan/dfsan_custom.cpp

  Log Message:
  -----------
  Revert "[Clang][CodeGen] Report when an alias points to an incompatible target" (#194106)

Reverts llvm/llvm-project#192397


  Commit: 2428fbb613be0f2b4468cfa26908186e097262c7
      https://github.com/llvm/llvm-project/commit/2428fbb613be0f2b4468cfa26908186e097262c7
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
    M llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll

  Log Message:
  -----------
  [NFC][ThinLTO] Remove JumpTableToSwitchPass from the test (#194103)

It's there from invalid conflict resolution in #193649.


  Commit: 84b0809a84f4b4df18cc78e132a2588d9112ff01
      https://github.com/llvm/llvm-project/commit/84b0809a84f4b4df18cc78e132a2588d9112ff01
  Author: Alex MacLean <amaclean at nvidia.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
    M llvm/include/llvm/CodeGen/GlobalISel/Utils.h
    M llvm/include/llvm/Target/GlobalISel/Combine.td
    M llvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/lib/CodeGen/GlobalISel/Utils.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/combine-constant-fold-count.mir

  Log Message:
  -----------
  [GIsel] Add constant-folding for bit-counting ops (#194010)


  Commit: 7bbfee35775e8ece4aa44e13de37a7b4f5b587fe
      https://github.com/llvm/llvm-project/commit/7bbfee35775e8ece4aa44e13de37a7b4f5b587fe
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/Disasm.cpp

  Log Message:
  -----------
  [clang][bytecode][NFC] Add record/union names in Descriptor::dump() (#194002)


  Commit: 5e09af5f30a7c68e9253e008a5d63691a0657108
      https://github.com/llvm/llvm-project/commit/5e09af5f30a7c68e9253e008a5d63691a0657108
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/Interp.h
    M clang/test/AST/ByteCode/cxx23.cpp

  Log Message:
  -----------
  [clang][bytecode] Reject inc/dec on non-numbers (#193954)


  Commit: aeea3191d4162f61ea84c3be9fc3ede6a7883c91
      https://github.com/llvm/llvm-project/commit/aeea3191d4162f61ea84c3be9fc3ede6a7883c91
  Author: Fangrui Song <i at maskray.me>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/include/llvm/MC/MCContext.h
    M llvm/include/llvm/MC/MCELFObjectWriter.h
    M llvm/lib/MC/ELFObjectWriter.cpp
    M llvm/lib/MC/MCAsmStreamer.cpp
    M llvm/lib/MC/MCContext.cpp
    M llvm/lib/MC/MCELFStreamer.cpp
    M llvm/lib/MC/MCObjectStreamer.cpp
    M llvm/lib/MC/MCWinCOFFStreamer.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
    M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.h
    M llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
    M llvm/lib/Target/X86/X86MCInstLower.cpp

  Log Message:
  -----------
  [MC] Change MCContext::getTargetOptions to return a reference. NFC (#194112)

Since #180464, MCAsmInfo stores a non-null MCTargetOptions pointer set
by
TargetRegistry::createMCAsmInfo, and MCContext's constructor asserts
that
MAI->getTargetOptions() is non-null. Return the options by reference
instead of by pointer so callers can drop the null handling.


  Commit: 320a5154ecd3dea719bf1b92e9e3d3c4772c5291
      https://github.com/llvm/llvm-project/commit/320a5154ecd3dea719bf1b92e9e3d3c4772c5291
  Author: hev <wangrui at loongson.cn>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    A llvm/test/CodeGen/LoongArch/lasx/srar.ll
    A llvm/test/CodeGen/LoongArch/lasx/srlr.ll
    A llvm/test/CodeGen/LoongArch/lsx/srar.ll
    A llvm/test/CodeGen/LoongArch/lsx/srlr.ll

  Log Message:
  -----------
  [LoongArch] Add tests for vector shift-right-and-round combines (#192920)


  Commit: 3dc4fd6dd41100f051a63642f449b16324389c96
      https://github.com/llvm/llvm-project/commit/3dc4fd6dd41100f051a63642f449b16324389c96
  Author: cqwrteur <uwgghhbcad at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp

  Log Message:
  -----------
  [compiler-rt][sanitizer] Remove linux/scc.h (#194116)

#194110 

Linux Kernel has removed scc.h header completely from the source code
Therefore, we need to remove the usage in compiler-rt/sanitizer too.
https://github.com/torvalds/linux/commit/64edfa65062dc4509ba75978116b2f6d392346f5#diff-1ca78e598a5041ee51ae795d168435afad598b82a7a0ce80f215993589b96c7c

Without removing it, not only it breaks compiler-rt but also GCC build
since GCC always builds libsanitizer for linux targets.

After merging this we will need to cherry pick to GCC.


  Commit: a693efcc40b1aff43e66802ca53c04b3e1a7f684
      https://github.com/llvm/llvm-project/commit/a693efcc40b1aff43e66802ca53c04b3e1a7f684
  Author: Gábor Spaits <gaborspaits1 at gmail.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/CMakeLists.txt
    A llvm/lib/Target/RISCV/GISel/RISCVInlineAsmLowering.cpp
    A llvm/lib/Target/RISCV/GISel/RISCVInlineAsmLowering.h
    M llvm/lib/Target/RISCV/RISCVSubtarget.cpp
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator-inline-asm.ll

  Log Message:
  -----------
  [RISCV][GlobalISel] Support RISC-V specific inline asm constraints: 'I', 'J', 'K' and 'S' (#193765)

This patch implements some target-specific constraints for RISC-V: `I`,
`J`, `K` and `S`. These constraints are all for immediate values except
for `S`. The handling of these constraints is implemented with by adding
`RISCVInlineAsmLowering` subclass of `InlineAsmLowering`.


  Commit: 3bbfa3e5f07adbffd9512962aade35f432edfb4e
      https://github.com/llvm/llvm-project/commit/3bbfa3e5f07adbffd9512962aade35f432edfb4e
  Author: hev <wangrui at loongson.cn>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
    M llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
    M llvm/test/CodeGen/LoongArch/lasx/srar.ll
    M llvm/test/CodeGen/LoongArch/lasx/srlr.ll
    M llvm/test/CodeGen/LoongArch/lsx/srar.ll
    M llvm/test/CodeGen/LoongArch/lsx/srlr.ll

  Log Message:
  -----------
  [LoongArch] Combine rounded vector shifts to VSRLR/VSRAR (#192921)

Add DAG combines to recognize canonical rounded shift patterns and lower
them to target-specific vector rounded shift instructions.

The combines match vector arithmetic and logical right shifts with
rounding implemented as:

```
  add (srl/sra X, shift),
      (and (srl X, shift-1), 1)
```

and the shift-by-1 variant:

```
  add (srl/sra X, 1),
      (and X, 1)
```

Additionally, handle the guarded form generated when shift may be zero:

```
  vselect (setcc shift, 0, seteq),
          X,
          rounded_shift
```

and fold it to the corresponding rounded shift instruction.

Define new target DAG nodes VSRLR and VSRAR and add instruction
selection patterns for both LSX and LASX, including register and
immediate shift forms.


  Commit: 55af9c26151bbbec2bb939e4ec9f99bb1a5389e7
      https://github.com/llvm/llvm-project/commit/55af9c26151bbbec2bb939e4ec9f99bb1a5389e7
  Author: hulxv <hulxxv at gmail.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M libc/shared/math.h
    A libc/shared/math/dsubf128.h
    A libc/shared/math/dsubl.h
    M libc/src/__support/FPUtil/generic/FMA.h
    M libc/src/__support/FPUtil/generic/add_sub.h
    M libc/src/__support/math/CMakeLists.txt
    A libc/src/__support/math/dsubf128.h
    A libc/src/__support/math/dsubl.h
    M libc/src/math/generic/CMakeLists.txt
    M libc/src/math/generic/dsubf128.cpp
    M libc/src/math/generic/dsubl.cpp
    M libc/test/shared/CMakeLists.txt
    M libc/test/shared/shared_math_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc][math] Refactor dsub family to header-only (#182160)

Refactors the dsub math family to be header-only.

Closes https://github.com/llvm/llvm-project/issues/182159

Target Functions:
  - dsubf128
  - dsubl

---------

Co-authored-by: bassiounix <muhammad.m.bassiouni at gmail.com>


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

  Changed paths:
    M clang/test/CXX/drs/cwg25xx.cpp

  Log Message:
  -----------
  [clang] Enable part of CWG2598 test in C++20 mode (#189310)

This is a small fix for `#if __cplusplus >= 202002L` condition, which
accidentally disabled this part of the test in C++20 mode.


  Commit: 6443e9b8a5bcfa690d6605d990023d4ab672fe6f
      https://github.com/llvm/llvm-project/commit/6443e9b8a5bcfa690d6605d990023d4ab672fe6f
  Author: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

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

  Log Message:
  -----------
  [clang] Tests for CWG1670 and CWG1878: `auto` in conversion functions (#187850)

This PR adds tests for
[CWG1670](https://cplusplus.github.io/CWG/issues/1670.html) "`auto` as
_conversion-type-id_" and
[CWG1878](https://cplusplus.github.io/CWG/issues/1878.html) "`operator
auto` template". The long and short of it is that placeholder type
specifier (`auto`) cannot be used to declare conversion function or
conversion function template. We've always diagnosed template case but
not non-template case.


  Commit: 4ed36386a276943cfc2549fee0863a008e0d588b
      https://github.com/llvm/llvm-project/commit/4ed36386a276943cfc2549fee0863a008e0d588b
  Author: Maksim Ivanov <emaxx at google.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M compiler-rt/include/sanitizer/asan_interface.h
    M compiler-rt/lib/asan/asan_errors.h
    M compiler-rt/lib/asan/asan_interceptors_memintrinsics.h
    M compiler-rt/lib/asan/asan_interface.inc
    M compiler-rt/lib/asan/asan_interface_internal.h
    M compiler-rt/lib/asan/asan_report.cpp
    M compiler-rt/lib/asan/asan_report.h
    M compiler-rt/test/asan/TestCases/debug_double_free.cpp
    A compiler-rt/test/asan/TestCases/debug_invalid_pointer_pair.cpp
    A compiler-rt/test/asan/TestCases/debug_memcpy_overlap.cpp
    A compiler-rt/test/asan/TestCases/debug_negative_size.cpp
    M compiler-rt/test/asan/TestCases/debug_report.cpp

  Log Message:
  -----------
  [asan] API for getting multiple pointer ranges (#181446)

Add an API that, unlike __asan_get_report_address(), can return multiple
addresses and sizes. This allows a handler to inspect the source and the
destination ranges of errors that have more than one pointer involved
(e.g., memcpy-param-overlap).

Fixes #155406.

Assisted-by: Gemini

---------

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


  Commit: 5c73c7a3a0574ffd463da610d31d1855b6929fdf
      https://github.com/llvm/llvm-project/commit/5c73c7a3a0574ffd463da610d31d1855b6929fdf
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M lldb/docs/resources/lldbgdbremote.md

  Log Message:
  -----------
  [lldb] Propose MultiBreakpoint extension to GDB Remote (#192910)

This describes the packet discussed in the RFC:
https://discourse.llvm.org/t/rfc-a-new-packet-to-set-remove-multiple-breakpoints/90623

The following PRs are related:

* [[lldb] Propose MultiBreakpoint extension to GDB
Remote](https://github.com/llvm/llvm-project/pull/192910)
* [[debugserver] Implement
MultiBreakpoint](https://github.com/llvm/llvm-project/pull/192914)
* [[lldb-server][NFC] Factor out code handling breakpoint
packets](https://github.com/llvm/llvm-project/pull/192915)
* [[lldb-server] Implement support for MultiBreakpoint
packet](https://github.com/llvm/llvm-project/pull/192919)
* [[lldb][GDBRemote] Parse MultiBreakpoint+
capability](https://github.com/llvm/llvm-project/pull/192962)
* [[lldb][NFC] Move BreakpointSite::IsEnabled/SetEnabled into
Process](https://github.com/llvm/llvm-project/pull/192964)
* [[lldb] Implement delayed
breakpoints](https://github.com/llvm/llvm-project/pull/192971)
* [[lldb] Override UpdateBreakpointSites in ProcessGDBRemote to use
MultiBreakpoint](https://github.com/llvm/llvm-project/pull/192988)


  Commit: 61f311d93ed0542003c82ea9c75a44d753d4febd
      https://github.com/llvm/llvm-project/commit/61f311d93ed0542003c82ea9c75a44d753d4febd
  Author: Ben Shi <2283975856 at qq.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AVR/AVRAsmPrinter.cpp
    A llvm/test/CodeGen/AVR/issue-176830.ll

  Log Message:
  -----------
  [AVR] Fix a bug in printing assembly operand with extra code (#193964)


  Commit: 3e10b2fe2169227e7e8e338430a404e785e3a089
      https://github.com/llvm/llvm-project/commit/3e10b2fe2169227e7e8e338430a404e785e3a089
  Author: Ben Shi <2283975856 at qq.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M clang/lib/Basic/Targets/AVR.h
    A clang/test/CodeGen/avr/issue-176830.c

  Log Message:
  -----------
  [clang] Fix incorrect register information for AVR (#193940)


  Commit: 2f28e1db535bddca42d0954b365a4e5f17bdf534
      https://github.com/llvm/llvm-project/commit/2f28e1db535bddca42d0954b365a4e5f17bdf534
  Author: Will Hawkins <hawkinsw at obs.cr>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/23.rst
    M libcxx/docs/Status/Cxx23Papers.csv
    M libcxx/include/CMakeLists.txt
    A libcxx/include/__ranges/stride_view.h
    M libcxx/include/module.modulemap.in
    M libcxx/include/ranges
    M libcxx/include/version
    M libcxx/modules/std/ranges.inc
    A libcxx/test/libcxx/ranges/range.adaptors/range.stride.view/ctor.assert.pass.cpp
    A libcxx/test/libcxx/ranges/range.adaptors/range.stride.view/iterator/dereference.assert.pass.cpp
    A libcxx/test/libcxx/ranges/range.adaptors/range.stride.view/iterator/increment.assert.pass.cpp
    A libcxx/test/libcxx/ranges/range.adaptors/range.stride.view/iterator/iterator.nodiscard.verify.cpp
    A libcxx/test/libcxx/ranges/range.adaptors/range.stride.view/iterator/operator_plus_equal.assert.pass.cpp
    A libcxx/test/libcxx/ranges/range.adaptors/range.stride.view/nodiscard.verify.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/version.version.compile.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/adaptor.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/base.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/begin.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/borrowing.compile.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/concept.compile.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/ctad.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/ctor.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/end.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/base.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/compare.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/ctor.copy.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/ctor.default.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/decrement.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/dereference.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/equal.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/increment.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/iter_move.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/iter_swap.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/minus.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/minus_equal.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/plus.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/plus_equal.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/subscript.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/types.compile.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/size.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/stride.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/types.h
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++] Implement P1899 `ranges::stride_view` (#65200)

Implement `ranges::stride_view` in libc++. This PR was migrated from
Phabricator (https://reviews.llvm.org/D156924).

Closes #105198

Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
Co-authored-by: A. Jiang <de34 at live.cn>


  Commit: 0ad0e899d456f824e520bfef7224a5f5bb2a7581
      https://github.com/llvm/llvm-project/commit/0ad0e899d456f824e520bfef7224a5f5bb2a7581
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M libcxx/include/__assert

  Log Message:
  -----------
  [libc++] Remove full header path from assertion messages (#190060)

This creates additional bloat in programs or debug info, without much
additional value beyond just the file name.

Fixes #190058


  Commit: 1348766d1d686b8825bdaa2f6638c1783d76a4a7
      https://github.com/llvm/llvm-project/commit/1348766d1d686b8825bdaa2f6638c1783d76a4a7
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/PhaseOrdering/X86/avg.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/InstructionsState-is-invalid-0.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/PR38339.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/div-like-mixed-with-undefs.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/reused-scalar-repeated-in-node.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/vectorizable-selects-uniform-cmps.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/basic-strided-loads.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/gather-insert-point-restore.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reduced-value-repeated-and-vectorized.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reductions.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reordered-buildvector-scalars.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/same-node-reused.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/smin-signed-zextended.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/split-vectorize-parent-for-copyables.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/unordered-loads-operands.ll
    M llvm/test/Transforms/SLPVectorizer/SystemZ/reuse-non-power-of-2-reorder.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR39774.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR40310.ll
    M llvm/test/Transforms/SLPVectorizer/X86/deleted-inst-reduction-attempt.ll
    M llvm/test/Transforms/SLPVectorizer/X86/div-possibly-extended-with-poisons.ll
    M llvm/test/Transforms/SLPVectorizer/X86/external-used-across-reductions.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extractelements-vector-ops-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extractelemets-extended-by-poison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/full-match-with-poison-scalar.ll
    M llvm/test/Transforms/SLPVectorizer/X86/full-matched-bv-with-subvectors.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gather-with-cmp-user.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gathered-loads-non-full-reg.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gathered-shuffle-resized.ll
    M llvm/test/Transforms/SLPVectorizer/X86/identity-match-splat-less-defined.ll
    M llvm/test/Transforms/SLPVectorizer/X86/insert-subvector.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-merge-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-merge.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-partial-vector-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/matched-gather-part-of-combined.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-power-of-2-order-detection.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-power-of-2-subvectors-insert.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-schedulable-before-main.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-scheduled-inst-extern-use.ll
    M llvm/test/Transforms/SLPVectorizer/X86/original-inst-scheduled-after-copyable.ll
    M llvm/test/Transforms/SLPVectorizer/X86/parent-node-schedulable-with-multi-copyables.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47629-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47629.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47642.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr49081.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduced-val-vectorized-in-transform.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder-reused-masked-gather.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder-reused-masked-gather2.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reordered-masked-loads.ll
    M llvm/test/Transforms/SLPVectorizer/X86/replaced-external-in-reduction.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reschedule-only-scheduled.ll
    M llvm/test/Transforms/SLPVectorizer/X86/resized-bv-values-non-power-of2-node.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reuse-extracts-in-wider-vect.ll
    M llvm/test/Transforms/SLPVectorizer/X86/revec-non-power-2-to-power-2-large-vect.ll
    M llvm/test/Transforms/SLPVectorizer/X86/revec-reduced-value-vectorized-later.ll
    M llvm/test/Transforms/SLPVectorizer/X86/same-values-sub-node-with-poisons.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shl-to-add-transformation5.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shrink_after_reorder.ll
    M llvm/test/Transforms/SLPVectorizer/X86/sin-sqrt.ll
    M llvm/test/Transforms/SLPVectorizer/X86/split-vectorize-gathered-def-after-use.ll
    M llvm/test/Transforms/SLPVectorizer/gathered-consecutive-loads-different-types.ll
    M llvm/test/Transforms/SLPVectorizer/insertelement-across-zero.ll
    M llvm/test/Transforms/SLPVectorizer/reduced-gathered-vectorized.ll
    M llvm/test/Transforms/SLPVectorizer/reduction-whole-regs-loads.ll
    M llvm/test/Transforms/SLPVectorizer/reorder-clustered-node.ll
    M llvm/test/Transforms/SLPVectorizer/revec-shufflevector.ll
    M llvm/test/Transforms/SLPVectorizer/revec.ll
    M llvm/test/Transforms/SLPVectorizer/shuffle-mask-resized.ll

  Log Message:
  -----------
  [SLP]Initial support for non-power-of-2 vectorization

Enables non-power-of-2 vectorization within the SLP tree. The root nodes
are still required to be power-of-2, will be addressed in a follow-up
patches.

Reviewers: bababuck, RKSimon, preames, hiraditya, HanKuanChen

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


  Commit: 6f0b55ec55f3e5e1ccc0d6b0d04a307479218768
      https://github.com/llvm/llvm-project/commit/6f0b55ec55f3e5e1ccc0d6b0d04a307479218768
  Author: Haocong Lu <haoconglu at qq.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
    M clang/lib/CIR/CodeGen/CIRGenTypes.cpp
    A clang/test/CIR/CodeGen/fixed-point-literal.c

  Log Message:
  -----------
  [CIR] Upstream missing support for fixed point literal (#193445)

- Upstream CIR CodeGen for fixed point builtin types `_Fract`, `_Accum`
and `_Sat`.
- Upstream CIR CodeGen for fixed point literal
- Part of task https://github.com/llvm/llvm-project/issues/192316


  Commit: ada1b812d1a099630dafdc3d1b2f4e67e7197ad3
      https://github.com/llvm/llvm-project/commit/ada1b812d1a099630dafdc3d1b2f4e67e7197ad3
  Author: David Green <david.green at arm.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/test/CodeGen/AArch64/arm64-vmul.ll

  Log Message:
  -----------
  [AArch64] Addition tests for add_like Or of smlal/umlal. NFC (#194138)


  Commit: f2436980771e8d5a203a6092160550f8c15664e1
      https://github.com/llvm/llvm-project/commit/f2436980771e8d5a203a6092160550f8c15664e1
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/test/CodeGen/X86/dag-topological-sort.ll

  Log Message:
  -----------
  [X86] dag-topological-sort.ll - add additional test coverage (#194135)

The PR134602 test codegen will converge after #193987

Ensure we test with -combiner-topological-sorting=false as well


  Commit: fed92a3de6cefa4f1d62312aa48f494693b00c7c
      https://github.com/llvm/llvm-project/commit/fed92a3de6cefa4f1d62312aa48f494693b00c7c
  Author: DaniPopes <57450786+DaniPopes at users.noreply.github.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp

  Log Message:
  -----------
  [ORC] Wrap unconditional dbgs() in LLVM_DEBUG in JITLoaderPerf (#188903)

Fixes #188900


  Commit: e80d3a375447009d5498c89b23f746635d9cb351
      https://github.com/llvm/llvm-project/commit/e80d3a375447009d5498c89b23f746635d9cb351
  Author: David Green <david.green at arm.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    A llvm/test/CodeGen/Thumb2/mve-extbuildvec.ll

  Log Message:
  -----------
  [ARM][MVE] Add tests for sext and zext of i1 buildvector. NFC (#194141)


  Commit: 44633491b77c3e053aebaba13c017b39a806b045
      https://github.com/llvm/llvm-project/commit/44633491b77c3e053aebaba13c017b39a806b045
  Author: Hui <hui.xie1990 at gmail.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M libcxx/include/__utility/constant_wrapper.h
    M libcxx/test/libcxx/utilities/const.wrap.class/nodiscard.verify.cpp
    M libcxx/test/std/utilities/const.wrap.class/call.pass.cpp
    M libcxx/test/std/utilities/const.wrap.class/subscript.pass.cpp

  Log Message:
  -----------
  [libc++] Fix constant_wrapper::operator() (#193573)

As Tomasz pointed out on mattermost, 
given

```cpp
template <class T>
struct MustBeInt {
  static_assert(std::same_as<T, int>);
};

struct Poison {
  template <class T>
  constexpr auto operator()(T) const noexcept -> MustBeInt<T> {
    return {};
  }
};

std::cw<Poison{}>(std::cw<5>);
```

This should work according to the wording
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p3978r3.pdf

```cpp
template<class... Args>
static constexpr decltype(auto) operator()(Args&&... args) noexcept(see below);
```

```
- Let call-expr be constant_wrapper<INVOKE (value, remove_cvref_t<Args>::value...)>{} if all types
in remove_cvref_t<Args>... satisfy constexpr-param and constant_wrapper<INVOKE (value, remove_-
cvref_t<Args>::value...)> is a valid type, otherwise let call-expr be INVOKE (value, std::forward<Args>(args)...).
- Constraints: call-expr is a valid expression.
- Effects: Equivalent to: return call-expr;
- Remarks: The exception specification is equivalent to noexcept(call-expr).
```

so basically the spec says, there are two cases
- constexpr-param case
-  runtime case

and if constexpr-param case works, uses it, otherwise fallback to
runtime case if it is valid, otherwise substitution error.

In this case, `std::cw<5>` satisfy `constexpr-param`, and
`constant_wrapper<Poison{}(5)>` is valid , it should just work. however,
our implementation implemented the two cases in two overload

```cpp
template <class... _Args>
    requires(__constexpr_param<remove_cvref_t<_Args>> && ...)
  _LIBCPP_HIDE_FROM_ABI static constexpr auto __call(_Args&&...) noexcept
      -> constant_wrapper<std::invoke(value, remove_cvref_t<_Args>::value...)> {
  return {};
  }

 template <class... _Args>
  _LIBCPP_HIDE_FROM_ABI static constexpr auto
  __call(_Args&&... __args) noexcept(noexcept(std::invoke(value, std::forward<_Args>(__args)...)))
      -> decltype(std::invoke(value, std::forward<_Args>(__args)...)) {
    return std::invoke(value, std::forward<_Args>(__args)...);
  }
```

The logic is that, both overloads use return type SFINAE and the
constexpr-param case's concept is more constrained so it will be picked
first if constexpr-param case works.

However, in this example, the second overload's return type SFINAE
causes a hard error by the `static_assert` in the user code.

The fix is simply constrain the second overload and not using return
type SFINAE so it short circuits if constexpr-param case is valid.


As a drive by, removed the internal helper function and directly make
the public interface `operator()` two overloads so that we can apply
`[[nodiscard]]` on the constexpr-param case


  Commit: 228fabd5be82ac15d14109b90c7ee1cd682b4254
      https://github.com/llvm/llvm-project/commit/228fabd5be82ac15d14109b90c7ee1cd682b4254
  Author: Brandon Wu <brandon.wu at sifive.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M clang/include/clang/AST/TypeBase.h
    M clang/include/clang/Basic/RISCVVTypes.def
    M clang/include/clang/Basic/riscv_vector.td
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/lib/Sema/SemaRISCV.cpp
    M clang/lib/Support/RISCVVIntrinsicUtils.cpp
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/non-policy/non-overloaded/vfncvt.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/non-policy/non-overloaded/vfncvtbf16.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/non-policy/non-overloaded/vfwcvtbf16.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/non-policy/overloaded/vfncvt.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/non-policy/overloaded/vfncvtbf16.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/non-policy/overloaded/vfwcvtbf16.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/policy/non-overloaded/vfncvt.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/policy/non-overloaded/vfncvtbf16.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/policy/non-overloaded/vfwcvtbf16.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/policy/overloaded/vfncvt.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/policy/overloaded/vfncvtbf16.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/policy/overloaded/vfwcvtbf16.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-handcrafted/rvv-intrinsic-datatypes.cpp
    A clang/test/CodeGenCXX/riscv-mangle-rvv-vectors.cpp
    M clang/test/Sema/riscv-types.c
    M clang/utils/TableGen/RISCVVEmitter.cpp

  Log Message:
  -----------
  [Clang][RISCV] Introduce OFP8(E4M3, E5M2) RISC-V vector types (#191349)

Currently there's no OFP8 scalar type supported in both clang and llvm
type system, the vector OFP8 RVV types are lowered to i8 llvm types for
now.
The reason to support only clang type is because of intrinsics
definition capability. If we make the clang type also using uint8 vector
types, it's not able to distinguish between E4M3 type and E5M2 type so
that we have to append additional type suffix to it.
intrinsic spec update pr:
https://github.com/riscv-non-isa/riscv-rvv-intrinsic-doc/pull/432
vreinterpret intrinsic PR:
https://github.com/llvm/llvm-project/pull/191626

DONT MERGE: We have to get the intrinsic spec merged first to be able to
make zvfofp8min change


  Commit: 5ee6e6d5ef37b329c5693ea934f19b37936a632e
      https://github.com/llvm/llvm-project/commit/5ee6e6d5ef37b329c5693ea934f19b37936a632e
  Author: Rajveer Singh Bharadwaj <rajveer.developer at icloud.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    A llvm/test/CodeGen/AArch64/uaddlp.ll

  Log Message:
  -----------
  [AArch64] Use `AArch64ISD::UADDLP` for manual widening adjacent arithmetic (zext/shuffle combination) (#189255)


  Commit: 142a87178aa480cdf6d1c3a28a5fc3a0a4326274
      https://github.com/llvm/llvm-project/commit/142a87178aa480cdf6d1c3a28a5fc3a0a4326274
  Author: David Green <david.green at arm.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/test/CodeGen/Thumb2/mve-extbuildvec.ll

  Log Message:
  -----------
  [ARM][MVE] Transform sext and zext of i1 buildvector (#192519)

This helps by avoiding the difficult predicate generation in scalar, using
natural extends to all-zero or all-ones in scalar as opposed to re-extending
them in vector registers.


  Commit: 8cd9673451a814b871fc3d2a3023dd1decc8bab3
      https://github.com/llvm/llvm-project/commit/8cd9673451a814b871fc3d2a3023dd1decc8bab3
  Author: Ben Shi <2283975856 at qq.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AVR/AVRISelLowering.cpp
    M llvm/lib/Target/AVR/AVRInstrInfo.td
    A llvm/test/CodeGen/AVR/issue-104032.ll

  Log Message:
  -----------
  [AVR] Fix allocating DREGS (#193908)


  Commit: 22a2ff741827f3b6b538b63eddce20dcd50900c5
      https://github.com/llvm/llvm-project/commit/22a2ff741827f3b6b538b63eddce20dcd50900c5
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    A llvm/test/Transforms/SLPVectorizer/X86/non-vectorizable-call-operand.ll

  Log Message:
  -----------
  [SLP][NFC]Add a test with non-vectorizable functions/intrinsics, but vectorizable operands



Reviewers: 

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


  Commit: 7dff689a58c31600ae6062679b5434edbd65dcdc
      https://github.com/llvm/llvm-project/commit/7dff689a58c31600ae6062679b5434edbd65dcdc
  Author: David Green <david.green at arm.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/include/llvm/Target/GlobalISel/Combine.td

  Log Message:
  -----------
  [GlobalISel] Remove duplicate patterns. NFC (#194131)

This looks like a merge conflict from #194010 cause a duplicate line to
appear, causing warning about constant_fold_cast_op and fabs_fneg_fold
being used multiple times.


  Commit: 65b9755fd555e84b758e49d01c6a1e6d7fe63947
      https://github.com/llvm/llvm-project/commit/65b9755fd555e84b758e49d01c6a1e6d7fe63947
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/test/CodeGen/WebAssembly/strided-int-mac.ll

  Log Message:
  -----------
  [NFC][WebAssembly] strided-int-mac.ll - regenerate test checks (#194146)

Use update_llc_test_checks regeneration


  Commit: 2a54476802e65d7aabd74c2967e3f48030423c81
      https://github.com/llvm/llvm-project/commit/2a54476802e65d7aabd74c2967e3f48030423c81
  Author: Akimasa Watanuki <mencotton0410 at gmail.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M clang/test/lit.cfg.py

  Log Message:
  -----------
  [clang][lit] Substitute cir-opt when CIR is enabled (#194129)

Fix the CIR lit substitution introduced by #193665 to use `cir-opt`.


  Commit: cabe29eb6e0760bee7be4b31968a0e1bbb32f51a
      https://github.com/llvm/llvm-project/commit/cabe29eb6e0760bee7be4b31968a0e1bbb32f51a
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/check-omp-structure.h
    A flang/test/Semantics/OpenMP/branching-program-unit.f90

  Log Message:
  -----------
  [flang][OpenMP] Clear branch labels in all program units (#194152)

The semantic check for branching in or out of an OpenMP construct did
not reset its label information in some cases, leading to false positive
error messages in valid Fortran code.


  Commit: 355125414194a56bb09d4f405bb58d612f061194
      https://github.com/llvm/llvm-project/commit/355125414194a56bb09d4f405bb58d612f061194
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    R llvm/test/Transforms/SLPVectorizer/X86/non-vectorizable-call-operand.ll
    A llvm/test/Transforms/SLPVectorizer/X86/non-vectorizable-inst-operand.ll

  Log Message:
  -----------
  [SLP][NFC]Rename test, add other non-vectorizable inst candidates tests, NFC



Reviewers: 

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


  Commit: 4b87091acf019ea915c08da77701cc9beaba78f4
      https://github.com/llvm/llvm-project/commit/4b87091acf019ea915c08da77701cc9beaba78f4
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/include/llvm/IR/IRBuilder.h
    M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
    M llvm/test/CodeGen/AArch64/sink-and-fold.ll
    M llvm/test/Transforms/LoopIdiom/expand-scev-expand-simplifications.ll
    M llvm/test/Transforms/LoopStrengthReduce/depth-limit-overrun.ll
    M llvm/test/Transforms/LoopStrengthReduce/lsr-rewrite-to-add-one.ll
    M llvm/test/Transforms/LoopStrengthReduce/wrong-hoisting-iv.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/epilog-vectorization-factors.ll
    M llvm/test/Transforms/LoopVectorize/epilog-vectorization-reductions.ll
    M llvm/test/Transforms/LoopVectorize/version-stride-with-integer-casts.ll
    M polly/lib/CodeGen/IslNodeBuilder.cpp

  Log Message:
  -----------
  [SCEVExp] Use Builder.CreateBinOp in InsertBinOp. (#154148)

SCEVExpander's builder already uses InstSimplifyFolder. Use it to
construct binary ops via CreateBinOp instead of BinaryOperator::Create.

This helps to simplify away a few more instructions during SCEV
expansion.

PR: https://github.com/llvm/llvm-project/pull/154148


  Commit: b1763ea1ecc08c4e07aaf1eded89014c59bed593
      https://github.com/llvm/llvm-project/commit/b1763ea1ecc08c4e07aaf1eded89014c59bed593
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fptrunc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfptrunc-vp.ll

  Log Message:
  -----------
  [RISCV] Remove codegen for vp_fp_round, vp_fp_extend (#193219)

Part of the work to remove trivial VP intrinsics from the RISC-V
backend, see
https://discourse.llvm.org/t/rfc-remove-codegen-support-for-trivial-vp-intrinsics-in-the-risc-v-backend/87999

This splits off 2 intrinsics from #179622. vp.fpext was previously
expanded in #190589, we only need to expand vp.fptrunc in this PR.


  Commit: fad60465ce22a921237fc8ae223680d11e381532
      https://github.com/llvm/llvm-project/commit/fad60465ce22a921237fc8ae223680d11e381532
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmul-vp.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/sink-splat-operands.ll
    M llvm/test/CodeGen/RISCV/rvv/undef-vp-ops.ll
    M llvm/test/CodeGen/RISCV/rvv/vnsra-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vnsrl-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-vaaddu.ll
    M llvm/test/CodeGen/RISCV/rvv/vshl-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vsra-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vsrl-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vwsll-vp.ll

  Log Message:
  -----------
  [RISCV] Expand vp.shl, vp.lshr, vp.ashr (#193603)

Part of the work to remove trivial VP intrinsics from the RISC-V
backend, see
https://discourse.llvm.org/t/rfc-remove-codegen-support-for-trivial-vp-intrinsics-in-the-risc-v-backend/87999

This splits off 3 intrinsics from #179622. The codegen is left in for
now as other places can generate those nodes. performVP_TRUNCATECombine
needs to be updated to match the plain non-VP node when forming vaaddu.


  Commit: 6855d70d0153bc1b238a781db0211bdb581cfa4a
      https://github.com/llvm/llvm-project/commit/6855d70d0153bc1b238a781db0211bdb581cfa4a
  Author: Sirui Mu <msrlancern at gmail.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
    M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
    M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
    M clang/lib/CIR/CodeGen/CIRGenFunction.h
    M clang/test/CIR/CodeGen/atomic.c

  Log Message:
  -----------
  [CIR] Add support for atomic-to-non-atomic cast (#193784)

This patch adds support for atomic-to-non-atomic casts in CIR.

Related to #192319 .

Assisted-by: Github Copilot / GPT-5.4


  Commit: 109f2a2856972a68890168fd434f92b95083b4b5
      https://github.com/llvm/llvm-project/commit/109f2a2856972a68890168fd434f92b95083b4b5
  Author: Matthias Springer <me at m-sp.org>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/Math/IR/MathBase.td
    M mlir/include/mlir/Dialect/Math/IR/MathOps.td
    M mlir/lib/Conversion/MathToLLVM/MathToLLVM.cpp
    M mlir/test/Conversion/MathToLLVM/math-to-llvm.mlir
    M mlir/test/Dialect/Math/ops.mlir

  Log Message:
  -----------
  [mlir][math] Add rounding modes to `math.fma` (#192839)

Rounding modes have recently been added for `arith` FP operations
(#188458). This commit adds rounding modes to `math.fma`, following the
same design as for `arith` FP operations.

If a rounding mode is present, the LLVM lowering produces
`llvm.intr.experimental.constrained.fma`.

In the absence of a rounding mode, the rounding behavior is deferred to
the target backend.

Assisted-by: claude-opus-4.7-thinking-high


  Commit: 1d14d8597df8cc5b71312c01b4c961427b6fd85f
      https://github.com/llvm/llvm-project/commit/1d14d8597df8cc5b71312c01b4c961427b6fd85f
  Author: A. Jiang <de34 at live.cn>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/23.rst
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/include/span
    M libcxx/include/version
    M libcxx/test/std/containers/views/views.span/span.cons/array.pass.cpp
    R libcxx/test/std/containers/views/views.span/span.cons/initializer_list.assert.pass.cpp
    M libcxx/test/std/containers/views/views.span/span.cons/initializer_list.pass.cpp
    R libcxx/test/std/containers/views/views.span/span.cons/initializer_list.verify.cpp
    M libcxx/test/std/containers/views/views.span/span.cons/iterator_len.verify.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/span.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++] P4144R1: Remove `span`'s `initializer_list` constructor for C++26 (#191428)

Reverts P2447R6 (implemented in
dbbeee6b8357c5a68543f612f3b2b607f1911b4c). Some test cases that indicate
"old" behavior mentioned in P2447R6 are kept.


  Commit: 0eae5cf6ccad7b132bfe69d980df7053764c0845
      https://github.com/llvm/llvm-project/commit/0eae5cf6ccad7b132bfe69d980df7053764c0845
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-peephole-vmerge-vops.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-int-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-int-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/setcc-int-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/setcc-int-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/sink-splat-operands.ll

  Log Message:
  -----------
  [RISCV] Remove codegen for vp.icmp (#193606)

Part of the work to remove trivial VP intrinsics from the RISC-V
backend, see
https://discourse.llvm.org/t/rfc-remove-codegen-support-for-trivial-vp-intrinsics-in-the-risc-v-backend/87999

This splits off vp.icmp from #179622


  Commit: 764e10c042db3c8ea1696b087bd3ca9ffad4a677
      https://github.com/llvm/llvm-project/commit/764e10c042db3c8ea1696b087bd3ca9ffad4a677
  Author: Anshul Nigham <nigham at google.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64.h
    M llvm/lib/Target/AArch64/AArch64PassRegistry.def
    M llvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp
    M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp

  Log Message:
  -----------
  [NewPM] Adds a port for AArch64SIMDInstrOpt (#188177)

Adds a port for AArch64SIMDInstrOpt

- Refactored to extract base logic as Impl.
- **Note**: Moved theI nstruction Replacement Table and cross-function
cached maps as members of the Impl class.
- **Note**: Updated `InstReplInfo::RC` to be a pointer rather than a
stack object, because we're putting it into MRI
[here](https://github.com/llvm/llvm-project/blob/704c60fe9110256d2698d8e56b8c44ec5d1e733f/llvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp#L532).
- Renamed existing pass with "Legacy" suffix and updated references
- Added NewPM pass AArch64SIMDInstrOptPass
- Updated pass type to `aarch64-simd-instr-opt` (prev:
`aarch64-simdinstr-opt`)

No existing `.mir` tests to update.


  Commit: 8e3fa9514d6f2d241b7b015f031768bcf7108556
      https://github.com/llvm/llvm-project/commit/8e3fa9514d6f2d241b7b015f031768bcf7108556
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/check-omp-structure.h

  Log Message:
  -----------
  [flang][OpenMP] Replace llvmOmpClause with llvm::omp::Clause (#194162)

Both types, llvmOmpClause (alias of const llvm::omp::Clause) and
llvm::omp::Clause are in use, let's just stick with one.


  Commit: 6de092dca37864cd70b55bfeaba1ec24c4382a60
      https://github.com/llvm/llvm-project/commit/6de092dca37864cd70b55bfeaba1ec24c4382a60
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/Interp.h
    M clang/lib/AST/ByteCode/Pointer.h
    M clang/test/AST/ByteCode/c.c

  Log Message:
  -----------
  [clang][bytecode] Fix crash involving labels and null sub (#194115)

For null pointers, getDeclDesc() may return null, so we can't call
asExpr() on it.


  Commit: 8b1d6244de714df1288c611fa245fdc168f5bd8a
      https://github.com/llvm/llvm-project/commit/8b1d6244de714df1288c611fa245fdc168f5bd8a
  Author: Lucas Chollet <lucas.chollet at serenityos.org>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    A clang/test/Driver/Inputs/empty_tree/.keep
    A clang/test/Driver/Inputs/serenity_tree/usr/lib/crtbeginS.o
    A clang/test/Driver/Inputs/serenity_tree/usr/lib/crtendS.o
    M clang/test/Driver/serenity.cpp

  Log Message:
  -----------
  [clang] Make serenity.cpp more independent of the host (#193981)

Tests matching crt files previously relied on the host system not using
the same file paths as Serenity. This breaks on AIX, as both systems use
`/usr/lib/crt0.o`.

Redirect most tests to an empty sysroot so they match only on the
filename and remain independent of the host system. Also add a test that
verifies crt files can be found in a normal sysroot.


  Commit: 548207463a0cbd84624f56092f65ef281764120e
      https://github.com/llvm/llvm-project/commit/548207463a0cbd84624f56092f65ef281764120e
  Author: Nico Weber <thakis at chromium.org>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

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

  Log Message:
  -----------
  [gn build] Port 2f28e1db535b (#194165)


  Commit: c34d43d4a601eba58317f7e23791668e0803ce6b
      https://github.com/llvm/llvm-project/commit/c34d43d4a601eba58317f7e23791668e0803ce6b
  Author: Nico Weber <thakis at chromium.org>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/lib/Target/RISCV/BUILD.gn

  Log Message:
  -----------
  [gn build] Port a693efcc40b1 (#194166)


  Commit: 87673e4f585738b56ee1743e1a6b55826f8c200f
      https://github.com/llvm/llvm-project/commit/87673e4f585738b56ee1743e1a6b55826f8c200f
  Author: Nico Weber <thakis at chromium.org>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

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

  Log Message:
  -----------
  [gn build] Port c59c19bf5921 (#194167)


  Commit: 93317d19ad94eccdd96bee886d745fbfab6daf60
      https://github.com/llvm/llvm-project/commit/93317d19ad94eccdd96bee886d745fbfab6daf60
  Author: Rishi Khare <rishiskhare at gmail.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/IPO/Inliner.cpp

  Log Message:
  -----------
  Fix typo in comment in Inliner.cpp (#194172)


  Commit: bb1f8229e618c5a3363546613e07ae3fbeef741a
      https://github.com/llvm/llvm-project/commit/bb1f8229e618c5a3363546613e07ae3fbeef741a
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M .github/workflows/containers/github-action-ci-windows/Dockerfile
    M .github/workflows/containers/github-action-ci/Dockerfile

  Log Message:
  -----------
  [Github] Bump CI containers to 22.1.4 (#194175)


  Commit: e19f36ff8189f1bd6d3b214d2c30ab8ef0639678
      https://github.com/llvm/llvm-project/commit/e19f36ff8189f1bd6d3b214d2c30ab8ef0639678
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/PhaseOrdering/X86/avg.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/InstructionsState-is-invalid-0.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/PR38339.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/div-like-mixed-with-undefs.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/reused-scalar-repeated-in-node.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/vectorizable-selects-uniform-cmps.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/basic-strided-loads.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/gather-insert-point-restore.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reduced-value-repeated-and-vectorized.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reductions.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reordered-buildvector-scalars.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/same-node-reused.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/smin-signed-zextended.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/split-vectorize-parent-for-copyables.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/unordered-loads-operands.ll
    M llvm/test/Transforms/SLPVectorizer/SystemZ/reuse-non-power-of-2-reorder.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR39774.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR40310.ll
    M llvm/test/Transforms/SLPVectorizer/X86/deleted-inst-reduction-attempt.ll
    M llvm/test/Transforms/SLPVectorizer/X86/div-possibly-extended-with-poisons.ll
    M llvm/test/Transforms/SLPVectorizer/X86/external-used-across-reductions.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extractelements-vector-ops-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extractelemets-extended-by-poison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/full-match-with-poison-scalar.ll
    M llvm/test/Transforms/SLPVectorizer/X86/full-matched-bv-with-subvectors.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gather-with-cmp-user.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gathered-loads-non-full-reg.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gathered-shuffle-resized.ll
    M llvm/test/Transforms/SLPVectorizer/X86/identity-match-splat-less-defined.ll
    M llvm/test/Transforms/SLPVectorizer/X86/insert-subvector.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-merge-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-merge.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-partial-vector-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/matched-gather-part-of-combined.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-power-of-2-order-detection.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-power-of-2-subvectors-insert.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-schedulable-before-main.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-scheduled-inst-extern-use.ll
    M llvm/test/Transforms/SLPVectorizer/X86/original-inst-scheduled-after-copyable.ll
    M llvm/test/Transforms/SLPVectorizer/X86/parent-node-schedulable-with-multi-copyables.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47629-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47629.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47642.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr49081.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduced-val-vectorized-in-transform.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder-reused-masked-gather.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder-reused-masked-gather2.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reordered-masked-loads.ll
    M llvm/test/Transforms/SLPVectorizer/X86/replaced-external-in-reduction.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reschedule-only-scheduled.ll
    M llvm/test/Transforms/SLPVectorizer/X86/resized-bv-values-non-power-of2-node.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reuse-extracts-in-wider-vect.ll
    M llvm/test/Transforms/SLPVectorizer/X86/revec-non-power-2-to-power-2-large-vect.ll
    M llvm/test/Transforms/SLPVectorizer/X86/revec-reduced-value-vectorized-later.ll
    M llvm/test/Transforms/SLPVectorizer/X86/same-values-sub-node-with-poisons.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shl-to-add-transformation5.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shrink_after_reorder.ll
    M llvm/test/Transforms/SLPVectorizer/X86/sin-sqrt.ll
    M llvm/test/Transforms/SLPVectorizer/X86/split-vectorize-gathered-def-after-use.ll
    M llvm/test/Transforms/SLPVectorizer/gathered-consecutive-loads-different-types.ll
    M llvm/test/Transforms/SLPVectorizer/insertelement-across-zero.ll
    M llvm/test/Transforms/SLPVectorizer/reduced-gathered-vectorized.ll
    M llvm/test/Transforms/SLPVectorizer/reduction-whole-regs-loads.ll
    M llvm/test/Transforms/SLPVectorizer/reorder-clustered-node.ll
    M llvm/test/Transforms/SLPVectorizer/revec-shufflevector.ll
    M llvm/test/Transforms/SLPVectorizer/revec.ll
    M llvm/test/Transforms/SLPVectorizer/shuffle-mask-resized.ll

  Log Message:
  -----------
  Revert "[SLP]Initial support for non-power-of-2 vectorization"

This reverts commit 1348766d1d686b8825bdaa2f6638c1783d76a4a7 to fix
a crash, reported in https://github.com/llvm/llvm-project/pull/151530#pullrequestreview-4176091133

Reviewers: 

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


  Commit: d36e5246866e6cf7ab2152770e43164157f78aff
      https://github.com/llvm/llvm-project/commit/d36e5246866e6cf7ab2152770e43164157f78aff
  Author: Anshul Nigham <nigham at google.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    A llvm/include/llvm/CodeGen/KCFI.h
    M llvm/include/llvm/InitializePasses.h
    M llvm/include/llvm/Passes/MachinePassRegistry.def
    M llvm/lib/CodeGen/KCFI.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
    M llvm/lib/Target/ARM/ARMTargetMachine.cpp
    M llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
    M llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
    M llvm/lib/Target/X86/X86TargetMachine.cpp
    M llvm/test/CodeGen/X86/kcfi-arity.ll
    M llvm/test/CodeGen/X86/kcfi.ll
    M llvm/test/CodeGen/X86/llc-pipeline-npm.ll

  Log Message:
  -----------
  [NewPM] Adds a port for KCFI (#194163)

Standard porting w/ refactored pass logic to support old and new PMs.

Wired in to X86 pass builder.


  Commit: d62067abc261f1c3e282ee434f3a1887ccf98308
      https://github.com/llvm/llvm-project/commit/d62067abc261f1c3e282ee434f3a1887ccf98308
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M .github/workflows/containers/libc/Dockerfile

  Log Message:
  -----------
  [Github] Drop LLVM 21 installation from libc Dockerfile (#194178)

The compiler version was bumped in
8abce0a63c10124aa26a070ead80a68f705c95f9, so we no longer need to
include this. We should probably just hash pin the version in future
workflows for future toolchain upgrades.


  Commit: 28de393b6412f4149a25029f4201dc7ebdb3c9f4
      https://github.com/llvm/llvm-project/commit/28de393b6412f4149a25029f4201dc7ebdb3c9f4
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M compiler-rt/test/profile/instrprof-tmpdir.c

  Log Message:
  -----------
  [Profile] Reenable instrprof-tmpdir.c (#194181)

env -u is supported by the internal shell which is now the default
everywhere.


  Commit: 8eef5077b646a2d24fe65fa8d0092a87c4cd0e2d
      https://github.com/llvm/llvm-project/commit/8eef5077b646a2d24fe65fa8d0092a87c4cd0e2d
  Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
    M llvm/lib/Transforms/Vectorize/VPlanUtils.h

  Log Message:
  -----------
  [VPlan] Fix assert in finding WideCanIV (NFC) (#193269)

addActiveLaneMask asserts that the return value of a find_if is
contextully convertible to true, when finding a WideCanonicalIV recipe:
what it should really be checking that the iterator is not the end
iterator. Fix this assert by introducing and using a variant of
vputils::findUserOf.


  Commit: b5ac484470b9ceda96addcbc946f9ded4c5ef972
      https://github.com/llvm/llvm-project/commit/b5ac484470b9ceda96addcbc946f9ded4c5ef972
  Author: Davide Grohmann <davide.grohmann at arm.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

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

  Log Message:
  -----------
  [DenseMap] Resolves asan + msvc build syntax errors (#193695)

The problem was introduced by #183457 as an asan workaround for clang
builds to silence false positices, so the fix here just enables the
workaround for clang builds.

Fixes #189323

Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>


  Commit: bbd4d67f0ba75ce0cf20bc9a91ea632ebbb59636
      https://github.com/llvm/llvm-project/commit/bbd4d67f0ba75ce0cf20bc9a91ea632ebbb59636
  Author: hulxv <hulxxv at gmail.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M libc/shared/math.h
    A libc/shared/math/fdiv.h
    A libc/shared/math/fdivf128.h
    A libc/shared/math/fdivl.h
    M libc/src/__support/math/CMakeLists.txt
    A libc/src/__support/math/fdiv.h
    A libc/src/__support/math/fdivf128.h
    A libc/src/__support/math/fdivl.h
    M libc/src/math/generic/CMakeLists.txt
    M libc/src/math/generic/fdiv.cpp
    M libc/src/math/generic/fdivf128.cpp
    M libc/src/math/generic/fdivl.cpp
    M libc/test/shared/CMakeLists.txt
    M libc/test/shared/shared_math_constexpr_test.cpp
    M libc/test/shared/shared_math_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc][math] Refactor fdiv family to header-only (#182192)

Refactors the fdiv math family to be header-only.

Closes https://github.com/llvm/llvm-project/issues/182191

Target Functions:
  - fdiv
  - fdivf128
  - fdivl

---------

Co-authored-by: Muhammad Bassiouni <60100307+bassiounix at users.noreply.github.com>


  Commit: 23cc957f50710b431854e5281a434fcdc419c284
      https://github.com/llvm/llvm-project/commit/23cc957f50710b431854e5281a434fcdc419c284
  Author: hulxv <hulxxv at gmail.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M libc/shared/math.h
    A libc/shared/math/fmaximum_mag_num.h
    A libc/shared/math/fmaximum_mag_numbf16.h
    A libc/shared/math/fmaximum_mag_numf.h
    M libc/src/__support/FPUtil/BasicOperations.h
    M libc/src/__support/math/CMakeLists.txt
    A libc/src/__support/math/fmaximum_mag_num.h
    A libc/src/__support/math/fmaximum_mag_numbf16.h
    A libc/src/__support/math/fmaximum_mag_numf.h
    M libc/src/math/generic/CMakeLists.txt
    M libc/src/math/generic/fmaximum_mag_num.cpp
    M libc/src/math/generic/fmaximum_mag_numbf16.cpp
    M libc/src/math/generic/fmaximum_mag_numf.cpp
    M libc/test/shared/CMakeLists.txt
    M libc/test/shared/shared_math_constexpr_test.cpp
    M libc/test/shared/shared_math_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc][math] Refactor fmaximum_mag_num family to header-only (#182169)

Refactors the fmaximum_mag_num math family to be header-only.

Closes https://github.com/llvm/llvm-project/issues/182168

Target Functions:
  - fmaximum_mag_num
  - fmaximum_mag_numbf16
  - fmaximum_mag_numf

---------

Co-authored-by: Muhammad Bassiouni <60100307+bassiounix at users.noreply.github.com>


  Commit: fc99b677598162682f845d31fa3ece5ec9d38b2f
      https://github.com/llvm/llvm-project/commit/fc99b677598162682f845d31fa3ece5ec9d38b2f
  Author: Muhammad Bassiouni <60100307+bassiounix at users.noreply.github.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M libc/shared/math.h
    R libc/shared/math/fmaximum_mag_num.h
    R libc/shared/math/fmaximum_mag_numbf16.h
    R libc/shared/math/fmaximum_mag_numf.h
    M libc/src/__support/FPUtil/BasicOperations.h
    M libc/src/__support/math/CMakeLists.txt
    R libc/src/__support/math/fmaximum_mag_num.h
    R libc/src/__support/math/fmaximum_mag_numbf16.h
    R libc/src/__support/math/fmaximum_mag_numf.h
    M libc/src/math/generic/CMakeLists.txt
    M libc/src/math/generic/fmaximum_mag_num.cpp
    M libc/src/math/generic/fmaximum_mag_numbf16.cpp
    M libc/src/math/generic/fmaximum_mag_numf.cpp
    M libc/test/shared/CMakeLists.txt
    M libc/test/shared/shared_math_constexpr_test.cpp
    M libc/test/shared/shared_math_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  Revert "[libc][math] Refactor fmaximum_mag_num family to header-only" (#194183)

Reverts llvm/llvm-project#182169


  Commit: cb9b66cb610797051fa5310c70ec6cf1ef55a5d6
      https://github.com/llvm/llvm-project/commit/cb9b66cb610797051fa5310c70ec6cf1ef55a5d6
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/PhaseOrdering/X86/avg.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/InstructionsState-is-invalid-0.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/PR38339.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/div-like-mixed-with-undefs.ll
    A llvm/test/Transforms/SLPVectorizer/AArch64/long-non-power-of-2.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/reused-scalar-repeated-in-node.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/vectorizable-selects-uniform-cmps.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/basic-strided-loads.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/gather-insert-point-restore.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reduced-value-repeated-and-vectorized.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reductions.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reordered-buildvector-scalars.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/same-node-reused.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/smin-signed-zextended.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/split-vectorize-parent-for-copyables.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/unordered-loads-operands.ll
    M llvm/test/Transforms/SLPVectorizer/SystemZ/reuse-non-power-of-2-reorder.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR39774.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR40310.ll
    M llvm/test/Transforms/SLPVectorizer/X86/deleted-inst-reduction-attempt.ll
    M llvm/test/Transforms/SLPVectorizer/X86/div-possibly-extended-with-poisons.ll
    M llvm/test/Transforms/SLPVectorizer/X86/external-used-across-reductions.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extractelements-vector-ops-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extractelemets-extended-by-poison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/full-match-with-poison-scalar.ll
    M llvm/test/Transforms/SLPVectorizer/X86/full-matched-bv-with-subvectors.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gather-with-cmp-user.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gathered-loads-non-full-reg.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gathered-shuffle-resized.ll
    M llvm/test/Transforms/SLPVectorizer/X86/identity-match-splat-less-defined.ll
    M llvm/test/Transforms/SLPVectorizer/X86/insert-subvector.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-merge-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-merge.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-partial-vector-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/matched-gather-part-of-combined.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-power-of-2-order-detection.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-power-of-2-subvectors-insert.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-schedulable-before-main.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-scheduled-inst-extern-use.ll
    M llvm/test/Transforms/SLPVectorizer/X86/original-inst-scheduled-after-copyable.ll
    M llvm/test/Transforms/SLPVectorizer/X86/parent-node-schedulable-with-multi-copyables.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47629-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47629.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47642.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr49081.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduced-val-vectorized-in-transform.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder-reused-masked-gather.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder-reused-masked-gather2.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reordered-masked-loads.ll
    M llvm/test/Transforms/SLPVectorizer/X86/replaced-external-in-reduction.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reschedule-only-scheduled.ll
    M llvm/test/Transforms/SLPVectorizer/X86/resized-bv-values-non-power-of2-node.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reuse-extracts-in-wider-vect.ll
    M llvm/test/Transforms/SLPVectorizer/X86/revec-non-power-2-to-power-2-large-vect.ll
    M llvm/test/Transforms/SLPVectorizer/X86/revec-reduced-value-vectorized-later.ll
    M llvm/test/Transforms/SLPVectorizer/X86/same-values-sub-node-with-poisons.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shl-to-add-transformation5.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shrink_after_reorder.ll
    M llvm/test/Transforms/SLPVectorizer/X86/sin-sqrt.ll
    M llvm/test/Transforms/SLPVectorizer/X86/split-vectorize-gathered-def-after-use.ll
    M llvm/test/Transforms/SLPVectorizer/gathered-consecutive-loads-different-types.ll
    M llvm/test/Transforms/SLPVectorizer/insertelement-across-zero.ll
    M llvm/test/Transforms/SLPVectorizer/reduced-gathered-vectorized.ll
    M llvm/test/Transforms/SLPVectorizer/reduction-whole-regs-loads.ll
    M llvm/test/Transforms/SLPVectorizer/reorder-clustered-node.ll
    M llvm/test/Transforms/SLPVectorizer/revec-shufflevector.ll
    M llvm/test/Transforms/SLPVectorizer/revec.ll
    M llvm/test/Transforms/SLPVectorizer/shuffle-mask-resized.ll

  Log Message:
  -----------
  [SLP]Initial support for non-power-of-2 vectorization

Enables non-power-of-2 vectorization within the SLP tree. The root nodes
are still required to be power-of-2, will be addressed in a follow-up
patches.

Recommit after revert in e19f36ff8189f1bd6d3b214d2c30ab8ef0639678

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

Reviewers: 

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


  Commit: cd2cf7393f7f58828350db35f790a0902dc6fbe7
      https://github.com/llvm/llvm-project/commit/cd2cf7393f7f58828350db35f790a0902dc6fbe7
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M bolt/include/bolt/Profile/DataAggregator.h
    M bolt/unittests/Profile/DataAggregator.cpp

  Log Message:
  -----------
  [BOLT] Add unit tests for pre-aggregated profile parsing (#192390)

Add PreAggregatedTestHelper fixture with friend access to DataAggregator
internals. Add tests for parseHexField and all pre-aggregated entry
types (B, F, f, r, T, R).


  Commit: 46154fef0e481640950601c4a599b6d32b2a8e87
      https://github.com/llvm/llvm-project/commit/46154fef0e481640950601c4a599b6d32b2a8e87
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M bolt/docs/profiles.md
    M bolt/lib/Profile/DataAggregator.cpp
    M bolt/lib/Profile/DataReader.cpp
    M bolt/unittests/Profile/DataAggregator.cpp

  Log Message:
  -----------
  [BOLT] Support negative hex in pre-aggregated profile (#192391)

Handle signed values in parseHexField by falling back to int64_t parsing
when uint64_t fails. This allows pre-aggregated profile tools to use -1
for BR_ONLY, -2 for FT_EXTERNAL_ORIGIN, -3 for FT_EXTERNAL_RETURN.

Guard the external address reset loop in parseAggregatedLBREntry to
preserve sentinel values (offsets >= FT_EXTERNAL_RETURN).

Add tests for -1/-2/-3 in parseHexField and T entries with -1,
ffffffffffffffff, and buildid:-1 as BR_ONLY.


  Commit: 24f46293b02c1599ac53170820772b59c635fed3
      https://github.com/llvm/llvm-project/commit/24f46293b02c1599ac53170820772b59c635fed3
  Author: Dave Lee <davelee.com at gmail.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M lldb/test/API/commands/thread/backtrace/TestThreadBacktraceRepeat.py

  Log Message:
  -----------
  [lldb][test] Use assertIn in TestThreadBacktraceRepeat.py (NFC) (#194193)

I broke this test locally, and fixed the assets to produce more useful
output upon failure.


  Commit: 71816ef062df569c4a0e99204ab79a283bf1dda7
      https://github.com/llvm/llvm-project/commit/71816ef062df569c4a0e99204ab79a283bf1dda7
  Author: Kiriti Ponduri <123718855+udaykiriti at users.noreply.github.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M libc/src/__support/FPUtil/BasicOperations.h
    M libc/src/__support/FPUtil/generic/add_sub.h
    M libc/src/__support/math/fdim.h
    M libc/src/__support/math/fdimbf16.h
    M libc/src/__support/math/fdimf.h
    M libc/src/__support/math/fdimf128.h
    M libc/src/__support/math/fdimf16.h
    M libc/src/__support/math/fdiml.h
    M libc/test/shared/CMakeLists.txt
    M libc/test/shared/shared_math_constexpr_test.cpp

  Log Message:
  -----------
  [libc][math] Qualify fdim funtions to constexpr (#194137)

Signed-off-by: udaykiriti <udaykiriti624 at gmail.com>
Co-authored-by: Muhammad Bassiouni <60100307+bassiounix at users.noreply.github.com>


  Commit: 75b450f3d45b84306747025378e1797e9514dc03
      https://github.com/llvm/llvm-project/commit/75b450f3d45b84306747025378e1797e9514dc03
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    A bolt/test/X86/Inputs/pre-aggregated-bad-hex.txt
    A bolt/test/X86/Inputs/pre-aggregated-bad-type.txt
    A bolt/test/X86/pre-aggregated-records.s

  Log Message:
  -----------
  [BOLT] Add tests for pre-aggregated parsing (#193843)

Extends e2e coverage of pre-aggregated profile parsing to match the
unit-test coverage added in #192390:

- R (Return) records, including the branch=0 fallback path that
  rewrites to the FT_EXTERNAL_RETURN sentinel.
- r (FT_EXTERNAL_RETURN) records.
- B and T records using the negative -1 hex form (#192391),
  which is parsed as the BR_ONLY/FT_ONLY sentinel.
- Error paths: invalid record type letter and malformed hex address
  (perf2bolt is expected to exit non-zero with a parser error).

The two error-path inputs are tiny raw files under Inputs/ since they
contain intentionally malformed records that link_fdata doesn't process.

Test Plan:
added bolt/test/X86/pre-aggregated-records.s


  Commit: de7c63ed04363c0ab416b982a6c900720575b439
      https://github.com/llvm/llvm-project/commit/de7c63ed04363c0ab416b982a6c900720575b439
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/tools/llvm-profgen/Options.h
    M llvm/tools/llvm-profgen/PerfReader.cpp
    M llvm/tools/llvm-profgen/ProfileGenerator.cpp

  Log Message:
  -----------
  [llvm-profgen] Add --time-profgen (#191930)

Add `NamedRegionTimer`s to main profgen phases:
- Parse and aggregate trace (`parseAndAggregateTrace`)
- Unwind samples (`unwindSamples`)
- Generate profile (`ProfileGenerator::generateProfile`)
- Generate CS profile (`CSProfileGenerator::generateProfile`)

Test Plan:
```
$ llvm-profgen --time-profgen ...

===-------------------------------------------------------------------------===
                                  llvm-profgen
===-------------------------------------------------------------------------===
  Total Execution Time: 2826.6549 seconds (2873.3410 wall clock)

   ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---
  1059.4929 ( 38.1%)   8.5146 ( 17.3%)  1068.0075 ( 37.8%)  1090.6604 ( 38.0%)  Generate CS profile
  892.6504 ( 32.1%)  39.8720 ( 80.9%)  932.5224 ( 33.0%)  950.7938 ( 33.1%)  Parse and aggregate trace
  825.2141 ( 29.7%)   0.9110 (  1.8%)  826.1250 ( 29.2%)  831.8868 ( 29.0%)  Unwind samples
  2777.3573 (100.0%)  49.2975 (100.0%)  2826.6549 (100.0%)  2873.3410 (100.0%)  Total
```


  Commit: 4c7dc9c1783fa10e5e99e28ed25103a046c02c7d
      https://github.com/llvm/llvm-project/commit/4c7dc9c1783fa10e5e99e28ed25103a046c02c7d
  Author: hulxv <hulxxv at gmail.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M libc/shared/math.h
    A libc/shared/math/fmaximum_mag_num.h
    A libc/shared/math/fmaximum_mag_numbf16.h
    A libc/shared/math/fmaximum_mag_numf.h
    M libc/src/__support/FPUtil/BasicOperations.h
    M libc/src/__support/math/CMakeLists.txt
    A libc/src/__support/math/fmaximum_mag_num.h
    A libc/src/__support/math/fmaximum_mag_numbf16.h
    A libc/src/__support/math/fmaximum_mag_numf.h
    M libc/src/math/generic/CMakeLists.txt
    M libc/src/math/generic/fmaximum_mag_num.cpp
    M libc/src/math/generic/fmaximum_mag_numbf16.cpp
    M libc/src/math/generic/fmaximum_mag_numf.cpp
    M libc/test/shared/CMakeLists.txt
    M libc/test/shared/shared_math_constexpr_test.cpp
    M libc/test/shared/shared_math_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  Reland "[libc][math] Refactor fmaximum_mag_num family to header-only" (#194194)

Reland #182169

---------

Co-authored-by: Muhammad Bassiouni <60100307+bassiounix at users.noreply.github.com>


  Commit: b5471cc17a03e2f42a01ed4f124fdca481f6cc7d
      https://github.com/llvm/llvm-project/commit/b5471cc17a03e2f42a01ed4f124fdca481f6cc7d
  Author: Fangrui Song <i at maskray.me>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M llvm/lib/MC/MCObjectStreamer.cpp
    M llvm/test/MC/AsmParser/directive_fill.s

  Log Message:
  -----------
  [MC] Always lower .fill to MCFillFragment (#194164)

Constant-count, constant-pattern .fill expands inline into the current
fragment via emitIntValue per byte, wasting both memory and time (a
redundant copy at MCAssembler.cpp). #50974 reports a 4s compile dropping
to 0.6s when the loop is removed.

Drop the inline path so .fill always becomes MCFillFragment.
This cannot be done before commit 507efbcce03d (2023) allowed
label differences to be separated by a MCFillFragment.

In directive_fill.s, the parse time warning is now diagnosed by
MCAssembler.


  Commit: 486e97a19f8fd34ce29e12a9de6e7033e93998d8
      https://github.com/llvm/llvm-project/commit/486e97a19f8fd34ce29e12a9de6e7033e93998d8
  Author: 🍌Shawn <m18824909883 at 163.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M clang/include/clang/Sema/Initialization.h

  Log Message:
  -----------
  [clang][NFC] Fix typo in HLSL initialization comment (#194124)


  Commit: b614c152def35fe4411208570327b81ce43e8ba5
      https://github.com/llvm/llvm-project/commit/b614c152def35fe4411208570327b81ce43e8ba5
  Author: Fangrui Song <i at maskray.me>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M clang/lib/Parse/ParseStmtAsm.cpp
    M clang/tools/driver/cc1as_main.cpp
    M llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h
    M llvm/include/llvm/MC/TargetRegistry.h
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
    M llvm/lib/MC/MCParser/MCTargetAsmParser.cpp
    M llvm/lib/Object/ModuleSymbolTable.cpp
    M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
    M llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp
    M llvm/lib/Target/BPF/AsmParser/BPFAsmParser.cpp
    M llvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp
    M llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
    M llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp
    M llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
    M llvm/lib/Target/M68k/AsmParser/M68kAsmParser.cpp
    M llvm/lib/Target/MSP430/AsmParser/MSP430AsmParser.cpp
    M llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
    M llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
    M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
    M llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
    M llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
    M llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp
    M llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
    M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
    M llvm/lib/Target/Xtensa/AsmParser/XtensaAsmParser.cpp
    M llvm/tools/llvm-exegesis/lib/SnippetFile.cpp
    M llvm/tools/llvm-mc-assemble-fuzzer/llvm-mc-assemble-fuzzer.cpp
    M llvm/tools/llvm-mc/llvm-mc.cpp
    M llvm/tools/llvm-mca/CodeRegionGenerator.cpp
    M llvm/tools/llvm-ml/llvm-ml.cpp
    M llvm/unittests/MC/SystemZ/SystemZAsmLexerTest.cpp
    M mlir/lib/Target/LLVM/ROCDL/Target.cpp

  Log Message:
  -----------
  [MC] Drop MCTargetOptions parameter from MCTargetAsmParser (#194120)

Since #180464, MCAsmInfo holds the canonical MCTargetOptions.
The MCTargetAsmParser::MCOptions member is a redundant by-value copy,
which may have inconsistent values (llvm-exegesis passes a temporary
MCTargetOptions(), but this probably doesn't matter in practice; other
in-tree uses are correct).

Remove the field in favor of getParser().getContext().getTargetOptions,
and remove the MCTargetOptions parameter from the base ctor, all
subclass ctors, Target::createMCAsmParser, MCAsmParserCtorTy, and
RegisterMCAsmParser.


  Commit: 0ccb181514cda5245ed031b210a2d97282bc1ff0
      https://github.com/llvm/llvm-project/commit/0ccb181514cda5245ed031b210a2d97282bc1ff0
  Author: Matt Turner <mattst88 at gmail.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_redefine_builtins.h

  Log Message:
  -----------
  [compiler-rt] Use asm .set only for Hexagon (#194160)

Two incompatible assembler syntaxes exist for symbol assignment:
```
  sym = val      -- accepted by most GNU assembler targets; rejected by
                    Hexagon, which interprets it as a mnemonic
  .set sym, val  -- accepted by Hexagon; rejected by Alpha, which
                    reserves .set for assembler mode flags
```
Switch all to `sym = val`, and opt out Hexagon to `.set sym`.

Fixes: dbb03f8f606e ("[compiler-rt] Replace assignment w/.set directive
(#107667)")

---------

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


  Commit: e7164d42243b8cac55c6c1f91a507608c414c361
      https://github.com/llvm/llvm-project/commit/e7164d42243b8cac55c6c1f91a507608c414c361
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M libclc/CMakeLists.txt

  Log Message:
  -----------
  [libclc] Only check the triple architecture for libclc (#194149)

Summary:
Previously, `nvptx64--` would reject `nvptx64-unknown-unknown`. Two
options, either normalize all the triples in CMake, or just check the
architecture. I went with the former because it makes it easier for
people to pass different values.


  Commit: a75e6a59ede46e838e9a02bafe59aa9eb4c1ac60
      https://github.com/llvm/llvm-project/commit/a75e6a59ede46e838e9a02bafe59aa9eb4c1ac60
  Author: Nishant Patel <nishant.b.patel at intel.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
    M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUTypes.td
    M mlir/lib/Conversion/XeGPUToXeVM/XeGPUToXeVM.cpp
    M mlir/lib/Dialect/XeGPU/IR/XeGPUOps.cpp
    M mlir/lib/Dialect/XeGPU/TransformOps/XeGPUTransformOps.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUBlocking.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPropagateLayout.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSubgroupDistribute.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUUnroll.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
    M mlir/test/Dialect/XeGPU/invalid.mlir
    M mlir/test/Dialect/XeGPU/layout.mlir
    M mlir/test/Dialect/XeGPU/ops.mlir
    M mlir/test/Dialect/XeGPU/propagate-layout-inst-data.mlir
    M mlir/test/Dialect/XeGPU/propagate-layout-subgroup.mlir
    M mlir/test/Dialect/XeGPU/propagate-layout.mlir
    M mlir/test/Dialect/XeGPU/xegpu-blocking.mlir
    M mlir/test/Dialect/XeGPU/xegpu-recover-layout.mlir
    R mlir/test/Dialect/XeGPU/xegpu-unroll-patterns-no-desc-offsets.mlir
    M mlir/test/Dialect/XeGPU/xegpu-unroll-patterns.mlir
    M mlir/test/Dialect/XeGPU/xegpu-vector-linearize.mlir
    M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-elemwise.mlir
    M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-rr.mlir
    R mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops-rr.mlir
    R mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir
    M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg.mlir
    M mlir/test/lib/Dialect/XeGPU/TestXeGPUTransforms.cpp

  Log Message:
  -----------
  [MLIR][XeGPU] Remove offsets from create_nd_tdesc & remove update_nd_offset, move offsets to load/store/prefetch ops (#193330)

This PR removes the optional offsets/const_offsets operands on
xegpu.create_nd_tdesc and instead mandates offsets directly on the
consuming load, store, and prefetch ops. It also deprecates the
update_nd_offset op.


  Commit: c2a9725b570407d1b057134e90d11c53bbc48b63
      https://github.com/llvm/llvm-project/commit/c2a9725b570407d1b057134e90d11c53bbc48b63
  Author: Longsheng Mou <longshengmou at gmail.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/Math/IR/MathOps.td
    M mlir/lib/Dialect/Math/IR/MathOps.cpp
    M mlir/test/Dialect/Math/canonicalize.mlir

  Log Message:
  -----------
  [mlir][math] Add constant folding for sincos/cbrt (#194130)

Adds constant folder for `math.sincos` and `math.cbrt`.


  Commit: 682cf7231700c90d12460250b1cad7656cd76dc5
      https://github.com/llvm/llvm-project/commit/682cf7231700c90d12460250b1cad7656cd76dc5
  Author: Longsheng Mou <longshengmou at gmail.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

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

  Log Message:
  -----------
  [mlir][arith] Fold subi(a, subi(a, b)) to b (#194134)

Add a folder for `arith.subi` that simplifies `subi(a, subi(a, b))` to
`b` using the algebraic identity `a - (a - b) = b`.


  Commit: c01226500856d65145c37f9c44b82e6f7c60a806
      https://github.com/llvm/llvm-project/commit/c01226500856d65145c37f9c44b82e6f7c60a806
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/Compiler.cpp
    M clang/test/AST/ByteCode/functions.cpp

  Log Message:
  -----------
  [clang][bytecode] Reject functions with dependent return type (#194114)

This unfortunately crashes the current interpreter as well.


  Commit: bd75c10199a159a20720f8ee5c00afebb033f46e
      https://github.com/llvm/llvm-project/commit/bd75c10199a159a20720f8ee5c00afebb033f46e
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M libcxx/utils/ci/docker/linux-builder-base.dockerfile

  Log Message:
  -----------
  [libcxx] Include python3-yaml and rsync in container (#194182)

rsync is needed for installing the kernel headers for the libc build.
The yaml python package is needed for libc's hdrgen. This means we no
longer have to install these utilities at runtime.

They should be small enough relative to the existing container image
size to not really have an impact in that regard.


  Commit: 33f2036f35093d97989285762cb2570ebcde4eb4
      https://github.com/llvm/llvm-project/commit/33f2036f35093d97989285762cb2570ebcde4eb4
  Author: Fangrui Song <i at maskray.me>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M bolt/include/bolt/Core/BinaryContext.h
    M bolt/lib/Core/BinaryContext.cpp
    M llvm/include/llvm/MC/MCAsmInfo.h
    M llvm/include/llvm/MC/MCAsmInfoCOFF.h
    M llvm/include/llvm/MC/MCAsmInfoDarwin.h
    M llvm/include/llvm/MC/MCAsmInfoELF.h
    M llvm/include/llvm/MC/MCAsmInfoGOFF.h
    M llvm/include/llvm/MC/MCAsmInfoWasm.h
    M llvm/include/llvm/MC/MCAsmInfoXCOFF.h
    M llvm/include/llvm/MC/TargetRegistry.h
    M llvm/lib/CodeGen/AsmPrinter/DIE.cpp
    M llvm/lib/MC/MCAsmInfo.cpp
    M llvm/lib/MC/MCAsmInfoCOFF.cpp
    M llvm/lib/MC/MCAsmInfoDarwin.cpp
    M llvm/lib/MC/MCAsmInfoELF.cpp
    M llvm/lib/MC/MCAsmInfoGOFF.cpp
    M llvm/lib/MC/MCAsmInfoWasm.cpp
    M llvm/lib/MC/MCAsmInfoXCOFF.cpp
    M llvm/lib/MC/MCContext.cpp
    M llvm/lib/MC/MCParser/MCAsmParser.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp
    M llvm/lib/Target/ARC/MCTargetDesc/ARCMCAsmInfo.cpp
    M llvm/lib/Target/ARC/MCTargetDesc/ARCMCAsmInfo.h
    M llvm/lib/Target/ARC/MCTargetDesc/ARCMCTargetDesc.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.h
    M llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
    M llvm/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.cpp
    M llvm/lib/Target/BPF/MCTargetDesc/BPFMCAsmInfo.h
    M llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCAsmInfo.cpp
    M llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCAsmInfo.h
    M llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCTargetDesc.cpp
    M llvm/lib/Target/DirectX/MCTargetDesc/DirectXMCTargetDesc.cpp
    M llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
    M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.cpp
    M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.h
    M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
    M llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.cpp
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.cpp
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.h
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCTargetDesc.cpp
    M llvm/lib/Target/M68k/MCTargetDesc/M68kMCAsmInfo.cpp
    M llvm/lib/Target/M68k/MCTargetDesc/M68kMCAsmInfo.h
    M llvm/lib/Target/M68k/MCTargetDesc/M68kMCTargetDesc.cpp
    M llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp
    M llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.h
    M llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp
    M llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp
    M llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.h
    M llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp
    M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.h
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp
    M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVMCAsmInfo.cpp
    M llvm/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.cpp
    M llvm/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.h
    M llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp
    M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp
    M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.h
    M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp
    M llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.cpp
    M llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.h
    M llvm/lib/Target/VE/MCTargetDesc/VEMCTargetDesc.cpp
    M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.h
    M llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
    M llvm/lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.cpp
    M llvm/lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.h
    M llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp
    M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCAsmInfo.cpp
    M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCAsmInfo.h
    M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCTargetDesc.cpp
    M llvm/unittests/CodeGen/MFCommon.inc
    M llvm/unittests/CodeGen/MachineInstrTest.cpp
    M llvm/unittests/CodeGen/MachineOperandTest.cpp
    M llvm/unittests/Target/AArch64/AArch64InstPrinterTest.cpp

  Log Message:
  -----------
  [MC] Add MCTargetOptions to MCAsmInfo constructor. NFC (#194200)

Since #180464 the canonical MCTargetOptions pointer is stored in
MCAsmInfo, but it is bound after construction via `setTargetOptions`
called from TargetRegistry::createMCAsmInfo.

Direct constructions in unit tests can leave the pointer null, leading
to a runtime assert failure. Add MCTargetOptions to every MCAsmInfo
subclass constructor, store it as a reference in MCAsmInfo, and remove
`setTargetOptions()`.


  Commit: 32a9f63bb2533a9d564f8d114b139e821aa52415
      https://github.com/llvm/llvm-project/commit/32a9f63bb2533a9d564f8d114b139e821aa52415
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/Interp.cpp
    M clang/lib/AST/ByteCode/Interp.h
    M clang/test/Sema/static-init.c

  Log Message:
  -----------
  [clang][bytecode] Fix some problems with ptr-to-int casts (#193988)

1) When doing integral casts on a pointer-casted-to-integral, check the
bitwidth we're casting _to_, not the one we're casting _from_.
2) When the pointer we're casting to an integral is a dummy pointer,
don't forget to check the bitwidth.


  Commit: 49b0451ec690dfc76690c19032bdc97c2889000b
      https://github.com/llvm/llvm-project/commit/49b0451ec690dfc76690c19032bdc97c2889000b
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M libcxx/utils/ci/docker/docker-compose.yml

  Log Message:
  -----------
  [libcxx] Bump base image version to most recent (#194209)

To pull in the changes from bd75c10199a159a20720f8ee5c00afebb033f46e.


  Commit: a0e42c2c47080af4c31c43b801b55e8fa7c68db4
      https://github.com/llvm/llvm-project/commit/a0e42c2c47080af4c31c43b801b55e8fa7c68db4
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/Integral.h
    M clang/lib/AST/ByteCode/Interp.h
    M clang/lib/AST/ByteCode/Primitives.h
    M clang/test/AST/ByteCode/functions.cpp

  Log Message:
  -----------
  [clang][bytecode] Add new IntegralType for function addresses (#194206)

We used to use just `::Address` for functions, which later caused
problems because we casted the pointer to `ValueDecl*` and passed it to
`Program::getOrCreateGlobal()`, which doesn't work of course.


  Commit: ab57f940f48b6209f1b958ff4fd26c69b54a1804
      https://github.com/llvm/llvm-project/commit/ab57f940f48b6209f1b958ff4fd26c69b54a1804
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-25 (Sat, 25 Apr 2026)

  Changed paths:
    M libcxx/utils/ci/images/libcxx_next_runners.txt

  Log Message:
  -----------
  [libcxx] Bump next runner set (#194211)

So that we can pick up changes in
49b0451ec690dfc76690c19032bdc97c2889000b.


  Commit: d593279c0b2891f0b0c8af3f70a1a0383b4ad1b5
      https://github.com/llvm/llvm-project/commit/d593279c0b2891f0b0c8af3f70a1a0383b4ad1b5
  Author: Princeton Ferro <pferro at nvidia.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
    M llvm/lib/Target/NVPTX/NVPTXISelLowering.h
    M llvm/test/CodeGen/NVPTX/fp-contract-f32x2.ll

  Log Message:
  -----------
  [NVPTX] Scalarize `contract FMUL v2f32` to enable FMA fusion (#192815)

SM100+ legalizes `FMUL v2f32`, blocking the scalar FADD->FMA combiner.
Scalarize it when `contract` (or `allowFMA()`) is set and every lane
feeds a single `contract` FADD.


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/spillcost-call-between-operands.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/spillcost-loop-backedge.ll

  Log Message:
  -----------
  [SLP] Fix spill-cost cache lookup and predecessor scan

A cached intra-block scan that stopped at a call or budget limit only
proves the sub-range below the stop point is call-free; do not reuse
the cached bit for queries whose First lies above it. Also switch the
cross-block predecessor scan to "exists a call-free backward path"
semantics, skip blocks strictly dominated by Root, and memoize only
the (Root, OpParent) key. Fixes a false-positive spill cost that was
blocking profitable vectorization.

Reviewers: RKSimon, hiraditya, bababuck

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


  Commit: 6439bbe0213e650a18855319f2b9d4b82802a96e
      https://github.com/llvm/llvm-project/commit/6439bbe0213e650a18855319f2b9d4b82802a96e
  Author: David Green <david.green at arm.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/test/CodeGen/ARM/hoist-and-by-const-from-lshr-in-eqcmp-zero.ll
    M llvm/test/CodeGen/ARM/hoist-and-by-const-from-shl-in-eqcmp-zero.ll

  Log Message:
  -----------
  Revert "[ARM] Fold SELECT (AND(X,1) == 0), C1, C2 -> XOR(C1,AND(NEG(AND(X,1)),XOR(C1,C2)) in Thumb1 (#185898)" (#194230)

This reverts commit 1823355d06b854854701a8ba430aa1f6be9994f4 due to
performance
regressions in benchmarks.


  Commit: 4dafdf64b203bb49fe2d9be25675e5450fed33c6
      https://github.com/llvm/llvm-project/commit/4dafdf64b203bb49fe2d9be25675e5450fed33c6
  Author: hev <wangrui at loongson.cn>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M llvm/include/llvm/CodeGen/ValueTypes.td
    M llvm/test/Analysis/CostModel/ARM/arith-overflow.ll
    M llvm/test/TableGen/CPtrWildcard.td

  Log Message:
  -----------
  [CodeGen] Add <2 x i128> value type (#193910)


  Commit: 2d789ff783024f928699ea5b2fb95b25824217b7
      https://github.com/llvm/llvm-project/commit/2d789ff783024f928699ea5b2fb95b25824217b7
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
    M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
    M llvm/lib/Transforms/Vectorize/VPlanUtils.h
    M llvm/test/Transforms/LoopVectorize/VPlan/vplan-print-after-all.ll
    M llvm/test/Transforms/LoopVectorize/induction.ll
    M llvm/test/Transforms/LoopVectorize/interleaved-accesses.ll
    M llvm/test/Transforms/LoopVectorize/tail-folding-vectorization-factor-1.ll

  Log Message:
  -----------
  [VPlan] Verify and handle FOR legality during header phi creation (NFC). (#191298)

Move the logic to validate FOR users and introduce the split directly to
header phi creation. It makes sense to introduce the header phi and the
splice together.

It also means sinking only needs to be done once, instead for each
VPlan.

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

PR: https://github.com/llvm/llvm-project/pull/191298


  Commit: c65bcf2b0b8eb5814844469fc7281ef453444a53
      https://github.com/llvm/llvm-project/commit/c65bcf2b0b8eb5814844469fc7281ef453444a53
  Author: Takashi Idobe <idobetakashi at gmail.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineInternal.h
    A llvm/test/Transforms/InstCombine/divceil.ll
    M llvm/test/Transforms/InstCombine/fls.ll

  Log Message:
  -----------
  [InstCombine] Div ceil optimizations  (#190175)

Relates: https://github.com/llvm/llvm-project/issues/187838

This PR improves handling of `div_ceil` from rust (which emits a div +
rem).

Currently, these three rust functions:
```rust
use std::hint::assert_unchecked;

#[unsafe(no_mangle)]
pub fn div_ceil_without_assume(x: u32) -> u32 {
    x.div_ceil(7)
}

#[unsafe(no_mangle)]
pub fn div_ceil_with_assume(x: u32) -> u32 {
    unsafe {
        assert_unchecked(x <= u32::MAX - 7);
    }
    x.div_ceil(7)
}

#[unsafe(no_mangle)]
pub fn div_ceil_with_range(x: u32) -> u32 {
    x.count_zeros().div_ceil(7)
}
```

Will emit this IR (cleaned up): The IR looks pretty good to me as both
the assert_unchecked and the popcount are providing range information.

```llvm
define noundef range(i32 0, 613566758) i32 @div_ceil_without_assume(i32 noundef %x) unnamed_addr {
start:
  %d = udiv i32 %x, 7
  %r = urem i32 %x, 7
  %_4.not = icmp ne i32 %r, 0
  %0 = zext i1 %_4.not to i32
  %_0.sroa.0.0 = add nuw nsw i32 %d, %0
  ret i32 %_0.sroa.0.0
}

define noundef range(i32 0, 613566757) i32 @div_ceil_with_assume(i32 noundef %x) unnamed_addr {
start:
  %cond = icmp ult i32 %x, -7
  tail call void @llvm.assume(i1 %cond)
  %d = udiv i32 %x, 7
  %r = urem i32 %x, 7
  %_5.not = icmp ne i32 %r, 0
  %0 = zext i1 %_5.not to i32
  %_0.sroa.0.0 = add nuw nsw i32 %d, %0
  ret i32 %_0.sroa.0.0
}

define noundef range(i32 0, 6) i32 @div_ceil_with_range(i32 noundef %x) unnamed_addr {
start:
  %self = xor i32 %x, -1
  %0 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %self)
  %d.lhs.trunc = trunc nuw nsw i32 %0 to i8
  %d3 = udiv i8 %d.lhs.trunc, 7
  %d.zext = zext nneg i8 %d3 to i32
  %r4 = urem i8 %d.lhs.trunc, 7
  %_6.not = icmp ne i8 %r4, 0
  %1 = zext i1 %_6.not to i32
  %_0.sroa.0.0 = add nuw nsw i32 %1, %d.zext
  ret i32 %_0.sroa.0.0
}

declare void @llvm.assume(i1 noundef)

declare i32 @llvm.ctpop.i32(i32)
```
After running through opt and llc on main with popcnt for less noise:
`build/bin/opt -O2 -S < test.ll | build/bin/llc --x86-asm-syntax=intel
-mattr=+popcnt -O2 -o -`

```asm
div_ceil_without_assume:                # @div_ceil_without_assume                                                  
        mov     eax, edi                                                                                            
        movabs  rcx, 2635249153617166336                                                                            
        mul     rcx                                                                                                 
        lea     eax, [8*rdx]                                                                                        
        mov     ecx, edx                                                                                            
        sub     ecx, eax                                                                                            
        xor     eax, eax                                                                                            
        add     ecx, edi                                                                                            
        setne   al                                                                                                  
        add     eax, edx                                                                                            
        ret                                                                                                         
div_ceil_with_assume:                   # @div_ceil_with_assume                                                     
        mov     eax, edi                                                                                            
        movabs  rcx, 2635249153617166336                                                                            
        mul     rcx                                                                                                 
        lea     eax, [8*rdx]                                                                                        
        mov     ecx, edx                                                                                            
        sub     ecx, eax                                                                                            
        xor     eax, eax                                                                                            
        add     ecx, edi                                                                                            
        setne   al                                                                                                  
        add     eax, edx                                                                                            
        ret                                                                                                         
div_ceil_with_range:                    # @div_ceil_with_range                                                      
        not     edi                                                                                                 
        popcnt  ecx, edi                                                                                            
        lea     eax, [rcx + 8*rcx]                                                                                  
        lea     edx, [rcx + 4*rax]                                                                                  
        shr     edx, 8                                                                                              
        lea     esi, [8*rdx]                                                                                        
        sub     esi, edx                                                                                            
        xor     eax, eax                                                                                            
        cmp     cl, sil                                                                                             
        setne   al                                                                                                  
        add     eax, edx                                                                                            
        ret                                                                                                         
```

(as a sidenote, just running llc seems to generate better code? I find
this a bit odd)

`build/bin/llc test.ll --x86-asm-syntax=intel -mattr=+popcnt -O2 -o -`

```asm
div_ceil_without_assume:                # @div_ceil_without_assume                                                  
        mov     eax, edi                                                                                            
        movabs  rcx, 2635249153617166336                                                                            
        mul     rcx                                                                                                 
        mov     rax, rdx                                                                                            
        imul    ecx, edi, -1227133513                                                                               
        cmp     ecx, 613566757                                                                                      
        sbb     eax, -1                                                                                             
        ret                                                                                                         
div_ceil_with_assume:                   # @div_ceil_with_assume                                                     
        mov     eax, edi                                                                                            
        movabs  rcx, 2635249153617166336                                                                            
        mul     rcx                                                                                                 
        mov     rax, rdx                                                                                            
        imul    ecx, edi, -1227133513                                                                               
        cmp     ecx, 613566757                                                                                      
        sbb     eax, -1                                                                                             
        ret                                                                                                         
div_ceil_with_range:                    # @div_ceil_with_range                                                      
        not     edi                                                                                                 
        popcnt  ecx, edi                                                                                            
        lea     eax, [rcx + 8*rcx]                                                                                  
        lea     eax, [rcx + 4*rax]                                                                                  
        shr     eax, 8                                                                                              
        imul    ecx, ecx, -73                                                                                       
        cmp     cl, 37 
```

Anyway the llvm IR when run through opt at -O2:

On main:

The only changes I see are the urem being rewritten to a mul + sub for
all the instructions, and the range information is persisted but not
used.

```llvm
define noundef range(i32 0, 613566758) i32 @div_ceil_without_assume(i32 noundef %x) unnamed_addr {
start:
  %d = udiv i32 %x, 7
  %0 = mul i32 %d, 7
  %r.decomposed = sub i32 %x, %0
  %_4.not = icmp ne i32 %r.decomposed, 0
  %1 = zext i1 %_4.not to i32
  %_0.sroa.0.0 = add nuw nsw i32 %d, %1
  ret i32 %_0.sroa.0.0
}

define noundef range(i32 0, 613566757) i32 @div_ceil_with_assume(i32 noundef %x) unnamed_addr {
start:
  %cond = icmp ult i32 %x, -7
  tail call void @llvm.assume(i1 %cond)
  %d = udiv i32 %x, 7
  %0 = mul i32 %d, 7
  %r.decomposed = sub i32 %x, %0
  %_5.not = icmp ne i32 %r.decomposed, 0
  %1 = zext i1 %_5.not to i32
  %_0.sroa.0.0 = add nuw nsw i32 %d, %1
  ret i32 %_0.sroa.0.0
}

define noundef range(i32 0, 6) i32 @div_ceil_with_range(i32 noundef %x) unnamed_addr {
start:
  %self = xor i32 %x, -1
  %0 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %self)
  %d.lhs.trunc = trunc nuw nsw i32 %0 to i8
  %d3 = udiv i8 %d.lhs.trunc, 7
  %d.zext = zext nneg i8 %d3 to i32
  %1 = mul i8 %d3, 7
  %r4.decomposed = sub i8 %d.lhs.trunc, %1
  %_6.not = icmp ne i8 %r4.decomposed, 0
  %2 = zext i1 %_6.not to i32
  %_0.sroa.0.0 = add nuw nsw i32 %2, %d.zext
  ret i32 %_0.sroa.0.0
}

declare void @llvm.assume(i1 noundef)

declare i32 @llvm.ctpop.i32(i32)
```

However, both the assume and the popcount provide range information so
we can do an optimization. Div_ceil is emitted as a udiv and urem. We
can combine them given the following rules:

Assuming you have floor division of X / Y, we can add Y - 1 to X and
floor division will always give us (floor_divide(X / Y) + 1) which gives
us the same result.

So the formula in general is:

```
div_ceil(X, Y) = X / Y + (1 if X % Y > 0 else 0)  -> X + Y - 1 / Y
```

But this fails since I forgot about wrapping. So we need a condition
that X + Y - 1 does not wrap, and of course Y cannot be 0. Technically
we should ignore Y / 1 since that's a trivial identity.

That gets us:

```
add(udiv(X, Y), zext(icmp ne(urem(X, Y), 0))) -> udiv(add nuw(X, Y - 1), Y)
```

[Alive proof here](https://alive2.llvm.org/ce/z/nBvyv4)

This is where I thought I was done, because this should handle the range
and assume case (the assume case provides less information than the
popcount because popcount's range is narrower for X). So I thought I was
done.

Unfortunately this only optimizes one case (the assume case with the
wide code). The culprit here is in the popcount case, there's a trunc
for the popcount to bound it to an i8 since narrower arithmetic allows
for better optimizations before zero extending.

```llvm
  %d.lhs.trunc = trunc nuw nsw i32 %0 to i8
  %d3 = udiv i8 %d.lhs.trunc, 7
  %d.zext = zext nneg i8 %d3 to i32
  %r4 = urem i8 %d.lhs.trunc, 7
  %_6.not = icmp ne i8 %r4, 0
  %1 = zext i1 %_6.not to i32
```

So we need to handle another form, when the udiv needs to be zexted to
the return type (because it was previously trunced, due to the
popcount).

```
add(zext(udiv(X, Y)), zext(icmp ne(urem(X, Y), 0))) -> zext(udiv(add nuw(X, Y - 1), Y))
```

[Alive2 Proof](https://alive2.llvm.org/ce/z/w7bRZW)

There was another oddity I found that trunced information wasn't passing
constant ranges, so I added that to ValueTracking.cpp to fix this fold
too.

On this branch the IR now transforms:

```llvm
define noundef range(i32 0, 613566758) i32 @div_ceil_without_assume(i32 noundef %x) unnamed_addr {
start:
  %d = udiv i32 %x, 7
  %0 = mul i32 %d, 7
  %r.decomposed = sub i32 %x, %0
  %_4.not = icmp ne i32 %r.decomposed, 0
  %1 = zext i1 %_4.not to i32
  %_0.sroa.0.0 = add nuw nsw i32 %d, %1
  ret i32 %_0.sroa.0.0
}

define noundef range(i32 0, 613566757) i32 @div_ceil_with_assume(i32 noundef %x) unnamed_addr {
start:
  %cond = icmp ult i32 %x, -7
  tail call void @llvm.assume(i1 %cond)
  %0 = add nuw i32 %x, 6
  %_0.sroa.0.0 = udiv i32 %0, 7
  ret i32 %_0.sroa.0.0
}

define noundef range(i32 0, 6) i32 @div_ceil_with_range(i32 noundef %x) unnamed_addr {
start:
  %self = xor i32 %x, -1
  %0 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %self)
  %d.lhs.trunc = trunc nuw nsw i32 %0 to i8
  %1 = add nuw nsw i8 %d.lhs.trunc, 6
  %2 = udiv i8 %1, 7
  %_0.sroa.0.0 = zext nneg i8 %2 to i32
  ret i32 %_0.sroa.0.0
}

declare void @llvm.assume(i1 noundef)

declare i32 @llvm.ctpop.i32(i32)
```

And we get this asm emitted:

```asm
div_ceil_without_assume:                # @div_ceil_without_assume
        mov     eax, edi
        movabs  rcx, 2635249153617166336
        mul     rcx
        lea     eax, [8*rdx]
        mov     ecx, edx
        sub     ecx, eax
        xor     eax, eax
        add     ecx, edi
        setne   al
        add     eax, edx
        ret
div_ceil_with_assume:                   # @div_ceil_with_assume
        lea     eax, [rdi + 6]
        movabs  rcx, 2635249153617166336
        mul     rcx
        mov     rax, rdx
        ret
div_ceil_with_range:                    # @div_ceil_with_range
        not     edi
        popcnt  eax, edi
        add     al, 6
        movzx   eax, al
        imul    eax, eax, 147
        shr     eax, 10
        ret
```


  Commit: 72c8f98f74f2b4f9677d0d5e3dc91bc4d6cb39f4
      https://github.com/llvm/llvm-project/commit/72c8f98f74f2b4f9677d0d5e3dc91bc4d6cb39f4
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M flang/examples/FeatureList/FeatureList.cpp
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M flang/lib/Parser/openmp-parsers.cpp
    M flang/lib/Parser/unparse.cpp
    M flang/lib/Semantics/assignment.cpp
    M flang/lib/Semantics/assignment.h
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/check-omp-structure.h
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/rewrite-parse-tree.cpp
    M flang/lib/Semantics/unparse-with-symbols.cpp
    M flang/test/Parser/OpenMP/declare-mapper-unparse.f90
    M flang/test/Parser/OpenMP/declare-reduction-combiner.f90
    M flang/test/Parser/OpenMP/declare-reduction-multi.f90
    M flang/test/Parser/OpenMP/declare-reduction-operator.f90
    M flang/test/Parser/OpenMP/declare-reduction-unparse.f90
    M flang/test/Parser/OpenMP/declare-target-indirect-tree.f90
    M flang/test/Parser/OpenMP/declare-target-to-clause.f90
    M flang/test/Parser/OpenMP/declare_target-device_type.f90
    M flang/test/Parser/OpenMP/enter-automap-modifier.f90
    M flang/test/Parser/OpenMP/linear-clause.f90
    M flang/test/Parser/OpenMP/openmp6-directive-spellings.f90
    M flang/test/Semantics/OpenMP/simd-only.f90

  Log Message:
  -----------
  [flang][OpenMP] Rename "declare constructs" to directives, NFC (#194240)

Only executable directives are constructs in OpenMP, so, for example,
"declare mapper" is not a construct.

Apply

find flang/ \( -name '*.cpp' -o -name '*.h' -o -name '*.f90' \) -exec sed \
-i -E -e 's/OpenMP(Declare[A-Za-z]*)Construct\b/Omp\1Directive/g' {} \;

plus local formatting updates as needed.


  Commit: 91805dc497de9ceb1bfcaafd0098c6705d2d5c93
      https://github.com/llvm/llvm-project/commit/91805dc497de9ceb1bfcaafd0098c6705d2d5c93
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    A llvm/test/Transforms/SLPVectorizer/X86/select-copyable-cmp-poison.ll

  Log Message:
  -----------
  [SLP][NFC]Add a test with the incorrect vectorization for fully matched, but reordered, node, NFC



Reviewers: 

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


  Commit: 8efcfc2495f3b6686a94f3b2bdaaa4dd8ce7aeab
      https://github.com/llvm/llvm-project/commit/8efcfc2495f3b6686a94f3b2bdaaa4dd8ce7aeab
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/select-copyable-cmp-poison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shrink_after_reorder.ll
    M llvm/test/Transforms/SLPVectorizer/revec.ll

  Log Message:
  -----------
  [SLP] Reuse diamond-matched gather across asymmetric reorder/reuse

processBuildVector's perfect-diamond match used Entries.front()->isSame(
E->Scalars) only, missing matches where E carries the reorder/reuse and
the entry is canonical. Two TreeEntries with the same effective scalar
layout but different raw orderings then build independent gathers; one
emits a fill-in shufflevector for reused lanes while the other leaves
poison there.

Fixes #194191.

Reviewers: 

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


  Commit: 7b43dcd755e4d0cb18326f81080daa642ff4e630
      https://github.com/llvm/llvm-project/commit/7b43dcd755e4d0cb18326f81080daa642ff4e630
  Author: David Green <david.green at arm.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M llvm/test/CodeGen/AArch64/neon-rshrn.ll

  Log Message:
  -----------
  [AArch64] Add disjoint or tests for rshrn and raddhn. NFC (#194252)

These should already be OK, as the os disjoint or connot round up.


  Commit: fbac55b82be9bf849d8a9c2514c01cb24a2a264f
      https://github.com/llvm/llvm-project/commit/fbac55b82be9bf849d8a9c2514c01cb24a2a264f
  Author: JP Hafer <146973677+jph-13 at users.noreply.github.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    A llvm/test/CodeGen/AArch64/scvtf-div-mul-combine.ll

  Log Message:
  -----------
  [AArch64] Optimize vector fmul(sitofp/uitofp, 1/2^N) -> scvtf/ucvtf (#141480)

When a vector integer-to-float conversion is followed by a multiply with a
reciprocal power-of-two constant, we can fold both operations into a single
SCVTF or UCVTF instruction with a fixed-point shift operand.

For example, `fmul(sitofp(v2i32 x), <0.5, 0.5>)` becomes `scvtf.2s v0, v0, #1`.

This is a reworked version with several improvements over the original
submission:
- Rewrite the C++ operand matcher to share implementation with the existing
    `SelectCVTFixedPointVec` (MOVIshift, FMOV, and DUP handling with correct
    truncation for f16)
- Add `uitofp`/`ucvtf` patterns via a `CVTFRecipPat` multiclass
- Add full GlobalISel support (`GIComplexOperandMatcher` + renderer)

Supported vector types: `v2f32`, `v4f32`, `v2f64`, `v4f16`, `v8f16`.

Fixes #94909


  Commit: 694f1b425ae370e5fc615038dba90cb1cfcadd30
      https://github.com/llvm/llvm-project/commit/694f1b425ae370e5fc615038dba90cb1cfcadd30
  Author: Christoph Grüninger <foss at grueninger.de>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M .github/workflows/libcxx-build-and-test.yaml

  Log Message:
  -----------
  Remove GitHub Action seanmiddleditch/gha-setup-ninja (#194218)

>From the GitHubAction
[README](https://github.com/seanmiddleditch/gha-setup-ninja/blob/master/README.md):
"This action is no longer necessary, as ninja is now
included on all default GitHub runner instances."


  Commit: 4e6d01dd5bc6d10166e8b8f1fbf36c862ca04e10
      https://github.com/llvm/llvm-project/commit/4e6d01dd5bc6d10166e8b8f1fbf36c862ca04e10
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M .github/workflows/libcxx-build-and-test.yaml

  Log Message:
  -----------
  [libcxx][Github] Bump libcxx runners to the next runner set (#194212)

To pick up some recent container changes that add additional tools for
the LLVM libc build.


  Commit: a562a10f7379c158a858be0cabf52d9dca5fd1c4
      https://github.com/llvm/llvm-project/commit/a562a10f7379c158a858be0cabf52d9dca5fd1c4
  Author: Ebuka Ezike <yerimyah1 at gmail.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M lldb/tools/lldb-dap/DAP.cpp
    M lldb/tools/lldb-dap/DAP.h
    M lldb/tools/lldb-dap/DAPSessionManager.cpp
    M lldb/tools/lldb-dap/EventHelper.cpp

  Log Message:
  -----------
  lldb-dap: Fix race condition in event threads creation (#194012)

Move the registration of the SBListener to before
the event threads (`ProgressEventThread` and `EventThread`) start

This prevents a race condition where a stop event
could be missed if it was sent immediately after thread creation, which
would lead to a deadlock. It is most likely to happen under heavy CPU
load with test that fails early like
TestDAP_commands::test_command_directive_abort_on_error_init_commands.

Relevant logs.
```sh
# Event thread deadlock.
0x00007348BC000BE0 Listener('lldb-dap.progress.listener')::GetEventInternal, timeout = 1000000 us, event_mask = 0
0x00005b72419d1640 Broadcaster("lldb-dap")::BroadcastEvent (event_sp = 0x5b7241eebb60 Event: broadcaster = 0x5b72418e0df0 (lldb-dap), type = 0x00000001, data = <NULL>, unique=false) hijack = 0x0000000000000000
0x00005B7241898440 Listener('lldb.Debugger')::GetEventInternal, timeout = 1000000 us, event_mask = 0
0x7348bc000be0     Listener::GetEventInternal() timed out for lldb-dap.progress.listener
0x00007348BC000BE0 Listener('lldb-dap.progress.listener')::GetEventInternal, timeout = 1000000 us, event_mask = 0
```
```sh
# Progress thread deadlock.
0x000057798AB6B440 Listener('lldb.Debugger')::GetEventInternal, timeout = <infinite>, event_mask = 0
0x000057798aca4640 Broadcaster("lldb-dap")::BroadcastEvent (event_sp = 0x57798b0b9d80 Event: broadcaster = 0x57798abb3df0 (lldb-dap), type = 0x00000001, data = <NULL>, unique=false) hijack = 0x0000000000000000
0x57798ab6b440     Listener('lldb.Debugger')::AddEvent (event_sp = {0x57798b0b9d80})
0x57798ab6b440     'lldb.Debugger' Listener::FindNextEventInternal(broadcaster=(nil), event_type_mask=0x00000000, remove=1) event 0x57798b0b9d80
0x000057798aca4640 Broadcaster("lldb-dap")::BroadcastEvent (event_sp = 0x57798b1be800 Event: broadcaster = 0x57798abb3df0 (lldb-dap), type = 0x00000002, data = <NULL>, unique=false) hijack = 0x0000000000000000
0x000078023C000BE0 Listener('lldb-dap.progress.listener')::GetEventInternal, timeout = <infinite>, event_mask = 0
```


  Commit: 8f65ad583a019cde822b19cf24b0df68a5242792
      https://github.com/llvm/llvm-project/commit/8f65ad583a019cde822b19cf24b0df68a5242792
  Author: Pedro Lobo <pedro.lobo at tecnico.ulisboa.pt>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M llvm/lib/Analysis/ConstantFolding.cpp
    M llvm/test/Transforms/InstSimplify/load.ll

  Log Message:
  -----------
  [ConstantFolding] Fold byte loads from constant globals (#194074)

Handle byte types in `FoldReinterpretLoadFromConst` and
`ConstantFoldLoadFromUniformValue` so loads from constant globals fold.


  Commit: 3b20615594360fdb0f0e328d0d83ae572474b370
      https://github.com/llvm/llvm-project/commit/3b20615594360fdb0f0e328d0d83ae572474b370
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    A llvm/test/Transforms/LoopVectorize/VPlan/widen-canonical-iv-register-pressure.ll
    A llvm/test/Transforms/LoopVectorize/X86/widen-canonical-iv-register-pressure.ll

  Log Message:
  -----------
  [LV] Add test cases where wide IV can cause spills. (#194260)

Add test cases showing cases where replacing VPWidenCanonicalIVRecipe
with VPWidenIntOrFPinductionPHIRecipe is profitable/not profitable due
to introducing spills.


  Commit: 544d003630475c65f6d85d1edb4467e9d7a16c0f
      https://github.com/llvm/llvm-project/commit/544d003630475c65f6d85d1edb4467e9d7a16c0f
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/VPlan/vplan-print-after-all.ll

  Log Message:
  -----------
  [VPlan] Use RUN_VPLAN_PASS for later VPlan transforms. (#194261)

Convert a number of later VPlan transform invocations to use
RUN_VPLAN_PASS. Enables more accurate transform printing, as well as
extra verification.

This should migrate all remaining transforms that can be moved without
changes.


  Commit: 28c4c25c0cdf4bb41059fb48927f0f866b72bd5a
      https://github.com/llvm/llvm-project/commit/28c4c25c0cdf4bb41059fb48927f0f866b72bd5a
  Author: Midhunesh <midhunesh.p at ibm.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_allocator_dlsym.h

  Log Message:
  -----------
  [Asan]Add align argument to Realloc() (#194255)

Add align argument to the function Realloc() to ensure original
allocation alignment through realloc


  Commit: 4ef52fe4652810ca816250b00c996d65672dd2d0
      https://github.com/llvm/llvm-project/commit/4ef52fe4652810ca816250b00c996d65672dd2d0
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

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

  Log Message:
  -----------
  [libcxx] Remove package installation for generic-llvm-libc (#194259)

Now that these packages are installed by default in the container image,
we no longer need to install them each time we do a build.


  Commit: 13cee9be088057f198e08ee7217ed2af08cfd825
      https://github.com/llvm/llvm-project/commit/13cee9be088057f198e08ee7217ed2af08cfd825
  Author: martin0413133 <129967631+martin0413133 at users.noreply.github.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_posix.cpp

  Log Message:
  -----------
  [sanitizer] Fix race condition in GetNamedMappingFd with decorate_pro… (#190981)

…c_maps=1

Multi-threaded programs crash randomly when
ASAN_OPTIONS=decorate_proc_maps=1 is enabled due to filename collision
in /dev/shm.

Root Cause:
All threads use the same filename format '/dev/shm/<PID> [name]',
causing race conditions where one thread deletes a file created by
another thread, resulting in ENOENT errors.

Solution:
Add thread ID (TID) to the filename to ensure uniqueness:
- Old format: /dev/shm/<PID> [name]
- New format: /dev/shm/<PID>.<TID> [name]

This ensures each thread has a unique filename, eliminating the race
condition.

Testing:
- Original version: 30% crash rate (6 crashes in 20 runs)
- Fixed version: 0% crash rate (0 crashes in 50 runs)

Fixes #190604


  Commit: 57494cc7b4e8b59714ee9e312812d8421f41d27c
      https://github.com/llvm/llvm-project/commit/57494cc7b4e8b59714ee9e312812d8421f41d27c
  Author: Thurston Dang <thurston at google.com>
  Date:   2026-04-26 (Sun, 26 Apr 2026)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_posix.cpp

  Log Message:
  -----------
  Revert "[sanitizer] Fix race condition in GetNamedMappingFd with decorate_pro…" (#194271)

Reverts llvm/llvm-project#190981 due to buildbot failure
(https://lab.llvm.org/buildbot/#/builders/66/builds/29993):
```
  SanitizerCommon-asan-i386-Linux :: Linux/decorate_proc_maps.cpp
```


  Commit: 652700b4cb3c87294f2d78cb87df5e394e589984
      https://github.com/llvm/llvm-project/commit/652700b4cb3c87294f2d78cb87df5e394e589984
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_posix.cpp

  Log Message:
  -----------
  Reland "[sanitizer] Fix race condition in GetNamedMappingFd with decorate_pro…"" (#194273)

Reverts llvm/llvm-project#194271

Relands llvm/llvm-project#190981.

ThreadID is u64, format must be `%llu`.


  Commit: 09306f776fc04272e3ef8a5fdb09b06a84713ffd
      https://github.com/llvm/llvm-project/commit/09306f776fc04272e3ef8a5fdb09b06a84713ffd
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/test/CodeGen/RISCV/rvv/dont-sink-splat-operands.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert-subvector-shuffle.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-peephole-vmerge-vops.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vadd-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmacc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmul-vp-mask.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-vrsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsub-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll
    M llvm/test/CodeGen/RISCV/rvv/sink-splat-operands.ll
    M llvm/test/CodeGen/RISCV/rvv/undef-vp-ops.ll
    M llvm/test/CodeGen/RISCV/rvv/vadd-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/vadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vandn-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vmul-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/vmul-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-vaaddu.ll
    M llvm/test/CodeGen/RISCV/rvv/vrsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vsub-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/vsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vwadd-vp.ll

  Log Message:
  -----------
  [RISCV] Remove codegen for vp_add, vp_mul, vp_sub (#194173)

Part of the work to remove trivial VP intrinsics from the RISC-V
backend, see
https://discourse.llvm.org/t/rfc-remove-codegen-support-for-trivial-vp-intrinsics-in-the-risc-v-backend/87999

This splits off 3 intrinsics from #179622. These are expanded and
removed in lockstep so we don't break the multiply-accumulate patterns.


  Commit: ef09defc0f4d2a0e52e4d4bd2239088241310051
      https://github.com/llvm/llvm-project/commit/ef09defc0f4d2a0e52e4d4bd2239088241310051
  Author: Ruiling, Song <ruiling.song at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    A llvm/test/CodeGen/AMDGPU/wqm-propagate-for-execz-side-effect.mir

  Log Message:
  -----------
  [test][AMDGPU] Precommit test for Back-propagate wqm for sources of side-effect instruction (#193394)


  Commit: e042f67503e5cbf0480b3c24719c3a57dde1453b
      https://github.com/llvm/llvm-project/commit/e042f67503e5cbf0480b3c24719c3a57dde1453b
  Author: ZhaoQi <zhaoqi01 at loongson.cn>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArchInstrInfo.cpp
    M llvm/lib/Target/LoongArch/LoongArchInstrInfo.h
    A llvm/test/CodeGen/LoongArch/stackslot.mir

  Log Message:
  -----------
  [LoongArch] Override `isLoadFromStackSlot/isStoreToStackSlot` to expose more optimizations (#164561)


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

  Changed paths:
    M llvm/test/CodeGen/X86/machine-block-hash.mir

  Log Message:
  -----------
  [X86] Mark machine-block-hash.mir as XFAIL on big-endian hosts (#194279)

Test introduced in #193107 assumes `stable_hash_combine` is stable,
but it turns out it's not true.


  Commit: 41236fb837ecf9fbf632d158833ec5edac509799
      https://github.com/llvm/llvm-project/commit/41236fb837ecf9fbf632d158833ec5edac509799
  Author: Madhur Amilkanthwar <madhura at nvidia.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Scalar/GVN.cpp
    M llvm/test/Transforms/GVN/tbaa.ll

  Log Message:
  -----------
  [GVN] Propagate isMemorySSAEnabled() into ValueTable (#193938)

`GVNPass::runImpl()` calls `VN.setMemorySSA(MSSA)` with a single
argument. The second parameter of `ValueTable::setMemorySSA()`,
`MSSAEnabled`, defaults to `false`, so `ValueTable::IsMSSAEnabled`
remains false even when the pass is configured with
`-enable-gvn-memoryssa=1` or `-passes='gvn<memoryssa>'`.

The MemorySSA-backed value-numbering paths in
`ValueTable::lookupOrAddCall()` and `ValueTable::computeLoadStoreVN()`
are gated on `IsMSSAEnabled`, making them unreachable from runImpl() on
main today.

This patch forwards isMemorySSAEnabled() as the second argument to
setMemorySSA(), so selecting the MemorySSA backend actually enables
MemorySSA-aware value numbering.


  Commit: 2a09db4d6a6ab6281b8b52f5057fe89fe0935d23
      https://github.com/llvm/llvm-project/commit/2a09db4d6a6ab6281b8b52f5057fe89fe0935d23
  Author: Ruiling, Song <ruiling.song at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
    M llvm/test/CodeGen/AMDGPU/wqm-propagate-for-execz-side-effect.mir

  Log Message:
  -----------
  AMDGPU: Back-propagate wqm for sources of side-effect instruction (#193395)

For readfirstlane instruction, as it would get undefined value if exec
is zero. To handle the case that only helper lanes execute the parent
block, we let the readfirstlane to execute under wqm. But this is not
enough. If the parent block was also executed by non-helper lanes, we
also need to make sure its sources were calculated under wqm. Otherwise,
if the instruction that generate the source of readfirstlane was
executed under exact mode, the value would contain garbage data in help
lane. The garbage data in helper lane maybe returned by the
readfirstlane running under wqm.

To fix this issue, we need to enforce the back-propagation of wqm for
instructions like readfirstlane. This was only done if the instruction
was possibly in the middle of wqm region (by checking OutNeeds).


  Commit: 504930b655af9a49c0596b2aa68f1b763a599bab
      https://github.com/llvm/llvm-project/commit/504930b655af9a49c0596b2aa68f1b763a599bab
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/test/CodeGen/X86/machine-block-hash.mir

  Log Message:
  -----------
  [X86] Remove update_mir_test_checks.py NOTE (#194278)

The test checks printer output, not MIR.
It was probably copy-pasted in #193107 from other test.


  Commit: 1f9c611b0997205568f226e0f0ecd22cb96e4f77
      https://github.com/llvm/llvm-project/commit/1f9c611b0997205568f226e0f0ecd22cb96e4f77
  Author: Madhur Amilkanthwar <madhura at nvidia.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/test/Transforms/LoopFusion/double_loop_nest_inner_guard.ll
    M llvm/test/Transforms/LoopFusion/triple_loop_nest_inner_guard.ll

  Log Message:
  -----------
  [LoopFusion][NFC] UTC gen some tests (#193755)

Some variables need rename as UTC normalizes IR value names. Also,
remove dead variable `%M` and `%N` from
`double_loop_nest_inner_guard.ll`


  Commit: 4d2d6a0d92e068a367168706fb768f9dd1c0ad8a
      https://github.com/llvm/llvm-project/commit/4d2d6a0d92e068a367168706fb768f9dd1c0ad8a
  Author: Zhaoxin Yang <yangzhaoxin at loongson.cn>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/test/CodeGen/LoongArch/lsx/ir-instruction/fpext.ll
    M llvm/test/CodeGen/LoongArch/vector-fp-imm.ll

  Log Message:
  -----------
  [LoongArch] Type legalize v2f32 loads by using an f64 load and a scalar_to_vector (#164943)

On 64-bit targets the generic legalize will use an i64 load and a
scalar_to_vector for us. But on 32-bit targets, i64 isn't legal, and the
generic legalizer will end up emitting two 32-bit loads. This patch uses
f64 to avoid the splitting entirely and the redundant int->fp
conversion.


  Commit: 4ab33dc39b569f2e33eeec24c2c5c9ae013fe5ea
      https://github.com/llvm/llvm-project/commit/4ab33dc39b569f2e33eeec24c2c5c9ae013fe5ea
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-peephole-vmerge-vops.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfnmsac-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmacc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vnmsac-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vselect-vp-bf16.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vselect-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll
    M llvm/test/CodeGen/RISCV/rvv/sink-splat-operands.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmacc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmsac-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/vmacc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vmadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vnmsac-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vselect-vp-bf16.ll
    M llvm/test/CodeGen/RISCV/rvv/vselect-vp.ll

  Log Message:
  -----------
  [RISCV] Remove codegen for vp_select (#194199)

Part of the work to remove trivial VP intrinsics from the RISC-V
backend, see
https://discourse.llvm.org/t/rfc-remove-codegen-support-for-trivial-vp-intrinsics-in-the-risc-v-backend/87999

This splits off vp.select from #179622


  Commit: bee932f0c98d720b66994cb6500d227d219110b8
      https://github.com/llvm/llvm-project/commit/bee932f0c98d720b66994cb6500d227d219110b8
  Author: Antonio Frighetto <me at antoniofrighetto.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
    M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
    A llvm/test/CodeGen/NVPTX/unknown-intrinsic.ll

  Log Message:
  -----------
  [NVPTX] Improve error diagnostic when handling unknown intrinsics (#191194)

Following up on #146726, it may be desirable to gracefully fail the
compilation in the presence of unknown NVVM intrinsics, which
cannot be lowered by the NVPTX backend, rather than silently
emitting invalid PTX.


  Commit: 30c5cfd5b78010146bfd06d19083dfa9c76bbc1a
      https://github.com/llvm/llvm-project/commit/30c5cfd5b78010146bfd06d19083dfa9c76bbc1a
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/ExpandVectorPredication.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfclass-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfclass-vp.ll

  Log Message:
  -----------
  [RISCV] Remove codegen for vp_is_fpclass (#193222)

Part of the work to remove trivial VP intrinsics from the RISC-V
backend, see
https://discourse.llvm.org/t/rfc-remove-codegen-support-for-trivial-vp-intrinsics-in-the-risc-v-backend/87999

This splits off vp_is_fpclass from #179622.


  Commit: 9b787812e1700800fc927f104c5911aebdaec6eb
      https://github.com/llvm/llvm-project/commit/9b787812e1700800fc927f104c5911aebdaec6eb
  Author: Chaitanya <Krishna.Sankisa at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
    A clang/test/CIR/CodeGenHIP/builtins-amdgcn.hip

  Log Message:
  -----------
  [CIR][AMDGPU] Add lowering for amdgcn_div_scale builtins (#192931)

Upstreaming clangIR PR: https://github.com/llvm/clangir/pull/2050

This PR adds support for lowering of _builtin_amdgcn_div_scale* amdgpu
builtins to clangIR.
Followed similar lowering from reference clang->llvmir in
clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp.


  Commit: 58f2c189c4232351bd22dfdbb7ab45e084406cca
      https://github.com/llvm/llvm-project/commit/58f2c189c4232351bd22dfdbb7ab45e084406cca
  Author: Piotr Fusik <p.fusik at samsung.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
    A llvm/test/Transforms/InstCombine/shift-sub.ll

  Log Message:
  -----------
  [InstCombine] Fold shift of a constant into a reverse shift (#192982)

    C1 << (C2 - X) -> (C1 << C2) >> X
    C1 << (C2 ^ X) -> (C1 << C2) >> X (if equivalent to the above)
    C1 >> (C2 - X) -> (C1 >> C2) << X (right shift modes match)
    C1 >> (C2 ^ X) -> (C1 >> C2) << X (if equivalent to the above)

Proof: https://alive2.llvm.org/ce/z/q-4soi


  Commit: 8119f1854948b50358bbfaea08f207f51970f06c
      https://github.com/llvm/llvm-project/commit/8119f1854948b50358bbfaea08f207f51970f06c
  Author: Khem Raj <khem.raj at oss.qualcomm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M libcxxabi/src/cxa_personality.cpp

  Log Message:
  -----------
  libcxxabi: declare __gnu_unwind_frame in cxa_personality (#189787)

ARM EHABI builds of libcxxabi fail with clang-22+ because
cxa_personality.cpp calls __gnu_unwind_frame without a visible
declaration, triggering:

  error: use of undeclared identifier '__gnu_unwind_frame'

Add an extern "C" forward declaration before the EHABI unwind helper so
the source compiles correctly.

Signed-off-by: Khem Raj <khem.raj at oss.qualcomm.com>


  Commit: f57f184f87d1caedc778bb1f1a972757083e998d
      https://github.com/llvm/llvm-project/commit/f57f184f87d1caedc778bb1f1a972757083e998d
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M flang/include/flang/Lower/PFTBuilder.h
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/PFTBuilder.cpp
    M flang/lib/Semantics/tools.cpp
    M flang/test/Lower/OpenMP/target-map-complex.f90
    M flang/test/Lower/c-interoperability.f90
    A flang/test/Lower/host_module_variable_instantiation.f90
    A flang/test/Lower/proc_pointer_hidden_by_generic.f90

  Log Message:
  -----------
  [flang] only instantiate required symbols from parent modules (#193689)

Currently lowering is instantiating (creating
fir.address_of/hlfir.declare) for all module variables from host module
and submodules (for instance, in the new
host_module_variable_instantiation.f90 test, a fir.address_of was
generated the unused var2 inside the procedure foo).

This created a lot of noise (and in the worst cases, compile time
performance issues), and also some extra complexity at least for OpenACC
where the IR acc routine ended up referencing globals that are no
actually needed, creating the need to copy them on the GPU or to have
custom logic to ignore the globals.

This patch addresses this by doing a visit of the parse tree to detect
the required symbols and only instantiate those.


  Commit: 13e98d834101efd1794cdd026377c508293ee21b
      https://github.com/llvm/llvm-project/commit/13e98d834101efd1794cdd026377c508293ee21b
  Author: Fangrui Song <i at maskray.me>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M bolt/include/bolt/Core/BinaryContext.h
    M bolt/lib/Core/BinaryContext.cpp
    M clang/lib/Parse/ParseStmtAsm.cpp
    M clang/tools/driver/cc1as_main.cpp
    M lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp
    M lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp
    M lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp
    M llvm/include/llvm/MC/MCContext.h
    M llvm/include/llvm/Passes/CodeGenPassBuilder.h
    M llvm/include/llvm/Target/TargetMachine.h
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
    M llvm/lib/CodeGen/CodeGenTargetMachineImpl.cpp
    M llvm/lib/CodeGen/MachineVerifier.cpp
    M llvm/lib/CodeGen/ShrinkWrap.cpp
    M llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp
    M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
    M llvm/lib/CodeGen/TargetPassConfig.cpp
    M llvm/lib/DWARFLinker/Classic/DWARFStreamer.cpp
    M llvm/lib/DWARFLinker/Parallel/DWARFEmitterImpl.cpp
    M llvm/lib/DWARFLinker/Parallel/DebugLineSectionEmitter.h
    M llvm/lib/DebugInfo/LogicalView/Readers/LVBinaryReader.cpp
    M llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
    M llvm/lib/MC/MCContext.cpp
    M llvm/lib/MC/MCDisassembler/Disassembler.cpp
    M llvm/lib/Object/ModuleSymbolTable.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
    M llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp
    M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/ARC/ARCInstrInfo.cpp
    M llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
    M llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
    M llvm/lib/Target/ARM/ARMFrameLowering.cpp
    M llvm/lib/Target/ARM/ARMSubtarget.cpp
    M llvm/lib/Target/ARM/ARMTargetObjectFile.cpp
    M llvm/lib/Target/ARM/Thumb2SizeReduction.cpp
    M llvm/lib/Target/AVR/AVRInstrInfo.cpp
    M llvm/lib/Target/CSKY/CSKYInstrInfo.cpp
    M llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
    M llvm/lib/Target/LoongArch/LoongArchInstrInfo.cpp
    M llvm/lib/Target/M68k/M68kMCInstLower.cpp
    M llvm/lib/Target/MSP430/MSP430InstrInfo.cpp
    M llvm/lib/Target/Mips/MipsInstrInfo.cpp
    M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/Sparc/SparcInstrInfo.cpp
    M llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
    M llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
    M llvm/lib/Target/X86/X86FastISel.cpp
    M llvm/lib/Target/X86/X86FrameLowering.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86MCInstLower.cpp
    M llvm/lib/Target/X86/X86TargetMachine.cpp
    M llvm/lib/Target/Xtensa/XtensaInstrInfo.cpp
    M llvm/tools/llvm-cfi-verify/lib/FileAnalysis.cpp
    M llvm/tools/llvm-dwp/llvm-dwp.cpp
    M llvm/tools/llvm-exegesis/lib/DisassemblerHelper.cpp
    M llvm/tools/llvm-exegesis/lib/SnippetFile.cpp
    M llvm/tools/llvm-jitlink/llvm-jitlink.cpp
    M llvm/tools/llvm-mc-assemble-fuzzer/llvm-mc-assemble-fuzzer.cpp
    M llvm/tools/llvm-mc/llvm-mc.cpp
    M llvm/tools/llvm-mca/llvm-mca.cpp
    M llvm/tools/llvm-ml/Disassembler.cpp
    M llvm/tools/llvm-ml/llvm-ml.cpp
    M llvm/tools/llvm-objdump/MachODump.cpp
    M llvm/tools/llvm-objdump/llvm-objdump.cpp
    M llvm/tools/llvm-profgen/ProfiledBinary.cpp
    M llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
    M llvm/tools/sancov/sancov.cpp
    M llvm/unittests/CodeGen/MachineInstrTest.cpp
    M llvm/unittests/CodeGen/MachineOperandTest.cpp
    M llvm/unittests/DebugInfo/DWARF/DWARFExpressionCopyBytesTest.cpp
    M llvm/unittests/DebugInfo/DWARF/DwarfGenerator.cpp
    M llvm/unittests/MC/AMDGPU/Disassembler.cpp
    M llvm/unittests/MC/DwarfDebugFrameCIE.cpp
    M llvm/unittests/MC/DwarfLineTableHeaders.cpp
    M llvm/unittests/MC/DwarfLineTables.cpp
    M llvm/unittests/MC/SystemZ/SystemZAsmLexerTest.cpp
    M llvm/unittests/MC/SystemZ/SystemZMCDisassemblerTest.cpp
    M llvm/unittests/MC/X86/X86MCDisassemblerTest.cpp
    M llvm/unittests/Target/AArch64/AArch64InstPrinterTest.cpp
    M llvm/unittests/tools/llvm-mca/MCATestBase.cpp
    M mlir/lib/Target/LLVM/ROCDL/Target.cpp

  Log Message:
  -----------
  [MC] Take MCAsmInfo by reference in MCContext and TargetMachine. NFC (#194280)

Both MCContext::MCContext and TargetMachine::getMCAsmInfo treat
MCAsmInfo as a pointer that must be non-null. Make the contract
explicit:

* MCContext's constructor takes `const MCAsmInfo &MAI`.
* TargetMachine::getMCAsmInfo returns `const MCAsmInfo &`.

Make this change now since the MCContext ctor has recently been updated.


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

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-masked-load.ll
    M llvm/test/CodeGen/LoongArch/lasx/vxi1-masks.ll
    M llvm/test/CodeGen/NVPTX/i16x2-instructions.ll
    M llvm/test/CodeGen/PowerPC/masked-sdiv.ll
    M llvm/test/CodeGen/PowerPC/masked-srem.ll
    M llvm/test/CodeGen/PowerPC/masked-udiv.ll
    M llvm/test/CodeGen/PowerPC/masked-urem.ll
    M llvm/test/CodeGen/RISCV/rvv/incorrect-extract-subvector-combine.ll
    M llvm/test/CodeGen/X86/dag-topological-sort.ll
    M llvm/test/CodeGen/X86/pr134602.ll

  Log Message:
  -----------
  [DAG] visitAND - attempt to fold (and buildvector(), buildvector()) -> buildvector() (#193987)

See if we can fold all elements of an AND of buildvectors: AND(-1,X) -> X, AND(0,X) -> 0, etc.

Companion to ##183032


  Commit: cab0c0dd79b20ae1114a0b40f6756ab6d7c3b70b
      https://github.com/llvm/llvm-project/commit/cab0c0dd79b20ae1114a0b40f6756ab6d7c3b70b
  Author: Varad Rahul Kamthe <133588066+varadk27 at users.noreply.github.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
    M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
    M mlir/test/Dialect/LLVMIR/nvvm.mlir
    M mlir/test/Target/LLVMIR/nvvmir-invalid.mlir
    M mlir/test/Target/LLVMIR/nvvmir.mlir

  Log Message:
  -----------
  [MLIR][NVVM] Add movmatrix Op (#193995)

Add `movmatrix` to MLIR NVVM dialect, which moves a row-major matrix across all threads in a warp and writes the
transposed elements to the destination.


  Commit: dc19e4b0b6c9a10633958046d2e27b597ba7e37e
      https://github.com/llvm/llvm-project/commit/dc19e4b0b6c9a10633958046d2e27b597ba7e37e
  Author: Hao Ren <123687754+moomoohorse321 at users.noreply.github.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M mlir/lib/Conversion/NVGPUToNVVM/NVGPUToNVVM.cpp
    M mlir/test/Conversion/NVGPUToNVVM/nvgpu-to-nvvm.mlir

  Log Message:
  -----------
  [mlir][NVGPUToNVVM] Support BF16 mma.sync lowering (#194203)

Let NVGPUToNVVM to recognize BF16 MMA operand element types
Pack `vector<2xbf16>` fragments to `i32` before emitting
`nvvm.mma.sync`.
This matches the PTX operand encoding for `m16n8k16` BF16 MMA
instructions.

Add a conversion test for `nvgpu.mma.sync` `bf16xbf16` to `f32`
lowering.

Co-authored-by: Hao Ren <rhao8608 at gmail.com>


  Commit: 2c39855fb790df3f75c9272311b6a8ecbb603a17
      https://github.com/llvm/llvm-project/commit/2c39855fb790df3f75c9272311b6a8ecbb603a17
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

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

  Log Message:
  -----------
  [AArch64] Sanitise pow inputs using a target DAG combine (#192958)

Sometimes we see LLVM IR like this:

  %pow = call fast <4 x float> @llvm.pow.v4f32(...)
  %fcmp = fcmp fast ...
  %res = select <4 x i1> %fcmp, <4 x float> %val, <4 x float> %pow

where the pow intrinsic is called unconditionally, but only certain
lanes of the result are used. In fact, LLVM actively encourages code
like this due to the intrinsic being marked as safe to speculatively
execute. However, we know when using certain vector libraries like
ArmPL that this can be very costly if the unused lanes would take
the pow call down an expensive path. For example, if an input to
pow is a special value (inf, NaN, -0) then it triggers slow special
case handling, and ultimately the result is going to be ignored
anyway. For this reason we prefer to sanitise the pow input to
use 'safe' values when we know the result is going to be discarded.
The above example LLVM IR would then look like

  %fcmp = fcmp fast ...
  %sel = select <4 x i1>, <4 x float> splat(float 1.0), ...
  %pow = call fast <4 x float> @llvm.pow.v4f32(<4 x float> %sel, ...)
  %res = select <4 x i1> %fcmp, <4 x float> %val, <4 x float> %pow

where the value 1.0 is chosen due to the fact pow is known to always
return 1.0 for all powers.


  Commit: 6b25ae4fed5f7bd75c2b1bc011aa3d5de3bd29c2
      https://github.com/llvm/llvm-project/commit/6b25ae4fed5f7bd75c2b1bc011aa3d5de3bd29c2
  Author: Fangrui Song <i at maskray.me>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang-tools-extra/clangd/Config.h
    M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.h
    M llvm/include/llvm/ADT/FoldingSet.h
    M llvm/include/llvm/ADT/STLExtras.h
    M llvm/include/llvm/ADT/StableHashing.h
    M llvm/include/llvm/ExecutionEngine/Orc/WaitingOnGraph.h
    M llvm/lib/Support/FoldingSet.cpp
    M llvm/unittests/Support/xxhashTest.cpp

  Log Message:
  -----------
  [ADT] Fix IWYU for hashing-adjacent files (#194297)

Add explicit includes so these files keep building after we trim
transitive includes from xxhash.h.

For example, FoldingSet.cpp calls llvm::uninitialized_copy, which is
declared in llvm/ADT/STLExtras.h and today reaches the file only
transitively.

Also drop the vestigial `#include "llvm/ADT/Hashing.h"` from
llvm/ADT/STLExtras.h — no name from Hashing.h is used there.


  Commit: 3d893f3e232236749ed1988667d039369b3c98bf
      https://github.com/llvm/llvm-project/commit/3d893f3e232236749ed1988667d039369b3c98bf
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/AArch64/masked-call.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/wider-VF-for-callinst.ll
    M llvm/test/Transforms/LoopVectorize/hints-trans.ll
    M llvm/test/Transforms/LoopVectorize/scalable-trunc-min-bitwidth.ll

  Log Message:
  -----------
  [LV][NFC] Remove instsimplify pass run from all tests (#193722)

The instsimplify pass was only giving minor incidental improvements that
aren't essential to what is being tested.


  Commit: 7189c4bb83d90c383741a9480fceca9c7bf74b27
      https://github.com/llvm/llvm-project/commit/7189c4bb83d90c383741a9480fceca9c7bf74b27
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/test/CodeGen/AArch64/veclib-llvm.pow.ll

  Log Message:
  -----------
  [AArch64][NFC] Fix veclib-llvm.pow.ll test to run all pre-isel passes (#193996)


  Commit: 89894b67484694aeaaec9c6bac6a09d71c347e6f
      https://github.com/llvm/llvm-project/commit/89894b67484694aeaaec9c6bac6a09d71c347e6f
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M libc/hdr/types/CMakeLists.txt
    A libc/hdr/types/struct_cmsghdr.h
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-macros/linux/sys-socket-macros.h
    M libc/include/llvm-libc-types/CMakeLists.txt
    A libc/include/llvm-libc-types/struct_cmsghdr.h
    M libc/include/sys/socket.yaml
    M libc/test/src/sys/socket/linux/CMakeLists.txt
    M libc/test/src/sys/socket/linux/sendmsg_recvmsg_test.cpp

  Log Message:
  -----------
  [libc] Add struct cmsghdr and associated macros (#193756)

The macros are the main source of subtlety. The interesting aspects are:
- some implementations CMSG_ALIGN the size of struct cmsghdr, but this
is a noop. Instead of doing that, I added an assertion in the test.
- POSIX permits CMSG_NXTHDR to return null if the buffer has no space
for the data array, and this behavior differs between implementations.
This implementation does not do that in order to match CMSG_FIRSTHDR,
which doesn't have such an option.
- some implementations redirect the CMSG_NXTHDR macro to an (extern or
static inline) function. I implemented this inside the macro to avoid
having to define a (private ?) entry point for that function.

---------

Co-authored-by: Jeff Bailey <jbailey at raspberryginger.com>


  Commit: 166c2418cf3e9c976f59e079e6a3400cc3c44c4b
      https://github.com/llvm/llvm-project/commit/166c2418cf3e9c976f59e079e6a3400cc3c44c4b
  Author: Adrian Kuegel <akuegel at google.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

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

  Log Message:
  -----------
  [Bazel] Add linkopts to adjust for changes in 9ec6788 (#194314)

We need to link against crypt32.lib to avoid linker errors on Windows.


  Commit: 1fee6a1e04de55ec218f9f38cbf2f60fc43acd26
      https://github.com/llvm/llvm-project/commit/1fee6a1e04de55ec218f9f38cbf2f60fc43acd26
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/Interp.cpp
    M clang/lib/AST/ByteCode/Interp.h
    M clang/test/AST/ByteCode/new-delete.cpp

  Log Message:
  -----------
  [clang][bytecode] Ignore GetPtrDerivedPop on non-record pointers (#194005)

Now that we do this for `GetPtrBase`, we need to do it here, too. This
broke in the attached test case, but fully fixing it requires some
seemingly unrelated changes to `delete` handling.


  Commit: 521f55348a345952522b2ad14f9b4885c48a3f86
      https://github.com/llvm/llvm-project/commit/521f55348a345952522b2ad14f9b4885c48a3f86
  Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

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

  Log Message:
  -----------
  [Bazel] Fixes 89894b6 (#194321)

This fixes 89894b67484694aeaaec9c6bac6a09d71c347e6f.

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>


  Commit: 3aed0816fed922391ed0638f67ea8b6d09bebbdc
      https://github.com/llvm/llvm-project/commit/3aed0816fed922391ed0638f67ea8b6d09bebbdc
  Author: Usha Gupta <usha.gupta at arm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
    A llvm/test/Transforms/AggressiveInstCombine/fold-split-ctlz.ll
    A llvm/test/Transforms/AggressiveInstCombine/fold-split-cttz.ll

  Log Message:
  -----------
  [AggressiveInstCombine] Fold split-width i32 cttz/ctlz patterns into wide i64 intrinsics (#192296)

This patch teaches `AggressiveInstCombine ` to recognize and fold common split-width i32 cttz/ctlz intrinsic calls into a single full-width i64
cttz/ctlz intrinsic.

For ex:
```
define i32 @src(i64 %val) {
 %lo = trunc i64 %val to i32
 %cmp = icmp eq i32 %lo, 0
 %shr = lshr i64 %val, 32
 %hi = trunc i64 %shr to i32
 %cttz_hi = call i32 @llvm.cttz.i32(i32 %hi, i1 true)
 %hi_plus32 = or i32 %cttz_hi, 32
 %cttz_lo = call i32 @llvm.cttz.i32(i32 %lo, i1 true)
 %result = select i1 %cmp, i32 %hi_plus32, i32 %cttz_lo
 ret i32 %result
}

define i32 @tgt(i64 %val)  {
%cttz64 = call i64 @llvm.cttz.i64(i64 %val, i1 false)
%result = trunc i64 %cttz64 to i32
ret i32 %result
}
```
and similarly for ctlz intrinsic.

Alive proof for the 2 folds added by this patch.
cttz:
https://alive2.llvm.org/ce/z/-s14-s

ctlz:
https://alive2.llvm.org/ce/z/WfQepH


  Commit: 295a7a9f75b839394b49d4ec59b2df33b30cd4fd
      https://github.com/llvm/llvm-project/commit/295a7a9f75b839394b49d4ec59b2df33b30cd4fd
  Author: Julian Brown <julian.brown at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M openmp/runtime/src/kmp_taskdeps.cpp
    M openmp/runtime/src/kmp_tasking.cpp

  Log Message:
  -----------
  [OpenMP] Make loop index unsigned in __kmpc_omp_task_with_deps/__kmp_omp_task

NFC.

Co-authored-by: Adrian Munera <adrian.munera at bsc.es>

Reviewers: ro-i

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


  Commit: b4701103890bb918296e232b4a1ba23ffeb7a2f7
      https://github.com/llvm/llvm-project/commit/b4701103890bb918296e232b4a1ba23ffeb7a2f7
  Author: Julian Brown <julian.brown at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M .github/workflows/containers/github-action-ci-windows/Dockerfile
    M .github/workflows/containers/github-action-ci/Dockerfile
    M .github/workflows/containers/libc/Dockerfile
    M .github/workflows/issue-subscriber.yml
    M .github/workflows/libcxx-build-and-test.yaml
    M .github/workflows/new-issues.yml
    M .github/workflows/new-prs.yml
    M .github/workflows/pr-subscriber.yml
    M .github/workflows/release-asset-audit.yml
    M bolt/docs/profiles.md
    M bolt/include/bolt/Core/BinaryContext.h
    M bolt/include/bolt/Profile/DataAggregator.h
    M bolt/lib/Core/BinaryContext.cpp
    M bolt/lib/Passes/JTFootprintReduction.cpp
    M bolt/lib/Profile/DataAggregator.cpp
    M bolt/lib/Profile/DataReader.cpp
    M bolt/test/AArch64/unsupported-passes.test
    A bolt/test/X86/Inputs/pre-aggregated-bad-hex.txt
    A bolt/test/X86/Inputs/pre-aggregated-bad-type.txt
    A bolt/test/X86/pre-aggregated-records.s
    M bolt/unittests/Profile/DataAggregator.cpp
    M clang-tools-extra/clang-change-namespace/tool/ClangChangeNamespace.cpp
    M clang-tools-extra/clang-include-fixer/find-all-symbols/tool/FindAllSymbolsMain.cpp
    M clang-tools-extra/clang-include-fixer/tool/ClangIncludeFixer.cpp
    M clang-tools-extra/clang-move/tool/ClangMove.cpp
    M clang-tools-extra/clang-reorder-fields/tool/ClangReorderFields.cpp
    M clang-tools-extra/clangd/Config.h
    M clang-tools-extra/clangd/ModulesBuilder.cpp
    M clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    A clang-tools-extra/test/clang-change-namespace/argument-parsing-error-no-abort.cpp
    A clang-tools-extra/test/clang-include-fixer/argument-parsing-error-no-abort.cpp
    A clang-tools-extra/test/clang-include-fixer/find-all-symbols/argument-parsing-error-no-abort.cpp
    A clang-tools-extra/test/clang-move/argument-parsing-error-no-abort.cpp
    A clang-tools-extra/test/clang-reorder-fields/argument-parsing-error-no-abort.cpp
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/OpenMPClause.h
    M clang/include/clang/AST/TypeBase.h
    M clang/include/clang/Analysis/Analyses/LifetimeSafety/Facts.h
    M clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
    M clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeSafety.h
    M clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h
    M clang/include/clang/Basic/BuiltinsAMDGPU.td
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/RISCVVTypes.def
    M clang/include/clang/Basic/arm_sve.td
    M clang/include/clang/Basic/riscv_vector.td
    M clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
    M clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
    M clang/include/clang/CIR/Dialect/IR/CIROps.td
    M clang/include/clang/DependencyScanning/DependencyScanningService.h
    M clang/include/clang/DependencyScanning/InProcessModuleCache.h
    M clang/include/clang/Sema/Initialization.h
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/include/clang/Tooling/CommonOptionsParser.h
    M clang/lib/AST/ByteCode/Compiler.cpp
    M clang/lib/AST/ByteCode/Context.cpp
    M clang/lib/AST/ByteCode/Context.h
    M clang/lib/AST/ByteCode/Disasm.cpp
    M clang/lib/AST/ByteCode/Integral.h
    M clang/lib/AST/ByteCode/Interp.cpp
    M clang/lib/AST/ByteCode/Interp.h
    M clang/lib/AST/ByteCode/Pointer.cpp
    M clang/lib/AST/ByteCode/Pointer.h
    M clang/lib/AST/ByteCode/Primitives.h
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/Analysis/LifetimeSafety/Checker.cpp
    M clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
    M clang/lib/Analysis/LifetimeSafety/Loans.cpp
    M clang/lib/Basic/OffloadArch.cpp
    M clang/lib/Basic/Targets/AVR.h
    M clang/lib/Basic/Targets/SPIR.cpp
    M clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
    M clang/lib/CIR/CodeGen/CIRGenBuilder.cpp
    M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
    M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
    M clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
    M clang/lib/CIR/CodeGen/CIRGenCXX.cpp
    M clang/lib/CIR/CodeGen/CIRGenCall.cpp
    M clang/lib/CIR/CodeGen/CIRGenCoroutine.cpp
    M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
    M clang/lib/CIR/CodeGen/CIRGenDeclCXX.cpp
    M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
    M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
    M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
    M clang/lib/CIR/CodeGen/CIRGenFunction.h
    M clang/lib/CIR/CodeGen/CIRGenModule.cpp
    M clang/lib/CIR/CodeGen/CIRGenModule.h
    M clang/lib/CIR/CodeGen/CIRGenTypes.cpp
    M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
    M clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
    M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
    M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
    M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CGExprAgg.cpp
    M clang/lib/CodeGen/CGExprConstant.cpp
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/lib/CodeGen/CGOpenMPRuntime.h
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/CodeGen/ItaniumCXXABI.cpp
    M clang/lib/CodeGen/MicrosoftCXXABI.cpp
    M clang/lib/CodeGen/TargetInfo.h
    M clang/lib/CodeGen/Targets/AMDGPU.cpp
    M clang/lib/CodeGen/Targets/SPIR.cpp
    M clang/lib/DependencyScanning/InProcessModuleCache.cpp
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ToolChain.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Driver/ToolChains/Darwin.cpp
    M clang/lib/Parse/ParseStmtAsm.cpp
    M clang/lib/Sema/SemaAMDGPU.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaLifetimeSafety.h
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Sema/SemaRISCV.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ModuleCache.cpp
    M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.h
    M clang/lib/Support/RISCVVIntrinsicUtils.cpp
    M clang/test/AST/ByteCode/c.c
    M clang/test/AST/ByteCode/const-eval.c
    M clang/test/AST/ByteCode/cxx23.cpp
    M clang/test/AST/ByteCode/functions.cpp
    A clang/test/AST/ByteCode/libcxx/constexpr-unknown-getbase.cpp
    A clang/test/AST/ByteCode/libcxx/static-reference-load.cpp
    M clang/test/AST/ByteCode/new-delete.cpp
    M clang/test/AST/ByteCode/records.cpp
    M clang/test/AST/ByteCode/unions.cpp
    M clang/test/CIR/CodeGen/amdgpu-array-addrspace.cpp
    A clang/test/CIR/CodeGen/annotate-attribute.c
    A clang/test/CIR/CodeGen/annotate-attribute.cpp
    M clang/test/CIR/CodeGen/array-init-loop-exprs.cpp
    M clang/test/CIR/CodeGen/array.cpp
    M clang/test/CIR/CodeGen/atomic.c
    M clang/test/CIR/CodeGen/binassign.c
    M clang/test/CIR/CodeGen/complex.cpp
    M clang/test/CIR/CodeGen/coro-task.cpp
    A clang/test/CIR/CodeGen/fixed-point-literal.c
    M clang/test/CIR/CodeGen/new-delete-deactivation.cpp
    M clang/test/CIR/CodeGen/new-delete.cpp
    M clang/test/CIR/CodeGen/new.cpp
    M clang/test/CIR/CodeGen/no-odr-use.cpp
    A clang/test/CIR/CodeGen/no-proto-then-def.c
    M clang/test/CIR/CodeGen/no-prototype.c
    A clang/test/CIR/CodeGen/nonnull.c
    M clang/test/CIR/CodeGen/paren-list-agg-init.cpp
    M clang/test/CIR/CodeGen/pointers.cpp
    A clang/test/CIR/CodeGen/self-assign.c
    M clang/test/CIR/CodeGen/static-local.cpp
    M clang/test/CIR/CodeGen/union.c
    M clang/test/CIR/CodeGen/vector-ext-element.cpp
    M clang/test/CIR/CodeGen/vla.c
    M clang/test/CIR/CodeGenBuiltins/builtin-constant-p.c
    M clang/test/CIR/CodeGenBuiltins/builtin-new-delete.cpp
    M clang/test/CIR/CodeGenCXX/new-array-init.cpp
    A clang/test/CIR/CodeGenHIP/builtins-amdgcn.hip
    M clang/test/CIR/CodeGenOpenACC/combined-copy.c
    A clang/test/CIR/IR/annotation.cir
    M clang/test/CIR/IR/await.cir
    A clang/test/CIR/IR/co-return.cir
    A clang/test/CIR/IR/coro-body.cir
    M clang/test/CIR/IR/func.cir
    A clang/test/CIR/IR/invalid-annotation.cir
    M clang/test/CIR/IR/invalid-await.cir
    A clang/test/CIR/IR/invalid-co-return.cir
    M clang/test/CIR/IR/invalid-copy.cir
    A clang/test/CIR/IR/invalid-coro-body.cir
    M clang/test/CIR/IR/invalid-static-local.cir
    M clang/test/CIR/IR/static-local.cir
    A clang/test/CIR/Transforms/cast-bitcast-funcptr-roundtrip-fold.cir
    M clang/test/CXX/drs/cwg16xx.cpp
    M clang/test/CXX/drs/cwg18xx.cpp
    M clang/test/CXX/drs/cwg25xx.cpp
    A clang/test/ClangScanDeps/p1689-mf-nested-dir.c
    M clang/test/CodeGen/AArch64/neon-intrinsics.c
    M clang/test/CodeGen/AArch64/neon/intrinsics.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/non-policy/non-overloaded/vfncvt.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/non-policy/non-overloaded/vfncvtbf16.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/non-policy/non-overloaded/vfwcvtbf16.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/non-policy/overloaded/vfncvt.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/non-policy/overloaded/vfncvtbf16.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/non-policy/overloaded/vfwcvtbf16.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/policy/non-overloaded/vfncvt.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/policy/non-overloaded/vfncvtbf16.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/policy/non-overloaded/vfwcvtbf16.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/policy/overloaded/vfncvt.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/policy/overloaded/vfncvtbf16.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/policy/overloaded/vfwcvtbf16.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-handcrafted/rvv-intrinsic-datatypes.cpp
    A clang/test/CodeGen/avr/issue-176830.c
    M clang/test/CodeGenCXX/no-elide-constructors.cpp
    A clang/test/CodeGenCXX/riscv-mangle-rvv-vectors.cpp
    A clang/test/CodeGenHIP/sret-lifetime-markers.cpp
    M clang/test/CodeGenHIP/sret-nontrivial-copyable.hip
    M clang/test/CodeGenHIP/store-addr-space.hip
    R clang/test/CodeGenHLSL/GlobalDestructors.hlsl
    R clang/test/CodeGenHLSL/inline-constructors.hlsl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx12-err.cl
    A clang/test/CodeGenOpenCL/builtins-amdgcn-smfmac-err.cl
    A clang/test/Driver/Inputs/empty_tree/.keep
    A clang/test/Driver/Inputs/multilib_linux_tree/usr/bin/.keep
    A clang/test/Driver/Inputs/multilib_linux_tree/usr/include/x86_64-unknown-linux-gnu/.keep
    A clang/test/Driver/Inputs/multilib_linux_tree/usr/include/x86_64-unknown-linux-gnu/debug/.keep
    A clang/test/Driver/Inputs/multilib_linux_tree/usr/include/x86_64-unknown-linux-gnu/noexcept/.keep
    A clang/test/Driver/Inputs/multilib_linux_tree/usr/include/x86_64-unknown-linux-gnu/release/.keep
    A clang/test/Driver/Inputs/multilib_mingw_tree/bin/.keep
    A clang/test/Driver/Inputs/multilib_mingw_tree/include/x86_64-w64-windows-gnu/.keep
    A clang/test/Driver/Inputs/multilib_mingw_tree/include/x86_64-w64-windows-gnu/debug/.keep
    A clang/test/Driver/Inputs/multilib_mingw_tree/include/x86_64-w64-windows-gnu/noexcept/.keep
    A clang/test/Driver/Inputs/multilib_mingw_tree/include/x86_64-w64-windows-gnu/release/.keep
    A clang/test/Driver/Inputs/serenity_tree/usr/lib/crtbeginS.o
    A clang/test/Driver/Inputs/serenity_tree/usr/lib/crtendS.o
    M clang/test/Driver/Xarch.c
    M clang/test/Driver/aarch64-v97a.c
    M clang/test/Driver/basic-block-address-map.c
    M clang/test/Driver/darwin-objc-selector-stubs.m
    M clang/test/Driver/linux-multilib.yaml
    M clang/test/Driver/mingw-multilib.yaml
    M clang/test/Driver/print-supported-extensions-aarch64.c
    M clang/test/Driver/serenity.cpp
    M clang/test/Misc/languageOptsOpenCL.cl
    R clang/test/Modules/callable-require-clause-merge.cppm
    M clang/test/Modules/polluted-operator.cppm
    M clang/test/OpenMP/amdgcn_sret_ctor.cpp
    A clang/test/OpenMP/taskgraph_taskwait_nodeps.cpp
    M clang/test/PCH/pragma-redefine-extname.c
    M clang/test/PCH/pragma-redefine-extname.h
    A clang/test/Refactor/argument-parsing-error-no-abort.cpp
    M clang/test/Sema/Inputs/lifetime-analysis.h
    M clang/test/Sema/redefine_extname.cpp
    M clang/test/Sema/riscv-types.c
    M clang/test/Sema/static-init.c
    M clang/test/Sema/warn-lifetime-safety-suggestions.cpp
    M clang/test/Sema/warn-lifetime-safety.cpp
    A clang/test/SemaHLSL/Constructors.hlsl
    M clang/test/SemaHLSL/GlobalConstructors.hlsl
    A clang/test/SemaOpenCL/zero-length-array.cl
    A clang/test/Tooling/argument-parsing-error-no-abort.cpp
    M clang/test/lit.cfg.py
    M clang/tools/clang-check/ClangCheck.cpp
    M clang/tools/clang-refactor/ClangRefactor.cpp
    M clang/tools/clang-scan-deps/ClangScanDeps.cpp
    M clang/tools/clang-scan-deps/Opts.td
    M clang/tools/driver/cc1as_main.cpp
    M clang/utils/TableGen/ClangOptionDocEmitter.cpp
    M clang/utils/TableGen/HLSLEmitter.cpp
    M clang/utils/TableGen/RISCVVEmitter.cpp
    M clang/www/cxx_dr_status.html
    M clang/www/cxx_status.html
    M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
    M compiler-rt/include/sanitizer/asan_interface.h
    M compiler-rt/lib/asan/asan_errors.h
    M compiler-rt/lib/asan/asan_interceptors_memintrinsics.h
    M compiler-rt/lib/asan/asan_interface.inc
    M compiler-rt/lib/asan/asan_interface_internal.h
    M compiler-rt/lib/asan/asan_report.cpp
    M compiler-rt/lib/asan/asan_report.h
    M compiler-rt/lib/builtins/fp_compare_impl.inc
    M compiler-rt/lib/sanitizer_common/sanitizer_allocator_dlsym.h
    M compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h
    M compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_posix.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_redefine_builtins.h
    M compiler-rt/lib/tysan/tysan.cpp
    M compiler-rt/lib/tysan/tysan_platform.h
    M compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cpp
    M compiler-rt/test/asan/TestCases/debug_double_free.cpp
    A compiler-rt/test/asan/TestCases/debug_invalid_pointer_pair.cpp
    A compiler-rt/test/asan/TestCases/debug_memcpy_overlap.cpp
    A compiler-rt/test/asan/TestCases/debug_negative_size.cpp
    M compiler-rt/test/asan/TestCases/debug_report.cpp
    M compiler-rt/test/profile/instrprof-tmpdir.c
    M compiler-rt/test/sanitizer_common/TestCases/Linux/pthread_join.cpp
    M flang-rt/include/flang-rt/runtime/format-implementation.h
    M flang-rt/include/flang-rt/runtime/format.h
    M flang-rt/lib/runtime/edit-input.cpp
    M flang-rt/lib/runtime/edit-output.cpp
    M flang-rt/unittests/Runtime/Format.cpp
    M flang-rt/unittests/Runtime/NumericalFormatTest.cpp
    M flang/docs/Directives.md
    M flang/docs/F202X.md
    M flang/examples/FeatureList/FeatureList.cpp
    M flang/include/flang/Common/format.h
    M flang/include/flang/Lower/OpenMP.h
    M flang/include/flang/Lower/PFTBuilder.h
    M flang/include/flang/Optimizer/Dialect/FIROps.td
    M flang/include/flang/Optimizer/Transforms/Passes.td
    M flang/include/flang/Parser/dump-parse-tree.h
    M flang/include/flang/Parser/format-specification.h
    M flang/include/flang/Parser/openmp-utils.h
    M flang/include/flang/Parser/parse-tree.h
    M flang/include/flang/Semantics/tools.h
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M flang/lib/Lower/PFTBuilder.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/CodeGen/CodeGen.cpp
    M flang/lib/Optimizer/Passes/Pipelines.cpp
    M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
    M flang/lib/Optimizer/Transforms/StackArrays.cpp
    M flang/lib/Parser/Fortran-parsers.cpp
    M flang/lib/Parser/io-parsers.cpp
    M flang/lib/Parser/openmp-parsers.cpp
    M flang/lib/Parser/program-parsers.cpp
    M flang/lib/Parser/unparse.cpp
    M flang/lib/Semantics/assignment.cpp
    M flang/lib/Semantics/assignment.h
    M flang/lib/Semantics/canonicalize-directives.cpp
    M flang/lib/Semantics/canonicalize-omp.cpp
    M flang/lib/Semantics/check-omp-loop.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/check-omp-structure.h
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/rewrite-parse-tree.cpp
    M flang/lib/Semantics/tools.cpp
    M flang/lib/Semantics/unparse-with-symbols.cpp
    M flang/module/__fortran_builtins.f90
    M flang/test/Driver/do_concurrent_to_omp_cli.f90
    A flang/test/Fir/fake_use-codegen.fir
    A flang/test/Lower/Intrinsics/c_devptr_eq_ne.f90
    M flang/test/Lower/OpenMP/Todo/omp-default-clause-inner-loop.f90
    M flang/test/Lower/OpenMP/target-map-complex.f90
    M flang/test/Lower/c-interoperability.f90
    A flang/test/Lower/host_module_variable_instantiation.f90
    A flang/test/Lower/inlinealways-directive.f90
    M flang/test/Lower/namelist-common-block.f90
    M flang/test/Lower/nested-where.f90
    M flang/test/Lower/nullify.f90
    M flang/test/Lower/optional-value-caller.f90
    M flang/test/Lower/pointer-args-caller.f90
    M flang/test/Lower/pointer-assignments.f90
    M flang/test/Lower/pointer-association-polymorphic.f90
    M flang/test/Lower/pointer-default-init.f90
    M flang/test/Lower/pointer-disassociate.f90
    M flang/test/Lower/pre-fir-tree03.f90
    A flang/test/Lower/proc_pointer_hidden_by_generic.f90
    M flang/test/Parser/OpenMP/bind-clause.f90
    M flang/test/Parser/OpenMP/cross-label-do.f90
    M flang/test/Parser/OpenMP/declare-mapper-unparse.f90
    M flang/test/Parser/OpenMP/declare-reduction-combiner.f90
    M flang/test/Parser/OpenMP/declare-reduction-multi.f90
    M flang/test/Parser/OpenMP/declare-reduction-operator.f90
    M flang/test/Parser/OpenMP/declare-reduction-unparse.f90
    M flang/test/Parser/OpenMP/declare-target-indirect-tree.f90
    M flang/test/Parser/OpenMP/declare-target-to-clause.f90
    M flang/test/Parser/OpenMP/declare_target-device_type.f90
    M flang/test/Parser/OpenMP/depth-clause.f90
    M flang/test/Parser/OpenMP/do-interchange.f90
    M flang/test/Parser/OpenMP/do-tile-size.f90
    M flang/test/Parser/OpenMP/doacross-clause.f90
    M flang/test/Parser/OpenMP/enter-automap-modifier.f90
    M flang/test/Parser/OpenMP/fuse-looprange.f90
    M flang/test/Parser/OpenMP/fuse01.f90
    M flang/test/Parser/OpenMP/fuse02.f90
    M flang/test/Parser/OpenMP/in-reduction-clause.f90
    M flang/test/Parser/OpenMP/interchange-permutation.f90
    M flang/test/Parser/OpenMP/interchange.f90
    M flang/test/Parser/OpenMP/linear-clause.f90
    M flang/test/Parser/OpenMP/loop-transformation-construct01.f90
    M flang/test/Parser/OpenMP/loop-transformation-construct02.f90
    M flang/test/Parser/OpenMP/loop-transformation-construct03.f90
    M flang/test/Parser/OpenMP/loop-transformation-construct04.f90
    M flang/test/Parser/OpenMP/loop-transformation-construct05.f90
    M flang/test/Parser/OpenMP/masked-unparse.f90
    M flang/test/Parser/OpenMP/master-unparse.f90
    M flang/test/Parser/OpenMP/nonblock-do-nested-omp.f90
    M flang/test/Parser/OpenMP/openmp6-directive-spellings.f90
    M flang/test/Parser/OpenMP/order-clause01.f90
    M flang/test/Parser/OpenMP/ordered-depend.f90
    M flang/test/Parser/OpenMP/parallel-loop-unparse.f90
    M flang/test/Parser/OpenMP/reduction-modifier.f90
    M flang/test/Parser/OpenMP/target-loop-unparse.f90
    M flang/test/Parser/OpenMP/taskloop.f90
    M flang/test/Parser/OpenMP/threadset-clause.f90
    M flang/test/Parser/OpenMP/tile-size.f90
    M flang/test/Parser/OpenMP/tile.f90
    M flang/test/Parser/OpenMP/transparent-clause.f90
    M flang/test/Parser/OpenMP/unroll-full.f90
    M flang/test/Parser/OpenMP/unroll-heuristic.f90
    M flang/test/Parser/OpenMP/unroll-partial.f90
    A flang/test/Parser/conditional-arg.f90
    A flang/test/Parser/inlinealways-directive.f90
    A flang/test/Semantics/OpenMP/branching-program-unit.f90
    M flang/test/Semantics/OpenMP/parallel-master-goto.f90
    M flang/test/Semantics/OpenMP/simd-only.f90
    A flang/test/Semantics/conditional-arg.f90
    A flang/test/Semantics/inlinealways-directive01.f90
    A flang/test/Semantics/io19.f90
    A flang/test/Transforms/debug-fake-use.fir
    M flang/unittests/Semantics/OpenMPUtils.cpp
    M libc/cmake/modules/prepare_libc_gpu_build.cmake
    M libc/config/linux/aarch64/entrypoints.txt
    M libc/config/linux/riscv/entrypoints.txt
    M libc/config/linux/x86_64/entrypoints.txt
    M libc/docs/CMakeLists.txt
    M libc/docs/dev/undefined_behavior.rst
    M libc/docs/headers/index.rst
    M libc/hdr/types/CMakeLists.txt
    A libc/hdr/types/struct_cmsghdr.h
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-macros/linux/sys-socket-macros.h
    M libc/include/llvm-libc-macros/pthread-macros.h
    M libc/include/llvm-libc-types/CMakeLists.txt
    A libc/include/llvm-libc-types/pthread_cond_t.h
    A libc/include/llvm-libc-types/struct_cmsghdr.h
    M libc/include/pthread.yaml
    M libc/include/sys/socket.yaml
    M libc/include/sys/types.yaml
    M libc/include/wchar.yaml
    M libc/shared/math.h
    A libc/shared/math/ddivf128.h
    A libc/shared/math/ddivl.h
    A libc/shared/math/dmulf128.h
    A libc/shared/math/dmull.h
    A libc/shared/math/dsubf128.h
    A libc/shared/math/dsubl.h
    A libc/shared/math/fabs.h
    A libc/shared/math/fabsbf16.h
    A libc/shared/math/fabsf.h
    A libc/shared/math/fabsf128.h
    A libc/shared/math/fabsf16.h
    A libc/shared/math/fabsl.h
    A libc/shared/math/fdiv.h
    A libc/shared/math/fdivf128.h
    A libc/shared/math/fdivl.h
    A libc/shared/math/fmaximum_mag_num.h
    A libc/shared/math/fmaximum_mag_numbf16.h
    A libc/shared/math/fmaximum_mag_numf.h
    M libc/src/__support/FPUtil/BasicOperations.h
    M libc/src/__support/FPUtil/generic/FMA.h
    M libc/src/__support/FPUtil/generic/add_sub.h
    M libc/src/__support/math/CMakeLists.txt
    A libc/src/__support/math/ddivf128.h
    A libc/src/__support/math/ddivl.h
    A libc/src/__support/math/dmulf128.h
    A libc/src/__support/math/dmull.h
    A libc/src/__support/math/dsubf128.h
    A libc/src/__support/math/dsubl.h
    A libc/src/__support/math/fabs.h
    A libc/src/__support/math/fabsbf16.h
    A libc/src/__support/math/fabsf.h
    A libc/src/__support/math/fabsf128.h
    A libc/src/__support/math/fabsf16.h
    A libc/src/__support/math/fabsl.h
    M libc/src/__support/math/fdim.h
    M libc/src/__support/math/fdimbf16.h
    M libc/src/__support/math/fdimf.h
    M libc/src/__support/math/fdimf128.h
    M libc/src/__support/math/fdimf16.h
    M libc/src/__support/math/fdiml.h
    A libc/src/__support/math/fdiv.h
    A libc/src/__support/math/fdivf128.h
    A libc/src/__support/math/fdivl.h
    A libc/src/__support/math/fmaximum_mag_num.h
    A libc/src/__support/math/fmaximum_mag_numbf16.h
    A libc/src/__support/math/fmaximum_mag_numf.h
    M libc/src/__support/math_extras.h
    M libc/src/__support/memory_size.h
    M libc/src/__support/threads/CndVar.h
    M libc/src/__support/threads/mutex.h
    M libc/src/__support/threads/unix_mutex.h
    M libc/src/math/generic/CMakeLists.txt
    M libc/src/math/generic/ddivf128.cpp
    M libc/src/math/generic/ddivl.cpp
    M libc/src/math/generic/dmulf128.cpp
    M libc/src/math/generic/dmull.cpp
    M libc/src/math/generic/dsubf128.cpp
    M libc/src/math/generic/dsubl.cpp
    M libc/src/math/generic/fabs.cpp
    M libc/src/math/generic/fabsbf16.cpp
    M libc/src/math/generic/fabsf.cpp
    M libc/src/math/generic/fabsf128.cpp
    M libc/src/math/generic/fabsf16.cpp
    M libc/src/math/generic/fabsl.cpp
    M libc/src/math/generic/fdiv.cpp
    M libc/src/math/generic/fdivf128.cpp
    M libc/src/math/generic/fdivl.cpp
    M libc/src/math/generic/fmaximum_mag_num.cpp
    M libc/src/math/generic/fmaximum_mag_numbf16.cpp
    M libc/src/math/generic/fmaximum_mag_numf.cpp
    M libc/src/pthread/CMakeLists.txt
    A libc/src/pthread/pthread_cond_broadcast.cpp
    A libc/src/pthread/pthread_cond_broadcast.h
    A libc/src/pthread/pthread_cond_clockwait.cpp
    A libc/src/pthread/pthread_cond_clockwait.h
    A libc/src/pthread/pthread_cond_destroy.cpp
    A libc/src/pthread/pthread_cond_destroy.h
    A libc/src/pthread/pthread_cond_init.cpp
    A libc/src/pthread/pthread_cond_init.h
    A libc/src/pthread/pthread_cond_signal.cpp
    A libc/src/pthread/pthread_cond_signal.h
    A libc/src/pthread/pthread_cond_timedwait.cpp
    A libc/src/pthread/pthread_cond_timedwait.h
    A libc/src/pthread/pthread_cond_utils.h
    A libc/src/pthread/pthread_cond_wait.cpp
    A libc/src/pthread/pthread_cond_wait.h
    M libc/src/search/lfind.cpp
    M libc/src/search/lsearch.cpp
    M libc/src/wchar/CMakeLists.txt
    A libc/src/wchar/wcscoll.cpp
    A libc/src/wchar/wcscoll.h
    M libc/test/CMakeLists.txt
    M libc/test/include/CMakeLists.txt
    M libc/test/integration/CMakeLists.txt
    M libc/test/integration/src/pthread/CMakeLists.txt
    A libc/test/integration/src/pthread/pthread_cond_test.cpp
    M libc/test/lit.site.cfg.py.in
    M libc/test/shared/CMakeLists.txt
    M libc/test/shared/shared_math_constexpr_test.cpp
    M libc/test/shared/shared_math_test.cpp
    M libc/test/src/sys/socket/linux/CMakeLists.txt
    M libc/test/src/sys/socket/linux/sendmsg_recvmsg_test.cpp
    M libc/test/src/time/mktime_test.cpp
    M libc/test/src/wchar/CMakeLists.txt
    A libc/test/src/wchar/wcscoll_test.cpp
    A libc/utils/docgen/dlfcn.yaml
    A libc/utils/docgen/sys/select.yaml
    A libc/utils/docgen/sys/uio.yaml
    M libclc/CMakeLists.txt
    M libclc/cmake/modules/CMakeDetermineCLCCompiler.cmake
    M libclc/test/CMakeLists.txt
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/23.rst
    M libcxx/docs/Status/Cxx23Papers.csv
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__assert
    A libcxx/include/__ranges/stride_view.h
    M libcxx/include/__utility/constant_wrapper.h
    M libcxx/include/module.modulemap.in
    M libcxx/include/ranges
    M libcxx/include/span
    M libcxx/include/version
    M libcxx/modules/std/ranges.inc
    A libcxx/test/libcxx/ranges/range.adaptors/range.stride.view/ctor.assert.pass.cpp
    A libcxx/test/libcxx/ranges/range.adaptors/range.stride.view/iterator/dereference.assert.pass.cpp
    A libcxx/test/libcxx/ranges/range.adaptors/range.stride.view/iterator/increment.assert.pass.cpp
    A libcxx/test/libcxx/ranges/range.adaptors/range.stride.view/iterator/iterator.nodiscard.verify.cpp
    A libcxx/test/libcxx/ranges/range.adaptors/range.stride.view/iterator/operator_plus_equal.assert.pass.cpp
    A libcxx/test/libcxx/ranges/range.adaptors/range.stride.view/nodiscard.verify.cpp
    M libcxx/test/libcxx/utilities/const.wrap.class/nodiscard.verify.cpp
    M libcxx/test/std/containers/views/views.span/span.cons/array.pass.cpp
    R libcxx/test/std/containers/views/views.span/span.cons/initializer_list.assert.pass.cpp
    M libcxx/test/std/containers/views/views.span/span.cons/initializer_list.pass.cpp
    R libcxx/test/std/containers/views/views.span/span.cons/initializer_list.verify.cpp
    M libcxx/test/std/containers/views/views.span/span.cons/iterator_len.verify.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/span.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/adaptor.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/base.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/begin.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/borrowing.compile.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/concept.compile.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/ctad.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/ctor.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/end.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/base.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/compare.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/ctor.copy.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/ctor.default.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/decrement.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/dereference.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/equal.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/increment.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/iter_move.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/iter_swap.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/minus.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/minus_equal.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/plus.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/plus_equal.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/subscript.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/iterator/types.compile.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/size.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/stride.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.stride.view/types.h
    M libcxx/test/std/utilities/const.wrap.class/call.pass.cpp
    M libcxx/test/std/utilities/const.wrap.class/subscript.pass.cpp
    M libcxx/utils/ci/docker/docker-compose.yml
    M libcxx/utils/ci/docker/linux-builder-base.dockerfile
    M libcxx/utils/ci/images/libcxx_next_runners.txt
    M libcxx/utils/ci/run-buildbot
    M libcxx/utils/generate_feature_test_macro_components.py
    M libcxx/utils/libcxx/test/config.py
    M libcxxabi/src/cxa_personality.cpp
    M lld/test/ELF/fill-trap-ppc.s
    M lld/test/ELF/fill-trap.s
    M lldb/docs/resources/lldbgdbremote.md
    M lldb/docs/use/aarch64-linux.md
    M lldb/include/lldb/API/SBExpressionOptions.h
    M lldb/include/lldb/Target/ABI.h
    M lldb/include/lldb/Target/MemoryRegionInfo.h
    M lldb/include/lldb/Target/Process.h
    M lldb/include/lldb/Target/Target.h
    M lldb/include/lldb/Target/Thread.h
    M lldb/include/lldb/ValueObject/ValueObject.h
    M lldb/packages/Python/lldbsuite/test/lldbtest.py
    M lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py
    M lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
    M lldb/source/API/SBCommandInterpreter.cpp
    M lldb/source/API/SBExpressionOptions.cpp
    M lldb/source/Commands/CommandObjectBreakpoint.cpp
    M lldb/source/Commands/CommandObjectBreakpointCommand.cpp
    M lldb/source/Commands/CommandObjectCommands.cpp
    M lldb/source/Commands/CommandObjectDisassemble.cpp
    M lldb/source/Commands/CommandObjectExpression.cpp
    M lldb/source/Commands/CommandObjectFrame.cpp
    M lldb/source/Commands/CommandObjectLog.cpp
    M lldb/source/Commands/CommandObjectMemory.cpp
    M lldb/source/Commands/CommandObjectMemoryTag.cpp
    M lldb/source/Expression/IRMemoryMap.cpp
    M lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp
    M lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.h
    M lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp
    M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.cpp
    M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h
    M lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp
    M lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
    M lldb/source/Plugins/Process/Utility/LinuxProcMaps.cpp
    M lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp
    M lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h
    M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
    M lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
    M lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp
    M lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h
    M lldb/source/Target/MemoryRegionInfo.cpp
    M lldb/source/Target/Process.cpp
    M lldb/source/Target/StopInfo.cpp
    M lldb/source/Target/Thread.cpp
    M lldb/source/Target/ThreadPlanCallFunction.cpp
    M lldb/source/ValueObject/ValueObject.cpp
    M lldb/test/API/commands/breakpoint/command/list/TestBreakpointCommandList.py
    M lldb/test/API/commands/command/container/TestContainerCommands.py
    M lldb/test/API/commands/command/delete/TestCommandDelete.py
    M lldb/test/API/commands/command/invalid-args/TestInvalidArgsCommand.py
    M lldb/test/API/commands/expression/dont_allow_jit/TestAllowJIT.py
    A lldb/test/API/commands/expression/expr-with-fork/Makefile
    A lldb/test/API/commands/expression/expr-with-fork/TestExprWithFork.py
    A lldb/test/API/commands/expression/expr-with-fork/main.cpp
    M lldb/test/API/commands/expression/ptrauth/TestPtrAuthExpressions.py
    M lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
    M lldb/test/API/commands/log/invalid-args/TestInvalidArgsLog.py
    M lldb/test/API/commands/process/signal/TestProcessSignal.py
    M lldb/test/API/commands/register/register_command/TestRegisters.py
    M lldb/test/API/commands/target/modules/search-paths/insert/TestTargetModulesSearchpathsInsert.py
    M lldb/test/API/commands/target/stop-hook/delete/TestTargetStopHookDelete.py
    M lldb/test/API/commands/target/stop-hook/disable/TestTargetStopHookDisable.py
    M lldb/test/API/commands/target/stop-hook/enable/TestTargetStopHookEnable.py
    M lldb/test/API/commands/thread/backtrace/TestThreadBacktraceRepeat.py
    M lldb/test/API/commands/thread/select/TestThreadSelect.py
    M lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py
    M lldb/test/API/functionalities/breakpoint/same_cu_name/Makefile
    M lldb/test/API/functionalities/gdb_remote_client/TestGDBServerTargetXML.py
    M lldb/test/API/functionalities/plugins/python_os_plugin/os_plugin_in_dsym/TestOSIndSYM.py
    M lldb/test/API/functionalities/statusline/TestStatusline.py
    M lldb/test/API/functionalities/target-new-solib-notifications/TestModuleLoadedNotifys.py
    M lldb/test/API/linux/aarch64/permission_overlay/TestAArch64LinuxPOE.py
    M lldb/test/API/linux/aarch64/permission_overlay/main.c
    M lldb/test/Shell/Commands/list-header.test
    M lldb/test/Shell/Minidump/disassemble-no-module.yaml
    M lldb/tools/debugserver/source/DNB.cpp
    M lldb/tools/debugserver/source/DNB.h
    M lldb/tools/debugserver/source/JSONGenerator.h
    M lldb/tools/debugserver/source/MacOSX/MachProcess.mm
    M lldb/tools/debugserver/source/MacOSX/arm64/DNBArchImplARM64.cpp
    M lldb/tools/debugserver/source/RNBRemote.cpp
    M lldb/tools/lldb-dap/DAP.cpp
    M lldb/tools/lldb-dap/DAP.h
    M lldb/tools/lldb-dap/DAPSessionManager.cpp
    M lldb/tools/lldb-dap/EventHelper.cpp
    M lldb/tools/lldb-dap/Handler/RequestHandler.cpp
    M lldb/unittests/Expression/IRMemoryMapTest.cpp
    M lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
    M lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
    M llvm/docs/LFI.rst
    M llvm/docs/LangRef.rst
    M llvm/docs/ReleaseNotes.md
    A llvm/include/llvm/ABI/TargetInfo.h
    M llvm/include/llvm/ABI/Types.h
    M llvm/include/llvm/ADT/DenseMap.h
    M llvm/include/llvm/ADT/FoldingSet.h
    M llvm/include/llvm/ADT/STLExtras.h
    M llvm/include/llvm/ADT/StableHashing.h
    M llvm/include/llvm/Analysis/VecFuncs.def
    M llvm/include/llvm/BinaryFormat/Dwarf.h
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
    M llvm/include/llvm/CodeGen/GlobalISel/Utils.h
    A llvm/include/llvm/CodeGen/KCFI.h
    A llvm/include/llvm/CodeGen/MachineIDFSSAUpdater.h
    M llvm/include/llvm/CodeGen/TargetInstrInfo.h
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/include/llvm/CodeGen/ValueTypes.td
    M llvm/include/llvm/DWARFLinker/AddressesMap.h
    M llvm/include/llvm/DWARFLinker/Classic/DWARFLinker.h
    M llvm/include/llvm/DWARFLinker/Classic/DWARFStreamer.h
    M llvm/include/llvm/ExecutionEngine/Orc/WaitingOnGraph.h
    M llvm/include/llvm/IR/IRBuilder.h
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/include/llvm/IR/IntrinsicsDirectX.td
    M llvm/include/llvm/IR/IntrinsicsSPIRV.td
    M llvm/include/llvm/IR/RuntimeLibcalls.td
    M llvm/include/llvm/InitializePasses.h
    M llvm/include/llvm/MC/MCAsmInfo.h
    M llvm/include/llvm/MC/MCAsmInfoCOFF.h
    M llvm/include/llvm/MC/MCAsmInfoDarwin.h
    M llvm/include/llvm/MC/MCAsmInfoELF.h
    M llvm/include/llvm/MC/MCAsmInfoGOFF.h
    M llvm/include/llvm/MC/MCAsmInfoWasm.h
    M llvm/include/llvm/MC/MCAsmInfoXCOFF.h
    M llvm/include/llvm/MC/MCContext.h
    M llvm/include/llvm/MC/MCELFObjectWriter.h
    M llvm/include/llvm/MC/MCInstrDesc.h
    M llvm/include/llvm/MC/MCLFIRewriter.h
    M llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h
    M llvm/include/llvm/MC/TargetRegistry.h
    M llvm/include/llvm/Passes/CodeGenPassBuilder.h
    M llvm/include/llvm/Passes/MachinePassRegistry.def
    M llvm/include/llvm/Target/GlobalISel/Combine.td
    M llvm/include/llvm/Target/TargetMachine.h
    M llvm/include/llvm/Transforms/Utils/LowerVectorIntrinsics.h
    M llvm/include/llvm/Transforms/Utils/UnrollLoop.h
    M llvm/lib/ABI/CMakeLists.txt
    A llvm/lib/ABI/TargetInfo.cpp
    A llvm/lib/ABI/Targets/BPF.cpp
    M llvm/lib/ABI/Types.cpp
    M llvm/lib/Analysis/AliasAnalysisEvaluator.cpp
    M llvm/lib/Analysis/ConstantFolding.cpp
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
    M llvm/lib/CodeGen/AsmPrinter/DIE.cpp
    M llvm/lib/CodeGen/CMakeLists.txt
    M llvm/lib/CodeGen/CodeGenTargetMachineImpl.cpp
    M llvm/lib/CodeGen/ExpandVectorPredication.cpp
    M llvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/lib/CodeGen/GlobalISel/Utils.cpp
    M llvm/lib/CodeGen/KCFI.cpp
    A llvm/lib/CodeGen/MachineIDFSSAUpdater.cpp
    M llvm/lib/CodeGen/MachineOutliner.cpp
    M llvm/lib/CodeGen/MachineVerifier.cpp
    M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/CodeGen/ShrinkWrap.cpp
    M llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp
    M llvm/lib/CodeGen/TargetInstrInfo.cpp
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
    M llvm/lib/CodeGen/TargetPassConfig.cpp
    M llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
    M llvm/lib/DWARFLinker/Classic/DWARFLinkerCompileUnit.cpp
    M llvm/lib/DWARFLinker/Classic/DWARFStreamer.cpp
    M llvm/lib/DWARFLinker/Parallel/DWARFEmitterImpl.cpp
    M llvm/lib/DWARFLinker/Parallel/DebugLineSectionEmitter.h
    M llvm/lib/DebugInfo/LogicalView/Readers/LVBinaryReader.cpp
    M llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp
    M llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
    M llvm/lib/IR/ModuleSummaryIndex.cpp
    M llvm/lib/MC/ELFObjectWriter.cpp
    M llvm/lib/MC/MCAsmInfo.cpp
    M llvm/lib/MC/MCAsmInfoCOFF.cpp
    M llvm/lib/MC/MCAsmInfoDarwin.cpp
    M llvm/lib/MC/MCAsmInfoELF.cpp
    M llvm/lib/MC/MCAsmInfoGOFF.cpp
    M llvm/lib/MC/MCAsmInfoWasm.cpp
    M llvm/lib/MC/MCAsmInfoXCOFF.cpp
    M llvm/lib/MC/MCAsmStreamer.cpp
    M llvm/lib/MC/MCContext.cpp
    M llvm/lib/MC/MCDisassembler/Disassembler.cpp
    M llvm/lib/MC/MCELFStreamer.cpp
    M llvm/lib/MC/MCInstrDesc.cpp
    M llvm/lib/MC/MCLFIRewriter.cpp
    M llvm/lib/MC/MCObjectFileInfo.cpp
    M llvm/lib/MC/MCObjectStreamer.cpp
    M llvm/lib/MC/MCParser/MCAsmParser.cpp
    M llvm/lib/MC/MCParser/MCTargetAsmParser.cpp
    M llvm/lib/MC/MCWinCOFFStreamer.cpp
    M llvm/lib/Object/COFFObjectFile.cpp
    M llvm/lib/Object/ModuleSymbolTable.cpp
    M llvm/lib/Object/WindowsResource.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Support/FoldingSet.cpp
    M llvm/lib/Target/AArch64/AArch64.h
    M llvm/lib/Target/AArch64/AArch64Features.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/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/AArch64LoadStoreOptimizer.cpp
    M llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp
    M llvm/lib/Target/AArch64/AArch64PassRegistry.def
    M llvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp
    M llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp
    M llvm/lib/Target/AArch64/AArch64SystemOperands.td
    M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
    M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.h
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
    M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp
    M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
    M llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCExpr.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.h
    M llvm/lib/Target/AMDGPU/SIInstrInfo.td
    M llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp
    M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
    M llvm/lib/Target/AMDGPU/VOPDInstructions.td
    M llvm/lib/Target/ARC/ARCInstrInfo.cpp
    M llvm/lib/Target/ARC/MCTargetDesc/ARCMCAsmInfo.cpp
    M llvm/lib/Target/ARC/MCTargetDesc/ARCMCAsmInfo.h
    M llvm/lib/Target/ARC/MCTargetDesc/ARCMCTargetDesc.cpp
    M llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
    M llvm/lib/Target/ARM/ARMBaseInstrInfo.h
    M llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
    M llvm/lib/Target/ARM/ARMFrameLowering.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/ARM/ARMInstrThumb2.td
    M llvm/lib/Target/ARM/ARMSubtarget.cpp
    M llvm/lib/Target/ARM/ARMTargetMachine.cpp
    M llvm/lib/Target/ARM/ARMTargetObjectFile.cpp
    M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.h
    M llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
    M llvm/lib/Target/ARM/Thumb2SizeReduction.cpp
    M llvm/lib/Target/AVR/AVRAsmPrinter.cpp
    M llvm/lib/Target/AVR/AVRISelLowering.cpp
    M llvm/lib/Target/AVR/AVRInstrInfo.cpp
    M llvm/lib/Target/AVR/AVRInstrInfo.td
    M llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp
    M llvm/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.cpp
    M llvm/lib/Target/BPF/AsmParser/BPFAsmParser.cpp
    M llvm/lib/Target/BPF/MCTargetDesc/BPFMCAsmInfo.h
    M llvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp
    M llvm/lib/Target/CSKY/CSKYInstrInfo.cpp
    M llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCAsmInfo.cpp
    M llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCAsmInfo.h
    M llvm/lib/Target/CSKY/MCTargetDesc/CSKYMCTargetDesc.cpp
    M llvm/lib/Target/DirectX/DXILLegalizePass.cpp
    M llvm/lib/Target/DirectX/DXILOpBuilder.cpp
    M llvm/lib/Target/DirectX/DXILOpLowering.cpp
    M llvm/lib/Target/DirectX/DXILPrepare.cpp
    M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
    M llvm/lib/Target/DirectX/DXILWriter/DXILValueEnumerator.cpp
    M llvm/lib/Target/DirectX/MCTargetDesc/DirectXMCTargetDesc.cpp
    M llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
    M llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
    M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.cpp
    M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCAsmInfo.h
    M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
    M llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp
    M llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.cpp
    M llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
    M llvm/lib/Target/LoongArch/LoongArchInstrInfo.cpp
    M llvm/lib/Target/LoongArch/LoongArchInstrInfo.h
    M llvm/lib/Target/LoongArch/LoongArchLASXInstrInfo.td
    M llvm/lib/Target/LoongArch/LoongArchLSXInstrInfo.td
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.cpp
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCAsmInfo.h
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCTargetDesc.cpp
    M llvm/lib/Target/M68k/AsmParser/M68kAsmParser.cpp
    M llvm/lib/Target/M68k/M68kMCInstLower.cpp
    M llvm/lib/Target/M68k/MCTargetDesc/M68kMCAsmInfo.cpp
    M llvm/lib/Target/M68k/MCTargetDesc/M68kMCAsmInfo.h
    M llvm/lib/Target/M68k/MCTargetDesc/M68kMCTargetDesc.cpp
    M llvm/lib/Target/MSP430/AsmParser/MSP430AsmParser.cpp
    M llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp
    M llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.h
    M llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp
    M llvm/lib/Target/MSP430/MSP430InstrInfo.cpp
    M llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
    M llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp
    M llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.h
    M llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp
    M llvm/lib/Target/Mips/MipsBranchExpansion.cpp
    M llvm/lib/Target/Mips/MipsInstrInfo.cpp
    M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp
    M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
    M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
    M llvm/lib/Target/NVPTX/NVPTXISelLowering.h
    M llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
    M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
    M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
    M llvm/lib/Target/RISCV/CMakeLists.txt
    A llvm/lib/Target/RISCV/GISel/RISCVInlineAsmLowering.cpp
    A llvm/lib/Target/RISCV/GISel/RISCVInlineAsmLowering.h
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.h
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.h
    M llvm/lib/Target/RISCV/RISCVSubtarget.cpp
    M llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVMCAsmInfo.cpp
    M llvm/lib/Target/SPIRV/SPIRV.h
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    M llvm/lib/Target/SPIRV/SPIRVLegalizeImplicitBinding.cpp
    A llvm/lib/Target/SPIRV/SPIRVLegalizeImplicitBinding.h
    M llvm/lib/Target/SPIRV/SPIRVLegalizePointerCast.cpp
    A llvm/lib/Target/SPIRV/SPIRVLegalizePointerCast.h
    M llvm/lib/Target/SPIRV/SPIRVMergeRegionExitTargets.cpp
    A llvm/lib/Target/SPIRV/SPIRVMergeRegionExitTargets.h
    M llvm/lib/Target/SPIRV/SPIRVPassRegistry.def
    M llvm/lib/Target/SPIRV/SPIRVRegularizer.cpp
    A llvm/lib/Target/SPIRV/SPIRVRegularizer.h
    M llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp
    M llvm/lib/Target/SPIRV/SPIRVTypeInst.cpp
    M llvm/lib/Target/SPIRV/SPIRVTypeInst.h
    M llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp
    M llvm/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.cpp
    M llvm/lib/Target/Sparc/MCTargetDesc/SparcMCAsmInfo.h
    M llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp
    M llvm/lib/Target/Sparc/SparcInstrInfo.cpp
    M llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
    M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.h
    M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp
    M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.h
    M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp
    M llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
    M llvm/lib/Target/VE/AsmParser/VEAsmParser.cpp
    M llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.cpp
    M llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.h
    M llvm/lib/Target/VE/MCTargetDesc/VEMCTargetDesc.cpp
    M llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
    M llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
    M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.h
    M llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
    M llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
    M llvm/lib/Target/X86/X86FastISel.cpp
    M llvm/lib/Target/X86/X86FrameLowering.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86MCInstLower.cpp
    M llvm/lib/Target/X86/X86TargetMachine.cpp
    M llvm/lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.cpp
    M llvm/lib/Target/XCore/MCTargetDesc/XCoreMCAsmInfo.h
    M llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp
    M llvm/lib/Target/Xtensa/AsmParser/XtensaAsmParser.cpp
    M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCAsmInfo.cpp
    M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCAsmInfo.h
    M llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCTargetDesc.cpp
    M llvm/lib/Target/Xtensa/XtensaInstrInfo.cpp
    M llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
    M llvm/lib/Transforms/IPO/FunctionImport.cpp
    M llvm/lib/Transforms/IPO/Inliner.cpp
    M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineInternal.h
    M llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
    M llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp
    M llvm/lib/Transforms/Scalar/ExpandMemCmp.cpp
    M llvm/lib/Transforms/Scalar/GVN.cpp
    M llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
    M llvm/lib/Transforms/Utils/FunctionImportUtils.cpp
    M llvm/lib/Transforms/Utils/LoopUnroll.cpp
    M llvm/lib/Transforms/Utils/LowerVectorIntrinsics.cpp
    M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.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/VPlanConstruction.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
    M llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
    M llvm/lib/Transforms/Vectorize/VPlanUtils.h
    A llvm/test/Analysis/BasicAA/atomics.ll
    M llvm/test/Analysis/CostModel/AArch64/loop_dependence_mask.ll
    M llvm/test/Analysis/CostModel/ARM/arith-overflow.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-store-outline_atomics.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-store-rcpc.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-store-v8_1a.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-store-v8a.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-lse2.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-lse2_lse128.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-lsfe.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-outline_atomics.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-rcpc.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-rcpc3.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-v8_1a.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-v8a.ll
    M llvm/test/CodeGen/AArch64/Atomics/aarch64-atomicrmw-v8a_fp.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll
    A llvm/test/CodeGen/AArch64/GlobalISel/combine-constant-fold-count.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/localizer-arm64-tti.ll
    M llvm/test/CodeGen/AArch64/aarch64-sys-intrinsic.ll
    M llvm/test/CodeGen/AArch64/aarch64-tbz.ll
    M llvm/test/CodeGen/AArch64/alias_mask.ll
    A llvm/test/CodeGen/AArch64/alias_mask_i128.ll
    M llvm/test/CodeGen/AArch64/alias_mask_nosve.ll
    M llvm/test/CodeGen/AArch64/alias_mask_scalable.ll
    M llvm/test/CodeGen/AArch64/alias_mask_scalable_nosve2.ll
    M llvm/test/CodeGen/AArch64/arm64-vmul.ll
    M llvm/test/CodeGen/AArch64/bf16-v8-instructions.ll
    M llvm/test/CodeGen/AArch64/cpa-globalisel.ll
    M llvm/test/CodeGen/AArch64/misched-fusion-cmp-bcc.ll
    M llvm/test/CodeGen/AArch64/neon-rshrn.ll
    M llvm/test/CodeGen/AArch64/pcsections.ll
    A llvm/test/CodeGen/AArch64/sanitize_vec_pow.ll
    A llvm/test/CodeGen/AArch64/scvtf-div-mul-combine.ll
    M llvm/test/CodeGen/AArch64/sink-and-fold.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-masked-load.ll
    A llvm/test/CodeGen/AArch64/uaddlp.ll
    M llvm/test/CodeGen/AArch64/veclib-llvm.pow.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-divergent-i1-used-outside-loop.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/divergence-structurizer.mir
    M llvm/test/CodeGen/AMDGPU/si-i1-copies.mir
    M llvm/test/CodeGen/AMDGPU/si-lower-i1-copies-order-of-phi-incomings.mir
    A llvm/test/CodeGen/AMDGPU/wqm-propagate-for-execz-side-effect.mir
    A llvm/test/CodeGen/AVR/issue-104032.ll
    A llvm/test/CodeGen/AVR/issue-176830.ll
    M llvm/test/CodeGen/DirectX/BufferLoad-sm61.ll
    M llvm/test/CodeGen/DirectX/BufferLoad.ll
    M llvm/test/CodeGen/DirectX/BufferStore-sm61.ll
    M llvm/test/CodeGen/DirectX/BufferStore.ll
    M llvm/test/CodeGen/DirectX/CreateHandle-NURI.ll
    M llvm/test/CodeGen/DirectX/CreateHandle.ll
    M llvm/test/CodeGen/DirectX/CreateHandleFromBinding-NURI.ll
    M llvm/test/CodeGen/DirectX/CreateHandleFromBinding.ll
    A llvm/test/CodeGen/DirectX/Metadata/dx_precise.ll
    M llvm/test/CodeGen/DirectX/UAddc.ll
    M llvm/test/CodeGen/DirectX/WaveActiveMax.ll
    M llvm/test/CodeGen/DirectX/WaveActiveMin.ll
    M llvm/test/CodeGen/DirectX/WaveGetLaneIndex.ll
    M llvm/test/CodeGen/DirectX/WaveReadLaneAt-vec.ll
    M llvm/test/CodeGen/DirectX/WaveReadLaneAt.ll
    M llvm/test/CodeGen/DirectX/abs.ll
    M llvm/test/CodeGen/DirectX/acos.ll
    M llvm/test/CodeGen/DirectX/asin.ll
    M llvm/test/CodeGen/DirectX/atan.ll
    M llvm/test/CodeGen/DirectX/ceil.ll
    M llvm/test/CodeGen/DirectX/comput_ids.ll
    M llvm/test/CodeGen/DirectX/cos.ll
    M llvm/test/CodeGen/DirectX/cosh.ll
    M llvm/test/CodeGen/DirectX/countbits.ll
    M llvm/test/CodeGen/DirectX/dot4add_i8packed.ll
    M llvm/test/CodeGen/DirectX/dot4add_u8packed.ll
    M llvm/test/CodeGen/DirectX/exp.ll
    M llvm/test/CodeGen/DirectX/fdot.ll
    M llvm/test/CodeGen/DirectX/floor.ll
    M llvm/test/CodeGen/DirectX/fma.ll
    M llvm/test/CodeGen/DirectX/fmad.ll
    M llvm/test/CodeGen/DirectX/fmax.ll
    M llvm/test/CodeGen/DirectX/fmin.ll
    M llvm/test/CodeGen/DirectX/frac.ll
    M llvm/test/CodeGen/DirectX/idot.ll
    M llvm/test/CodeGen/DirectX/imad.ll
    M llvm/test/CodeGen/DirectX/is_fpclass.ll
    M llvm/test/CodeGen/DirectX/isinf.ll
    M llvm/test/CodeGen/DirectX/isnan.ll
    A llvm/test/CodeGen/DirectX/legalize-switch-unreachable.ll
    M llvm/test/CodeGen/DirectX/log.ll
    M llvm/test/CodeGen/DirectX/log10.ll
    M llvm/test/CodeGen/DirectX/log2.ll
    M llvm/test/CodeGen/DirectX/reversebits.ll
    M llvm/test/CodeGen/DirectX/round.ll
    M llvm/test/CodeGen/DirectX/rsqrt.ll
    M llvm/test/CodeGen/DirectX/saturate.ll
    M llvm/test/CodeGen/DirectX/sin.ll
    M llvm/test/CodeGen/DirectX/sinh.ll
    M llvm/test/CodeGen/DirectX/smax.ll
    M llvm/test/CodeGen/DirectX/smin.ll
    M llvm/test/CodeGen/DirectX/splitdouble.ll
    M llvm/test/CodeGen/DirectX/sqrt.ll
    M llvm/test/CodeGen/DirectX/tan.ll
    M llvm/test/CodeGen/DirectX/tanh.ll
    M llvm/test/CodeGen/DirectX/trunc.ll
    M llvm/test/CodeGen/DirectX/umad.ll
    M llvm/test/CodeGen/DirectX/umax.ll
    M llvm/test/CodeGen/DirectX/umin.ll
    A llvm/test/CodeGen/LoongArch/lasx/ir-instruction/fpext.ll
    M llvm/test/CodeGen/LoongArch/lasx/ir-instruction/shuffle-as-xvshuf4i.ll
    A llvm/test/CodeGen/LoongArch/lasx/srar.ll
    A llvm/test/CodeGen/LoongArch/lasx/srlr.ll
    M llvm/test/CodeGen/LoongArch/lasx/vec-shuffle-byte-rotate.ll
    M llvm/test/CodeGen/LoongArch/lasx/vxi1-masks.ll
    A llvm/test/CodeGen/LoongArch/lsx/ir-instruction/fpext.ll
    A llvm/test/CodeGen/LoongArch/lsx/srar.ll
    A llvm/test/CodeGen/LoongArch/lsx/srlr.ll
    A llvm/test/CodeGen/LoongArch/stackslot.mir
    M llvm/test/CodeGen/LoongArch/vector-fp-imm.ll
    M llvm/test/CodeGen/NVPTX/fp-contract-f32x2.ll
    M llvm/test/CodeGen/NVPTX/i16x2-instructions.ll
    A llvm/test/CodeGen/NVPTX/unknown-intrinsic.ll
    M llvm/test/CodeGen/PowerPC/masked-sdiv.ll
    M llvm/test/CodeGen/PowerPC/masked-srem.ll
    M llvm/test/CodeGen/PowerPC/masked-udiv.ll
    M llvm/test/CodeGen/PowerPC/masked-urem.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator-inline-asm.ll
    M llvm/test/CodeGen/RISCV/combine-is_fpclass.ll
    M llvm/test/CodeGen/RISCV/rvv/dont-sink-splat-operands.ll
    A llvm/test/CodeGen/RISCV/rvv/fcanonicalize-sdnode.ll
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fcanonicalize-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fptrunc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert-subvector-shuffle.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-peephole-vmerge-vops.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-int-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-int-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-deinterleave2.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-zipeven-zipodd.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vadd-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfclass-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfnmsac-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmacc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vmul-vp-mask.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-vrsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vselect-vp-bf16.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vselect-vp.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-vsub-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/incorrect-extract-subvector-combine.ll
    M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll
    M llvm/test/CodeGen/RISCV/rvv/setcc-int-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/setcc-int-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/sink-splat-operands.ll
    M llvm/test/CodeGen/RISCV/rvv/undef-vp-ops.ll
    M llvm/test/CodeGen/RISCV/rvv/vadd-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/vadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vandn-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vector-deinterleave-fixed.ll
    M llvm/test/CodeGen/RISCV/rvv/vector-interleave-fixed.ll
    M llvm/test/CodeGen/RISCV/rvv/vfclass-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmacc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmsac-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/vfptrunc-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/vmul-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/vmul-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vnmsac-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vnsra-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vnsrl-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-vaaddu.ll
    M llvm/test/CodeGen/RISCV/rvv/vrsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vselect-vp-bf16.ll
    M llvm/test/CodeGen/RISCV/rvv/vselect-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vshl-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vsra-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vsrl-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vsub-vp-mask.ll
    M llvm/test/CodeGen/RISCV/rvv/vsub-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vwadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vwsll-vp.ll
    M llvm/test/CodeGen/SPIRV/ctor-dtor-lowering-ir.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_memory_access_aliasing/alias-load-store-atomic.ll
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/reversebits.ll
    M llvm/test/CodeGen/SPIRV/llc-pipeline.ll
    A llvm/test/CodeGen/SPIRV/passes/SPIRVLegalizeImplicitBinding.ll
    A llvm/test/CodeGen/SPIRV/passes/SPIRVLegalizePointerCast.ll
    A llvm/test/CodeGen/SPIRV/passes/SPIRVMergeRegionExitTargets.ll
    A llvm/test/CodeGen/SPIRV/passes/SPIRVRegularizer-i1-icmp.ll
    M llvm/test/CodeGen/SPIRV/pointers/load-vector-from-array-of-vectors.ll
    M llvm/test/CodeGen/SPIRV/pointers/store-array-of-vectors-to-vector.ll
    A llvm/test/CodeGen/SPIRV/transcoding/atomic-load-store-unsupported.ll
    M llvm/test/CodeGen/SPIRV/transcoding/load-atomic.ll
    M llvm/test/CodeGen/SPIRV/transcoding/store-atomic.ll
    A llvm/test/CodeGen/Thumb2/mve-extbuildvec.ll
    M llvm/test/CodeGen/WebAssembly/strided-int-mac.ll
    M llvm/test/CodeGen/X86/basic-block-address-map-function-sections.ll
    M llvm/test/CodeGen/X86/basic-block-address-map.ll
    M llvm/test/CodeGen/X86/dag-topological-sort.ll
    M llvm/test/CodeGen/X86/freeze-binary.ll
    M llvm/test/CodeGen/X86/kcfi-arity.ll
    M llvm/test/CodeGen/X86/kcfi.ll
    M llvm/test/CodeGen/X86/known-never-zero.ll
    M llvm/test/CodeGen/X86/llc-pipeline-npm.ll
    M llvm/test/CodeGen/X86/machine-block-hash.mir
    M llvm/test/CodeGen/X86/masked-sdiv.ll
    M llvm/test/CodeGen/X86/masked-srem.ll
    M llvm/test/CodeGen/X86/masked-udiv.ll
    M llvm/test/CodeGen/X86/masked-urem.ll
    M llvm/test/CodeGen/X86/pr134602.ll
    M llvm/test/CodeGen/X86/vector-sext.ll
    M llvm/test/CodeGen/X86/vector-zext.ll
    M llvm/test/DebugInfo/AArch64/fallthrough-branch.ll
    A llvm/test/MC/AArch64/LFI/branch.s
    A llvm/test/MC/AArch64/LFI/return.s
    R llvm/test/MC/AArch64/armv9.7a-mpamv2-diagnostics.s
    M llvm/test/MC/AArch64/armv9.7a-mpamv2.s
    M llvm/test/MC/AMDGPU/gfx10_asm_mubuf.s
    M llvm/test/MC/AMDGPU/gfx1250_asm_vop3p.s
    M llvm/test/MC/AMDGPU/gfx7_asm_mubuf.s
    M llvm/test/MC/AMDGPU/gfx8_asm_mubuf.s
    M llvm/test/MC/AMDGPU/gfx9_asm_mubuf.s
    A llvm/test/MC/ARM/thumb-hvc-virt-diagnostics.s
    M llvm/test/MC/AsmParser/directive_fill.s
    M llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vop3p.txt
    A llvm/test/MC/Disassembler/AMDGPU/gfx1250_dasm_vopd3_unused_operands.txt
    M llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
    M llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
    M llvm/test/TableGen/CPtrWildcard.td
    A llvm/test/ThinLTO/X86/reduce-promotion-distributed.ll
    A llvm/test/ThinLTO/X86/reduce-promotion-same-local-name-distributed.ll
    A llvm/test/Transforms/AggressiveInstCombine/fold-split-ctlz.ll
    A llvm/test/Transforms/AggressiveInstCombine/fold-split-cttz.ll
    M llvm/test/Transforms/CorrelatedValuePropagation/vectors.ll
    R llvm/test/Transforms/DeadStoreElimination/fence-todo.ll
    M llvm/test/Transforms/DeadStoreElimination/fence.ll
    A llvm/test/Transforms/DirectX/getpointer-sink-behavior.ll
    M llvm/test/Transforms/GVN/no-sink-dxgetpointer.ll
    M llvm/test/Transforms/GVN/tbaa.ll
    A llvm/test/Transforms/InstCombine/divceil.ll
    M llvm/test/Transforms/InstCombine/fls.ll
    A llvm/test/Transforms/InstCombine/shift-sub.ll
    M llvm/test/Transforms/InstSimplify/load.ll
    M llvm/test/Transforms/LICM/atomics.ll
    M llvm/test/Transforms/LoopFusion/double_loop_nest_inner_guard.ll
    M llvm/test/Transforms/LoopFusion/triple_loop_nest_inner_guard.ll
    M llvm/test/Transforms/LoopIdiom/expand-scev-expand-simplifications.ll
    M llvm/test/Transforms/LoopStrengthReduce/depth-limit-overrun.ll
    M llvm/test/Transforms/LoopStrengthReduce/lsr-rewrite-to-add-one.ll
    M llvm/test/Transforms/LoopStrengthReduce/wrong-hoisting-iv.ll
    A llvm/test/Transforms/LoopUnroll/debug-and-remarks.ll
    R llvm/test/Transforms/LoopUnroll/debug.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/epilog-vectorization-factors.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/masked-call.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/wider-VF-for-callinst.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/first-order-recurrence-scalable-vf1.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/iv-select-cmp.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-fixed-order-recurrence.ll
    M llvm/test/Transforms/LoopVectorize/VPlan/vplan-print-after-all.ll
    A llvm/test/Transforms/LoopVectorize/VPlan/widen-canonical-iv-register-pressure.ll
    M llvm/test/Transforms/LoopVectorize/X86/amdlibm-calls.ll
    A llvm/test/Transforms/LoopVectorize/X86/widen-canonical-iv-register-pressure.ll
    M llvm/test/Transforms/LoopVectorize/epilog-vectorization-reductions.ll
    A llvm/test/Transforms/LoopVectorize/extract-value-widen.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence-tail-folding.ll
    M llvm/test/Transforms/LoopVectorize/hints-trans.ll
    M llvm/test/Transforms/LoopVectorize/induction.ll
    M llvm/test/Transforms/LoopVectorize/interleaved-accesses.ll
    M llvm/test/Transforms/LoopVectorize/optsize.ll
    M llvm/test/Transforms/LoopVectorize/scalable-trunc-min-bitwidth.ll
    M llvm/test/Transforms/LoopVectorize/tail-folding-vectorization-factor-1.ll
    M llvm/test/Transforms/LoopVectorize/version-stride-with-integer-casts.ll
    M llvm/test/Transforms/LowerTypeTests/aarch64-jumptable-dbg.ll
    M llvm/test/Transforms/LowerTypeTests/x86-jumptable-dbg.ll
    M llvm/test/Transforms/PhaseOrdering/X86/avg.ll
    M llvm/test/Transforms/PreISelIntrinsicLowering/AArch64/expand-exp.ll
    R llvm/test/Transforms/PreISelIntrinsicLowering/AArch64/expand-fp-math-binary.ll
    M llvm/test/Transforms/PreISelIntrinsicLowering/AArch64/expand-fp-math.ll
    M llvm/test/Transforms/PreISelIntrinsicLowering/AArch64/expand-log.ll
    R llvm/test/Transforms/PreISelIntrinsicLowering/RISCV/expand-fp-math-binary.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/InstructionsState-is-invalid-0.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/PR38339.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/div-like-mixed-with-undefs.ll
    A llvm/test/Transforms/SLPVectorizer/AArch64/long-non-power-of-2.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/reused-scalar-repeated-in-node.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/slp-fma-loss.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/spillcost-call-between-operands.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/spillcost-loop-backedge.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/vectorizable-selects-uniform-cmps.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/basic-strided-loads.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/gather-insert-point-restore.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reduced-value-repeated-and-vectorized.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reductions.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reordered-buildvector-scalars.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/revec-strided-load.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/same-node-reused.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/smin-signed-zextended.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/split-vectorize-parent-for-copyables.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/unordered-loads-operands.ll
    M llvm/test/Transforms/SLPVectorizer/SystemZ/reuse-non-power-of-2-reorder.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR39774.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR40310.ll
    M llvm/test/Transforms/SLPVectorizer/X86/deleted-inst-reduction-attempt.ll
    M llvm/test/Transforms/SLPVectorizer/X86/div-possibly-extended-with-poisons.ll
    M llvm/test/Transforms/SLPVectorizer/X86/external-used-across-reductions.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extractelements-vector-ops-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/extractelemets-extended-by-poison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/full-match-with-poison-scalar.ll
    M llvm/test/Transforms/SLPVectorizer/X86/full-matched-bv-with-subvectors.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gather-with-cmp-user.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gathered-loads-non-full-reg.ll
    M llvm/test/Transforms/SLPVectorizer/X86/gathered-shuffle-resized.ll
    M llvm/test/Transforms/SLPVectorizer/X86/identity-match-splat-less-defined.ll
    M llvm/test/Transforms/SLPVectorizer/X86/insert-subvector.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-merge-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-merge.ll
    M llvm/test/Transforms/SLPVectorizer/X86/load-partial-vector-shuffle.ll
    M llvm/test/Transforms/SLPVectorizer/X86/matched-gather-part-of-combined.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-power-of-2-order-detection.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-power-of-2-subvectors-insert.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-schedulable-before-main.ll
    M llvm/test/Transforms/SLPVectorizer/X86/non-scheduled-inst-extern-use.ll
    A llvm/test/Transforms/SLPVectorizer/X86/non-vectorizable-inst-operand.ll
    M llvm/test/Transforms/SLPVectorizer/X86/original-inst-scheduled-after-copyable.ll
    M llvm/test/Transforms/SLPVectorizer/X86/parent-node-schedulable-with-multi-copyables.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47629-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47629.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47642.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr49081.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reduced-val-vectorized-in-transform.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder-reused-masked-gather.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder-reused-masked-gather2.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reordered-masked-loads.ll
    M llvm/test/Transforms/SLPVectorizer/X86/replaced-external-in-reduction.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reschedule-only-scheduled.ll
    M llvm/test/Transforms/SLPVectorizer/X86/resized-bv-values-non-power-of2-node.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reuse-extracts-in-wider-vect.ll
    M llvm/test/Transforms/SLPVectorizer/X86/revec-non-power-2-to-power-2-large-vect.ll
    M llvm/test/Transforms/SLPVectorizer/X86/revec-reduced-value-vectorized-later.ll
    M llvm/test/Transforms/SLPVectorizer/X86/same-values-sub-node-with-poisons.ll
    A llvm/test/Transforms/SLPVectorizer/X86/select-copyable-cmp-poison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shl-to-add-transformation5.ll
    M llvm/test/Transforms/SLPVectorizer/X86/shrink_after_reorder.ll
    M llvm/test/Transforms/SLPVectorizer/X86/sin-sqrt.ll
    A llvm/test/Transforms/SLPVectorizer/X86/split-node-reused-in-later-vector.ll
    M llvm/test/Transforms/SLPVectorizer/X86/split-node-throttled.ll
    M llvm/test/Transforms/SLPVectorizer/X86/split-vectorize-gathered-def-after-use.ll
    M llvm/test/Transforms/SLPVectorizer/gathered-consecutive-loads-different-types.ll
    M llvm/test/Transforms/SLPVectorizer/insertelement-across-zero.ll
    M llvm/test/Transforms/SLPVectorizer/reduced-gathered-vectorized.ll
    M llvm/test/Transforms/SLPVectorizer/reduction-whole-regs-loads.ll
    M llvm/test/Transforms/SLPVectorizer/reorder-clustered-node.ll
    M llvm/test/Transforms/SLPVectorizer/revec-shufflevector.ll
    M llvm/test/Transforms/SLPVectorizer/revec.ll
    M llvm/test/Transforms/SLPVectorizer/shuffle-mask-resized.ll
    M llvm/test/Transforms/SimplifyCFG/DirectX/no-sink-dxgetpointer.ll
    M llvm/test/tools/dsymutil/X86/tls-variable.test
    M llvm/test/tools/dxil-dis/debug-info.ll
    A llvm/test/tools/dxil-dis/di-compile-unit-versioned-language.ll
    A llvm/test/tools/dxil-dis/vla.ll
    M llvm/test/tools/llvm-rc/windres-target.test
    M llvm/tools/llvm-cfi-verify/lib/FileAnalysis.cpp
    M llvm/tools/llvm-dwp/llvm-dwp.cpp
    M llvm/tools/llvm-exegesis/lib/DisassemblerHelper.cpp
    M llvm/tools/llvm-exegesis/lib/SnippetFile.cpp
    M llvm/tools/llvm-jitlink/llvm-jitlink.cpp
    M llvm/tools/llvm-mc-assemble-fuzzer/llvm-mc-assemble-fuzzer.cpp
    M llvm/tools/llvm-mc/llvm-mc.cpp
    M llvm/tools/llvm-mca/CodeRegionGenerator.cpp
    M llvm/tools/llvm-mca/llvm-mca.cpp
    M llvm/tools/llvm-ml/Disassembler.cpp
    M llvm/tools/llvm-ml/llvm-ml.cpp
    M llvm/tools/llvm-objdump/MachODump.cpp
    M llvm/tools/llvm-objdump/llvm-objdump.cpp
    M llvm/tools/llvm-profgen/Options.h
    M llvm/tools/llvm-profgen/PerfReader.cpp
    M llvm/tools/llvm-profgen/ProfileGenerator.cpp
    M llvm/tools/llvm-profgen/ProfiledBinary.cpp
    M llvm/tools/llvm-rc/llvm-rc.cpp
    M llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
    M llvm/tools/sancov/sancov.cpp
    M llvm/unittests/CodeGen/MFCommon.inc
    M llvm/unittests/CodeGen/MachineInstrTest.cpp
    M llvm/unittests/CodeGen/MachineOperandTest.cpp
    M llvm/unittests/DebugInfo/DWARF/DWARFExpressionCopyBytesTest.cpp
    M llvm/unittests/DebugInfo/DWARF/DwarfGenerator.cpp
    M llvm/unittests/MC/AMDGPU/Disassembler.cpp
    M llvm/unittests/MC/DwarfDebugFrameCIE.cpp
    M llvm/unittests/MC/DwarfLineTableHeaders.cpp
    M llvm/unittests/MC/DwarfLineTables.cpp
    M llvm/unittests/MC/SystemZ/SystemZAsmLexerTest.cpp
    M llvm/unittests/MC/SystemZ/SystemZMCDisassemblerTest.cpp
    M llvm/unittests/MC/X86/X86MCDisassemblerTest.cpp
    M llvm/unittests/Support/xxhashTest.cpp
    M llvm/unittests/Target/AArch64/AArch64InstPrinterTest.cpp
    M llvm/unittests/TargetParser/TargetParserTest.cpp
    M llvm/unittests/tools/llvm-mca/MCATestBase.cpp
    M llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysisFramework/Analyses/BUILD.gn
    M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
    M llvm/utils/gn/secondary/libcxx/src/BUILD.gn
    M llvm/utils/gn/secondary/lldb/test/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/Target/RISCV/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/Transforms/Vectorize/BUILD.gn
    M llvm/utils/gn/secondary/llvm/unittests/MC/BUILD.gn
    M mlir/include/mlir/Analysis/DataFlowFramework.h
    M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUOps.td
    M mlir/include/mlir/Dialect/CommonFolders.h
    M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
    M mlir/include/mlir/Dialect/Math/IR/MathBase.td
    M mlir/include/mlir/Dialect/Math/IR/MathOps.td
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
    M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUDialect.td
    M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUOps.td
    M mlir/include/mlir/Dialect/XeGPU/IR/XeGPUTypes.td
    M mlir/include/mlir/IR/DialectRegistry.h
    M mlir/include/mlir/Transforms/Passes.td
    M mlir/lib/Analysis/DataFlowFramework.cpp
    M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
    M mlir/lib/Conversion/MathToLLVM/MathToLLVM.cpp
    M mlir/lib/Conversion/NVGPUToNVVM/NVGPUToNVVM.cpp
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/lib/Conversion/VectorToXeGPU/VectorToXeGPU.cpp
    M mlir/lib/Conversion/XeGPUToXeVM/XeGPUToXeVM.cpp
    M mlir/lib/Conversion/XeVMToLLVM/XeVMToLLVM.cpp
    M mlir/lib/Dialect/AMDGPU/IR/AMDGPUOps.cpp
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    M mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
    M mlir/lib/Dialect/Linalg/Transforms/ShardingInterfaceImpl.cpp
    M mlir/lib/Dialect/Math/IR/MathOps.cpp
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
    M mlir/lib/Dialect/Vector/Transforms/LowerVectorContract.cpp
    M mlir/lib/Dialect/XeGPU/IR/XeGPUDialect.cpp
    M mlir/lib/Dialect/XeGPU/IR/XeGPUOps.cpp
    M mlir/lib/Dialect/XeGPU/TransformOps/XeGPUTransformOps.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUBlocking.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPropagateLayout.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSubgroupDistribute.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUUnroll.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
    M mlir/lib/IR/Dialect.cpp
    M mlir/lib/IR/MLIRContext.cpp
    M mlir/lib/Pass/Pass.cpp
    M mlir/lib/Target/LLVM/ROCDL/Target.cpp
    M mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
    M mlir/lib/Tools/mlir-opt/MlirOptMain.cpp
    M mlir/lib/Transforms/Canonicalizer.cpp
    A mlir/test/Analysis/DataFlow/test-staged-analyses.mlir
    M mlir/test/Conversion/AMDGPUToROCDL/sparse-mfma-gfx950.mlir
    M mlir/test/Conversion/MathToLLVM/math-to-llvm.mlir
    M mlir/test/Conversion/NVGPUToNVVM/nvgpu-to-nvvm.mlir
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg-resize.mlir
    M mlir/test/Conversion/VectorToXeGPU/transfer-read-to-xegpu.mlir
    M mlir/test/Conversion/VectorToXeGPU/transfer-write-to-xegpu.mlir
    M mlir/test/Conversion/XeVMToLLVM/xevm_mx-to-llvm.mlir
    M mlir/test/Dialect/AMDGPU/invalid.mlir
    M mlir/test/Dialect/AMDGPU/ops.mlir
    M mlir/test/Dialect/Arith/canonicalize.mlir
    A mlir/test/Dialect/EmitC/arith/ops.mlir
    A mlir/test/Dialect/LLVMIR/nvvm-transcendentals.mlir
    M mlir/test/Dialect/LLVMIR/nvvm.mlir
    M mlir/test/Dialect/Math/canonicalize.mlir
    M mlir/test/Dialect/Math/ops.mlir
    M mlir/test/Dialect/Vector/vector-contract-to-dot-transforms.mlir
    M mlir/test/Dialect/XeGPU/invalid.mlir
    M mlir/test/Dialect/XeGPU/layout.mlir
    M mlir/test/Dialect/XeGPU/ops.mlir
    M mlir/test/Dialect/XeGPU/propagate-layout-inst-data.mlir
    M mlir/test/Dialect/XeGPU/propagate-layout-subgroup.mlir
    M mlir/test/Dialect/XeGPU/propagate-layout.mlir
    M mlir/test/Dialect/XeGPU/xegpu-blocking.mlir
    M mlir/test/Dialect/XeGPU/xegpu-recover-layout.mlir
    R mlir/test/Dialect/XeGPU/xegpu-unroll-patterns-no-desc-offsets.mlir
    M mlir/test/Dialect/XeGPU/xegpu-unroll-patterns.mlir
    M mlir/test/Dialect/XeGPU/xegpu-vector-linearize.mlir
    M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-elemwise.mlir
    M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-rr.mlir
    R mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops-rr.mlir
    R mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir
    M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg.mlir
    M mlir/test/Integration/Dialect/XeVM/GPU/xevm_block_scaled_dpas_bf8.mlir
    A mlir/test/Target/LLVMIR/nvvm/transcendentals.mlir
    M mlir/test/Target/LLVMIR/nvvmir-invalid.mlir
    M mlir/test/Target/LLVMIR/nvvmir.mlir
    A mlir/test/Transforms/canonicalize-filter-dialects.mlir
    M mlir/test/lib/Analysis/DataFlow/TestDeadCodeAnalysis.cpp
    M mlir/test/lib/Analysis/DataFlow/TestDenseBackwardDataFlowAnalysis.cpp
    M mlir/test/lib/Analysis/DataFlow/TestDenseForwardDataFlowAnalysis.cpp
    M mlir/test/lib/Analysis/DataFlow/TestSparseBackwardDataFlowAnalysis.cpp
    M mlir/test/lib/Analysis/TestDataFlowFramework.cpp
    M mlir/test/lib/Dialect/Test/TestPatterns.cpp
    M mlir/test/lib/Dialect/XeGPU/TestXeGPUTransforms.cpp
    M mlir/tools/mlir-opt/mlir-opt.cpp
    M offload/plugins-nextgen/amdgpu/dynamic_hsa/hsa_ext_amd.h
    M offload/plugins-nextgen/amdgpu/src/rtl.cpp
    M openmp/docs/design/Runtimes.rst
    M openmp/module/CMakeLists.txt
    M openmp/runtime/src/kmp.h
    M openmp/runtime/src/kmp_taskdeps.cpp
    M openmp/runtime/src/kmp_taskdeps.h
    M openmp/runtime/src/kmp_tasking.cpp
    M polly/lib/CodeGen/IslNodeBuilder.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/sys/socket/BUILD.bazel
    M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel

  Log Message:
  -----------
  [𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.5

[skip ci]


Compare: https://github.com/llvm/llvm-project/compare/29d8721c4f5c...b4701103890b

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