[all-commits] [llvm/llvm-project] 021672: [test][LowerTypeTests] Re-generate jump table test...

Joel E. Denny via All-commits all-commits at lists.llvm.org
Tue Apr 28 19:00:13 PDT 2026


  Branch: refs/heads/users/jdenny-ornl/fix-blockfreq-unroll-unconditional-latches--fast
  Home:   https://github.com/llvm/llvm-project
  Commit: 021672ff09c1aa14a0d48c4386d17d782f032769
      https://github.com/llvm/llvm-project/commit/021672ff09c1aa14a0d48c4386d17d782f032769
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-20 (Mon, 20 Apr 2026)

  Changed paths:
    M llvm/test/Transforms/LowerTypeTests/aarch64-jumptable.ll
    M llvm/test/Transforms/LowerTypeTests/x86-jumptable.ll

  Log Message:
  -----------
  [test][LowerTypeTests] Re-generate jump table tests with --check-globals (#192734)

Debug information will be updated in the
https://github.com/llvm/llvm-project/pull/192736,
so we want to track the difference.


  Commit: b39dfca39fa794d66580238fb382477e34fbd093
      https://github.com/llvm/llvm-project/commit/b39dfca39fa794d66580238fb382477e34fbd093
  Author: Dhruva Chakrabarti <Dhruva.Chakrabarti at amd.com>
  Date:   2026-04-20 (Mon, 20 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPURewriteAGPRCopyMFMA.cpp
    A llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr-spill-multi-store-mir.mir
    A llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr-spill-multi-store.ll

  Log Message:
  -----------
  [AMDGPU] Fixed verifier crash because of multiple live range components. (#190719)

In Rewrite AGPR-Copy-MFMA pass, after replacing spill instructions, the
replacement register may have multiple live range components when the
spill slot was stored to more than once. The verifier crashes with a bad
machine code error. This patch fixes the problem by splitting a live
range but assigning the same physical register in this scenario. A new
test has been added that verifies the absence of this verifier error.

Assisted-by: Claude Opus


  Commit: b906cf354b34ab8955d19d8a533b55f564cd8196
      https://github.com/llvm/llvm-project/commit/b906cf354b34ab8955d19d8a533b55f564cd8196
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [CodeGen] Add constexpr and static_assert to fold64To16 (#192864)

This ensures the folding logic stability.


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

  Changed paths:
    M clang-tools-extra/clangd/CMakeLists.txt
    M clang-tools-extra/clangd/GlobalCompilationDatabase.cpp
    A clang-tools-extra/clangd/ProjectModules.cpp
    M clang-tools-extra/clangd/ProjectModules.h
    R clang-tools-extra/clangd/ScanningProjectModules.cpp
    R clang-tools-extra/clangd/ScanningProjectModules.h
    M clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp

  Log Message:
  -----------
  [NFC] [clangd] [C++20] [Modules] Rename and move scanningProjectModules (#193128)

I am going to add more stuff to ProjectModules and the current structure
and the file name scanningProjectModules may be confusing.

This NFC patch changes that.


  Commit: 1bfcddcdedb0ca7095d7c4475ec8b6a641f84d3f
      https://github.com/llvm/llvm-project/commit/1bfcddcdedb0ca7095d7c4475ec8b6a641f84d3f
  Author: Zeyi Xu <mitchell.xu2 at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang-tools-extra/clang-tidy/add_new_check.py
    M clang-tools-extra/docs/clang-tidy/checks/list.rst

  Log Message:
  -----------
  [clang-tidy][NFC] Fix list.rst and improve alias detection of `add_new_check.py` (#192228)

Follow up of https://github.com/llvm/llvm-project/pull/192224.

This commit does two things:

- Replace the original alias detection based on `:http-equiv` (we may
remove these completely in the future) with a method of directly
matching the documentation section.
- Update the list.rst

---------

Co-authored-by: Victor Chernyakin <chernyakin.victor.j at outlook.com>


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

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

  Log Message:
  -----------
  [NFC] [clangd] [C++20] [Modules] Introduce ProjectModules::getModuleNameState interface (#193133)

A hole in the current design is that, we assumed there is no duplicated
module name in different module interface in the same project.

This is not true techniquelly. ISO disallows duplicated module names in
a linked program. But we can have multiple program in a project. It will
be fine if they are not linked together. And in practice, it will be
fine if the symbols are masked and if these module interface units are
not showing in the same context of a single translation unit.

I am trying to improve this. This patch tries to add some NFC things to
reduce further patch size.

AI assisted.


  Commit: 4712ca81420ee95a955b3cc2e01ad5b9ae49b409
      https://github.com/llvm/llvm-project/commit/4712ca81420ee95a955b3cc2e01ad5b9ae49b409
  Author: Jianhui Li <jian.hui.li at intel.com>
  Date:   2026-04-20 (Mon, 20 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/XeGPU/Transforms/XeGPULayoutImpl.h
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPULayoutImpl.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPeepHoleOptimizer.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUPropagateLayout.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToWiDistributeExperimental.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSubgroupDistribute.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
    M mlir/lib/Dialect/XeGPU/Utils/XeGPUUtils.cpp
    M mlir/test/Dialect/XeGPU/sg-to-wi-experimental-unit.mlir
    M mlir/test/Dialect/XeGPU/sg-to-wi-experimental.mlir
    M mlir/test/Dialect/XeGPU/subgroup-distribute.mlir
    A mlir/test/Dialect/XeGPU/xegpu-recover-layout.mlir
    M mlir/test/Dialect/XeGPU/xegpu-wg-to-sg-unify-ops.mlir
    M mlir/test/lib/Dialect/XeGPU/TestXeGPUTransforms.cpp

  Log Message:
  -----------
  [MLIR][XeGPU] Recover temporary layout from Anchor Layout (#191947)

This PR refactor the recoverTemporaryLayout() method so that the
temporary layout is recovered from anchor layout, not from any user
specified temporary layout.


  Commit: b2d7d892c990c7ae1839f79623570eabcf8a51fa
      https://github.com/llvm/llvm-project/commit/b2d7d892c990c7ae1839f79623570eabcf8a51fa
  Author: Dhruva Chakrabarti <Dhruva.Chakrabarti at amd.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPURewriteAGPRCopyMFMA.cpp
    R llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr-spill-multi-store-mir.mir
    R llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr-spill-multi-store.ll

  Log Message:
  -----------
  Revert "[AMDGPU] Fixed verifier crash because of multiple live range components." (#193135)

Reverts llvm/llvm-project#190719

The Buildbot has detected a new failure on builder
sanitizer-aarch64-linux-bootstrap-hwasan while building llvm.


  Commit: 83f8eee57d5a2e9215b506a5ddc82db980fb47d0
      https://github.com/llvm/llvm-project/commit/83f8eee57d5a2e9215b506a5ddc82db980fb47d0
  Author: Fangrui Song <i at maskray.me>
  Date:   2026-04-20 (Mon, 20 Apr 2026)

  Changed paths:
    M lld/ELF/Config.h
    M lld/ELF/Driver.cpp
    M lld/ELF/InputFiles.cpp
    M lld/ELF/InputFiles.h

  Log Message:
  -----------
  [ELF] Parallelize input file loading (#191690)

During `createFiles`, `addFile()` records a `LoadJob` for each
non-script input (archive, relocatable, DSO, bitcode, binary) with a
state-machine snapshot (`inWholeArchive`, `inLib`, `asNeeded`,
`withLOption`, `groupId`) and expands them on worker threads in
`loadFiles()`. Linker scripts are still processed inline since their
`INPUT()` and `GROUP()` commands recursively call `addFile()`.

Outside `createFiles()`, `loadFiles()` is called with a single job and
drained immediately (`deferLoad` is false). Two cases:
- `addDependentLibrary()`: `.deplibs` sections trigger `addFile()`
  during the serial `doParseFiles()` loop.
- `--just-symbols`: pushes files directly, bypassing
`addFile`/`LoadJob`.

Thread-safety:
- A mutex serializes `BitcodeFile` / fatLTO constructors that call
  `ctx.saver` / `ctx.uniqueSaver`. Zero contention on pure ELF links.
- Thin-archive member buffers accumulate in per-job `SmallVector`s and
  are merged into `ctx.memoryBuffers` in command-line order.
- `groupId` is pre-claimed during the serial walk and written to each
  produced file after construction (the `InputFile` constructor no
  longer reads `nextGroupId`).

Performance (--threads=8):

```
  clang-relassert (267 thin archives, 10 .o, 2 .so):
    965 +/- 32 ms -> 924 +/- 24 ms (1.05x, 80 runs)

    (Apple M4) 249.7ms ± 2.5ms -> 221.2ms ± 1.4ms (1.13x, 10 runs)

  chromium (532 .a, 3314 .o, 343 .so):
    8.071 +/- 0.472 s -> 7.370 +/- 0.198 s (1.10x, 20 runs)
```

Parallelizing all file kinds (not just archives) matters for
.o-dominated workloads like chromium where archive-only parallelization
shows no improvement.

Output is byte-identical to the old lld and deterministic across
`--threads` values.


  Commit: 7f6896a9147ce17617010db701801dfcdb19d1fa
      https://github.com/llvm/llvm-project/commit/7f6896a9147ce17617010db701801dfcdb19d1fa
  Author: Fangrui Song <i at maskray.me>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.h
    M llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
    A llvm/test/MC/X86/intel-syntax-quote-reserved.s

  Log Message:
  -----------
  [X86] Quote symbol names that collide with registers/keywords in Intel syntax (#186570)

When outputting Intel syntax assembly, symbol names that match register
names (e.g., `rsi`, `rax`) or keywords (`byte`, `ptr`, etc.) must be
quoted, otherwise the assembler parses them as registers/keywords
instead of symbol references.

Fix this by populating MCAsmInfo::ReservedIdentifiers with all X86
register names and Intel syntax keywords. isValidUnquotedName() checks
this set and forces quoting when a symbol name matches.

```
% cat rsi.c
void rsi(void); void foo(void) { rsi(); }

// old clang
% clang -c rsi.c -save-temps -masm=intel -fno-pic -o - | llvm-objdump -dr -
...
       4: ff d6                         callq   *%rsi

// new clang
% fclang -c rsi.c -save-temps -masm=intel -fno-pic -o - | llvm-objdump -dr -
...
       4: e8 00 00 00 00                callq   0x9 <foo+0x9>
                0000000000000005:  R_X86_64_PLT32       rsi-0x4

% cat byte.c
void byte(void); void foo(void) { byte(); }
// old clang
% clang -c byte.c -save-temps -masm=intel -fno-pic -o -
byte.s:15:11: error: Expected 'PTR' or 'ptr' token!

// new clang => good
```


  Commit: 773a14b324187c9189f318714f4282211bcc6cb9
      https://github.com/llvm/llvm-project/commit/773a14b324187c9189f318714f4282211bcc6cb9
  Author: Fangrui Song <i at maskray.me>
  Date:   2026-04-20 (Mon, 20 Apr 2026)

  Changed paths:
    M lld/ELF/ScriptParser.cpp

  Log Message:
  -----------
  [ELF] Fix heap-use-after-free with INPUT(relative-path) (#193146)

`ScriptParser::addFile` Case 4 (relative path resolved against the
script's parent directory) passes a `SmallString<0>` stack local by
StringRef, causing asan error after #191690.

Fix with ctx.saver similar to other cases.


  Commit: 6d0fbca97427cd7dd5a2603e384ec25ef26c1700
      https://github.com/llvm/llvm-project/commit/6d0fbca97427cd7dd5a2603e384ec25ef26c1700
  Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M mlir/lib/Conversion/VectorToSPIRV/VectorToSPIRV.cpp
    M mlir/test/Conversion/VectorToSPIRV/vector-to-spirv.mlir

  Log Message:
  -----------
  [mlir][SPIR-V] Lower AND/OR/XOR vector reductions (#192293)

Lower vector.reduction <and>, <or>, and <xor> to spirv.BitwiseAnd,
spirv.BitwiseOr, and spirv.BitwiseXor respectively


  Commit: 76989f28b68324121fe7f960a6fc57ca75e0c456
      https://github.com/llvm/llvm-project/commit/76989f28b68324121fe7f960a6fc57ca75e0c456
  Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-interleaved-accesses.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse.ll
    M llvm/test/Transforms/LoopVectorize/ARM/mve-gather-scatter-tailpred.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/dbg-tail-folding-by-evl.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/iv-select-cmp.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/riscv-vector-reverse.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-interleave.ll
    M llvm/test/Transforms/LoopVectorize/find-last-iv-sinkable-expr-tail-folding.ll
    M llvm/test/Transforms/LoopVectorize/find-last-iv-sinkable-expr.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
    M llvm/test/Transforms/LoopVectorize/interleave-with-i65-induction.ll
    M llvm/test/Transforms/LoopVectorize/iv-select-cmp-decreasing.ll
    M llvm/test/Transforms/LoopVectorize/iv-select-cmp-fold-tail.ll

  Log Message:
  -----------
  [VPlan] Simplify add x, (sub 0, y) -> sub x, y (#187228)

The patch follows what InstCombine does.

Alive2 proof: https://alive2.llvm.org/ce/z/0tG6s6


  Commit: 8434bdc9ea4ffe9945938fe87fdef9788d6ecb5e
      https://github.com/llvm/llvm-project/commit/8434bdc9ea4ffe9945938fe87fdef9788d6ecb5e
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2026-04-21 (Tue, 21 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/include/llvm-libc-macros/linux/sys-socket-macros.h
    M libc/include/sys/socket.yaml
    A libc/src/__support/OSUtil/linux/syscall_wrappers/shutdown.h
    M libc/src/sys/socket/CMakeLists.txt
    M libc/src/sys/socket/linux/CMakeLists.txt
    A libc/src/sys/socket/linux/shutdown.cpp
    A libc/src/sys/socket/shutdown.h
    M libc/test/src/sys/socket/linux/CMakeLists.txt
    A libc/test/src/sys/socket/linux/shutdown_test.cpp

  Log Message:
  -----------
  [libc] Implement shutdown on linux (#192933)

- added the relevant constant definitions
- enabled the entry point on x86_64, aarch64 and riscv
- testing by checking that the call causes an EOF on read (on the
appropriate end)


  Commit: 18b4dd39d6deed362fe479a6cc52b8929b3f4aae
      https://github.com/llvm/llvm-project/commit/18b4dd39d6deed362fe479a6cc52b8929b3f4aae
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2026-04-21 (Tue, 21 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/include/llvm-libc-macros/linux/sys-socket-macros.h
    M libc/include/sys/socket.yaml
    M libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
    A libc/src/__support/OSUtil/linux/syscall_wrappers/accept4.h
    M libc/src/sys/socket/CMakeLists.txt
    A libc/src/sys/socket/accept4.h
    M libc/src/sys/socket/linux/CMakeLists.txt
    A libc/src/sys/socket/linux/accept4.cpp
    M libc/test/src/sys/socket/linux/CMakeLists.txt
    M libc/test/src/sys/socket/linux/connect_accept_test.cpp

  Log Message:
  -----------
  [libc] Implement accept4 on linux (#192927)

Testing funcitonality by checking the flags on the returned FD.


  Commit: 163d0b1b697c8f5194555cd887a7b0e52bbac653
      https://github.com/llvm/llvm-project/commit/163d0b1b697c8f5194555cd887a7b0e52bbac653
  Author: 8051Enthusiast <8051Enthusiast at protonmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/IPO/ConstantMerge.cpp
    M llvm/test/Transforms/ConstantMerge/dont-merge.ll
    A llvm/test/Transforms/ConstantMerge/merge-comdat.ll

  Log Message:
  -----------
  [ConstantMerge] don't merge constants with COMDAT (#192477)

After merging #190995 (now reverted) the CI failed because ConstantMerge
currently merges constants with differing COMDATs. This can result in a
function referencing globals with a different COMDAT than before the
merge, producing a linking error when that global gets discarded.

It is still possible to merge same comdats, or to merge a non-key comdat
constant into a non-comdat constant.


  Commit: 3c88abe3206bb944566ff4b62aa4b9874327f37d
      https://github.com/llvm/llvm-project/commit/3c88abe3206bb944566ff4b62aa4b9874327f37d
  Author: Alex Dutka <97711898+dutkalex at users.noreply.github.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang-tools-extra/clang-tidy/readability/IdentifierLengthCheck.cpp
    M clang-tools-extra/clang-tidy/readability/IdentifierLengthCheck.h
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/docs/clang-tidy/checks/readability/identifier-length.rst
    A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-line-count-threshold.cpp

  Log Message:
  -----------
  [clang-tidy][readability-identifier-length] Add a line count threshold (#185319)

This PR implements the feature described in #185318

A new parameter named `LineCountThreshold` is added to the
`readability-identifier-length` check, which controls how many lines of
code must separate the the last use of a variable from its declaration
for the check to warn. For backwards-compatibility, the default value
for this parameter is set to 0.

Increasing the threshold to 1 allows for short names in one-liners (for
example: `std::transform(..., [](auto i){ return i*i; });`), and in the
general case with `LineCountThreshold = N` a variable is allowed to have
a shorter name than otherwise required if it is never used again after
`N` lines (including its declaration line).

This feature is implemented ~using a secondary `MatchFinder`~ by calling
the `utils::decl_ref_expr::allDeclRefExprs` helper function for each
variable with a short name. For performance reasons, the new piece of
code is short-circuited if `LineCountThreshold` is set to 0 (the default
value).


  Commit: 547c3ad159fdb659e296f0113b3c790fbd266786
      https://github.com/llvm/llvm-project/commit/547c3ad159fdb659e296f0113b3c790fbd266786
  Author: Petar Avramovic <Petar.Avramovic at amd.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalize.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp

  Log Message:
  -----------
  AMDGPU/GlobalISel: RegbankLegalize rules for undef and constants (#193024)

Move RegbankLegalize handling for G_IMPLICIT_DEF, G_CONSTANT and G_FCONSTANT
from AMDGPURegBankLegalize to AMDGPURegBankLegalizeRules by implementing
rules for all supported types.


  Commit: a35e21861f9129e2265ce95f7ea23925a05f9421
      https://github.com/llvm/llvm-project/commit/a35e21861f9129e2265ce95f7ea23925a05f9421
  Author: Sylvestre Ledru <sylvestre at debian.org>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M lldb/source/Plugins/Trace/intel-pt/TraceIntelPTBundleSaver.cpp

  Log Message:
  -----------
  [lldb] Fix ambiguous call to create_directories in TraceIntelPTBundleSaver (#191967) (#192025)

Fixes #191967


  Commit: 59a9aa30e21ebea83506cf5d8fb1650c61f3cad4
      https://github.com/llvm/llvm-project/commit/59a9aa30e21ebea83506cf5d8fb1650c61f3cad4
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
    M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    A llvm/test/Transforms/LoopVectorize/AArch64/force-scalable-vectorization-always.ll

  Log Message:
  -----------
  [LV] Add flag to always force a scalable VF when feasible. (#182467)

`-scalable-vectorization=always` means the LV will always favour using
scalable VFs when the cost is valid and scalable vectors are feasible.

This is mostly a hidden flag for experimentation purposes.


  Commit: 766607ca643eac9643bda2831e5f317bf86df81f
      https://github.com/llvm/llvm-project/commit/766607ca643eac9643bda2831e5f317bf86df81f
  Author: David Spickett <david.spickett at arm.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M lldb/utils/TableGen/CMakeLists.txt

  Log Message:
  -----------
  [lldb] Add EXPORT to lldb-tblgen (#192610)

Fixes #192408

You can tell an llvm build to use existing tools using options like
LLVM_NATIVE_TOOL_DIR.

When you do this, the tools are usually still built in case they need to
be part of a later install. For example if you provide a clang-tblgen,
we still build another clang-tblgen as part of the build.

Which means if you install that build, it is a complete install, and if
you are doing a cross build, you get a cross built copy of clang-tblgen
that you can use on the target machine.

In #159812, lldb-tblgen was added to the list of tools to install, so
that installed builds could be used as a base for subsequent builds.

However we were missing the EXPORT flag for lldb-tblgen. As far as I can
tell, this tells cmake that this tool will be part of the final install
regardless of whether something within the build requires it.

This missing option meant that cross builds, which do not have an
internal reason to build the cross lldb-tblgen binary, did not build it
did try to install it and of course failed because it did not exist.

Adding EXPORT forces lldb-tblgen to be built during the cross build and
now installing works as expected.


  Commit: 5dab433d5bdc51f930e87d1cd2898c8565290f77
      https://github.com/llvm/llvm-project/commit/5dab433d5bdc51f930e87d1cd2898c8565290f77
  Author: David Spickett <david.spickett at arm.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    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

  Log Message:
  -----------
  [lldb] Remove trailing newlines from AppendErrorWithFormat calls (#192965)

This call adds a newline if there isn't one. Changing these will
eventually let us always add a newline, which is in line with the other
methods on CommandReturnObject.

This is a small part of calls found with:
* VSCode search for
`(\.AppendErrorWithFormat\(([\s\r\n]+)?"(?:(?:\\.|[^"\\])*))\\n"` and
replace with `$1"`.
* Asserting that the last character of the format string is not a
newline.
* Manual inspection.


  Commit: 68a27a07be36247e9f89827b48bc41dca27520fa
      https://github.com/llvm/llvm-project/commit/68a27a07be36247e9f89827b48bc41dca27520fa
  Author: Petar Avramovic <Petar.Avramovic at amd.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalize.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp

  Log Message:
  -----------
  AMDGPU/GlobalISel: RegbankLegalize rules for G_BITCAST (#193025)

Move RegbankLegalize handling for G_BITCAST from AMDGPURegBankLegalize to
AMDGPURegBankLegalizeRules by implementing rules for all supported types.


  Commit: 615678b37d738e9fa85b73ffcc0c998be7c5defe
      https://github.com/llvm/llvm-project/commit/615678b37d738e9fa85b73ffcc0c998be7c5defe
  Author: Weibo He <NewSigma at 163.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/IR/Verifier.cpp
    M llvm/test/Other/time-passes.ll
    M llvm/test/Transforms/Coroutines/ArgAddr.ll
    M llvm/test/Transforms/Coroutines/coro-align16.ll
    M llvm/test/Transforms/Coroutines/coro-align32.ll
    M llvm/test/Transforms/Coroutines/coro-align64-02.ll
    M llvm/test/Transforms/Coroutines/coro-align64.ll
    M llvm/test/Transforms/Coroutines/coro-align8-02.ll
    M llvm/test/Transforms/Coroutines/coro-align8.ll
    M llvm/test/Transforms/Coroutines/coro-alloc-with-param-O0.ll
    M llvm/test/Transforms/Coroutines/coro-alloc-with-param-O2.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-01.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-02.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-03.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-04.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-05.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-06.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-07.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-08.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-09.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-10.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-loop-carried-address.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-outside-frame.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-with-addrspace.ll
    M llvm/test/Transforms/Coroutines/coro-catchswitch-cleanuppad.ll
    M llvm/test/Transforms/Coroutines/coro-catchswitch.ll
    M llvm/test/Transforms/Coroutines/coro-debug-spill-dbg.declare.ll
    M llvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-00.ll
    M llvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-01.ll
    M llvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-02.ll
    M llvm/test/Transforms/Coroutines/coro-frame-arrayalloca.ll
    M llvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-00.ll
    M llvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-03.ll
    M llvm/test/Transforms/Coroutines/coro-frame-unreachable.ll
    M llvm/test/Transforms/Coroutines/coro-frame.ll
    M llvm/test/Transforms/Coroutines/coro-lifetime-end.ll
    M llvm/test/Transforms/Coroutines/coro-materialize.ll
    M llvm/test/Transforms/Coroutines/coro-padding.ll
    M llvm/test/Transforms/Coroutines/coro-param-copy.ll
    M llvm/test/Transforms/Coroutines/coro-readnone-02.ll
    M llvm/test/Transforms/Coroutines/coro-readnone.ll
    M llvm/test/Transforms/Coroutines/coro-spill-after-phi.ll
    M llvm/test/Transforms/Coroutines/coro-spill-corobegin.ll
    M llvm/test/Transforms/Coroutines/coro-spill-defs-before-corobegin.ll
    M llvm/test/Transforms/Coroutines/coro-spill-promise-02.ll
    M llvm/test/Transforms/Coroutines/coro-spill-promise.ll
    M llvm/test/Transforms/Coroutines/coro-spill-suspend.ll
    M llvm/test/Transforms/Coroutines/coro-split-00.ll
    M llvm/test/Transforms/Coroutines/coro-split-02.ll
    M llvm/test/Transforms/Coroutines/coro-split-addrspace.ll
    M llvm/test/Transforms/Coroutines/coro-split-alloc.ll
    M llvm/test/Transforms/Coroutines/coro-split-eh-00.ll
    M llvm/test/Transforms/Coroutines/coro-split-eh-01.ll
    M llvm/test/Transforms/Coroutines/coro-split-final-suspend.ll
    M llvm/test/Transforms/Coroutines/coro-split-hidden.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail-ppc64le.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail1.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail10.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail12.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail13.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail2.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail3.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail4.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail5.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail6.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail7.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail8.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail9.ll
    M llvm/test/Transforms/Coroutines/coro-split-no-lifetime.ll
    M llvm/test/Transforms/Coroutines/coro-split-noinline.ll
    M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-01.ll
    M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-02.ll
    M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-03.ll
    M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-04.ll
    M llvm/test/Transforms/Coroutines/coro-split-tbaa-md-neg-2.ll
    M llvm/test/Transforms/Coroutines/coro-split-tbaa-md-neg.ll
    M llvm/test/Transforms/Coroutines/coro-split-tbaa-md.ll
    M llvm/test/Transforms/Coroutines/coro-zero-alloca.ll
    M llvm/test/Transforms/Coroutines/gh107139-split-in-scc.ll
    M llvm/test/Transforms/Coroutines/gh114487-crash-in-cgscc.ll
    M llvm/test/Transforms/Coroutines/no-suspend.ll
    M llvm/test/Transforms/PGOProfile/chr_coro.ll
    M llvm/test/Transforms/SampleProfile/pseudo-probe-coro-debug-fix.ll
    M llvm/unittests/Transforms/Coroutines/ExtraRematTest.cpp
    M mlir/test/Target/LLVMIR/Import/intrinsic.ll
    M mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir

  Log Message:
  -----------
  [Coroutines] Add verifier checks for llvm.coro.begin and llvm.coro.id (#192887)

Close #156652
Close #191990


  Commit: b00e3a0986811d7a03cb469c7aa5f9117d306983
      https://github.com/llvm/llvm-project/commit/b00e3a0986811d7a03cb469c7aa5f9117d306983
  Author: Xavier Roche <xavier.roche at algolia.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M libcxx/include/limits
    M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp
    M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp
    M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp
    M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp

  Log Message:
  -----------
  [libc++] Fix numeric_limits::digits and digits10 for _BitInt(N) (#193002)

`digits` was `sizeof(T) * CHAR_BIT - is_signed`, which counts padding
bits for non-byte-aligned widths. For example, `unsigned _BitInt(13)`
reported `digits=16` instead of `13`. Computing it from
`__builtin_popcountg(~unsigned_type(0))` gives the right answer: padding
bits stay zero after bitwise NOT, so the popcount matches the value-bit
width.

`digits10 = digits * 3 / 10` was also wrong for `digits >= 256` (gave
76, should be 77). The new formula `digits * 1936274 / 6432163` matches
`floor(digits * log10(2))` exactly for every `digits` in `[1, 8388608]`,
i.e. the currently biggest possible `__BITINT_MAXWIDTH__` on Clang.

This is part of the [_BitInt(N) libc++
effort](https://discourse.llvm.org/t/bitint-n-support-in-libc-investigations-possible-improvements-looking-for-guidance/90063).

Assisted-by: Claude (Anthropic)

---------

Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>


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

  Changed paths:
    M mlir/lib/Conversion/VectorToSPIRV/VectorToSPIRV.cpp
    M mlir/test/Conversion/VectorToSPIRV/vector-to-spirv.mlir

  Log Message:
  -----------
  [mlir][SPIR-V] Lower boolean vector reductions (#192267)

Define SPIR-V OpAny/OpAll operations, lower vector.reduction <or>/<and>
on boolean vectors to spirv.Any/spirv.All


  Commit: ab4283959fd10fa347e0a60507b7101ad273fc57
      https://github.com/llvm/llvm-project/commit/ab4283959fd10fa347e0a60507b7101ad273fc57
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/test/Transforms/LICM/call-hoisting.ll

  Log Message:
  -----------
  [LICM] Remove unnecessary call arg in test (NFC) (#193159)

The load function only takes one argument. Avoid the signature
mismatch.


  Commit: b550a5e09420e02264a8d4b1f06a32db588d6e0b
      https://github.com/llvm/llvm-project/commit/b550a5e09420e02264a8d4b1f06a32db588d6e0b
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M libc/test/src/sys/socket/linux/connect_accept_test.cpp

  Log Message:
  -----------
  [libc] Fix riscv32 build after #192927 (#193152)


  Commit: 357d61fe48dd87e3fded22ded25f5c522c807ac6
      https://github.com/llvm/llvm-project/commit/357d61fe48dd87e3fded22ded25f5c522c807ac6
  Author: Ivan Kosarev <ivan.kosarev at amd.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/MIRPrinter.cpp
    R llvm/utils/update_mir_regclass_numbers

  Log Message:
  -----------
  [MIR] Always print symbolic INLINEASM operands (#192991)

We don't need the flag now that all tests are updated to use symbolic
operands.

Remove the update_mir_regclass_numbers script as it shouldn't be needed
anymore.


  Commit: dac2cb9a5a73cc3d82bcf64c24bf309cdf00bd29
      https://github.com/llvm/llvm-project/commit/dac2cb9a5a73cc3d82bcf64c24bf309cdf00bd29
  Author: Sohaib Iftikhar <sohaibiftikhar at google.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [LLVM][BUILD] Fix for #192887 (#193167)

Build fix for #192887


  Commit: 3db991b5c287617cedfdb5b2aa5b4cfdd1173a1c
      https://github.com/llvm/llvm-project/commit/3db991b5c287617cedfdb5b2aa5b4cfdd1173a1c
  Author: Baranov Victor <bar.victor.2002 at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang-tools-extra/clang-tidy/readability/IdentifierLengthCheck.cpp

  Log Message:
  -----------
  [clang-tidy][NFC] add numeric include for transform_reduce (#193165)

Should probably fix this failure:

```
FAILED: tools/clang/tools/extra/clang-tidy/readability/CMakeFiles/obj.clangTidyReadabilityModule.dir/IdentifierLengthCheck.cpp.o 
ccache /usr/bin/clang++ -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/build/tools/clang/tools/extra/clang-tidy/readability -I/vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/llvm-project/clang-tools-extra/clang-tidy/readability -I/vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/build/tools/clang/tools/extra/clang-tidy -I/vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/llvm-project/clang/include -I/vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/build/tools/clang/include -I/vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/build/include -I/vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fno-omit-frame-pointer -gline-tables-only -fsanitize=thread -fdiagnostics-color -ffunction-sections -fdata-sections -Xclang -fno-pch-timestamp -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -UNDEBUG -fno-exceptions -funwind-tables -fno-rtti -std=c++17 -Winvalid-pch -Xclang -include-pch -Xclang /vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/build/lib/Support/CMakeFiles/LLVMSupport.dir/cmake_pch.hxx.pch -Xclang -include -Xclang /vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/build/lib/Support/CMakeFiles/LLVMSupport.dir/cmake_pch.hxx -MD -MT tools/clang/tools/extra/clang-tidy/readability/CMakeFiles/obj.clangTidyReadabilityModule.dir/IdentifierLengthCheck.cpp.o -MF tools/clang/tools/extra/clang-tidy/readability/CMakeFiles/obj.clangTidyReadabilityModule.dir/IdentifierLengthCheck.cpp.o.d -o tools/clang/tools/extra/clang-tidy/readability/CMakeFiles/obj.clangTidyReadabilityModule.dir/IdentifierLengthCheck.cpp.o -c /vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/llvm-project/clang-tools-extra/clang-tidy/readability/IdentifierLengthCheck.cpp
/vol/worker/clangd-ubuntu-clang/clangd-ubuntu-tsan/llvm-project/clang-tools-extra/clang-tidy/readability/IdentifierLengthCheck.cpp:104:37: error: no member named 'transform_reduce' in namespace 'std'
  104 |   const unsigned LastUseLine = std::transform_reduce(
      |                                ~~~~~^
1 error generated.
```

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


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

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

  Log Message:
  -----------
  [clangd] [C++20] [Modules] Read module mappings from commands (#193158)

A problem in the design of supporting modules in clangd is, we assume
there is no duplicated module name for different module units in a
single project. But this is not techniquelly correct.

What ISO disallow is, duplicated module name with different module units
in a linked program. But in a project, we can have multiple program.

And also in practice, the program will still work if users hidden
certain symbols. Tools can't detect that.

After all, we need to support the duplicated module unit within
different module units. The solution in the patch is to lookup into the
compile commands in compilation database.

e.g.,

```C++
clang++ -std=c++20 a/a.cppm -c -fmodule-output=a/a.pcm -o a/a.o
clang++ -std=c++20 b/a.cppm -c -fmodule-output=b/a.pcm -o b/a.o

clang++ -std=c++20 consumer1.cpp -fmodule-file=a=a/a.pcm -c -o
consumer1.o
clang++ -std=c++20 consumer2.cpp -fmodule-file=a=b/a.pcm -c -o
consumer2.o
```

By looking at the commands, we can relate 'a/a.cppm' to 'a/a.pcm' and
'b/a.cppm' to 'b/a.pcm'. And we know consumer1.cpp is consuming
'a/a.pcm' as module 'a', and consumer2.cpp is consuming 'b/a.pcm' as
module 'b'.

So finally we can relate 'a' and 'a/a.cppm' together for 'consumer1.cpp'
and 'a' and 'b/a.cppm' together for 'consumer2.cpp'.

Note that this is not the ideal solution. As the information in the
compile commands may be out of date. We've already used scanning as a
validating helper but, maybe, we still need a listening mechanism to
observe the change in every source in time.

But after all, this should work in most cases and this may be what we
can do with the least change right now.

(We need to update the cache system in
clang-tools-extra/clangd/ProjectModules.cpp to make it work reliably)

AI Assisted.


  Commit: 06e70f60c9cc25a4dc321c7c9cc3b813e0191e06
      https://github.com/llvm/llvm-project/commit/06e70f60c9cc25a4dc321c7c9cc3b813e0191e06
  Author: Abid Qadeer <haqadeer at amd.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M flang/include/flang/Lower/PFTBuilder.h
    M flang/include/flang/Optimizer/Dialect/FIROps.td
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/PFTBuilder.cpp
    M flang/lib/Optimizer/CodeGen/CodeGen.cpp
    M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
    M flang/test/Fir/fir-ops.fir
    A flang/test/Lower/debug-use-stmt-module-multiple.f90
    A flang/test/Transforms/debug-module-use-imports.fir

  Log Message:
  -----------
  [flang][debug] Handle USE statements inside modules (#186184)

Previously, we only generated `fir.use_stmt` when a USE statement was
inside a function. USE statements inside modules were not handled,
resulting in missing debug information for transitive module
dependencies.

The problem can be seen with the following testcase:

```
  module mod_a
    integer :: x = 10
  end module mod_a

  module mod_b
    use mod_a
    integer :: y = 20
  end module mod_b

  program main
    use mod_b
    print *, x, y
  end program main

```
We only generate `fir.use_stmt` for mod_b and nothing for `mod_a`,
making symbols from `mod_a` (like `x`) inaccessible in the debugger.

This PR solves this problem by introducing ModuleDebugImportsOp
which represents a use statement in a module. It is then used to
generate di_imported_entity in AddDebugInfo. Note that we generate
flattened debug information (one di_imported_entity for each use statement
that we can transitively reach in each function). This is to side step a
GDB issue (https://sourceware.org/bugzilla/show_bug.cgi?id=34034).

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


  Commit: 5cc7956a254238204e1e4e1df0d5376769982d24
      https://github.com/llvm/llvm-project/commit/5cc7956a254238204e1e4e1df0d5376769982d24
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-04-21 (Tue, 21 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-vfadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmul-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fold-vp-fadd-and-vp-fmul.ll
    M llvm/test/CodeGen/RISCV/rvv/fold-vp-fsub-and-vp-fmul.ll
    M llvm/test/CodeGen/RISCV/rvv/pass-fast-math-flags-sdnode.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/vfadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfma-vp-combine.ll
    M llvm/test/CodeGen/RISCV/rvv/vfmul-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwadd-vp.ll

  Log Message:
  -----------
  [RISCV] Remove codegen for vp_fadd, vp_fmul (#191842)

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. These are removed in lockstep
as there are some combines that depend on these nodes like fadd + fmul
-> fma.


  Commit: bf24d742d94298d009ea05c01fa57f80be307fb8
      https://github.com/llvm/llvm-project/commit/bf24d742d94298d009ea05c01fa57f80be307fb8
  Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/test/TableGen/riscv-target-def.td
    M llvm/utils/TableGen/Basic/RISCVTargetDefEmitter.cpp

  Log Message:
  -----------
  [RISCV][NFC] Use IfDefEmitter in RISCVTargetDefEmitter (#193151)


  Commit: b78a0a02c181a6bfc4d49a37a535fc89c5598f2e
      https://github.com/llvm/llvm-project/commit/b78a0a02c181a6bfc4d49a37a535fc89c5598f2e
  Author: Sushant Gokhale <sgokhale at nvidia.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    A llvm/test/CodeGen/AArch64/sve-zext.ll

  Log Message:
  -----------
  [AArch64][SelectionDAG] Improve codegen for and(sext(Op), splat(1)) (#192405)

For vector ops, post vector ops legalization,
`and(sext(Op), splat(1)) -> zext(Op)`

Acts  as enabler for PR #192052 in some of the cases


  Commit: a99dd8344ea9ff92d2d12b056942542d17d9895c
      https://github.com/llvm/llvm-project/commit/a99dd8344ea9ff92d2d12b056942542d17d9895c
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/12-12-11-if-conv.ll
    M llvm/test/Transforms/LoopVectorize/2012-10-20-infloop.ll
    M llvm/test/Transforms/LoopVectorize/2012-10-22-isconsec.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/scalable-call.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-basic-vec.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vect-vscale-tune.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-fneg.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-type-conv.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-vector-reverse-mask4.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve2-histcnt-outerloop-scevaddrec.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/type-shrinkage-zext-costs.ll
    M llvm/test/Transforms/LoopVectorize/AMDGPU/divergent-runtime-check.ll
    M llvm/test/Transforms/LoopVectorize/ARM/gcc-examples.ll
    M llvm/test/Transforms/LoopVectorize/LoongArch/loongarch-interleaved.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/riscv-interleaved.ll
    M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/sve2-histcnt-vplan.ll
    M llvm/test/Transforms/LoopVectorize/X86/constant-vector-operand.ll
    M llvm/test/Transforms/LoopVectorize/X86/gcc-examples.ll
    M llvm/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll
    M llvm/test/Transforms/LoopVectorize/X86/min-trip-count-switch.ll
    M llvm/test/Transforms/LoopVectorize/X86/parallel-loops-after-reg2mem.ll
    M llvm/test/Transforms/LoopVectorize/X86/reduction-small-size.ll
    M llvm/test/Transforms/LoopVectorize/X86/register-assumption.ll
    M llvm/test/Transforms/LoopVectorize/X86/runtime-limit.ll
    M llvm/test/Transforms/LoopVectorize/X86/small-size.ll
    M llvm/test/Transforms/LoopVectorize/X86/tail_folding_and_assume_safety.ll
    M llvm/test/Transforms/LoopVectorize/X86/unroll-small-loops.ll
    M llvm/test/Transforms/LoopVectorize/X86/unroll_selection.ll
    M llvm/test/Transforms/LoopVectorize/bzip_reverse_loops.ll
    M llvm/test/Transforms/LoopVectorize/calloc.ll
    M llvm/test/Transforms/LoopVectorize/consec_no_gep.ll
    M llvm/test/Transforms/LoopVectorize/cpp-new-array.ll
    M llvm/test/Transforms/LoopVectorize/dbg.value.ll
    M llvm/test/Transforms/LoopVectorize/discriminator.ll
    M llvm/test/Transforms/LoopVectorize/float-reduction.ll
    M llvm/test/Transforms/LoopVectorize/gcc-examples.ll
    M llvm/test/Transforms/LoopVectorize/gep_with_bitcast.ll
    M llvm/test/Transforms/LoopVectorize/i8-induction.ll
    M llvm/test/Transforms/LoopVectorize/if-conversion-reduction.ll
    M llvm/test/Transforms/LoopVectorize/if-pred-not-when-safe.ll
    M llvm/test/Transforms/LoopVectorize/increment.ll
    M llvm/test/Transforms/LoopVectorize/interleaved-accesses-1.ll
    M llvm/test/Transforms/LoopVectorize/interleaved-acess-with-remarks.ll
    M llvm/test/Transforms/LoopVectorize/intrinsic.ll
    M llvm/test/Transforms/LoopVectorize/metadata-unroll.ll
    M llvm/test/Transforms/LoopVectorize/metadata-width.ll
    M llvm/test/Transforms/LoopVectorize/minmax_reduction.ll
    M llvm/test/Transforms/LoopVectorize/no_int_induction.ll
    M llvm/test/Transforms/LoopVectorize/nofloat.ll
    M llvm/test/Transforms/LoopVectorize/nontemporal.ll
    M llvm/test/Transforms/LoopVectorize/ptr_loops.ll
    M llvm/test/Transforms/LoopVectorize/read-only.ll
    M llvm/test/Transforms/LoopVectorize/reverse_iter.ll
    M llvm/test/Transforms/LoopVectorize/runtime-check-address-space.ll
    M llvm/test/Transforms/LoopVectorize/runtime-check-readonly-address-space.ll
    M llvm/test/Transforms/LoopVectorize/same-base-access.ll
    M llvm/test/Transforms/LoopVectorize/scalar-select.ll
    M llvm/test/Transforms/LoopVectorize/simple-unroll.ll
    M llvm/test/Transforms/LoopVectorize/skip-iterations.ll
    M llvm/test/Transforms/LoopVectorize/small-loop.ll
    M llvm/test/Transforms/LoopVectorize/start-non-zero.ll
    M llvm/test/Transforms/LoopVectorize/struct_access.ll
    M llvm/test/Transforms/LoopVectorize/unroll_novec.ll
    M llvm/test/Transforms/LoopVectorize/value-ptr-bug.ll
    M llvm/test/Transforms/LoopVectorize/vectorize-once.ll
    M llvm/test/Transforms/LoopVectorize/write-only.ll

  Log Message:
  -----------
  [LV][NFC] Remove unnecessary extra passes from some tests (#193155)

Many tests were running extra passes after loop-vectorize, but they made
no difference to the outcome. If tests don't require these extra passes,
then we shouldn't run them because it increases the testing time.


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

  Changed paths:
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
    M lldb/test/Shell/ScriptInterpreter/Python/io.test
    M lldb/tools/driver/Driver.cpp

  Log Message:
  -----------
  [lldb][windows] fix script interpreter file parsing (#193006)


  Commit: 9584e9c9b2691503ac0d2aa039c9e273322ef63e
      https://github.com/llvm/llvm-project/commit/9584e9c9b2691503ac0d2aa039c9e273322ef63e
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/sve-insert-element.ll

  Log Message:
  -----------
  [LLVM][CodeGen][SVE] Implement custom lowering for insert_vector_elt_nxv1i1. (#192494)

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


  Commit: 337ad44a3e585f62bcf2e30b5766146cb8aacaca
      https://github.com/llvm/llvm-project/commit/337ad44a3e585f62bcf2e30b5766146cb8aacaca
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/include/llvm/Debuginfod/BuildIDFetcher.h
    M llvm/include/llvm/Object/BuildID.h
    M llvm/lib/DebugInfo/Symbolize/Symbolize.cpp
    M llvm/lib/Debuginfod/BuildIDFetcher.cpp
    M llvm/lib/Object/BuildID.cpp
    M llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
    M llvm/lib/ProfileData/InstrProfCorrelator.cpp
    M llvm/tools/llvm-debuginfod-find/llvm-debuginfod-find.cpp
    M llvm/tools/llvm-objdump/llvm-objdump.cpp

  Log Message:
  -----------
  [llvm] Errorize DebuginfodFetcher for inspection at call-sites (#191191)

Failure to fetch debuginfod is rarely an error, but there are cases where
we want to distinguish error reasons down the line, for example in order
to test connection timeouts.


  Commit: b460f296d6ddd6205cec346e4fe9f98064c2db71
      https://github.com/llvm/llvm-project/commit/b460f296d6ddd6205cec346e4fe9f98064c2db71
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-04-21 (Tue, 21 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-vfsqrt-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfsqrt-vp.ll

  Log Message:
  -----------
  [RISCV] Remove codegen for vp_sqrt (#191837)

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_sqrt from #179622.


  Commit: d1f4b79ec8882f664018e35dd57e8b00c55366d0
      https://github.com/llvm/llvm-project/commit/d1f4b79ec8882f664018e35dd57e8b00c55366d0
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LICM.cpp
    M llvm/test/Transforms/LICM/call-hoisting.ll
    M llvm/test/Transforms/LICM/pr54495.ll

  Log Message:
  -----------
  [LICM] Remove unnecessary check during store hoisting (#187529)

When hoisting stores, we check for interfering uses. This is done
by getting the clobbering def for the use and checking whether it
is outside the loop, which implies that no store in the loop can
interfere with it.

However, in addition to that, we check that the memory use does
not occur before the store. I believe that this additional check
is unnecessary, as if the use could be affected by the store, the
clobber walk would have pointed to the memory phi, not outside the
loop.

I think this check was added because MemorySSA had trouble with
loop-carried dependencies in the past (like in #54682), but this
should no longer be a problem.

This allows store hoisting in cases where there are unrelated
loads before the store.


  Commit: 45db5e46b2efc0a9891a6e6af74eb85efbcc48ac
      https://github.com/llvm/llvm-project/commit/45db5e46b2efc0a9891a6e6af74eb85efbcc48ac
  Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/TargetParser/RISCVISAInfo.cpp

  Log Message:
  -----------
  [RISCV][NFC] Remove unused RISCVExtBit (#193153)

It seems I forgot to remove it in #135600.


  Commit: fc7c25738635e98c58568920e36c1e18ae68ca0c
      https://github.com/llvm/llvm-project/commit/fc7c25738635e98c58568920e36c1e18ae68ca0c
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M libcxx/src/any.cpp

  Log Message:
  -----------
  [libc++] Fix any.cpp not compiling with the minimum header version >= 7 (#193183)

The namespace was accidentally closed outside the header version check
while it was opened inside the check. This moves the closing code into
the check.


  Commit: 853d7c9b2347593a8100b6a879fb63d811b6dfe4
      https://github.com/llvm/llvm-project/commit/853d7c9b2347593a8100b6a879fb63d811b6dfe4
  Author: Petar Avramovic <Petar.Avramovic at amd.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalize.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.h
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp

  Log Message:
  -----------
  AMDGPU/GlobalISel: RegbankLegalize rules for merge-like opcodes (#193026)

Move RegbankLegalize handling for G_BUILD_VECTOR, G_MERGE_VALUES and
G_CONCAT_VECTORS from AMDGPURegBankLegalize to AMDGPURegBankLegalizeRules
by implementing rules for all supported types.


  Commit: 3600cd824d5af0711154a6199c1cbb39e4a1ec61
      https://github.com/llvm/llvm-project/commit/3600cd824d5af0711154a6199c1cbb39e4a1ec61
  Author: EasyOn Aaditya <115080342+easyonaadit at users.noreply.github.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Analysis/ConstantFolding.cpp
    M llvm/test/Transforms/InstSimplify/ConstProp/AMDGPU/wave.reduce.ll

  Log Message:
  -----------
  [AMDGPU] Unmark wave reduce intrinsics for constant folding (#193142)

The `add`, `sub`, and `xor` wave reduction intrinsics
cannot be constant folded, as `add` and `sub` need
to be multipled by the number of active lanes, and
`xor` depends on the parity of the number of
active lanes.


  Commit: b3647eb0830f62c1ba0fe94dc9f325b7a205d7fd
      https://github.com/llvm/llvm-project/commit/b3647eb0830f62c1ba0fe94dc9f325b7a205d7fd
  Author: Baranov Victor <bar.victor.2002 at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang-tools-extra/clang-tidy/readability/IdentifierLengthCheck.cpp
    M clang-tools-extra/clang-tidy/readability/IdentifierLengthCheck.h
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/docs/clang-tidy/checks/readability/identifier-length.rst
    R clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-line-count-threshold.cpp

  Log Message:
  -----------
  Revert "[clang-tidy][readability-identifier-length] Add a line count threshold" (#193182)

Reverts llvm/llvm-project#185319


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/copyable_reorder.ll

  Log Message:
  -----------
  Revert "[SLP] Normalize copyable operand order to group loads for better vectorization"

This reverts commit 6c35bdbea235fa7f5dd10497b049ed5f328b9124 to fix
issues, reported in https://github.com/llvm/llvm-project/pull/189181#issuecomment-4286829960

Reviewers: 

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


  Commit: 47918c2c0a882943e7ac8ce67f9fbf463a3b1f60
      https://github.com/llvm/llvm-project/commit/47918c2c0a882943e7ac8ce67f9fbf463a3b1f60
  Author: Jan Leyonberg <jan_sjodin at yahoo.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/include/clang/CIR/Dialect/IR/CIROps.td
    M clang/lib/CIR/CodeGen/CIRGenBuilder.cpp
    A clang/test/CIR/CodeGen/amdgpu-array-addrspace.cpp

  Log Message:
  -----------
  [CIR] Make array decay and get_element op perserve address spaces (#192361)

This patch makes sure that the maybeBuildArrayDecay function takes
address spaces into account and makes the get_element op preserve the
address space of the base pointer.

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


  Commit: af5fb3870a00cb24a5de8193cadcd895d0028300
      https://github.com/llvm/llvm-project/commit/af5fb3870a00cb24a5de8193cadcd895d0028300
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/undefined_behavior.ll

  Log Message:
  -----------
  [Attributor] Clarify volatile null pointer behavior (NFCI) (#193190)

The comment was referring to volatile stores in particular, which
are specified as non-willreturn. However, allowing volatile accesses
on null (independently of null_pointer_is_valid) is a general
provision that is independent of the access kind.

The actual behavior was still correct, because volatile loads are
considered as writing inaccessible memory, so the mayWriteToMemory()
check was ultimately redundant.

Add a test to make sure volatile load is handled correctly.


  Commit: 8e132f78bfb070effd247e85b19e3c84b9e84bac
      https://github.com/llvm/llvm-project/commit/8e132f78bfb070effd247e85b19e3c84b9e84bac
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M cmake/Modules/GetToolchainDirs.cmake
    M flang-rt/cmake/modules/AddFlangRT.cmake
    M runtimes/CMakeLists.txt
    A runtimes/cmake/config-Fortran.cmake

  Log Message:
  -----------
  [runtimes][CMake] Move Fortran support code from flang-rt (#171610)

Common CMake code to be used by flang-rt and openmp to emit Flang module
files. Most of the code is not yet used within this PR.

Extracted out of #171515 for review by @petrhosek.


  Commit: cf1f7c53342594a6a004fc7d75e41a9ff009883c
      https://github.com/llvm/llvm-project/commit/cf1f7c53342594a6a004fc7d75e41a9ff009883c
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/test/Transforms/Attributor/ArgumentPromotion/X86/attributes.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/chained.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/musttail.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/sret.ll
    M llvm/test/Transforms/Attributor/align.ll
    M llvm/test/Transforms/Attributor/call-simplify-pointer-info.ll
    M llvm/test/Transforms/Attributor/dereferenceable-2-inseltpoison.ll
    M llvm/test/Transforms/Attributor/dereferenceable-2.ll
    M llvm/test/Transforms/Attributor/liveness.ll
    M llvm/test/Transforms/Attributor/nonnull.ll
    M llvm/test/Transforms/Attributor/value-simplify.ll

  Log Message:
  -----------
  [Attributor] Regenerate test checks (NFC) (#193192)

To avoid spurious invariant.load changes in future changes.


  Commit: 044e21f04311fb36a996d7ca7a8eab86846bd39b
      https://github.com/llvm/llvm-project/commit/044e21f04311fb36a996d7ca7a8eab86846bd39b
  Author: Dominik Steenken <dost at de.ibm.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/lib/Headers/vecintrin.h
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector2.c

  Log Message:
  -----------
  [SystemZ] Fix wrong mask for float vec_insert (#192967)

This commit fixes an error in vec_insert, where the index masking
effectively made the last two float elements of a vector non-insertable.

co-authored-by: @Andreas-Krebbel


  Commit: 3de6b5c685b38f7c63c8d81e8b6d6498d3dd0eb1
      https://github.com/llvm/llvm-project/commit/3de6b5c685b38f7c63c8d81e8b6d6498d3dd0eb1
  Author: Davide Grohmann <davide.grohmann at arm.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M mlir/lib/Dialect/SPIRV/IR/SPIRVTypes.cpp
    M mlir/test/Conversion/FuncToSPIRV/types-to-spirv.mlir

  Log Message:
  -----------
  [mlir][spirv] Fix Float8EXT type conversion legality (#192466)

Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>


  Commit: 78cb9fbbb08f63ba19a984858df7870f68709a53
      https://github.com/llvm/llvm-project/commit/78cb9fbbb08f63ba19a984858df7870f68709a53
  Author: Frederick Vu <100011202+FrederickVu at users.noreply.github.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/AArch64/pr161013.ll
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.128bit.ll
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.256bit.ll
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.64bit.ll
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.96bit.ll
    M llvm/test/CodeGen/AMDGPU/buffer-fat-pointers-memcpy.ll
    M llvm/test/CodeGen/AMDGPU/load-constant-i16.ll
    M llvm/test/CodeGen/AMDGPU/load-constant-i8.ll
    M llvm/test/CodeGen/AMDGPU/load-global-i8.ll
    M llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-lastuse-metadata.ll
    M llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-nontemporal-metadata.ll
    M llvm/test/CodeGen/AMDGPU/move-to-valu-lshl_add.ll
    A llvm/test/CodeGen/AMDGPU/srl-bitcast-bv.ll
    M llvm/test/CodeGen/NVPTX/f32x2-convert-i32x2.ll
    M llvm/test/CodeGen/NVPTX/i32x2-instructions.ll
    A llvm/test/CodeGen/NVPTX/srl-bitcast-bv.ll

  Log Message:
  -----------
  [DAG] Add Srl combine for extracting last element of BUILD_VECTOR (#181412)

While working on another combine, I noticed some redundant zext shift
pairs `v_lshrrev_b32 + v_lshlrev_b32` coming from a `build_vector(undef,
x)` created by `TargetLowering::SimplifyDemandedBits` and a `srl`
created by `lowerEXTRACT_VECTOR_ELT`.


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

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h
    M llvm/lib/Target/AMDGPU/AMDGPUInstructions.td
    M llvm/test/CodeGen/AMDGPU/flat-scratch-svs.ll
    M llvm/test/CodeGen/AMDGPU/idot2.ll
    M llvm/test/CodeGen/AMDGPU/idot4s.ll
    M llvm/test/CodeGen/AMDGPU/idot4u.ll
    M llvm/test/CodeGen/AMDGPU/idot8s.ll
    M llvm/test/CodeGen/AMDGPU/idot8u.ll

  Log Message:
  -----------
  [AMDGPU] Prefer mul24 over mad24 on SDWA targets (#193033)

If either of a mul24's operands can potentially fold into a SDWA
pattern, then don't fold into a mad24 node (which doesn't have SDWA
variants).

Fixes regressions I first noticed in #162242 - but turns out its an
older problem


  Commit: ed34ee3a728d7df9db88a337d018ba9e405e23bc
      https://github.com/llvm/llvm-project/commit/ed34ee3a728d7df9db88a337d018ba9e405e23bc
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [mlir] Assert region is within config scope in RegionPatternRewriteDriver (#193177)

Assisted-by: Claude Code


  Commit: a1dfc8d64e1faa752f020a8212782362b179416d
      https://github.com/llvm/llvm-project/commit/a1dfc8d64e1faa752f020a8212782362b179416d
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Transforms/CSE.h
    M mlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h
    M mlir/include/mlir/Transforms/Passes.td
    M mlir/lib/Dialect/Transform/IR/TransformOps.cpp
    M mlir/lib/Transforms/CSE.cpp
    M mlir/lib/Transforms/Canonicalizer.cpp
    M mlir/lib/Transforms/Utils/CMakeLists.txt
    A mlir/lib/Transforms/Utils/CSE.cpp
    M mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
    M mlir/test/Pass/run-reproducer.mlir
    A mlir/test/Transforms/canonicalize-cse-between-iterations.mlir
    M mlir/test/Transforms/composite-pass.mlir

  Log Message:
  -----------
  [mlir] Add option to run CSE between greedy rewriter iterations (#193081)

The greedy pattern rewrite driver previously only deduplicated constant
ops between iterations (via the operation folder). Structurally
identical non-constant subexpressions remained distinct SSA values,
blocking fold patterns that only fire when operands match. Reaching the
true fixpoint required chaining an external `cse,canonicalize,...`
pipeline.

Add an opt-in `cseBetweenIterations` flag on `GreedyRewriteConfig` that
runs full CSE on the scoped region after each pattern-application
iteration, and surface it as a `cse-between-iterations` option on the
canonicalizer pass. Off by default to preserve existing performance
characteristics.

Assisted-by: Claude Code


  Commit: 95c5836971929b26d45755d4036686c1c9dbbb6f
      https://github.com/llvm/llvm-project/commit/95c5836971929b26d45755d4036686c1c9dbbb6f
  Author: Jasmine Tang <jjasmine at igalia.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
    M llvm/test/CodeGen/AMDGPU/maximumnum.ll
    M llvm/test/CodeGen/AMDGPU/minimumnum.ll

  Log Message:
  -----------
  [AMDGPU] Add legalizer rule support for AMDGPU's regbank fminimumnum and fmaximumnum (#192719)

Part of #192497


  Commit: 744279b9f17344433dbdb471cb47fb225f2954c0
      https://github.com/llvm/llvm-project/commit/744279b9f17344433dbdb471cb47fb225f2954c0
  Author: Matthias Springer <me at m-sp.org>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
    M mlir/lib/Conversion/ArithAndMathToAPFloat/ArithToAPFloat.cpp
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    M mlir/lib/ExecutionEngine/APFloatWrappers.cpp
    M mlir/test/Conversion/ArithAndMathToAPFloat/arith-to-apfloat.mlir
    M mlir/test/Dialect/Arith/canonicalize.mlir
    M mlir/test/Dialect/Arith/ops.mlir
    M mlir/test/Integration/Dialect/Arith/CPU/test-apfloat-emulation.mlir

  Log Message:
  -----------
  [mlir][arith] Add `arith.flush_denormals` operation (#192641)

Add a new `arith.flush_denormals` operation. The operation takes a
floating-point value as input and returns zero if the value is denormal.
If the input is not denormal, the operation passes through the input.
This commit also adds support to the `ArithToAPFloat` infrastructure.

Running example:
```mlir
%flush_a = arith.flush_denormals %a : f32
%flush_b = arith.flush_denormals %b : f32
%res = arith.addf %flush_a, %flush_b : f32
%flush_res = arith.flush_denormals %res : f32
```

The exact lowering path depends on the backend and is not implemented as
part of this PR:
- Per-instruction mode. E.g., on NVIDIA architectures, the above example
can lower to `add.ftz.f32 dest, a, b`.
- Global status register. E.g., on `x86_64`, the above example can lower
to `_MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
_MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON); r = a + b;
_MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_OFF);
_MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_OFF);`. Subsequent
ON-OFF-ON switches can be folded away.
- Emulation via integer arithmetics. Check the bit pattern of the input
float (depending on the specific FP type) and pass-through either the
input or a zero constant. This lowering approach works on all
architectures.

Assisted-by: claude-opus-4.7-thinking-high


  Commit: 7134ce5d721508476c80f93c9d8ddaa1ad207913
      https://github.com/llvm/llvm-project/commit/7134ce5d721508476c80f93c9d8ddaa1ad207913
  Author: Zeyi Xu <mitchell.xu2 at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang-tools-extra/clang-tidy/readability/IdentifierLengthCheck.cpp

  Log Message:
  -----------
  Revert "[clang-tidy][NFC] add numeric include for transform_reduce" (#193200)

After experiment, this didn't fix the build failure. So revert this to
keep the trunk clean.

Reverts llvm/llvm-project#193165


  Commit: 037a48aa4b9a6da45bb72aba4304a99dc0491792
      https://github.com/llvm/llvm-project/commit/037a48aa4b9a6da45bb72aba4304a99dc0491792
  Author: Shreeyash Pandey <shreeyash335 at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
    M llvm/test/Transforms/InstCombine/fcmp.ll

  Log Message:
  -----------
  [InstCombine] fold fabs(uitofp(i16 a) - uitofp(i16 b)) < 1.0 to a == b (#191378)

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

When a and b are types with bitwidth (16 bits) smaller than the mantissa
for float32 (24 bits), they will be exact and their absolute difference
would be integral ±1 or greater if a != b. On the corollary, if their
difference is < 1.0, this implies that a = b.

This patch exploits this fact to fold the expression to just a single
icmp.


  Commit: b7cfcfe03deb679befe821d0c7a9c302f8645763
      https://github.com/llvm/llvm-project/commit/b7cfcfe03deb679befe821d0c7a9c302f8645763
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/ProfileData/Coverage/CoverageMapping.cpp

  Log Message:
  -----------
  [llvm-cov] Fix error propagation in CoverageMapping::load() (#193197)

Fix a subtle issue on the error path: if loadFromFile() fails there is no error to consume.


  Commit: a976a72c12c55258ce52bbd7a5eff8dcd3c9fce3
      https://github.com/llvm/llvm-project/commit/a976a72c12c55258ce52bbd7a5eff8dcd3c9fce3
  Author: EasyOn Aaditya <115080342+easyonaadit at users.noreply.github.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
    M llvm/test/CodeGen/AMDGPU/vgpr-spill.mir

  Log Message:
  -----------
  [AMDGPU] Multi dword spilling for unaligned tuples (#183701)

While spilling unaligned tuples, rather than breaking the
spill into 32-bit accesses, spill the first register as a single
32-bit spill, and spill the remainder of the tuple as an aligned tuple.
Some additional bookkeeping is required in the spilling
loop to manage the state.

References: https://github.com/llvm/llvm-project/pull/177317


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

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses.ll

  Log Message:
  -----------
  [LV] Add test for interaction between interleaved and strided load. nfc (#192990)

For #147297

Co-authored-by: Luke Lau <luke at igalia.com>


  Commit: 300285ed5f4f2e2ceb15e1afcbfcc6d6464aa62a
      https://github.com/llvm/llvm-project/commit/300285ed5f4f2e2ceb15e1afcbfcc6d6464aa62a
  Author: Erich Keane <ekeane at nvidia.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenCXXABI.cpp
    M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
    M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
    M clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
    M clang/lib/CIR/CodeGen/CIRGenModule.cpp
    M clang/lib/CIR/CodeGen/CIRGenModule.h

  Log Message:
  -----------
  [CIR][NFCI] Remove 'isConstant' from getCIRLinkageForX (#193100)

This variable has since disappeared from classic compiler, and we
weren't using it anywhere anyway. This patch gets us back in sync with
the classic codegen for these interfaces.


  Commit: d629a221707eab078ebf74e7367cd8c6e4cbe9f9
      https://github.com/llvm/llvm-project/commit/d629a221707eab078ebf74e7367cd8c6e4cbe9f9
  Author: Peter Waller <peter.waller at arm.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M polly/unittests/CMakeLists.txt

  Log Message:
  -----------
  [Polly] Disable PCH reuse for unit tests (#193209)

Polly library targets already disable PCH reuse because Polly
unconditionally builds with -fno-rtti and -fno-exceptions. Reusing LLVM
PCHs that were built with RTTI or exceptions enabled is incompatible
with Clang when compiling Polly targets under those flags.

After 47eb8b43c990 enabled PCH reuse for unit tests, Polly unit tests
can hit the same mismatch as the library targets. Pass DISABLE_PCH_REUSE
through the shared add_polly_unittest wrapper so all Polly unit tests
follow the existing Polly target policy.

cc @aengelke -- a minor fix for polly.


  Commit: 1697b964ffcf476ff02c4e659bd009c3f949236c
      https://github.com/llvm/llvm-project/commit/1697b964ffcf476ff02c4e659bd009c3f949236c
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M runtimes/cmake/config-Fortran.cmake

  Log Message:
  -----------
  [runtimes] Protect use of undefined CMAKE_Fortran_COMPILER (#193210)

Unlike everything else in CMake, cmake_path does not assume a default
value for undefined variables, but instead throws an error:
```
CMake Error at cmake/config-Fortran.cmake:77 (cmake_path):
  cmake_path undefined variable for input path.
Call Stack (most recent call first):
  CMakeLists.txt:284 (include)
```
Protect the use of cmake_path to not trigger this error when
CMAKE_Fortran_COMPILER is undefined.

Fixes the flang-aarch64-out-of-tree buildbot after #171610.


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

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/AArch64/dag-ReplaceAllUsesOfValuesWith.ll
    M llvm/test/CodeGen/AMDGPU/idot2.ll
    M llvm/test/CodeGen/Hexagon/isel-fold-shl-zext.ll
    M llvm/test/CodeGen/X86/avx-vinsertf128.ll

  Log Message:
  -----------
  [DAG] Reassociate (add (add X, Y), X) --> add(add(X, X), Y) (#162242)

Attempt to bring together self-additions, to help with folding to shift/mul/address patterns


  Commit: 1566b6344a2bc3fa9c236837dd46d233cd64008b
      https://github.com/llvm/llvm-project/commit/1566b6344a2bc3fa9c236837dd46d233cd64008b
  Author: Phoebe Wang <phoebe.wang at intel.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/lib/Driver/ToolChains/Arch/X86.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/test/Driver/cl-x86-flags.c

  Log Message:
  -----------
  [X86][clang-cl] Make AVX10.2 map to the same target-cpu as AVX10.1 (#193147)

Diamondrapids contains a large feature set APX, which should not be
enabled by AVX10.2


  Commit: 941e8ef04ebb35b7b96c58060786f73bb44b1a1a
      https://github.com/llvm/llvm-project/commit/941e8ef04ebb35b7b96c58060786f73bb44b1a1a
  Author: Matthias Springer <me at m-sp.org>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/Arith/Transforms/Passes.h
    M mlir/include/mlir/Dialect/Arith/Transforms/Passes.td
    M mlir/lib/Dialect/Arith/Transforms/ExpandOps.cpp
    A mlir/test/Dialect/Arith/expand-flush-denormals.mlir

  Log Message:
  -----------
  [mlir][arith] Add support for `arith.flush_denormals` emulation (#192660)

Add lowering pattern and a new pass `arith-expand-flush-denormals` that
rewrites `arith.flush_denormals` ops with integer arithmetics. This
lowering is useful for target architectures that cannot pattern-match
`arith.flush_denormals` + other FP arithmetics into special instructions
with FTZ semantics.

Assisted-by: claude-opus-4.7-thinking-high

Depends on #192641.


  Commit: 8abcce06997842e89cf55da655e337e46290f2a2
      https://github.com/llvm/llvm-project/commit/8abcce06997842e89cf55da655e337e46290f2a2
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    R llvm/test/Transforms/LoopVectorize/AArch64/Oz-and-forced-vectorize.ll
    A llvm/test/Transforms/PhaseOrdering/AArch64/Oz-and-forced-vectorize.ll

  Log Message:
  -----------
  [LoopVectorize] Generate test checks (NFC) (#193216)

Also move the test to PhaseOrdering, as it tests the full pipeline.


  Commit: dc73cabfa38c7c3949939a69c5b66f9c982588e1
      https://github.com/llvm/llvm-project/commit/dc73cabfa38c7c3949939a69c5b66f9c982588e1
  Author: Phoebe Wang <phoebe.wang at intel.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    A llvm/test/CodeGen/X86/bfloat-int-cvt.ll

  Log Message:
  -----------
  [X86][AVX10.2] Skip FP2I/I2FP customizations for bf16 (#193137)

Because AVX10.2 doesn't provide native BF16 FP2I/I2FP conversion
instructions.


  Commit: e5925fb3a7febcd7119191af565ca99cc725c262
      https://github.com/llvm/llvm-project/commit/e5925fb3a7febcd7119191af565ca99cc725c262
  Author: Ryan Mansfield <ryan_mansfield at apple.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/test/tools/llvm-objdump/MachO/archive-headers.test
    M llvm/test/tools/llvm-objdump/MachO/bind2.test
    M llvm/test/tools/llvm-objdump/MachO/compact-unwind-i386.test
    M llvm/test/tools/llvm-objdump/MachO/compact-unwind-x86_64.test
    M llvm/test/tools/llvm-objdump/MachO/dis-no-leading-addr.test
    M llvm/test/tools/llvm-objdump/MachO/dis-symname.test
    M llvm/test/tools/llvm-objdump/MachO/disassemble-kextbundle.test
    M llvm/test/tools/llvm-objdump/MachO/info-plist.test
    M llvm/test/tools/llvm-objdump/MachO/print-thread.test
    M llvm/test/tools/llvm-objdump/MachO/rpaths.test
    M llvm/test/tools/llvm-objdump/MachO/section-contents.test
    M llvm/test/tools/llvm-objdump/MachO/unwind-info.test
    M llvm/test/tools/llvm-objdump/MachO/weak-bind.test

  Log Message:
  -----------
  [NFC][llvm-objdump] Use CHECK-NEXT in MachO tests (#192696)

[NFC][llvm-objdump] Use CHECK-NEXT in MachO tests


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

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses.ll

  Log Message:
  -----------
  [LV][RISCV][NFC] Update strided-accesses.ll to UTC version 6 (#193211)


  Commit: 1a0269771e0fb4299f68da700df22a0e70cd2985
      https://github.com/llvm/llvm-project/commit/1a0269771e0fb4299f68da700df22a0e70cd2985
  Author: Sean Perry <perry at ca.ibm.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/test/ClangScanDeps/modules-full-by-mult-mod-names-diagnostics.c
    M clang/test/ClangScanDeps/modules-pch-common-stale.c
    M clang/test/ClangScanDeps/modules-pch-imports.c
    M clang/test/ClangScanDeps/optimize-vfs-pch.m

  Log Message:
  -----------
  [LIT] Add -nostdinc so system headers aren't searched with implicit module maps (#192125)

These lit tests are implicitly loading the module maps found in the
directories found in the search path. On z/OS this ends up trying to
load an invalid module map that is never used with the actual clang
compilation. Add `-nostdinc` to avoid searching dirs outside of the ones
being tested.


  Commit: 216bccbee13709099f953b2c8493de51a7aaf85a
      https://github.com/llvm/llvm-project/commit/216bccbee13709099f953b2c8493de51a7aaf85a
  Author: Steven Perron <stevenperron at google.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVPushConstantAccess.cpp
    A llvm/test/CodeGen/SPIRV/vk-pushconstant-gep-constant-expr.ll

  Log Message:
  -----------
  [SPIR-V] Handle constant expression uses of PushConstant globals (#193005)

When lowering  globals, users that are constant
expressions cannot be rewritten by the push constant access path
because a simple replacement with the result of a call to an intrinsic
will no longer be a constant. The uses of the GV that are constant
expression must be replaced with instruction before trying to rewrite
them.


  Commit: 6a6f3b07e607168e90e5541da36422d3d29748ed
      https://github.com/llvm/llvm-project/commit/6a6f3b07e607168e90e5541da36422d3d29748ed
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/test/Transforms/SLPVectorizer/X86/copyable_reorder.ll

  Log Message:
  -----------
  [SLP][NFC]Add a test with non-reordable operands of non-commutative copyables, NFC



Reviewers: 

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


  Commit: d841a9383d5d3a0ffe882be7f8aaf4b818a2a846
      https://github.com/llvm/llvm-project/commit/d841a9383d5d3a0ffe882be7f8aaf4b818a2a846
  Author: Steven Perron <stevenperron at google.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/gep-i8-ptr-param-struct.ll

  Log Message:
  -----------
  [SPIR-V] Deduce argument types before doing GEP (#193046)

In SPIRVEmitIntrinsics, we try to get the type for a GEP by looking at
the type of the input pointer, and deducing the output pointer type from
it. If the input pointer is a function parameter, we do not have the
type
available yet because we deduce the type of the parameters after
processing the GEPs.

There is no reason to have that order. Moving the parameter passes
earlier so the GEP type deduction works.

The same test exposed a problem with function parameter attributes. They
require Kernel, so we no longer emit them when creating a shader.


<!-- branch-stack-start -->

<!-- branch-stack-end -->


  Commit: e4afaa1fcfccc91f65c3922860a2c3c27582e366
      https://github.com/llvm/llvm-project/commit/e4afaa1fcfccc91f65c3922860a2c3c27582e366
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVCodeGenPrepare.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-int.ll

  Log Message:
  -----------
  [RISCV] Further improved exact VLEN lowering for mul reductions (#192688)

This is a follow up to 973a05ed. When we have a horizontal multiply
reduction at high LMUL and we have exact knowledge of VLEN, we can
extract the individual m1 sub-vectors and perform the entire reduction
tree at m1. This reduces the work performed (by not performing high LMUL
operations on a vectors with empty tails), and decreases register
pressure. Interestingly, we don't even increase dynamic instruction
count as the register alignment of the original LMUL forced the use of
whole register moves in the tree reduction anyways. (In the non-exact
case, these are vslidedown instructions, and are required.)

Originally written by Claude Code, heavily revised by me.


  Commit: 583f2949a841d1d7aa3cb2dc238c2a9978091b87
      https://github.com/llvm/llvm-project/commit/583f2949a841d1d7aa3cb2dc238c2a9978091b87
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/copyable_reorder.ll

  Log Message:
  -----------
  [SLP] Normalize copyable operand order to group loads for better vectorization

When building operands for entries with copyable elements, non-copyable
lanes may have inconsistent operand order (e.g., some lanes have
load,add while others have add,load for commutative ops). This prevents
VLOperands::reorder() from grouping consecutive loads on one side,
degrading downstream vectorization.
Normalize in two steps during buildOperands:
1) Majority voting: swap lanes that are the exact inverse of the
   majority operand-type pattern.
2) Load preference: if the majority pattern has loads at OpIdx 1
   (strict majority), swap to put loads at OpIdx 0, enabling
   vector load + copyable patterns.

Recommit after revert at c2139f13606f0be8d09fa82a28e85dba4c3478dd, added
a check for commutative operations for reorder.

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

Reviewers: 

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


  Commit: e23c053d25fa693aca3f3695b1b2af76ac310b84
      https://github.com/llvm/llvm-project/commit/e23c053d25fa693aca3f3695b1b2af76ac310b84
  Author: Jaydeep Chauhan <chauhan.jaydeep.ashwinbhai at intel.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/utils/TableGen/DAGISelMatcherOpt.cpp

  Log Message:
  -----------
  Fixed issue of use after move (#193175)

Variable "I" already moved at below code, and but still we are trying to
access that after.
```
EqualMatchers.push_back(std::move(*I));
```

---------

Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>


  Commit: 665f5c0ee89d83f5606210dde9f90e86aa504a93
      https://github.com/llvm/llvm-project/commit/665f5c0ee89d83f5606210dde9f90e86aa504a93
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M lldb/docs/use/links.rst

  Log Message:
  -----------
  [lldb][docs] Add FOSDEM talks to the links page (#193015)

Similar to the LLVM Developers' Meeting talks, add a section with
relevant talks at the LLVM Dev Room at FOSDEM.


  Commit: 95a960114e9227e7641fb8f5b2e016f1ef0aa298
      https://github.com/llvm/llvm-project/commit/95a960114e9227e7641fb8f5b2e016f1ef0aa298
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M lldb/source/Expression/IRMemoryMap.cpp
    M lldb/unittests/Expression/CMakeLists.txt
    A lldb/unittests/Expression/IRMemoryMapTest.cpp

  Log Message:
  -----------
  [lldb] Skip memory region probing in FindSpace when process can't JIT (#193124)

IRMemoryMap::FindSpace walks process memory regions via
GetMemoryRegionInfo to find addresses that won't shadow real process
memory. This crashes on targets like WebAssembly where the stub can
report the first memory region but fails for addresses beyond linear
memory, triggering an lldbassert.

When CanJIT() is false, all allocations are host-only and never written
to process memory, so probing the process memory map is unnecessary.
Skip it and fall through to the default address selection instead.


  Commit: 7a7d5936532a52575503aedf67e976479e1b9810
      https://github.com/llvm/llvm-project/commit/7a7d5936532a52575503aedf67e976479e1b9810
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/test/Transforms/PhaseOrdering/AArch64/Oz-and-forced-vectorize.ll

  Log Message:
  -----------
  [LoopVectorize] Add minsize attribute to test (NFC) (#193223)

This test is intending to test the minsize behavior, but is missing the
attribute.

The actual result of doing that seems worse to me (because we get
predicated stores), but seems to align with expected behavior based on
other minsize tests. I think we might be too aggressive about disabling
epilogues when optimizing for size. Having an epilogue is probably
better than using store predication.

But we should test the behavior we currently have...


  Commit: 347dc1321ed50578bb09da6fa10ccec581d8a2b6
      https://github.com/llvm/llvm-project/commit/347dc1321ed50578bb09da6fa10ccec581d8a2b6
  Author: 8051Enthusiast <8051Enthusiast at protonmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    A llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-comdat.ll

  Log Message:
  -----------
  Reapply "[SimplifyCFG] Reuse function comdat for switch lookup table" (#193229)

This repplies https://github.com/llvm/llvm-project/pull/190995, after
https://github.com/llvm/llvm-project/pull/192477 landed to fix the
linker errors in the stage2 build caused by wrong merges of the comdat
constants generated by this patch.


  Commit: 2b76ec744d78aebfe1f68ac12d96af16604370fe
      https://github.com/llvm/llvm-project/commit/2b76ec744d78aebfe1f68ac12d96af16604370fe
  Author: Nico Weber <thakis at chromium.org>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    A llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr-spill-multi-store.ll

  Log Message:
  -----------
  llvm/test: Fix incremental bots after revert of #190719 (#193234)

(Prior art: e.g. 845c8a60e9f3f6c)


  Commit: 406dc4e3400869588ef2b4e979ba4a67a526b442
      https://github.com/llvm/llvm-project/commit/406dc4e3400869588ef2b4e979ba4a67a526b442
  Author: Brian Cain <brian.cain at oss.qualcomm.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonELFObjectWriter.cpp
    M llvm/test/MC/Hexagon/reloc-data-sizes.s

  Log Message:
  -----------
  [Hexagon] Handle FK_Data_8 fixups in ELF object writer (#192149)

Hexagon is a 32-bit little-endian target with no native 64-bit
relocation. Map FK_Data_8 fixups to R_HEX_32 (or R_HEX_32_PCREL) so that
8-byte data directives (.8byte, .quad) referencing external symbols
produce valid relocations instead of a fatal error.

Also improve the diagnostic for unrecognized fixup kinds by including
the fixup kind number in the error message.


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

  Changed paths:
    M compiler-rt/lib/builtins/clear_cache.c

  Log Message:
  -----------
  [compiler-rt] Implement __clear_cache for Hexagon (#188411)

Add Hexagon support to compiler-rt's __clear_cache implementation. The
sequence follows the Hexagon PRM (§ 5.10.3-5.10.4):

* dccleaninva per cache line
* icinva per cache line
* isync


  Commit: 66cd11f73ef1a15ac58858b3b7a1674a9f86d1dc
      https://github.com/llvm/llvm-project/commit/66cd11f73ef1a15ac58858b3b7a1674a9f86d1dc
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [bazel][mlir] Port a1dfc8d64e1faa752f020a8212782362b179416d (#193241)


  Commit: 3ee56ef44322f9c9c419d69109a4c8326ceaf19a
      https://github.com/llvm/llvm-project/commit/3ee56ef44322f9c9c419d69109a4c8326ceaf19a
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M runtimes/cmake/config-Fortran.cmake

  Log Message:
  -----------
  [runtimes] Ensure INSTALLed directory exists (#193243)

The CMake `install(DIRECTORY ..)` command requires the source directory
to exist or it withh throw an error:
```
CMake Error at cmake_install.cmake:41 (file):
  file INSTALL cannot find
  "C:/Users/meinersbur/src/llvm/main/release/lib/clang/23/finclude/flang/x86_64-pc-windows-msvc":
  No error.
```

The install command was added by #171610 directory is currently empty by
design to be filled with the upcoming #171515.

Should fix the flang-arm64-windows-msvc-testsuite buildbot. For some
reason the nested `ninja install` call inside `runtimes/runtimes-bins`
fails but the outer `ninja install` silently just does not install the
nested files.


  Commit: e535fbfb985106de77892c6f3cfd97c49a014367
      https://github.com/llvm/llvm-project/commit/e535fbfb985106de77892c6f3cfd97c49a014367
  Author: NagaChaitanya Vellanki <pnagato at protonmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/Builtins.td
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGen/Inputs/stdbit.h
    M clang/test/CodeGen/builtin-stdc-bit-functions.c
    M clang/test/Sema/Inputs/stdbit.h
    M clang/test/Sema/builtin-stdc-bit-functions.c

  Log Message:
  -----------
  [clang] Add typed variants for C23 stdbit.h builtins (#192718)

stdc_leading_zeros_{uc,us,ui,ul,ull}
  stdc_leading_ones_{uc,us,ui,ul,ull}
  stdc_trailing_zeros_{uc,us,ui,ul,ull}
  stdc_trailing_ones_{uc,us,ui,ul,ull}
  stdc_first_leading_zero_{uc,us,ui,ul,ull}
  stdc_first_leading_one_{uc,us,ui,ul,ull}
  stdc_first_trailing_zero_{uc,us,ui,ul,ull}
  stdc_first_trailing_one_{uc,us,ui,ul,ull}
  stdc_count_zeros_{uc,us,ui,ul,ull}
  stdc_count_ones_{uc,us,ui,ul,ull}
  stdc_has_single_bit_{uc,us,ui,ul,ull}
  stdc_bit_width_{uc,us,ui,ul,ull}
  stdc_bit_floor_{uc,us,ui,ul,ull}
  stdc_bit_ceil_{uc,us,ui,ul,ull}

Lower type-specific <stdbit.h> functions to LLVM intrinsics
(ctlz/cttz/ctpop). Includes constant expression support and tests for
Sema, CodeGen, and constant evaluation.

Followup:#79630


  Commit: edd6797bd0f43bb533e6d128d7fba9b380607604
      https://github.com/llvm/llvm-project/commit/edd6797bd0f43bb533e6d128d7fba9b380607604
  Author: Fraser Cormack <fcormack at modular.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [LLVM][BUILD] Fix for #177158 (#193238)

This option is now passed to the CMake build but not when building with
bazel. Forgetting this option results in miscompiles during instruction
selection as the generated tables don't match the runtime behaviour.


  Commit: e39e73c91ceb98af94fb74fe194c1e87f1cec790
      https://github.com/llvm/llvm-project/commit/e39e73c91ceb98af94fb74fe194c1e87f1cec790
  Author: Clemens Wasser <clemens.wasser at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/include/llvm/IR/IRBuilder.h
    M llvm/include/llvm/IR/TrackingMDRef.h

  Log Message:
  -----------
  [IR] Avoid redundant TrackingMDRef reassignments and DebugLoc copies (#193018)

Found while profiling clang compiling `SLPVectorizer.cpp`. Avoiding
redundant `TrackingMDRef` reassignments and `DebugLoc` copies yields
nice little speed improvements in almost all cases, especially for
builds with debug info, for some even up to -0.7%:

https://llvm-compile-time-tracker.com/compare.php?from=78820cb91605693b7d768be4ebc8b66181d3e9c3&to=60ab989d605cae93452aba2aff459a02b7cc9839


  Commit: b799d7e8f8bc412efb7078a977bfac8516849cbb
      https://github.com/llvm/llvm-project/commit/b799d7e8f8bc412efb7078a977bfac8516849cbb
  Author: Hui <hui.xie1990 at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/23.rst
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/include/CMakeLists.txt
    A libcxx/include/__utility/constant_wrapper.h
    M libcxx/include/module.modulemap.in
    M libcxx/include/span
    M libcxx/include/utility
    M libcxx/include/version
    A libcxx/test/libcxx/utilities/const.wrap.class/nodiscard.verify.cpp
    M libcxx/test/std/containers/views/views.span/span.cons/deduct.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/adl.compile.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/assign.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/binary_ops.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/call.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/comma.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/comp.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/convert.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/ctad.compile.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/cw.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/cw_fixed.array.ctor.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/cw_fixed.ctor.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/general.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/helpers.h
    A libcxx/test/std/utilities/const.wrap.class/mem_ptr.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/pseudo_mutators.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/subscript.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/types.compile.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/unary_ops.pass.cpp
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++] Implement `std::constant_wrapper` (#191695)

Fixes #148179
Fixes #189605
Fixes #189865
Fixes #171370
Fixes #189856
Fixes #189838
Fixes #171359


  Commit: b8386954ac11c17a439dcc495bbe147375268201
      https://github.com/llvm/llvm-project/commit/b8386954ac11c17a439dcc495bbe147375268201
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M flang/lib/Optimizer/OpenACC/Support/FIROpenACCOpsInterfaces.cpp
    M flang/lib/Optimizer/OpenACC/Support/RegisterOpenACCExtensions.cpp
    A flang/test/Transforms/OpenACC/acc-compute-region-licm.fir

  Log Message:
  -----------
  [flang][OpenACC] Limit hoisting out of compute operations. (#193099)

When a compute operation is nested inside a loop-like operation,
LICM for nested regions may hoist operations that are illegal to hoist,
e.g. operations with reference operands/results should not be hoisted,
in general. This patch limits the hoisting for kernel, parallel and
serial.


  Commit: 9a1f716941b200e771a9a6f22726a8bb46369f2d
      https://github.com/llvm/llvm-project/commit/9a1f716941b200e771a9a6f22726a8bb46369f2d
  Author: vangthao95 <vang.thao at amd.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td
    M llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll

  Log Message:
  -----------
  AMDGPU: ds.atomic.barrier.arrive.rtn.b64 is a source of divergence (#192765)

This intrinsic decrements the barrier's pending count and returns the
old value.


  Commit: 9576adbb96c715ed332175d2c523d3753f03e3ed
      https://github.com/llvm/llvm-project/commit/9576adbb96c715ed332175d2c523d3753f03e3ed
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/test/CodeGen/RISCV/rvv/undef-vp-ops.ll

  Log Message:
  -----------
  [RISCV] Expand vp.frem (#193218)

As far as I can tell we've never supported lowering vp_frem and
currently crash. The only test that covers it has the evl set to zero so
it's folded to undef. By expanding it to regular frem we can use the
libcall expansion


  Commit: 53a33fa6ec9a9d7c1345907f4caf01f26e86d79e
      https://github.com/llvm/llvm-project/commit/53a33fa6ec9a9d7c1345907f4caf01f26e86d79e
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp

  Log Message:
  -----------
  Add missing comment (#193050)


  Commit: 8226604fbbc990838dc1a73dc0e2691c551a1956
      https://github.com/llvm/llvm-project/commit/8226604fbbc990838dc1a73dc0e2691c551a1956
  Author: lntue <lntue at google.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M libc/src/__support/math/CMakeLists.txt
    M libc/src/__support/math/powf.h
    A libc/src/__support/math/powf_small_tables.h
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc][math] Implement a code-size optimized version of powf. (#190984)

Code size of powf on armv8m:

Before:
```
$ ls -l libc/src/math/generic/CMakeFiles/libc.src.math.generic.powf.dir/
total 12
-rw-r----- 1 lntue primarygroup 9812 Apr  8 14:51 powf.cpp.obj
```

After:
```
$ ls -l libc/src/math/generic/CMakeFiles/libc.src.math.generic.powf.dir/
total 8
-rw-r----- 1 lntue primarygroup 4700 Apr  8 14:50 powf.cpp.obj
```


  Commit: 980ddce138a367cc8c4a6586f8aac4c255424fe8
      https://github.com/llvm/llvm-project/commit/980ddce138a367cc8c4a6586f8aac4c255424fe8
  Author: Andy Kaylor <akaylor at nvidia.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenFunction.cpp
    M clang/test/CIR/CodeGen/vla.c

  Log Message:
  -----------
  [CIR] Implement variably modified type parameter handling (#193072)

CIR was missing checks for variably modified types in its function
handling, so if one of the function arguments was a variable-length
array, we weren't recording the VLA size and hitting an assertion when
we later try to retrieve the VLA size from our map. One dimensional VLAs
are passed as pointers to the array type rather than as variably
modified types, so that didn't trigger the error.


  Commit: 93dce0bf4332a721bb5a3c5d2747704e703c1039
      https://github.com/llvm/llvm-project/commit/93dce0bf4332a721bb5a3c5d2747704e703c1039
  Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [VPlan] Strip null-check in partial-red casts (NFC) (#193162)

A successful match guarantees that operands are non-null.


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

  Changed paths:
    M llvm/utils/gn/secondary/clang-tools-extra/clangd/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 4acbf997891c (#193258)


  Commit: 002b2dc6b2a0e6b5f5da73009a8fad49acac1aeb
      https://github.com/llvm/llvm-project/commit/002b2dc6b2a0e6b5f5da73009a8fad49acac1aeb
  Author: Nico Weber <thakis at chromium.org>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [gn build] Port 9b8635f3247d (#193260)


  Commit: 57409d7558f1d6671446a1df735a602e2786d6fb
      https://github.com/llvm/llvm-project/commit/57409d7558f1d6671446a1df735a602e2786d6fb
  Author: Nico Weber <thakis at chromium.org>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/lib/Target/X86/BUILD.gn

  Log Message:
  -----------
  [gn build] Port acc3f73113ab (#193261)


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

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

  Log Message:
  -----------
  [LV] Improve code around all_of, any_of (NFC) (#193150)


  Commit: 655f38fad8bfad11cf94c8c3d82d23343e319345
      https://github.com/llvm/llvm-project/commit/655f38fad8bfad11cf94c8c3d82d23343e319345
  Author: Nico Weber <thakis at chromium.org>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [gn build] Port b799d7e8f8bc (#193262)


  Commit: 6c5b4a73fb253982774390dfbf39b94cf0a02496
      https://github.com/llvm/llvm-project/commit/6c5b4a73fb253982774390dfbf39b94cf0a02496
  Author: Dave Lee <davelee.com at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [lldb] Move GetTypeSystemFromCU to DILEval.cpp (NFC) (#193245)

`GetTypeSystemFromCU` is used only in `DILEval.cpp`.


  Commit: 10f8205c6f7e21860da51d879969d71fa6feb94c
      https://github.com/llvm/llvm-project/commit/10f8205c6f7e21860da51d879969d71fa6feb94c
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/X86/expanded-binop-doesnotneedschedule-user.ll

  Log Message:
  -----------
  [SLP]Fix stale deps for operands of non-scheduled expanded-binop parents

When a parent tree entry does not require scheduling and contains an
expanded binop (e.g. `shl x, 1` modelled as `add x, x`), it never gets
a bundle. So, the operand's `ScheduleData::Dependencies` keeps the count
from the first sibling's `tryScheduleBundle` and misses later-added
entries sharing the same expanded scalar. At real scheduling,
`schedule()` then issues decrements for every current containing entry
and trips `UnscheduledDeps >= 0`.

Fixes #193040

Reviewers: 

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


  Commit: 4f2d572349c442439f6bc7b0f4fdaab9806dab3c
      https://github.com/llvm/llvm-project/commit/4f2d572349c442439f6bc7b0f4fdaab9806dab3c
  Author: Oliver Hunt <oliver at apple.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Parse/ParseDeclCXX.cpp
    A clang/test/SemaCXX/gh187664.cpp

  Log Message:
  -----------
  [clang][NFC] Prevent scope pollution from repeat type specifiers (#193144)

Fixes #187664

When parsing `type-specifier {class,union,struct,enum,etc} nested-name`
ParseClassSpecifier and ParseEnumSpecifier both operated on the current
declaration scope on the assumption that they were the only type
specifier. Of course in incorrect code that assumption is false, and as
a result when parsing the name specifier they would pollute the the real
scope.

This is not relevant to the semantic correctness: the error is detected
and reported. The problem is that the subsequent state is not correct,
though not in a way that impacts functional behavior of release builds.

In assertion builds however this is detected (via a somewhat obtuse
path) when we attempt to plant namespace location information from the
invalid declaration on the initial declaration.

This PR fixes the state corruption by moving the name parsing in enum
and record type specifiers into a throwaway scope if the declaration
already has a type specifier.


  Commit: 5f33bbeb8375a6d78b6aa874e313ff3f97500f7d
      https://github.com/llvm/llvm-project/commit/5f33bbeb8375a6d78b6aa874e313ff3f97500f7d
  Author: Erick Velez <erickvelez7 at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/AST/CommentParser.cpp
    M clang/test/AST/ast-dump-comment.cpp

  Log Message:
  -----------
  [clang] Exclude trailing colons from param command names (#192598)

Doxygen accepts param names with trailing colons and they are omitted in
documentation. The comment parser includes the colon in the param name
thus including it in AST dumps. This patch removes a trailing colon and
adds a test for it.

Fixes #185378


  Commit: 981a9e5acb49b484230ef82819851f3a2fce5860
      https://github.com/llvm/llvm-project/commit/981a9e5acb49b484230ef82819851f3a2fce5860
  Author: vangthao95 <vang.thao at amd.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.ballot.i32.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.ballot.i64.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ballot.i64.mir

  Log Message:
  -----------
  AMDGPU/GlobalISel: RegBankLegalize rules for amdgcn_ballot (#193105)

Disabled tests involving ctpop and added FIXME to re-enable after ctpop
support.


  Commit: c7eea85b8046660f0a1fd4a1c5c41b44475f8caf
      https://github.com/llvm/llvm-project/commit/c7eea85b8046660f0a1fd4a1c5c41b44475f8caf
  Author: gulfemsavrun <gulfem at google.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/include/llvm/Debuginfod/BuildIDFetcher.h
    M llvm/include/llvm/Object/BuildID.h
    M llvm/lib/DebugInfo/Symbolize/Symbolize.cpp
    M llvm/lib/Debuginfod/BuildIDFetcher.cpp
    M llvm/lib/Object/BuildID.cpp
    M llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
    M llvm/lib/ProfileData/InstrProfCorrelator.cpp
    M llvm/tools/llvm-debuginfod-find/llvm-debuginfod-find.cpp
    M llvm/tools/llvm-objdump/llvm-objdump.cpp

  Log Message:
  -----------
  Revert "[llvm-cov] Fix error propagation in CoverageMapping::load() (… (#193266)

…#193197)"

This reverts commit b7cfcfe03deb679befe821d0c7a9c302f8645763.

Revert "[llvm] Errorize DebuginfodFetcher for inspection at call-sites
(#191191)"

This reverts commit 337ad44a3e585f62bcf2e30b5766146cb8aacaca.

Reason for revert: Caused debuginfod tests failed in profile runtime:

https://luci-milo.appspot.com/ui/p/fuchsia/builders/toolchain.ci/clang-linux-x64/b8683917826498677969/overview


  Commit: febd3de07dba6f7f93e1ffc21f08b38180389fa6
      https://github.com/llvm/llvm-project/commit/febd3de07dba6f7f93e1ffc21f08b38180389fa6
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/Module.h
    M clang/include/clang/Serialization/ModuleCache.h
    M clang/include/clang/Serialization/ModuleManager.h
    M clang/lib/Basic/Module.cpp
    M clang/lib/Frontend/CompilerInstance.cpp
    M clang/lib/Serialization/ModuleCache.cpp
    M clang/lib/Serialization/ModuleManager.cpp

  Log Message:
  -----------
  [clang] Get the directory identity from `ModuleCache` instead of `FileManager` (#193070)

Using `FileManager`'s caching and deduplication functionality for
assigning identity to the module cache is handy, but it relies on two
assumptions:
* the rest of the compiler consistently calls
`FileManager::getOptionalDirectoryRef()` with `/*CacheFailure=*/false`
for the module cache path,
* the VFS is not caching failed stats for the module cache path.

This PR implements this functionality in the `ModuleCache` interface,
which is conceptually the right place for it. This PR enables us to land
the VFS simplifications in
https://github.com/llvm/llvm-project/pull/190843.


  Commit: 8d21e4e692bc4b1fb84d613813511ff8eca653e2
      https://github.com/llvm/llvm-project/commit/8d21e4e692bc4b1fb84d613813511ff8eca653e2
  Author: vangthao95 <vang.thao at amd.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.h
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.intersect_ray.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.bvh8_intersect_ray.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.dual_intersect_ray.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.intersect_ray.ll

  Log Message:
  -----------
  AMDGPU/GlobalISel: RegBankLegalize rules for BVH intersect ray (#192583)


  Commit: 40fcd2517a110b8914acdf2f5bd0b37110e5795c
      https://github.com/llvm/llvm-project/commit/40fcd2517a110b8914acdf2f5bd0b37110e5795c
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/builders/builder.py
    M lldb/packages/Python/lldbsuite/test/configuration.py
    M lldb/packages/Python/lldbsuite/test/dotest.py
    M lldb/packages/Python/lldbsuite/test/dotest_args.py
    M lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
    M lldb/packages/Python/lldbsuite/test/lldbtest.py
    M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
    A lldb/packages/Python/lldbsuite/test/make/WASI.rules
    M lldb/test/API/CMakeLists.txt
    M lldb/test/API/lit.cfg.py
    M lldb/test/API/lit.site.cfg.py.in

  Log Message:
  -----------
  [lldb][test] Add support for building Wasm test inferiors (#192872)

This PR adds support for building the test inferiors to WebAssembly.
Specifically, it allows you to configure a sysroot and resource dir
(pointing at the WASI SDK). The Wasm runtime can be configured through
the `LLDB_TEST_USER_ARGS`.

```
LLDB_TEST_TRIPLE:STRING=wasm32-wasip1
LLDB_TEST_SYSROOT:PATH=/path/to/wasi-sdk-32.0-arm64-macos/share/wasi-sysroot
LLDB_TEST_RESOURCE_DIR:PATH=/path/to/wasi-sdk-32.0-arm64-macos/lib/clang/22/
LLDB_TEST_USER_ARGS:STRING=--setting;platform.plugin.wasm.runtime-path=/path/to/iwasm;--setting;platform.plugin.wasm.runtime-args=--heap-size=1048576;--setting;platform.plugin.wasm.port-arg=-g=
```

With the configuration listed above I was able to confirm that I could
build and run a handful of C and C++ tests. To set expectations: lots of
tests are unsupported because they rely on things not available in Wasm
(e.g. shared libraries) or they use features currently unsupported in
LLDB (most notably: expression evaluation).


  Commit: 0d45876e43a8189f1076ecab440f6106d1c97bd7
      https://github.com/llvm/llvm-project/commit/0d45876e43a8189f1076ecab440f6106d1c97bd7
  Author: Eric Feng <55723758+efric at users.noreply.github.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
    M mlir/test/Dialect/LLVMIR/rocdl.mlir
    M mlir/test/Target/LLVMIR/rocdl.mlir

  Log Message:
  -----------
  [ROCDL] Add dot intrinsics to rocdl (#193129)

This patch adds dot intrinsic support to the rocdl dialect. Having these
(inc. follow up `amdgpu` wrapper) as first class citizens in MLIR will
allow us to lower thread local reductions involving `<=16bit` data more
effectively. This is in line with the spirit of `dot` intrinsic support
wrt existing edge dialects (`x86`, `nvvm`, `spirv`).

Assisted by: Claude

---------

Signed-off-by: Eric Feng <Eric.Feng at amd.com>


  Commit: 849de61619cc4e4b9fac4194dc015930a51f7a40
      https://github.com/llvm/llvm-project/commit/849de61619cc4e4b9fac4194dc015930a51f7a40
  Author: Ziqing Luo <ziqing_luo at apple.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/APINotes/Types.h
    M clang/lib/APINotes/APINotesFormat.h
    M clang/lib/APINotes/APINotesReader.cpp
    M clang/lib/APINotes/APINotesTypes.cpp
    M clang/lib/APINotes/APINotesWriter.cpp
    M clang/lib/APINotes/APINotesYAMLCompiler.cpp
    M clang/lib/Sema/SemaAPINotes.cpp
    A clang/test/APINotes/Inputs/Headers/UnsafeBufferUsage.apinotes
    A clang/test/APINotes/Inputs/Headers/UnsafeBufferUsage.h
    M clang/test/APINotes/Inputs/Headers/module.modulemap
    A clang/test/APINotes/unsafe-buffer-usage.cpp

  Log Message:
  -----------
  [APINotes][unsafe-buffer-usage] Add [[clang::unsafe_buffer_usage]] support in APINotes (#189775)

Support the ``[[clang::unsafe_buffer_usage]]`` attribute in APINotes,
e.g.,
```
    Functions:
      - Name: myUnsafeFunction
        UnsafeBufferUsage: true
```

rdar://171859135


  Commit: 06b85c8bb2ed420db185d83c61f19501fec96b81
      https://github.com/llvm/llvm-project/commit/06b85c8bb2ed420db185d83c61f19501fec96b81
  Author: Ziqing Luo <ziqing_luo at apple.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/include/clang/ScalableStaticAnalysisFramework/Analyses/EntityPointerLevel/EntityPointerLevel.h
    R clang/include/clang/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.h
    M clang/include/clang/ScalableStaticAnalysisFramework/SSAFBuiltinForceLinker.h
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/EntityPointerLevel/EntityPointerLevel.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp

  Log Message:
  -----------
  [SSAF][UnsafeBufferUsage] Make UnsafeBufferUsageExtractor a registered ASTConsumer (#191931)

- Removed UnsafeBufferUsageExtractor.h
- Registered UnsafeBufferUsageExtractor
- Changed unit tests to enable the extractor with
`HandleTranslationUnit`
- Fixed bugs in `UnsafeBufferUsageExtractor::HandleTranslationUnit`

---------

Co-authored-by: Balázs Benics <benicsbalazs at gmail.com>


  Commit: d794e04651f37a1139672aa5cd426d7a808ba8da
      https://github.com/llvm/llvm-project/commit/d794e04651f37a1139672aa5cd426d7a808ba8da
  Author: Maryam Moghadas <maryammo at ca.ibm.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsPPC.def
    M clang/lib/CodeGen/TargetBuiltins/PPC.cpp
    M clang/test/CodeGen/PowerPC/builtins-ppc-dmf.c
    M clang/test/CodeGen/PowerPC/ppc-dmf-mma-builtin-err.c
    A clang/test/Sema/builtins-ppc-crypto.c
    M llvm/test/CodeGen/PowerPC/mmaplus-crypto.ll

  Log Message:
  -----------
  [Clang][PowerPC] Add DMF crypto builtins for extended mnemonics (#185961)

This commit adds new Clang builtins for the crypto extended mnemonics: 
void __builtin_dmsha256hash (__dmr1024 *, __dmr1024 *)
void __builtin_dmsha512hash (__dmr1024 *, __dmr1024 *)
void __builtin_dmsha3dw (__dmr2048 *)
void __builtin_dmcryshash (__dmr2048 *)
void __builtin_dmxxsha3512pad (__dmr1024 *, vec_t, uint1)
void __builtin_dmxxsha3384pad (__dmr1024 *, vec_t, uint1)
void __builtin_dmxxsha3256pad (__dmr1024 *, vec_t, uint1)
void __builtin_dmxxsha3224pad (__dmr1024 *, vec_t, uint1)
void __builtin_dmxxshake256pad (__dmr1024 *, vec_t, uint1)
void __builtin_dmxxshake128pad (__dmr1024 *, vec_t, uint1)
void __builtin_dmxxsha384512pad (__dmr1024 *, vec_t)
void __builtin_dmxxsha224256pad (__dmr1024 *, vec_t)


  Commit: bddd3d32bc6406697804a28c65d15c2882d732de
      https://github.com/llvm/llvm-project/commit/bddd3d32bc6406697804a28c65d15c2882d732de
  Author: Nuri Amari <nuri.amari99 at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M lld/MachO/InputFiles.cpp
    A lld/test/MachO/catalyst-arm64e-reexport.s

  Log Message:
  -----------
  [lld/mac] For catalyst outputs, tolerate implicitly linking against arm64e mac tbd files (#193065)

Some mac libraries published in the Xcode SDK are now arm64e only, and
catalyst applications should be able to link against these even if
building for arm64.

This matches ld-prime behavior.

https://reviews.llvm.org/D124336 allows linking against MacOS libraries,
but only if the architecture matches exactly.
https://reviews.llvm.org/D130683 allows linking against tbds with ABI
compatibility architectures, but the logic isn't used for this
particular case.

[Assisted-by](https://t.ly/Dkjjk): [Claude Opus
4.6](https://www.anthropic.com/news/claude-opus-4-6)

---------

Co-authored-by: Nuri Amari <nuriamari at fb.com>


  Commit: 4cdd9883943ded1b504ba0dbc14778b11f33ae11
      https://github.com/llvm/llvm-project/commit/4cdd9883943ded1b504ba0dbc14778b11f33ae11
  Author: Pierluigi Lenoci <pierluigi.lenoci at sap.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsX86.td
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/test/CodeGen/X86/avx512bw-builtins.c
    M clang/test/CodeGen/X86/avx512vlbw-builtins.c

  Log Message:
  -----------
  [Clang] Allow VDBPSADBW intrinsics in constexpr (#188887)

Add constexpr evaluation support for the VDBPSADBW intrinsics (`__builtin_ia32_dbpsadbw128/256/512`) in both Clang constant evaluators.

Fixes #188747


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

  Changed paths:
    M .github/workflows/libclang-python-tests.yml

  Log Message:
  -----------
  [Github] Set persist-credentials in libclang-python-tests.yml (#193282)

Not exactly sure how this slipped through the crack in the mass cleanup,
but fix it now.


  Commit: 0a59b51a783ae7f29334315eb79228cd2c987749
      https://github.com/llvm/llvm-project/commit/0a59b51a783ae7f29334315eb79228cd2c987749
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [RISCV] Add a getTargetStreamer helper to RISCVAsmPrinter. NFC (#193250)

This avoids a repeated static_cast to RISCVTargetStreamer.


  Commit: 5299e00a73f776266fd07d8c1fb4d924830a3457
      https://github.com/llvm/llvm-project/commit/5299e00a73f776266fd07d8c1fb4d924830a3457
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/utils/TableGen/Basic/RISCVTargetDefEmitter.cpp

  Log Message:
  -----------
  [RISCV][TableGen] Use ArrayRef instead of vector&. NFC (#193267)

The vector isn't modified so it should be passed as const vector& or
ArrayRef.


  Commit: 9c2e67721adf4cb09ca0a109ad9aacb62f9b5965
      https://github.com/llvm/llvm-project/commit/9c2e67721adf4cb09ca0a109ad9aacb62f9b5965
  Author: Tommy Chiang <ototot at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/X86/GISel/X86RegisterBankInfo.cpp
    A llvm/test/CodeGen/X86/GlobalISel/regbankselect-dbg-value-physreg-crash.mir

  Log Message:
  -----------
  [X86][GlobalISel] Ignore non-vregs in regbank mapping (#182880)

`X86RegisterBankInfo`'s regbank-mapping helpers work under the
assumption that every register operand was a typed virtual register.

This caused `RegBankSelect` crashes when such operands reached these
helpers:
* `getInstrPartialMappingIdxs` called `MRI.getType()` on a non-vreg
operand.
* `getInstrValueMapping` then called `getValueMapping(PMI_None, ...)`
for it.

Skip non-virtual register operands in both helpers. This keeps non-vregs
out of LLT/mapping logic while still mapping real vreg operands.

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


  Commit: 99457c368586b1debf49f55b3a0684317f5f298d
      https://github.com/llvm/llvm-project/commit/99457c368586b1debf49f55b3a0684317f5f298d
  Author: Amr Hesham <amr96 at programmer.net>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
    A clang/test/CIR/CodeGenOpenCL/as_type.cl

  Log Message:
  -----------
  [CIR] Upstream VectorType __builtin_astype (#192859)

Upstream support for VectorType __builtin_astype

Issue #192311


  Commit: d4e2850a8412e82b354e216b2bfbbddb1f0277c0
      https://github.com/llvm/llvm-project/commit/d4e2850a8412e82b354e216b2bfbbddb1f0277c0
  Author: Mend Renovate <bot at renovateapp.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M .github/actions/build-container/action.yml
    M .github/workflows/bazel-checks.yml
    M .github/workflows/build-ci-container-tooling.yml
    M .github/workflows/build-ci-container-windows.yml
    M .github/workflows/build-ci-container.yml
    M .github/workflows/build-libc-container.yml
    M .github/workflows/build-metrics-container.yml
    M .github/workflows/check-ci.yml
    M .github/workflows/ci-post-commit-analyzer.yml
    M .github/workflows/commit-access-greeter.yml
    M .github/workflows/commit-access-review.yml
    M .github/workflows/docs.yml
    M .github/workflows/email-check.yaml
    M .github/workflows/gha-codeql.yml
    M .github/workflows/hlsl-test-all.yaml
    M .github/workflows/ids-check.yml
    M .github/workflows/issue-release-workflow.yml
    M .github/workflows/issue-subscriber.yml
    M .github/workflows/issue-write.yml
    M .github/workflows/libc-fullbuild-tests.yml
    M .github/workflows/libc-overlay-tests.yml
    M .github/workflows/libc-shared-tests.yml
    M .github/workflows/libclang-abi-tests.yml
    M .github/workflows/libclang-python-tests.yml
    M .github/workflows/libcxx-build-and-test.yaml
    M .github/workflows/libcxx-build-containers.yml
    M .github/workflows/libcxx-check-generated-files.yml
    M .github/workflows/libcxx-run-benchmarks.yml
    M .github/workflows/lldb-pylint-action.yml
    M .github/workflows/llvm-abi-tests.yml
    M .github/workflows/llvm-bugs.yml
    M .github/workflows/merged-prs.yml
    M .github/workflows/mlir-spirv-tests.yml
    M .github/workflows/new-prs.yml
    M .github/workflows/pr-code-format.yml
    M .github/workflows/pr-code-lint.yml
    M .github/workflows/pr-subscriber.yml
    M .github/workflows/premerge.yaml
    M .github/workflows/prune-branches.yml
    M .github/workflows/release-asset-audit.yml
    M .github/workflows/release-binaries.yml
    M .github/workflows/release-documentation.yml
    M .github/workflows/release-doxygen.yml
    M .github/workflows/release-llvm-testing-tools.yml
    M .github/workflows/release-sources.yml
    M .github/workflows/release-tasks.yml
    M .github/workflows/scorecard.yml
    M .github/workflows/spirv-tests.yml
    M .github/workflows/sycl-tests.yml
    M .github/workflows/test-unprivileged-download-artifact.yml
    M .github/workflows/upload-release-artifact/action.yml
    M .github/workflows/version-check.yml
    M .github/workflows/zizmor.yml

  Log Message:
  -----------
  Update [Github] Update GHA Dependencies (#176676)

> ℹ️ **Note**
> 
> This PR body was truncated due to platform limits.

This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
|
[EnricoMi/publish-unit-test-result-action](https://redirect.github.com/EnricoMi/publish-unit-test-result-action)
| action | minor | `v2.22.0` → `v2.23.0` | |
| [actions/checkout](https://redirect.github.com/actions/checkout) |
action | patch | `v6.0.1` → `v6.0.2` | |
| [actions/setup-node](https://redirect.github.com/actions/setup-node) |
action | minor | `v6.1.0` → `v6.3.0` | `v6.4.0` |
|
[actions/setup-python](https://redirect.github.com/actions/setup-python)
| action | minor | `v6.1.0` → `v6.2.0` | |
|
[actions/upload-artifact](https://redirect.github.com/actions/upload-artifact)
| action | patch | `v7.0.0` → `v7.0.1` | |
|
[actions/upload-artifact](https://redirect.github.com/actions/upload-artifact)
| action | patch | `7.0.0` → `v7.0.1` | |
| [aminya/setup-cpp](https://redirect.github.com/aminya/setup-cpp) |
action | minor | `v1.7.2` → `v1.8.0` | |
| [docker/login-action](https://redirect.github.com/docker/login-action)
| action | minor | `v4.0.0` → `v4.1.0` | |
| ghcr.io/llvm/ci-ubuntu-24.04-abi-tests | container | digest |
`ef869c1` → `cb3aea3` | |
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | minor | `v4.31.9` → `v4.35.2` | |
|
[hendrikmuhs/ccache-action](https://redirect.github.com/hendrikmuhs/ccache-action)
| action | patch | `v1.2.20` → `v1.2.22` | `v1.2.23` |
|
[maxim-lobanov/setup-xcode](https://redirect.github.com/maxim-lobanov/setup-xcode)
| action | minor | `v1.6.0` → `v1.7.0` | |
|
[pypa/gh-action-pypi-publish](https://redirect.github.com/pypa/gh-action-pypi-publish)
| action | minor | `v1.13.0` → `v1.14.0` | |
|
[tj-actions/changed-files](https://redirect.github.com/tj-actions/changed-files)
| action | patch | `v47.0.1` → `v47.0.6` | |
|
[tj-actions/changed-files](https://redirect.github.com/tj-actions/changed-files)
| action | patch | `v47.0.0` → `v47.0.6` | |
|
[zizmorcore/zizmor-action](https://redirect.github.com/zizmorcore/zizmor-action)
| action | patch | `v0.5.2` → `v0.5.3` | |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/160328) for more information.

---

### Release Notes

<details>
<summary>EnricoMi/publish-unit-test-result-action
(EnricoMi/publish-unit-test-result-action)</summary>

###
[`v2.23.0`](https://redirect.github.com/EnricoMi/publish-unit-test-result-action/releases/tag/v2.23.0)

[Compare
Source](https://redirect.github.com/EnricoMi/publish-unit-test-result-action/compare/v2.22.0...v2.23.0)

Adds the following improvements:

- Lock composite actions' versions by SHA
[#​719](https://redirect.github.com/EnricoMi/publish-unit-test-result-action/pull/719)
- Upgrading Python dependencies
[#​721](https://redirect.github.com/EnricoMi/publish-unit-test-result-action/pull/721),
[#​727](https://redirect.github.com/EnricoMi/publish-unit-test-result-action/pull/727)
- Upgrade GitHub actions
[#​720](https://redirect.github.com/EnricoMi/publish-unit-test-result-action/pull/720),
[#​728](https://redirect.github.com/EnricoMi/publish-unit-test-result-action/pull/728)

**Full Changelog**:
<https://github.com/EnricoMi/publish-unit-test-result-action/compare/v2.22.0...v2.23.0>

</details>

<details>
<summary>actions/checkout (actions/checkout)</summary>

###
[`v6.0.2`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v602)

[Compare
Source](https://redirect.github.com/actions/checkout/compare/v6.0.1...v6.0.2)

- Fix tag handling: preserve annotations and explicit fetch-tags by
[@​ericsciple](https://redirect.github.com/ericsciple) in
[#​2356](https://redirect.github.com/actions/checkout/pull/2356)

</details>

<details>
<summary>actions/setup-node (actions/setup-node)</summary>

###
[`v6.3.0`](https://redirect.github.com/actions/setup-node/releases/tag/v6.3.0)

[Compare
Source](https://redirect.github.com/actions/setup-node/compare/v6.2.0...v6.3.0)

#### What's Changed

##### Enhancements:

- Support parsing `devEngines` field by
[@​susnux](https://redirect.github.com/susnux) in
[#​1283](https://redirect.github.com/actions/setup-node/pull/1283)

> When using node-version-file: package.json, setup-node now
prefers devEngines.runtime over engines.node.

##### Dependency updates:

- Fix npm audit issues by
[@​gowridurgad](https://redirect.github.com/gowridurgad) in
[#​1491](https://redirect.github.com/actions/setup-node/pull/1491)
- Replace uuid with crypto.randomUUID() by
[@​trivikr](https://redirect.github.com/trivikr) in
[#​1378](https://redirect.github.com/actions/setup-node/pull/1378)
- Upgrade minimatch from 3.1.2 to 3.1.5 by
[@​dependabot](https://redirect.github.com/dependabot) in
[#​1498](https://redirect.github.com/actions/setup-node/pull/1498)

##### Bug fixes:

- Remove hardcoded bearer for mirror-url
[@​marco-ippolito](https://redirect.github.com/marco-ippolito) in
[#​1467](https://redirect.github.com/actions/setup-node/pull/1467)
- Scope test lockfiles by package manager and update cache tests by
[@​gowridurgad](https://redirect.github.com/gowridurgad) in
[#​1495](https://redirect.github.com/actions/setup-node/pull/1495)

#### New Contributors

- [@​susnux](https://redirect.github.com/susnux) made their first
contribution in
[#​1283](https://redirect.github.com/actions/setup-node/pull/1283)

**Full Changelog**:
<https://github.com/actions/setup-node/compare/v6...v6.3.0>

###
[`v6.2.0`](https://redirect.github.com/actions/setup-node/compare/v6.1.0...v6.2.0)

[Compare
Source](https://redirect.github.com/actions/setup-node/compare/v6.1.0...v6.2.0)

</details>

<details>
<summary>actions/setup-python (actions/setup-python)</summary>

###
[`v6.2.0`](https://redirect.github.com/actions/setup-python/compare/v6.1.0...v6.2.0)

[Compare
Source](https://redirect.github.com/actions/setup-python/compare/v6.1.0...v6.2.0)

</details>

<details>
<summary>actions/upload-artifact (actions/upload-artifact)</summary>

###
[`v7.0.1`](https://redirect.github.com/actions/upload-artifact/releases/tag/v7.0.1)

[Compare
Source](https://redirect.github.com/actions/upload-artifact/compare/v7...v7.0.1)

##### What's Changed

- Update the readme with direct upload details by
[@​danwkennedy](https://redirect.github.com/danwkennedy) in
[#​795](https://redirect.github.com/actions/upload-artifact/pull/795)
- Readme: bump all the example versions to v7 by
[@​danwkennedy](https://redirect.github.com/danwkennedy) in
[#​796](https://redirect.github.com/actions/upload-artifact/pull/796)
- Include changes in typespec/ts-http-runtime 0.3.5 by
[@​yacaovsnc](https://redirect.github.com/yacaovsnc) in
[#​797](https://redirect.github.com/actions/upload-artifact/pull/797)

**Full Changelog**:
<https://github.com/actions/upload-artifact/compare/v7...v7.0.1>

</details>

<details>
<summary>aminya/setup-cpp (aminya/setup-cpp)</summary>

###
[`v1.8.0`](https://redirect.github.com/aminya/setup-cpp/releases/tag/v1.8.0)

[Compare
Source](https://redirect.github.com/aminya/setup-cpp/compare/v1.7.2...v1.8.0)

#### What's Changed

- feat: update default LLVM, Mingw, CMake, Ninja, Task, Meson by
[@​aminya](https://redirect.github.com/aminya) in
[#​455](https://redirect.github.com/aminya/setup-cpp/pull/455)
- fix: default to LLVM 20.1.8 by
[@​aminya](https://redirect.github.com/aminya) in
[#​460](https://redirect.github.com/aminya/setup-cpp/pull/460)
- feat: use bun as the package manager by
[@​aminya](https://redirect.github.com/aminya) in
[#​454](https://redirect.github.com/aminya/setup-cpp/pull/454)
- chore(deps): update fedora docker tag to v44 in
[#​440](https://redirect.github.com/aminya/setup-cpp/pull/440)

**Full Changelog**:
<https://github.com/aminya/setup-cpp/compare/v1.7.2...v1.8.0>

</details>

<details>
<summary>docker/login-action (docker/login-action)</summary>

###
[`v4.1.0`](https://redirect.github.com/docker/login-action/releases/tag/v4.1.0)

[Compare
Source](https://redirect.github.com/docker/login-action/compare/v4...v4.1.0)

- Fix scoped Docker Hub cleanup path when registry is omitted by
[@​crazy-max](https://redirect.github.com/crazy-max) in
[#​945](https://redirect.github.com/docker/login-action/pull/945)
- Bump
[@​aws-sdk/client-ecr](https://redirect.github.com/aws-sdk/client-ecr)
and
[@​aws-sdk/client-ecr-public](https://redirect.github.com/aws-sdk/client-ecr-public)
to 3.1020.0 in
[#​930](https://redirect.github.com/docker/login-action/pull/930)
- Bump
[@​docker/actions-toolkit](https://redirect.github.com/docker/actions-toolkit)
from 0.77.0 to 0.86.0 in
[#​932](https://redirect.github.com/docker/login-action/pull/932)
[#​936](https://redirect.github.com/docker/login-action/pull/936)
- Bump brace-expansion from 1.1.12 to 1.1.13 in
[#​952](https://redirect.github.com/docker/login-action/pull/952)
- Bump fast-xml-parser from 5.3.4 to 5.3.6 in
[#​942](https://redirect.github.com/docker/login-action/pull/942)
- Bump flatted from 3.3.3 to 3.4.2 in
[#​944](https://redirect.github.com/docker/login-action/pull/944)
- Bump glob from 10.3.12 to 10.5.0 in
[#​940](https://redirect.github.com/docker/login-action/pull/940)
- Bump handlebars from 4.7.8 to 4.7.9 in
[#​949](https://redirect.github.com/docker/login-action/pull/949)
- Bump http-proxy-agent and https-proxy-agent to 8.0.0 in
[#​937](https://redirect.github.com/docker/login-action/pull/937)
- Bump lodash from 4.17.23 to 4.18.1 in
[#​958](https://redirect.github.com/docker/login-action/pull/958)
- Bump minimatch from 3.1.2 to 3.1.5 in
[#​941](https://redirect.github.com/docker/login-action/pull/941)
- Bump picomatch from 4.0.3 to 4.0.4 in
[#​948](https://redirect.github.com/docker/login-action/pull/948)
- Bump undici from 6.23.0 to 6.24.1 in
[#​938](https://redirect.github.com/docker/login-action/pull/938)

**Full Changelog**:
<https://github.com/docker/login-action/compare/v4.0.0...v4.1.0>

</details>

<details>
<summary>github/codeql-action (github/codeql-action)</summary>

###
[`v4.35.2`](https://redirect.github.com/github/codeql-action/releases/tag/v4.35.2)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.35.1...v4.35.2)

- The undocumented TRAP cache cleanup feature that could be enabled
using the `CODEQL_ACTION_CLEANUP_TRAP_CACHES` environment variable is
deprecated and will be removed in May 2026. If you are affected by this,
we recommend disabling TRAP caching by passing the `trap-caching: false`
input to the `init` Action.
[#​3795](https://redirect.github.com/github/codeql-action/pull/3795)
- The Git version 2.36.0 requirement for improved incremental analysis
now only applies to repositories that contain submodules.
[#​3789](https://redirect.github.com/github/codeql-action/pull/3789)
- Python analysis on GHES no longer extracts the standard library,
relying instead on models of the standard library. This should result in
significantly faster extraction and analysis times, while the effect on
alerts should be minimal.
[#​3794](https://redirect.github.com/github/codeql-action/pull/3794)
- Fixed a bug in the validation of OIDC configurations for private
registries that was added in CodeQL Action 4.33.0 / 3.33.0.
[#​3807](https://redirect.github.com/github/codeql-action/pull/3807)
- Update default CodeQL bundle version to
[2.25.2](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.2).
[#​3823](https://redirect.github.com/github/codeql-action/pull/3823)

###
[`v4.35.1`](https://redirect.github.com/github/codeql-action/releases/tag/v4.35.1)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.35.0...v4.35.1)

- Fix incorrect minimum required Git version for [improved incremental
analysis](https://redirect.github.com/github/roadmap/issues/1158): it
should have been 2.36.0, not 2.11.0.
[#​3781](https://redirect.github.com/github/codeql-action/pull/3781)

###
[`v4.35.0`](https://redirect.github.com/github/codeql-action/releases/tag/v4.35.0)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.34.1...v4.35.0)

- Reduced the minimum Git version required for [improved incremental
analysis](https://redirect.github.com/github/roadmap/issues/1158) from
2.38.0 to 2.11.0.
[#​3767](https://redirect.github.com/github/codeql-action/pull/3767)
- Update default CodeQL bundle version to
[2.25.1](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.1).
[#​3773](https://redirect.github.com/github/codeql-action/pull/3773)

###
[`v4.34.1`](https://redirect.github.com/github/codeql-action/releases/tag/v4.34.1)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.34.0...v4.34.1)

- Downgrade default CodeQL bundle version to
[2.24.3](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.3)
due to issues with a small percentage of Actions and JavaScript
analyses.
[#​3762](https://redirect.github.com/github/codeql-action/pull/3762)

###
[`v4.34.0`](https://redirect.github.com/github/codeql-action/releases/tag/v4.34.0)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.33.0...v4.34.0)

- Added an experimental change which disables TRAP caching when
[improved incremental
analysis](https://redirect.github.com/github/roadmap/issues/1158) is
enabled, since improved incremental analysis supersedes TRAP caching.
This will improve performance and reduce Actions cache usage. We expect
to roll this change out to everyone in March.
[#​3569](https://redirect.github.com/github/codeql-action/pull/3569)
- We are rolling out improved incremental analysis to C/C++ analyses
that use build mode `none`. We expect this rollout to be complete by the
end of April 2026.
[#​3584](https://redirect.github.com/github/codeql-action/pull/3584)
- Update default CodeQL bundle version to
[2.25.0](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.25.0).
[#​3585](https://redirect.github.com/github/codeql-action/pull/3585)

###
[`v4.33.0`](https://redirect.github.com/github/codeql-action/releases/tag/v4.33.0)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.32.6...v4.33.0)

- Upcoming change: Starting April 2026, the CodeQL Action will skip
collecting file coverage information on pull requests to improve
analysis performance. File coverage information will still be computed
on non-PR analyses. Pull request analyses will log a warning about this
upcoming change.
[#​3562](https://redirect.github.com/github/codeql-action/pull/3562)

  To opt out of this change:

- **Repositories owned by an organization:** Create a custom repository
property with the name `github-codeql-file-coverage-on-prs` and the type
"True/false", then set this property to `true` in the repository's
settings. For more information, see [Managing custom properties for
repositories in your
organization](https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization).
Alternatively, if you are using an advanced setup workflow, you can set
the `CODEQL_ACTION_FILE_COVERAGE_ON_PRS` environment variable to `true`
in your workflow.
- **User-owned repositories using default setup:** Switch to an advanced
setup workflow and set the `CODEQL_ACTION_FILE_COVERAGE_ON_PRS`
environment variable to `true` in your workflow.
- **User-owned repositories using advanced setup:** Set the
`CODEQL_ACTION_FILE_COVERAGE_ON_PRS` environment variable to `true` in
your workflow.
- Fixed [a
bug](https://redirect.github.com/github/codeql-action/issues/3555) which
caused the CodeQL Action to fail loading repository properties if a
"Multi select" repository property was configured for the repository.
[#​3557](https://redirect.github.com/github/codeql-action/pull/3557)
- The CodeQL Action now loads [custom repository
properties](https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization)
on GitHub Enterprise Server, enabling the customization of features such
as `github-codeql-disable-overlay` that was previously only available on
GitHub.com.
[#​3559](https://redirect.github.com/github/codeql-action/pull/3559)
- Once [private package
registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries)
can be configured with OIDC-based authentication for organizations, the
CodeQL Action will now be able to accept such configurations.
[#​3563](https://redirect.github.com/github/codeql-action/pull/3563)
- Fixed the retry mechanism for database uploads. Previously this would
fail with the error "Response body object should not be disturbed or
locked".
[#​3564](https://redirect.github.com/github/codeql-action/pull/3564)
- A warning is now emitted if the CodeQL Action detects a repository
property whose name suggests that it relates to the CodeQL Action, but
which is not one of the properties recognised by the current version of
the CodeQL Action.
[#​3570](https://redirect.github.com/github/codeql-action/pull/3570)

###
[`v4.32.6`](https://redirect.github.com/github/codeql-action/releases/tag/v4.32.6)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.32.5...v4.32.6)

- Update default CodeQL bundle version to
[2.24.3](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.3).
[#​3548](https://redirect.github.com/github/codeql-action/pull/3548)

###
[`v4.32.5`](https://redirect.github.com/github/codeql-action/releases/tag/v4.32.5)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.32.4...v4.32.5)

- Repositories owned by an organization can now set up the
`github-codeql-disable-overlay` custom repository property to disable
[improved incremental analysis for
CodeQL](https://redirect.github.com/github/roadmap/issues/1158). First,
create a custom repository property with the name
`github-codeql-disable-overlay` and the type "True/false" in the
organization's settings. Then in the repository's settings, set this
property to `true` to disable improved incremental analysis. For more
information, see [Managing custom properties for repositories in your
organization](https://docs.github.com/en/organizations/managing-organization-settings/managing-custom-properties-for-repositories-in-your-organization).
This feature is not yet available on GitHub Enterprise Server.
[#​3507](https://redirect.github.com/github/codeql-action/pull/3507)
- Added an experimental change so that when [improved incremental
analysis](https://redirect.github.com/github/roadmap/issues/1158) fails
on a runner — potentially due to insufficient disk space — the failure
is recorded in the Actions cache so that subsequent runs will
automatically skip improved incremental analysis until something changes
(e.g. a larger runner is provisioned or a new CodeQL version is
released). We expect to roll this change out to everyone in March.
[#​3487](https://redirect.github.com/github/codeql-action/pull/3487)
- The minimum memory check for improved incremental analysis is now
skipped for CodeQL 2.24.3 and later, which has reduced peak RAM usage.
[#​3515](https://redirect.github.com/github/codeql-action/pull/3515)
- Reduced log levels for best-effort private package registry connection
check failures to reduce noise from workflow annotations.
[#​3516](https://redirect.github.com/github/codeql-action/pull/3516)
- Added an experimental change which lowers the minimum disk space
requirement for [improved incremental
analysis](https://redirect.github.com/github/roadmap/issues/1158),
enabling it to run on standard GitHub Actions runners. We expect to roll
this change out to everyone in March.
[#​3498](https://redirect.github.com/github/codeql-action/pull/3498)
- Added an experimental change which allows the `start-proxy` action to
resolve the CodeQL CLI version from feature flags instead of using the
linked CLI bundle version. We expect to roll this change out to everyone
in March.
[#​3512](https://redirect.github.com/github/codeql-action/pull/3512)
- The previously experimental changes from versions 4.32.3, 4.32.4,
3.32.3 and 3.32.4 are now enabled by default.
[#​3503](https://redirect.github.com/github/codeql-action/pull/3503),
[#​3504](https://redirect.github.com/github/codeql-action/pull/3504)

###
[`v4.32.4`](https://redirect.github.com/github/codeql-action/releases/tag/v4.32.4)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.32.3...v4.32.4)

- Update default CodeQL bundle version to
[2.24.2](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.2).
[#​3493](https://redirect.github.com/github/codeql-action/pull/3493)
- Added an experimental change which improves how certificates are
generated for the authentication proxy that is used by the CodeQL Action
in Default Setup when [private package registries are
configured](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries).
This is expected to generate more widely compatible certificates and
should have no impact on analyses which are working correctly already.
We expect to roll this change out to everyone in February.
[#​3473](https://redirect.github.com/github/codeql-action/pull/3473)
- When the CodeQL Action is run [with debugging enabled in Default
Setup](https://docs.github.com/en/code-security/how-tos/scan-code-for-vulnerabilities/troubleshooting/troubleshooting-analysis-errors/logs-not-detailed-enough#creating-codeql-debugging-artifacts-for-codeql-default-setup)
and [private package registries are
configured](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries),
the "Setup proxy for registries" step will output additional diagnostic
information that can be used for troubleshooting.
[#​3486](https://redirect.github.com/github/codeql-action/pull/3486)
- Added a setting which allows the CodeQL Action to enable network
debugging for Java programs. This will help GitHub staff support
customers with troubleshooting issues in GitHub-managed CodeQL
workflows, such as Default Setup. This setting can only be enabled by
GitHub staff.
[#​3485](https://redirect.github.com/github/codeql-action/pull/3485)
- Added a setting which enables GitHub-managed workflows, such as
Default Setup, to use a [nightly CodeQL CLI
release](https://redirect.github.com/dsp-testing/codeql-cli-nightlies)
instead of the latest, stable release that is used by default. This will
help GitHub staff support customers whose analyses for a given
repository or organization require early access to a change in an
upcoming CodeQL CLI release. This setting can only be enabled by GitHub
staff.
[#​3484](https://redirect.github.com/github/codeql-action/pull/3484)

###
[`v4.32.3`](https://redirect.github.com/github/codeql-action/releases/tag/v4.32.3)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.32.2...v4.32.3)

- Added experimental support for testing connections to [private package
registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries).
This feature is not currently enabled for any analysis. In the future,
it may be enabled by default for Default Setup.
[#​3466](https://redirect.github.com/github/codeql-action/pull/3466)

###
[`v4.32.2`](https://redirect.github.com/github/codeql-action/compare/v4.32.1...v4.32.2)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.32.1...v4.32.2)

###
[`v4.32.1`](https://redirect.github.com/github/codeql-action/releases/tag/v4.32.1)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.32.0...v4.32.1)

- A warning is now shown in Default Setup workflow logs if a [private
package registry is
configured](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries)
using a GitHub Personal Access Token (PAT), but no username is
configured.
[#​3422](https://redirect.github.com/github/codeql-action/pull/3422)
- Fixed a bug which caused the CodeQL Action to fail when repository
properties cannot successfully be retrieved.
[#​3421](https://redirect.github.com/github/codeql-action/pull/3421)

###
[`v4.32.0`](https://redirect.github.com/github/codeql-action/releases/tag/v4.32.0)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.31.11...v4.32.0)

- Update default CodeQL bundle version to
[2.24.0](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.24.0).
[#​3425](https://redirect.github.com/github/codeql-action/pull/3425)

###
[`v4.31.11`](https://redirect.github.com/github/codeql-action/releases/tag/v4.31.11)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.31.10...v4.31.11)

- When running a Default Setup workflow with [Actions debugging
enabled](https://docs.github.com/en/actions/how-tos/monitor-workflows/enable-debug-logging),
the CodeQL Action will now use more unique names when uploading logs
from the Dependabot authentication proxy as workflow artifacts. This
ensures that the artifact names do not clash between multiple jobs in a
build matrix.
[#​3409](https://redirect.github.com/github/codeql-action/pull/3409)
- Improved error handling throughout the CodeQL Action.
[#​3415](https://redirect.github.com/github/codeql-action/pull/3415)
- Added experimental support for automatically excluding [generated
files](https://docs.github.com/en/repositories/working-with-files/managing-files/customizing-how-changed-files-appear-on-github)
from the analysis. This feature is not currently enabled for any
analysis. In the future, it may be enabled by default for some
GitHub-managed analyses.
[#​3318](https://redirect.github.com/github/codeql-action/pull/3318)
- The changelog extracts that are included with releases of the CodeQL
Action are now shorter to avoid duplicated information from appearing in
Dependabot PRs.
[#​3403](https://redirect.github.com/github/codeql-action/pull/3403)

###
[`v4.31.10`](https://redirect.github.com/github/codeql-action/releases/tag/v4.31.10)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.31.9...v4.31.10)

##### CodeQL Action Changelog

See the [releases
page](https://redirect.github.com/github/codeql-action/releases) for the
relevant changes to the CodeQL CLI and language packs.

##### 4.31.10 - 12 Jan 2026

- Update default CodeQL bundle version to 2.23.9.
[#​3393](https://redirect.github.com/github/codeql-action/pull/3393)

See the full
[CHANGELOG.md](https://redirect.github.com/github/codeql-action/blob/v4.31.10/CHANGELOG.md)
for more information.

</details>

<details>
<summary>hendrikmuhs/ccache-action (hendrikmuhs/ccache-action)</summary>

###
[`v1.2.22`](https://redirect.github.com/hendrikmuhs/ccache-action/releases/tag/v1.2.22)

[Compare
Source](https://redirect.github.com/hendrikmuhs/ccache-action/compare/v1.2.21...v1.2.22)

#### What's Changed

- Bump picomatch by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​435](https://redirect.github.com/hendrikmuhs/ccache-action/pull/435)
- Bump fast-xml-parser from 5.4.1 to 5.5.7 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​434](https://redirect.github.com/hendrikmuhs/ccache-action/pull/434)

**Full Changelog**:
<https://github.com/hendrikmuhs/ccache-action/compare/v1.2.21...v1.2.22>

###
[`v1.2.21`](https://redirect.github.com/hendrikmuhs/ccache-action/releases/tag/v1.2.21)

[Compare
Source](https://redirect.github.com/hendrikmuhs/ccache-action/compare/v1.2.20...v1.2.21)

##### What's Changed

- Bump actions/checkout from 5 to 6 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​396](https://redirect.github.com/hendrikmuhs/ccache-action/pull/396)
- Bump [@​types/node](https://redirect.github.com/types/node) from
24.10.0 to 25.2.2 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​417](https://redirect.github.com/hendrikmuhs/ccache-action/pull/417)
- Bump
[@​actions/cache](https://redirect.github.com/actions/cache) from
4.1.0 to 6.0.0 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​412](https://redirect.github.com/hendrikmuhs/ccache-action/pull/412)
- Bump [@​actions/core](https://redirect.github.com/actions/core)
from 1.11.1 to 3.0.0 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​413](https://redirect.github.com/hendrikmuhs/ccache-action/pull/413)
- Bump [@​actions/exec](https://redirect.github.com/actions/exec)
from 1.1.1 to 3.0.0 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​414](https://redirect.github.com/hendrikmuhs/ccache-action/pull/414)
- Bump [@​actions/io](https://redirect.github.com/actions/io) from
2.0.0 to 3.0.2 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​416](https://redirect.github.com/hendrikmuhs/ccache-action/pull/416)
- refactor: add Windows ARM and macOS binaries, use a single Package
class, deduplicate some common install code by
[@​crueter](https://redirect.github.com/crueter) in
[#​403](https://redirect.github.com/hendrikmuhs/ccache-action/pull/403)
- Bump [@​types/node](https://redirect.github.com/types/node) from
25.2.2 to 25.3.3 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​421](https://redirect.github.com/hendrikmuhs/ccache-action/pull/421)
- Bump jest from 30.2.0 to 30.3.0 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​431](https://redirect.github.com/hendrikmuhs/ccache-action/pull/431)
- Upgrade Node.js version from 20 to 24 by
[@​janisozaur](https://redirect.github.com/janisozaur) in
[#​427](https://redirect.github.com/hendrikmuhs/ccache-action/pull/427)
- Bump [@​types/node](https://redirect.github.com/types/node) from
25.3.3 to 25.5.0 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​430](https://redirect.github.com/hendrikmuhs/ccache-action/pull/430)
- refactor: generate metadata json file by
[@​crueter](https://redirect.github.com/crueter) in
[#​422](https://redirect.github.com/hendrikmuhs/ccache-action/pull/422)
- tests: add install matrix by
[@​crueter](https://redirect.github.com/crueter) in
[#​423](https://redirect.github.com/hendrikmuhs/ccache-action/pull/423)
- Bump undici from 6.23.0 to 6.24.1 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​429](https://redirect.github.com/hendrikmuhs/ccache-action/pull/429)

##### New Contributors

- [@​crueter](https://redirect.github.com/crueter) made their
first contribution in
[#​403](https://redirect.github.com/hendrikmuhs/ccache-action/pull/403)

**Full Changelog**:
<https://github.com/hendrikmuhs/ccache-action/compare/v1.2...v1.2.21>

</details>

<details>
<summary>maxim-lobanov/setup-xcode (maxim-lobanov/setup-xcode)</summary>

###
[`v1.7.0`](https://redirect.github.com/maxim-lobanov/setup-xcode/releases/tag/v1.7.0):
Update Node.js to 24

[Compare
Source](https://redirect.github.com/maxim-lobanov/setup-xcode/compare/v1.6.0...v1.7.0)

#### What's Changed

- Bump self used GHA by
[@​Goooler](https://redirect.github.com/Goooler) in
[#​82](https://redirect.github.com/maxim-lobanov/setup-xcode/pull/82)
- Update validation matrix on CI by
[@​Goooler](https://redirect.github.com/Goooler) in
[#​83](https://redirect.github.com/maxim-lobanov/setup-xcode/pull/83)
- Update action runtime to node24 and polish e2e test matrix by
[@​Goooler](https://redirect.github.com/Goooler) in
[#​98](https://redirect.github.com/maxim-lobanov/setup-xcode/pull/98)

#### New Contributors

- [@​Goooler](https://redirect.github.com/Goooler) made their
first contribution in
[#​82](https://redirect.github.com/maxim-lobanov/setup-xcode/pull/82)

**Full Changelog**:
<https://github.com/maxim-lobanov/setup-xcode/compare/v1.6.0...v1.7.0>

</details>

<details>
<summary>pypa/gh-action-pypi-publish
(pypa/gh-action-pypi-publish)</summary>

###
[`v1.14.0`](https://redirect.github.com/pypa/gh-action-pypi-publish/releases/tag/v1.14.0)

[Compare
Source](https://redirect.github.com/pypa/gh-action-pypi-publish/compare/v1.13.0...v1.14.0)

<p align="right"><i>Audit your supply chain regularly!</i></p>

#### ✨ What's Changed

The main change in this release is that `verbose` and `print-hash`
inputs are now on by default. This was contributed by
[@​whitequark](https://redirect.github.com/whitequark)[💰](https://redirect.github.com/sponsors/whitequark)
in
[#​397](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/397).

#### 📝 Docs


[@​woodruffw](https://redirect.github.com/woodruffw)[💰](https://redirect.github.com/sponsors/woodruffw)
updated the mentions of PEP 740 to stop implying that it might be
experimental (it hasn't been for quite a while!) in
[#​388](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/388)
and
[@​him2him2](https://redirect.github.com/him2him2)[💰](https://redirect.github.com/sponsors/him2him2)
brushed up some grammar in the README and SECURITY docs via
[#​395](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/395).

#### 🛠️ Internal Updates


[@​woodruffw](https://redirect.github.com/woodruffw)[💰](https://redirect.github.com/sponsors/woodruffw)
bumped `sigstore` and `pypi-attestations` in the lock file
([#​391](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/391))
and [@​webknjaz](https://redirect.github.com/webknjaz)[💰][GH
Sponsors URL] added infra for using type annotations in the project
([#​381](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/381)).

#### 💪 New Contributors

- [@​him2him2](https://redirect.github.com/him2him2) made their
first contribution in
[#​395](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/395)
- [@​whitequark](https://redirect.github.com/whitequark) made
their first contribution in
[#​397](https://redirect.github.com/pypa/gh-action-pypi-publish/issues/397)

**🪞 Full Diff**:
<https://github.com/pypa/gh-action-pypi-publish/compare/v1.13.0...v1.14.0>

**🧔‍♂️ Release Manager:**
[@​webknjaz](https://redirect.github.com/sponsors/webknjaz)
[🇺🇦](https://stand-with-ukraine.pp.ua)

**🙏 Special Thanks** to
[@​facutuesca](https://redirect.github.com/facutuesca)[💰](https://redirect.github.com/sponsors/facutuesca)
and
[@​woodruffw](https://redirect.github.com/woodruffw)[💰](https://redirect.github.com/sponsors/woodruffw)
for helping maintain this project when [I][GH Sponsors URL] can't!

**💬 Discuss** [on Bluesky
🦋](https://bsky.app/profile/webknjaz.me/post/3mivwsz3qzk2e), [on
Mastodon 🐘](https://mastodon.social/@​webknjaz/116363779997051422)
and [on GitHub][release discussion].

[![GH Sponsors badge]][GH Sponsors URL]

[GH Sponsors badge]:
https://img.shields.io/badge/%40webknjaz-transparent?logo=githubsponsors&logoColor=%23EA4AAA&label=Sponsor&color=2a313c

[GH Sponsors URL]: https://redirect.github.com/sponsors/webknjaz

[release discussion]:
https://redirect.github.com/pypa/gh-action-pypi-publish/discussions/404

</details>

<details>
<summary>actions/python-versions (python)</summary>

###
[`v3.14.4`](https://redirect.github.com/actions/python-versions/releases/tag/3.14.4-24114161919):
3.14.4

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.14.3-21673711214...3.14.4-24114161919)

Python 3.14.4

###
[`v3.14.3`](https://redirect.github.com/actions/python-versions/releases/tag/3.14.3-21673711214):
3.14.3

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.14.2-20014991423...3.14.3-21673711214)

Python 3.14.3

###
[`v3.14.2`](https://redirect.github.com/actions/python-versions/releases/tag/3.14.2-20014991423):
3.14.2

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.14.1-19879739908...3.14.2-20014991423)

Python 3.14.2

###
[`v3.14.1`](https://redirect.github.com/actions/python-versions/releases/tag/3.14.1-19879739908):
3.14.1

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.14.0-18313368925...3.14.1-19879739908)

Python 3.14.1

###
[`v3.14.0`](https://redirect.github.com/actions/python-versions/releases/tag/3.14.0-18313368925):
3.14.0

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.13-24114113768...3.14.0-18313368925)

Python 3.14.0

###
[`v3.13.13`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.13-24114113768):
3.13.13

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.12-21673645133...3.13.13-24114113768)

Python 3.13.13

###
[`v3.13.12`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.12-21673645133):
3.13.12

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.11-20014977833...3.13.12-21673645133)

Python 3.13.12

###
[`v3.13.11`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.11-20014977833):
3.13.11

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.10-19879712315...3.13.11-20014977833)

Python 3.13.11

###
[`v3.13.10`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.10-19879712315):
3.13.10

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.9-18515951191...3.13.10-19879712315)

Python 3.13.10

###
[`v3.13.9`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.9-18515951191):
3.13.9

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.8-18331000654...3.13.9-18515951191)

Python 3.13.9

###
[`v3.13.8`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.8-18331000654):
3.13.8

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.7-16980743123...3.13.8-18331000654)

Python 3.13.8

###
[`v3.13.7`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.7-16980743123):
3.13.7

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.6-16792117939...3.13.7-16980743123)

Python 3.13.7

###
[`v3.13.6`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.6-16792117939):
3.13.6

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.5-15601068749...3.13.6-16792117939)

Python 3.13.6

###
[`v3.13.5`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.5-15601068749):
3.13.5

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.4-15433317575...3.13.5-15601068749)

Python 3.13.5

###
[`v3.13.4`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.4-15433317575):
3.13.4

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.3-14344076652...3.13.4-15433317575)

Python 3.13.4

###
[`v3.13.3`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.3-14344076652):
3.13.3

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.2-13708744326...3.13.3-14344076652)

Python 3.13.3

###
[`v3.13.2`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.2-13708744326):
3.13.2

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.1-13437882550...3.13.2-13708744326)

Python 3.13.2

###
[`v3.13.1`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.1-13437882550):
3.13.1

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.0-13707372259...3.13.1-13437882550)

Python 3.13.1

###
[`v3.13.0`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.0-13707372259):
3.13.0

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.12.13-22652080177...3.13.0-13707372259)

Python 3.13.0

###
[`v3.12.13`](https://redirect.github.com/actions/python-versions/releases/tag/3.12.13-22652080177):
3.12.13

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.12.12-18393146713...3.12.13-22652080177)

Python 3.12.13

###
[`v3.12.12`](https://redirect.github.com/actions/python-versions/releases/tag/3.12.12-18393146713):
3.12.12

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.12.11-15433310049...3.12.12-18393146713)

Python 3.12.12

###
[`v3.12.11`](https://redirect.github.com/actions/python-versions/releases/tag/3.12.11-15433310049):
3.12.11

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.12.10-14343898437...3.12.11-15433310049)

Python 3.12.11

###
[`v3.12.10`](https://redirect.github.com/actions/python-versions/releases/tag/3.12.10-14343898437):
3.12.10

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.12.9-13149478207...3.12.10-14343898437)

Python 3.12.10

###
[`v3.12.9`](https://redirect.github.com/actions/python-versions/releases/tag/3.12.9-13149478207):
3.12.9

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.12.8-12154062663...3.12.9-13149478207)

Python 3.12.9

###
[`v3.12.8`](https://redirect.github.com/actions/python-versions/releases/tag/3.12.8-12154062663):
3.12.8

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.12.7-11128208086...3.12.8-12154062663)

Python 3.12.8

###
[`v3.12.7`](https://redirect.github.com/actions/python-versions/releases/tag/3.12.7-11128208086):
3.12.7

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.12.6-10765725458...3.12.7-11128208086)

Python 3.12.7

###
[`v3.12.6`](https://redirect.github.com/actions/python-versions/releases/tag/3.12.6-10765725458):
3.12.6

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.12.5-10375840348...3.12.6-10765725458)

Python 3.12.6

###
[`v3.12.5`](https://redirect.github.com/actions/python-versions/releases/tag/3.12.5-10375840348):
3.12.5

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.12.4-9947065640...3.12.5-10375840348)

Python 3.12.5

###
[`v3.12.4`](https://redirect.github.com/actions/python-versions/releases/tag/3.12.4-9947065640):
3.12.4

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.12.3-11057844995...3.12.4-9947065640)

Python 3.12.4

###
[`v3.12.3`](https://redirect.github.com/actions/python-versions/releases/tag/3.12.3-11057844995):
3.12.3

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.12.2-11057786931...3.12.3-11057844995)

Python 3.12.3

###
[`v3.12.2`](https://redirect.github.com/actions/python-versions/releases/tag/3.12.2-11057786931):
3.12.2

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.12.1-11057762749...3.12.2-11057786931)

Python 3.12.2

###
[`v3.12.1`](https://redirect.github.com/actions/python-versions/releases/tag/3.12.1-11057762749):
3.12.1

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.12.0-11057302691...3.12.1-11057762749)

Python 3.12.1

###
[`v3.12.0`](https://redirect.github.com/actions/python-versions/releases/tag/3.12.0-11057302691):
3.12.0

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.11.15-22631496413...3.12.0-11057302691)

Python 3.12.0

###
[`v3.11.15`](https://redirect.github.com/actions/python-versions/releases/tag/3.11.15-22631496413):
3.11.15

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.11.14-18393181605...3.11.15-22631496413)

Python 3.11.15

###
[`v3.11.14`](https://redirect.github.com/actions/python-versions/releases/tag/3.11.14-18393181605):
3.11.14

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.11.13-15433298024...3.11.14-18393181605)

Python 3.11.14

###
[`v3.11.13`](https://redirect.github.com/actions/python-versions/releases/tag/3.11.13-15433298024):
3.11.13

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.11.12-14343939122...3.11.13-15433298024)

Python 3.11.13

###
[`v3.11.12`](https://redirect.github.com/actions/python-versions/releases/tag/3.11.12-14343939122):
3.11.12

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.11.11-12160100664...3.11.12-14343939122)

Python 3.11.12

###
[`v3.11.11`](https://redirect.github.com/actions/python-versions/releases/tag/3.11.11-12160100664):
3.11.11

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.11.10-10765870205...3.11.11-12160100664)

Python 3.11.11

###
[`v3.11.10`](https://redirect.github.com/actions/python-versions/releases/tag/3.11.10-10765870205):
3.11.10

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.11.9-9947079978...3.11.10-10765870205)

Python 3.11.10

</details>

<details>
<summary>tj-actions/changed-files (tj-actions/changed-files)</summary>

###
[`v47.0.6`](https://redirect.github.com/tj-actions/changed-files/releases/tag/v47.0.6)

[Compare
Source](https://redirect.github.com/tj-actions/changed-files/compare/v47.0.5...v47.0.6)

#### What's Changed

- Upgraded to v47.0.5 by
[@​github-actions](https://redirect.github.com/github-actions)\[bot]
in
[#​2816](https://redirect.github.com/tj-actions/changed-files/pull/2816)
- Updated README.md by
[@​github-actions](https://redirect.github.com/github-actions)\[bot]
in
[#​2817](https://redirect.github.com/tj-actions/changed-files/pull/2817)
- chore(deps): bump actions/setup-node from 6.2.0 to 6.3.0 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2818](https://redirect.github.com/tj-actions/changed-files/pull/2818)
- chore(deps-dev): bump
[@​types/node](https://redirect.github.com/types/node) from 25.3.3
to 25.3.5 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2820](https://redirect.github.com/tj-actions/changed-files/pull/2820)
- chore(deps): bump github/codeql-action from 4.32.5 to 4.32.6 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2819](https://redirect.github.com/tj-actions/changed-files/pull/2819)
- chore(deps-dev): bump
[@​types/node](https://redirect.github.com/types/node) from 25.3.5
to 25.5.0 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2825](https://redirect.github.com/tj-actions/changed-files/pull/2825)
- chore(deps): bump actions/download-artifact from 8.0.0 to 8.0.1 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2824](https://redirect.github.com/tj-actions/changed-files/pull/2824)
- chore(deps): bump github/codeql-action from 4.32.6 to 4.35.1 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2834](https://redirect.github.com/tj-actions/changed-files/pull/2834)
- chore(deps-dev): bump eslint-plugin-jest from 29.15.0 to 29.15.1 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2831](https://redirect.github.com/tj-actions/changed-files/pull/2831)
- chore(deps): bump yaml from 2.8.2 to 2.8.3 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2830](https://redirect.github.com/tj-actions/changed-files/pull/2830)
- chore(deps): bump nrwl/nx-set-shas from 4.4.0 to 5.0.1 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2829](https://redirect.github.com/tj-actions/changed-files/pull/2829)
- chore(deps-dev): bump jest from 30.2.0 to 30.3.0 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2822](https://redirect.github.com/tj-actions/changed-files/pull/2822)
- chore(deps): bump github/codeql-action from 4.35.1 to 4.35.2 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2849](https://redirect.github.com/tj-actions/changed-files/pull/2849)
- chore(deps-dev): bump prettier from 3.8.1 to 3.8.3 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2848](https://redirect.github.com/tj-actions/changed-files/pull/2848)
- chore(deps-dev): bump
[@​types/node](https://redirect.github.com/types/node) from 25.5.0
to 25.6.0 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2846](https://redirect.github.com/tj-actions/changed-files/pull/2846)
- chore(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2844](https://redirect.github.com/tj-actions/changed-files/pull/2844)
- chore(deps): bump peter-evans/create-pull-request from 8.1.0 to 8.1.1
by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2843](https://redirect.github.com/tj-actions/changed-files/pull/2843)
- chore(deps): bump lodash from 4.17.23 to 4.18.1 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2837](https://redirect.github.com/tj-actions/changed-files/pull/2837)

**Full Changelog**:
<https://github.com/tj-actions/changed-files/compare/v47.0.5...v47.0.6>

###
[`v47.0.5`](https://redirect.github.com/tj-actions/changed-files/releases/tag/v47.0.5)

[Compare
Source](https://redirect.github.com/tj-actions/changed-files/compare/v47.0.4...v47.0.5)

#### What's Changed

- Upgraded to v47.0.4 by
[@​github-actions](https://redirect.github.com/github-actions)\[bot]
in
[#​2802](https://redirect.github.com/tj-actions/changed-files/pull/2802)
- Updated README.md by
[@​github-actions](https://redirect.github.com/github-actions)\[bot]
in
[#​2803](https://redirect.github.com/tj-actions/changed-files/pull/2803)
- Updated README.md by
[@​github-actions](https://redirect.github.com/github-actions)\[bot]
in
[#​2805](https://redirect.github.com/tj-actions/changed-files/pull/2805)
- chore(deps-dev): bump
[@​types/node](https://redirect.github.com/types/node) from 25.2.2
to 25.3.2 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2811](https://redirect.github.com/tj-actions/changed-files/pull/2811)
- chore(deps): bump actions/download-artifact from 7.0.0 to 8.0.0 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2810](https://redirect.github.com/tj-actions/changed-files/pull/2810)
- chore(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2809](https://redirect.github.com/tj-actions/changed-files/pull/2809)
- chore(deps-dev): bump eslint-plugin-jest from 29.12.1 to 29.15.0 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2799](https://redirect.github.com/tj-actions/changed-files/pull/2799)
- chore(deps): bump github/codeql-action from 4.32.2 to 4.32.4 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2806](https://redirect.github.com/tj-actions/changed-files/pull/2806)
- chore(deps-dev): bump prettier from 3.7.4 to 3.8.1 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2775](https://redirect.github.com/tj-actions/changed-files/pull/2775)
- chore(deps): bump peter-evans/create-pull-request from 8.0.0 to 8.1.0
by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2774](https://redirect.github.com/tj-actions/changed-files/pull/2774)
- chore(deps): bump lodash and
[@​types/lodash](https://redirect.github.com/types/lodash) by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2807](https://redirect.github.com/tj-actions/changed-files/pull/2807)
- chore(deps-dev): bump eslint-plugin-prettier from 5.5.4 to 5.5.5 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2764](https://redirect.github.com/tj-actions/changed-files/pull/2764)
- chore(deps): bump github/codeql-action from 4.32.4 to 4.32.5 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2815](https://redirect.github.com/tj-actions/changed-files/pull/2815)
- chore(deps-dev): bump
[@​types/node](https://redirect.github.com/types/node) from 25.3.2
to 25.3.3 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2814](https://redirect.github.com/tj-actions/changed-files/pull/2814)

**Full Changelog**:
<https://github.com/tj-actions/changed-files/compare/v47.0.4...v47.0.5>

###
[`v47.0.4`](https://redirect.github.com/tj-actions/changed-files/releases/tag/v47.0.4)

[Compare
Source](https://redirect.github.com/tj-actions/changed-files/compare/v47.0.3...v47.0.4)

#### What's Changed

- update: release-tagger action to version 6.0.6 by
[@​jackton1](https://redirect.github.com/jackton1) in
[#​2801](https://redirect.github.com/tj-actions/changed-files/pull/2801)

**Full Changelog**:
<https://github.com/tj-actions/changed-files/compare/v47.0.3...v47.0.4>

###
[`v47.0.3`](https://redirect.github.com/tj-actions/changed-files/releases/tag/v47.0.3)

[Compare
Source](https://redirect.github.com/tj-actions/changed-files/compare/v47.0.2...v47.0.3)

#### What's Changed

- chore(deps): bump github/codeql-action from 4.31.10 to 4.32.2 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2790](https://redirect.github.com/tj-actions/changed-files/pull/2790)
- update: release-tagger action to version 6.0.0 by
[@​jackton1](https://redirect.github.com/jackton1) in
[#​2800](https://redirect.github.com/tj-actions/changed-files/pull/2800)

**Full Changelog**:
<https://github.com/tj-actions/changed-files/compare/v47.0.2...v47.0.3>

###
[`v47.0.2`](https://redirect.github.com/tj-actions/changed-files/releases/tag/v47.0.2)

[Compare
Source](https://redirect.github.com/tj-actions/changed-files/compare/v47.0.1...v47.0.2)

#### What's Changed

- chore(deps-dev): bump eslint-plugin-jest from 29.2.1 to 29.11.0 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2751](https://redirect.github.com/tj-actions/changed-files/pull/2751)
- chore(deps): bump actions/upload-artifact from 5.0.0 to 6.0.0 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2741](https://redirect.github.com/tj-actions/changed-files/pull/2741)
- chore(deps): bump actions/download-artifact from 6.0.0 to 7.0.0 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2743](https://redirect.github.com/tj-actions/changed-files/pull/2743)
- chore(deps): bump
[@​actions/core](https://redirect.github.com/actions/core) from
2.0.0 to 2.0.2 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2757](https://redirect.github.com/tj-actions/changed-files/pull/2757)
- Updated README.md by
[@​github-actions](https://redirect.github.com/github-actions)\[bot]
in
[#​2768](https://redirect.github.com/tj-actions/changed-files/pull/2768)
- chore: update dist by
[@​jackton1](https://redirect.github.com/jackton1) in
[#​2769](https://redirect.github.com/tj-actions/changed-files/pull/2769)
- chore: update matrix-example.yml by
[@​jackton1](https://redirect.github.com/jackton1) in
[#​2752](https://redirect.github.com/tj-actions/changed-files/pull/2752)
- feat: add support for excluding symlinks and fix bug with commit not
found by [@​jackton1](https://redirect.github.com/jackton1) in
[#​2770](https://redirect.github.com/tj-actions/changed-files/pull/2770)
- chore(deps): bump github/codeql-action from 4.31.7 to 4.31.10 by
[@​dependabot](https://redirect.github.com/dependabot)\[bot] in
[#​2761](https://redirect.github.com/tj-actions/changed-files/pull/2761)
- Updated README.md by [@​github-actions](

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - Between 12:00 AM and 12:59 AM, only on Monday (`* 0 * * 1`)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/llvm/llvm-project).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43NC41IiwidXBkYXRlZEluVmVyIjoiNDMuMTM4LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

---------

Co-authored-by: Aiden Grossman <agrossman154 at yahoo.com>


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

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

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


  Commit: 8cc12bcf730e5e5ac26629c248fd2328a0c98fae
      https://github.com/llvm/llvm-project/commit/8cc12bcf730e5e5ac26629c248fd2328a0c98fae
  Author: Deric C. <cheung.deric at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/Compiler.cpp
    M clang/lib/AST/ByteCode/Compiler.h
    M clang/test/SemaHLSL/BuiltIns/asfloat-constexpr.hlsl
    M clang/test/SemaHLSL/BuiltIns/asuint-constexpr.hlsl
    M clang/test/SemaHLSL/Language/InitIncompleteArrays.hlsl
    M clang/test/SemaHLSL/Types/AggregateSplatConstantExpr.hlsl
    M clang/test/SemaHLSL/Types/Arithmetic/half_size.hlsl
    M clang/test/SemaHLSL/Types/Arithmetic/literal_suffixes.hlsl
    M clang/test/SemaHLSL/Types/Arithmetic/literal_suffixes_202x.hlsl
    M clang/test/SemaHLSL/Types/Arithmetic/literal_suffixes_no_16bit.hlsl
    M clang/test/SemaHLSL/Types/BuiltinVector/BooleanVectorConstantExpr.hlsl
    M clang/test/SemaHLSL/Types/BuiltinVector/TruncationConstantExpr.hlsl
    M clang/test/SemaHLSL/Types/ElementwiseCastConstantExpr.hlsl
    M clang/test/SemaHLSL/Types/InitListConstantExpr.hlsl
    M clang/test/SemaHLSL/Types/Traits/IsIntangibleType.hlsl
    M clang/test/SemaHLSL/Types/Traits/IsIntangibleTypeErrors.hlsl
    M clang/test/SemaHLSL/Types/Traits/IsTypedResourceElementCompatible.hlsl
    M clang/test/SemaHLSL/Types/Traits/ScalarizedLayoutCompatible.hlsl
    M clang/test/SemaHLSL/Types/Traits/ScalarizedLayoutCompatibleErrors.hlsl
    M clang/test/SemaHLSL/Types/typedefs.hlsl
    M clang/test/SemaHLSL/group_shared.hlsl

  Log Message:
  -----------
  [clang][bytecode][HLSL] Complete the HLSL aggregate splat and elementwise cast implementations, and enable the new constant interpreter on all HLSL tests with static asserts (#189126)

This PR fixes https://github.com/llvm/llvm-project/issues/183426,
completing the implementations of `CK_HLSLAggregateSplatCast` and
`CK_HLSLElementwiseCast` in Clang's new bytecode-based constant
expression evaluation engine / interpreter.

This PR also adds new RUN lines with
`-fexperimental-new-constant-interpreter` to all HLSL tests that have
static assertions.

The tests exercising the `CK_HLSLAggregateSplatCast` and
`CK_HLSLElementwiseCast` implementations in the new constant interpreter
are

- `clang/test/SemaHLSL/Types/AggregateSplatConstantExpr.hlsl` and
- `clang/test/SemaHLSL/Types/ElementWiseConstantExpr.hlsl`

respectively.

Assisted-by: GitHub Copilot

---------

Co-authored-by: Timm Baeder <tbaeder at redhat.com>


  Commit: 6997cc8c0f840992411ae4ad9c53660e9e41e2e7
      https://github.com/llvm/llvm-project/commit/6997cc8c0f840992411ae4ad9c53660e9e41e2e7
  Author: Kartik Ohlan <kartik7ohlan at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/docs/CommandGuide/llvm-profgen.rst
    M llvm/tools/llvm-profgen/llvm-profgen.cpp

  Log Message:
  -----------
  [docs] Add missing command line options to llvm-profgen.rst (#192890)

Resolves #192867

This PR fix some of the undocumented options that are visible in
llvm-profgen --help and --help-hidden


  Commit: 0a8ed875075bf28b9f281ef335033216da926be3
      https://github.com/llvm/llvm-project/commit/0a8ed875075bf28b9f281ef335033216da926be3
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/include/clang/DependencyScanning/DependencyScanningFilesystem.h
    M clang/lib/DependencyScanning/DependencyScannerImpl.cpp
    M clang/lib/DependencyScanning/DependencyScanningFilesystem.cpp
    M clang/unittests/DependencyScanning/DependencyScanningFilesystemTest.cpp

  Log Message:
  -----------
  [clang][deps] Simplify scanner VFS (#190843)

This PR removes a hack from the scanning VFS that introduced a bypass
mechanism for module cache queries. Now that we go through the
`ModuleCache` interface for implicitly-built modules, this is no longer
necessary.


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/epilog-iv-live-outs.ll
    M llvm/test/Transforms/LoopVectorize/X86/float-induction-x86.ll
    M llvm/test/Transforms/LoopVectorize/X86/iv-live-outs.ll
    M llvm/test/Transforms/LoopVectorize/X86/transform-narrow-interleave-to-widen-memory-epilogue-vec.ll
    M llvm/test/Transforms/LoopVectorize/X86/transform-narrow-interleave-to-widen-memory-live-outs.ll
    M llvm/test/Transforms/LoopVectorize/X86/transform-narrow-interleave-to-widen-memory.ll
    R llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-limitations.ll
    M llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-liveout.ll

  Log Message:
  -----------
  [LV] Remove IV use restrictions for epilogue vectorization. (#190552)

There have been a number of improvements to epilogue handling over the
last year, including improved resume value handling and consistent final
induction value handling via ExitingIVValue.

With those, the restriction can be removed, as direct uses of induction
phis are already handled correctly.

PR: https://github.com/llvm/llvm-project/pull/190552


  Commit: 1e2175ec4df79de3c18c504dea0dcbaab4b38306
      https://github.com/llvm/llvm-project/commit/1e2175ec4df79de3c18c504dea0dcbaab4b38306
  Author: Aditya Medhane <sherlockedaditya at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaDecl.cpp
    M clang/test/C/C2y/n3410.c
    A clang/test/Sema/linkage-internal-extern.c
    A clang/test/Sema/linkage-internal-extern.cpp
    M clang/www/c_status.html

  Log Message:
  -----------
  [Clang] Diagnose UB and emit error when identifier has both internal and external linkage (#192116)

C11 6.2.2p7 says if the same identifier appears with both internal and
external linkage in a translation unit, the behavior is undefined.

This patch adds a check in `Sema::MergeVarDecl` that uses
`LookupResult::isShadowed()` to detect when a block-scope `extern` found
a file-scope `static` through a shadow, and emits an error.

Fixes #54215


  Commit: bf8cf4b7b31b956ea4dfec93b0b4d77b359b188b
      https://github.com/llvm/llvm-project/commit/bf8cf4b7b31b956ea4dfec93b0b4d77b359b188b
  Author: PiJoules <leonardchan at google.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M compiler-rt/include/sanitizer/asan_interface.h
    M compiler-rt/lib/asan/AIX/asan.link_with_main_exec.txt
    M compiler-rt/lib/asan/asan_errors.cpp
    M compiler-rt/lib/asan/asan_errors.h
    M compiler-rt/lib/asan/asan_interface.inc
    M compiler-rt/lib/asan/asan_report.cpp
    M compiler-rt/lib/asan/asan_report.h
    M compiler-rt/lib/asan/asan_rtl.cpp
    A compiler-rt/test/asan/TestCases/assume_dereferenceable.cpp
    A compiler-rt/test/asan/TestCases/assume_dereferenceable_fully_poisoned.cpp
    A compiler-rt/test/asan/TestCases/assume_dereferenceable_halt_on_error.cpp
    A compiler-rt/test/asan/TestCases/assume_dereferenceable_pass.cpp
    M compiler-rt/test/asan/TestCases/debug_report.cpp
    M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
    A llvm/test/Instrumentation/AddressSanitizer/assume-dereferenceable.ll

  Log Message:
  -----------
  [compiler-rt][asan] Add asan checks for __builtin_assume_dereferencable (#190871)

This checks that the range covered by this intrinsic is dereferencable.
Specifically it checks for `llvm.assume` intrinsics using the
`dereferencable` operator bundle and just asserts the shadow for this
range is zero.

The bulk of this PR was made by gemini but it was thoroughly edited and
reviewed to the best of my ability.


  Commit: b0fe500e78427f322e359cc55903651e479772e3
      https://github.com/llvm/llvm-project/commit/b0fe500e78427f322e359cc55903651e479772e3
  Author: Dave Lee <davelee.com at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M lldb/include/lldb/Target/StackFrame.h
    M lldb/include/lldb/ValueObject/DILEval.h
    M lldb/source/Commands/CommandObjectDWIMPrint.cpp
    M lldb/source/ValueObject/DILEval.cpp
    M lldb/test/API/commands/dwim-print/TestDWIMPrint.py

  Log Message:
  -----------
  [lldb] Make global lookup in DIL configurable by caller (#192592)

DIL has supported unlimited global lookup, which is in contrast with
long standing `frame variable` behavior, which supports only globals
from the current file.

This is semantically incorrect for frame variable, and has shown to
produce bugs in `dwim-print`. For these reasons, this change makes
global lookup opt-out, controlled by a new
`eExpressionPathOptionsDisallowGlobals` flag.

For `dwim-print`, the bug manifests when a global shadows a computed
property of the instance variable (`self`). As an example, if a global
named `text` exists, and a property named `text` exists (ie
`self.text`), then running `dwim-print text` will unexpectedly print the
global, not `self.text`.

rdar://174834020

Assisted-by: claude


  Commit: 6a9ed459ce228cc0d8982bf1a8cad39f7c020ce4
      https://github.com/llvm/llvm-project/commit/6a9ed459ce228cc0d8982bf1a8cad39f7c020ce4
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Scalar/JumpTableToSwitch.cpp
    M llvm/test/Transforms/JumpTableToSwitch/profile-no-guid-metadata.ll

  Log Message:
  -----------
  [JTS] Add a temporary workaround for multiple zero GUIDs (#193292)

We can sometimes end up with multiple zero values in the VP metadata if
profile loading cannot map multiple addresses to their functions. We
should probably eventually fix this case in the profile loader, but as a
temporary workaround, handle this in JTS explicitly by dropping the
assertion, similar to how this is handled in ICP.

This is similar to #192905, but with more researched justification.

Co-authored-by: Alexander Shaposhnikov <ashaposhnikov at google.com>


  Commit: 50241dcd08c846fed68c286a2248531d85eeb9e8
      https://github.com/llvm/llvm-project/commit/50241dcd08c846fed68c286a2248531d85eeb9e8
  Author: Dhruva Chakrabarti <Dhruva.Chakrabarti at amd.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPURewriteAGPRCopyMFMA.cpp
    A llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr-spill-multi-store-mir.mir
    M llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr-spill-multi-store.ll

  Log Message:
  -----------
  [AMDGPU] Reland "Fixed verifier crash because of multiple live range components." (#190719) (#193286)

PR #190719 was reverted by PR #193135 because a .s file was left behind
by a test. This patch fixes it by adding -filetype=null to the RUN line
of the test rewrite-vgpr-mfma-to-agpr-spill-multi-store.ll.

In Rewrite AGPR-Copy-MFMA pass, after replacing spill instructions, the
replacement register may have multiple live range components when the
spill slot was stored to more than once. The verifier crashes with a bad
machine code error. This patch fixes the problem by splitting a live
range but assigning the same physical register in this scenario. A new
test has been added that verifies the absence of this verifier error.

Assisted-by: Claude Opus


  Commit: f1b65b96aa506634fd5ab6c194057436edcafc2e
      https://github.com/llvm/llvm-project/commit/f1b65b96aa506634fd5ab6c194057436edcafc2e
  Author: Lei Huang <lei at ca.ibm.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp
    M llvm/lib/Target/PowerPC/PPCInstrInfo.td
    M llvm/lib/Target/PowerPC/PPCOperands.td

  Log Message:
  -----------
  [PowerPC] Fix ADJCALLSTACKUP and ADJCALLSTACKDOWN def (#184696)

ADJCALLSTACKUP and ADJCALLSTACKDOWN can actually take on values greater
then what can be contained in u16imm type. Update to use u32imm instead.


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/unittests/Transforms/Vectorize/VPlanTest.cpp

  Log Message:
  -----------
  [VPlan] Clean up VPWidenPHIRecipe constructor (NFC). (#193297)

Update VPWidenPHIRecipe's constructor to no longer pass the unused
underlying IR PHI and pass all incoming values as ArrayRef. This also
clarifies that the underlying instruction is not used.

Also add VPBuilder::createWidenPhi.


  Commit: 7bf48ec95c7c0451f467d6d1a0059bb99e9cf2c9
      https://github.com/llvm/llvm-project/commit/7bf48ec95c7c0451f467d6d1a0059bb99e9cf2c9
  Author: David Green <david.green at arm.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/test/CodeGen/AArch64/trunc.ll
    R llvm/test/CodeGen/AArch64/xtn.ll

  Log Message:
  -----------
  [AArch64] Remove xtn.ll test. NFC (#193306)

xtn.ll and trunc.ll share many of the same test functions. This patch
removes
xtn.ll, porting over some i128 variants to trunc.ll to keep what was
present
only in xtn.ll.


  Commit: 11515959b571739ab046b368c351b75e46ef7c3b
      https://github.com/llvm/llvm-project/commit/11515959b571739ab046b368c351b75e46ef7c3b
  Author: Rafael Auler <rafaelauler at meta.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M bolt/lib/Rewrite/RewriteInstance.cpp

  Log Message:
  -----------
  [BOLT] Fix stream position before appendPadding in writeEHFrameHeader (#193126)

When writeEHFrameHeader needs to allocate new space for .eh_frame_hdr
(because the old section is too small), it calls appendPadding to align
NextAvailableAddress. appendPadding writes zero bytes at the current
stream position, but after the section write loop in rewriteFile the
stream is positioned at the end of the last section written in
BinarySection::operator< order — not at the file offset corresponding to
NextAvailableAddress.

In the common case (single loadObject call) the write order matches file
offset order, so the stream happens to be in the right place. But when a
runtime library adds sections via additional loadObject calls, the
operator< iteration order (code-before-data) can diverge from file
offset order: a runtime library code section may have a higher file
offset than a runtime library data section that comes after it in the
write loop. The stream then ends at a lower offset than expected, and
appendPadding's zeros overwrite the beginning of the code section.

Fix by seeking to the correct file offset before calling appendPadding.


  Commit: a4538a3ad902a382550beaadfcacf799de2917e4
      https://github.com/llvm/llvm-project/commit/a4538a3ad902a382550beaadfcacf799de2917e4
  Author: Ziqing Luo <ziqing_luo at apple.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/include/clang/ScalableStaticAnalysisFramework/Analyses/EntityPointerLevel/EntityPointerLevelFormat.h
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/CMakeLists.txt
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/EntityPointerLevel/EntityPointerLevel.cpp
    A clang/lib/ScalableStaticAnalysisFramework/Analyses/SSAFAnalysesCommon.cpp
    A clang/lib/ScalableStaticAnalysisFramework/Analyses/SSAFAnalysesCommon.h
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp

  Log Message:
  -----------
  [NFC][SSAF] Extract common code in Analyses to a shared file (#191932)

Created SSAFAnalysesCommon.h for the SSAF analyses implementation.

---------

Co-authored-by: Balázs Benics <benicsbalazs at gmail.com>


  Commit: f1baa17f792057de754921f9042b750fad7c8d49
      https://github.com/llvm/llvm-project/commit/f1baa17f792057de754921f9042b750fad7c8d49
  Author: Arya C S <107488865+AryaCS111 at users.noreply.github.com>
  Date:   2026-04-21 (Tue, 21 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/wcsxfrm.cpp
    A libc/src/wchar/wcsxfrm.h
    M libc/test/src/wchar/CMakeLists.txt
    A libc/test/src/wchar/wcsxfrm_test.cpp

  Log Message:
  -----------
  [libc] Add wcsxfrm (#191692)

This patch adds wcsxfrm to LLVM libc.

It includes:
- wchar.yaml declaration
- implementation and header
- CMake wiring
- entrypoint registration
- unit tests

The current implementation provides C/POSIX-style behavior and does not
yet add locale-aware collation support.

Tested with:
- ninja libc.test.src.wchar.wcsxfrm_test

Notes:
- local full check-libc was blocked by unrelated pre-existing timeout
failures in other tests.

Fixes #191074

---------

Co-authored-by: arya.cs <arya.cs at blackfigtech.com>


  Commit: 760bc124c189c8bbc4941ec972c25a0f625d17d7
      https://github.com/llvm/llvm-project/commit/760bc124c189c8bbc4941ec972c25a0f625d17d7
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/test/Other/new-pm-defaults.ll
    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:
  -----------
  Reapply "[JTS][Passes] Enable JTS By Default" (#193300)

Reverts llvm/llvm-project#192894

Remaining issues should be fixed by
6a9ed459ce228cc0d8982bf1a8cad39f7c020ce4.


  Commit: f9437779f447491f5b833714303cb8842a4710ca
      https://github.com/llvm/llvm-project/commit/f9437779f447491f5b833714303cb8842a4710ca
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  Log Message:
  -----------
  [Attributor] Use trivial no side effects check in isAssumedSideEffectFree (#193303)

This PR should not change any tests, which is the goal here. To use
`mayHaveSideEffects` is a shortcut to avoid expensive checks by pulling
in different kind of dependences.

That said, this PR doesn't really need a test.


  Commit: 24464f6c2c360a59f340ff7e30fee9a4e78da4de
      https://github.com/llvm/llvm-project/commit/24464f6c2c360a59f340ff7e30fee9a4e78da4de
  Author: Gábor Spaits <gaborspaits1 at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-memcpy-inline.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/memcpy-inline.ll

  Log Message:
  -----------
  [RISCV][GlobalISel] Lower G_MEMCPY_INLINE (#192671)

Before this, MIR that contained G_MEMCPY_INLINE has failed in the
lagalization stage.

This patch calls `lower` on G_MEMCPY_INLINE.


  Commit: 346480e0abb52ae1fca2f06dccd03f76155fe567
      https://github.com/llvm/llvm-project/commit/346480e0abb52ae1fca2f06dccd03f76155fe567
  Author: David Green <david.green at arm.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/test/CodeGen/AArch64/arm64-vhadd.ll
    A llvm/test/CodeGen/AArch64/hadd-combine-scalar.ll
    M llvm/test/CodeGen/AArch64/hadd-combine.ll

  Log Message:
  -----------
  [AArch64] Add more scalar testing for hadd patterns. NFC (#193313)

These are mostly taken from hadd-combine.ll, testing scalar instead of
vector
and checking a few extra variants.


  Commit: 21dcb13f6d6701ba165c76fd441cff3813923515
      https://github.com/llvm/llvm-project/commit/21dcb13f6d6701ba165c76fd441cff3813923515
  Author: Razvan Lupusoru <razvan.lupusoru at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M flang/include/flang/Optimizer/OpenACC/Support/FIROpenACCOpsInterfaces.h
    M flang/lib/Optimizer/OpenACC/Support/FIROpenACCOpsInterfaces.cpp
    M flang/test/Fir/OpenACC/offload-livein-value-canonicalization.fir
    M mlir/include/mlir/Dialect/OpenACC/OpenACCOpsInterfaces.td
    M mlir/lib/Dialect/OpenACC/Transforms/OffloadLiveInValueCanonicalization.cpp

  Log Message:
  -----------
  [flang][acc] Update fir.convert rematerialization handling (#193301)

As of https://github.com/llvm/llvm-project/pull/184218 fir.convert was
being treated as a rematerialization candidate always. However, the
primary problem intended to be solved were improper classification of
pointers due to being casted to integers. Thus use optionally
implemented interface instead to only handle this scenario.


  Commit: 7318bc734a5bb58cec97732d6056614348a0f503
      https://github.com/llvm/llvm-project/commit/7318bc734a5bb58cec97732d6056614348a0f503
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsAMDGPU.td
    M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx1250-tensor-load-store.cl
    M clang/test/SemaOpenCL/builtins-amdgcn-error-gfx1250-param.cl

  Log Message:
  -----------
  [Clang][AMDGPU] Use unsigned for D# (#193310)

The descriptor should be unsigned in the first place. Before we moved to
`_ExtVector`, everything just relied on implicit type conversion, so
this was never caught. CLR's implementation of D# uses unsigned as well.

Fixes ROCM-23449.


  Commit: b1175088531de1a3bae9942ef50d880fab6fe144
      https://github.com/llvm/llvm-project/commit/b1175088531de1a3bae9942ef50d880fab6fe144
  Author: NeKon69 <nobodqwe at gmail.com>
  Date:   2026-04-22 (Wed, 22 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] Add support for `new`/`delete` (#192504)

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

# Contents


* Adds a new warning that is emitted on use-after-free.

* Renames `reportUseAfterFree` to `reportUseAfterScope` due to the old
name being misleading (warnings are still called `use_after_scope`).

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

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

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

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: e7b103798d0d93dad2ebd6726f738b70b5b874be
      https://github.com/llvm/llvm-project/commit/e7b103798d0d93dad2ebd6726f738b70b5b874be
  Author: Elio <xiongzile at bytedance.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [CIR] add pairwise-addition-and-widen support (#191845)

Part of https://github.com/llvm/llvm-project/issues/185382


  Commit: 99e4f6a05f595e31f8e801fda2b2835435e6b886
      https://github.com/llvm/llvm-project/commit/99e4f6a05f595e31f8e801fda2b2835435e6b886
  Author: Aman LaChapelle <aman.lachapelle at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M lldb/include/lldb/Target/BorrowedStackFrame.h
    M lldb/include/lldb/Target/StackFrame.h
    M lldb/source/API/SBFrame.cpp
    M lldb/source/Commands/CommandObjectFrame.cpp
    M lldb/source/Core/IOHandlerCursesGUI.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
    M lldb/source/Plugins/Process/scripted/ScriptedFrame.cpp
    M lldb/source/Plugins/Process/scripted/ScriptedFrame.h
    M lldb/source/Symbol/Variable.cpp
    M lldb/source/Target/BorrowedStackFrame.cpp
    M lldb/source/Target/StackFrame.cpp
    M lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
    M lldb/test/API/functionalities/scripted_frame_provider/test_frame_providers.py

  Log Message:
  -----------
  [lldb] Add synthetic variable support to Get*VariableList. (#181501)


This patch adds a new flag to the lldb_private::StackFrame API to get variable lists: `include_synthetic_vars`.  This allows ScriptedFrame (and other future synthetic frames) to construct 'fake' variables and return them in the VariableList, so that commands like `fr v` and `SBFrame::GetVariables` can show them to the user as requested.

This patch includes all changes necessary to call the API the new way - I tried to use my best judgement on when to include synthetic variables or not and leave comments explaining the decision.

As a consequence of producing synthetic variables, this patch means that ScriptedFrame can produce Variable objects with ValueType that contains a ValueTypeExtendedMask in a high bit. This necessarily complicates some of the switch/case handling in places where we would expect to find such variables, and this patch makes best effort to address all such cases as well. From experience, they tend to show up whenever we're dealing with checking if a Variable is in a specified scope, which means we basically have to check the high bit against some user input saying "yes/no synthetic variables".


  Commit: 0bbd61a339605d9530ec62970a2b298e2f9bdaeb
      https://github.com/llvm/llvm-project/commit/0bbd61a339605d9530ec62970a2b298e2f9bdaeb
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-21 (Tue, 21 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 Github Runner Version to 2.334.0 (#193318)

Release notes imply this probably shouldn't impact us. Update the runner
version in the containers so that we do not run past the support
horizon.


  Commit: 27cc83383d195e8f85bb3354d819466e61475a77
      https://github.com/llvm/llvm-project/commit/27cc83383d195e8f85bb3354d819466e61475a77
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M cross-project-tests/CMakeLists.txt

  Log Message:
  -----------
  [cross-project-tests] Add llvm-modextract as a dependency (#193296)

cross-project-tests/dtlto/multimodule.test uses it

Some precommit tests are failing because of this missing dependency,
e.g. https://github.com/llvm/llvm-project/actions/runs/24729694507


  Commit: 6688763f44a344864d987606502046319f3d54a7
      https://github.com/llvm/llvm-project/commit/6688763f44a344864d987606502046319f3d54a7
  Author: Jeff Bailey <jbailey at raspberryginger.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M libc/test/lit.site.cfg.py.in
    M libc/utils/libctest/format.py

  Log Message:
  -----------
  [libc] Improve lit test discovery and execution (#192993)

Updated LibcTest to support cross-compilation and custom test
directories:

* Passed localConfig to _isTestExecutable to check for emulator.
* Skipped host execution permission check if emulator is set.
* Supported tests in libc.test.shared and libc.test.utils.
* Handled fallback if @BINARY@ is missing in test command template.
* Removed UnitTest from excludes in lit site config.


  Commit: 20ce456138fa2d3a1a330c8c130c8be0173fc74b
      https://github.com/llvm/llvm-project/commit/20ce456138fa2d3a1a330c8c130c8be0173fc74b
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-compressstore-int.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-expandload-int.ll

  Log Message:
  -----------
  [LegalizeTypes][RISCV] Don't widen expandload or compresstore with VP_LOAD/VP_STORE. (#193294)

We don't support expanding/compressing VP_LOAD/VP_STORE yet.

This probably crashes on scalable vectors, but that's better than
a silent miscompile.

Fixes #193277.


  Commit: bffb208404fd2287e68f2cb3ce7f10ac99e38ac1
      https://github.com/llvm/llvm-project/commit/bffb208404fd2287e68f2cb3ce7f10ac99e38ac1
  Author: Brad Smith <brad at comstyle.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M libunwind/test/CMakeLists.txt
    M libunwind/test/aarch64_za_unwind.pass.cpp
    M libunwind/test/configs/llvm-libunwind-merged.cfg.in
    M libunwind/test/configs/llvm-libunwind-shared.cfg.in
    M libunwind/test/configs/llvm-libunwind-static.cfg.in

  Log Message:
  -----------
  [libunwind] Add SME detection for ZA test on OpenBSD / FreeBSD (#193148)

Follow up to 588451c160c34b888ced1c3d9263d361df22f757 to
add SME detection on OpenBSD and FreeBSD.


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

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenTypes.cpp
    M clang/lib/CIR/CodeGen/CIRGenTypes.h

  Log Message:
  -----------
  [CIR] Cache isSafeToConvert results to avoid redundant record layout … (#193122)

…walks

CIRGenTypes::isSafeToConvert() walks record layouts to determine whether
a struct can be safely converted to MLIR types. The walk recurses into
field types and re-runs for the same record every time it is asked, so
workloads with many distinct record types (template-heavy code in
particular) repeat substantial work.

Cache the boolean result in a per-CIRGenTypes DenseMap keyed by the
RecordDecl. Lookup becomes O(1) after the first walk per type.

The impact in isolation is modest — on a synthetic stress with many
records and template instantiations, end-to-end compile time on `clang
-fclangir -S -emit-llvm -O0` improves by roughly 2-3% (e.g. 16.59s ->
16.09s on a 67K-LOC input).

Repro shape (scale records and template instantiations into the
hundreds/thousands to amplify):

```
  template <typename T, int N> struct Box { T head; Box<T, N-1> tail; };
  template <typename T> struct Box<T, 0> { T head; };
  struct R0; struct R1;
  struct R0 { int v; Box<int, 4> b; R1* next; };
  struct R1 { long v; Box<long, 4> b; R0* next; };
  int f0(R0*); int f1(R1*);
  int f0(R0* r) { return r->v + (r->next ? f1(r->next) : 0); }
  int f1(R1* r) { return (int)r->v + (r->next ? f0(r->next) : 0); }
```


  Commit: d4650168f0ea7d39c9fca05417bad338ef6a66f0
      https://github.com/llvm/llvm-project/commit/d4650168f0ea7d39c9fca05417bad338ef6a66f0
  Author: Dave Lee <davelee.com at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M lldb/source/Expression/UserExpression.cpp

  Log Message:
  -----------
  [lldb] Directly access object variable in GetObjectPointerValueObject (NFC) (#193120)

The `GetObjectPointerValueObject` function does not need full variable
path expressions, or any of its functionality. This function simply gets
the value of `this` or `self`.


  Commit: 368ee151c774d8f532acc802474c87e1ab00eec6
      https://github.com/llvm/llvm-project/commit/368ee151c774d8f532acc802474c87e1ab00eec6
  Author: Michael Jones <michaelrj at google.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [bazel][lldb] Add target for new plugin (#193316)

PR #191782 added a new plugin. This PR adds a bazel target for it.


  Commit: 5ee4c51c1a9cdaecb0cbed61bdc94da961db2f9b
      https://github.com/llvm/llvm-project/commit/5ee4c51c1a9cdaecb0cbed61bdc94da961db2f9b
  Author: Ziqing Luo <ziqing_luo at apple.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/include/clang/ScalableStaticAnalysisFramework/Analyses/EntityPointerLevel/EntityPointerLevel.h
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/CMakeLists.txt
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/SSAFAnalysesCommon.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/SSAFAnalysesCommon.h
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp

  Log Message:
  -----------
  [SSAF][Analyses] Add an AST visitor for the contribution model (#191933)

Add an AST visitor that respects the contribution model and will be
shared across SSAF analyses.

---------

Co-authored-by: Balázs Benics <benicsbalazs at gmail.com>


  Commit: 92958a0631c48cf5439acd86a2dfe51a3715c4f2
      https://github.com/llvm/llvm-project/commit/92958a0631c48cf5439acd86a2dfe51a3715c4f2
  Author: vangthao95 <vang.thao at amd.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.atomic.async.barrier.arrive.b64.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.atomic.barrier.arrive.rtn.b64.ll

  Log Message:
  -----------
  AMDGPU/GlobalISel: RegBankLegalize rules for DS barrier arrive atomics (#192767)


  Commit: e0b4a7063f78d36ffa5679e1d0e564a3668db1f0
      https://github.com/llvm/llvm-project/commit/e0b4a7063f78d36ffa5679e1d0e564a3668db1f0
  Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [compiler-rt][profile] Use runtimes-libc-headers in the GPU runtimes build (#192814)

When compiler-rt is built for a GPU target in the same runtimes build
as LLVM-libc, the profile sources `#include <string.h>`, `<limits.h>`,
... Those headers are generated by LLVM-libc for the GPU triple.

A concrete example is the amdgcn runtimes build:

    -DLLVM_RUNTIME_TARGETS='default;amdgcn-amd-amdhsa'
    -DRUNTIMES_amdgcn-amd-amdhsa_LLVM_ENABLE_RUNTIMES='compiler-rt;libc'
    -DRUNTIMES_amdgcn-amd-amdhsa_RUNTIMES_USE_LIBC=llvm-libc

Even though `libc` is configured before `compiler-rt`, both sets of
targets live in the same ninja graph and race each other. Ninja can
start compiling `compiler-rt/lib/profile/InstrProfiling.c` before
LLVM-libc has finished generating its GPU `string.h`, and even when
hdrgen has finished, the profile compile needs `-isystem` pointing at
the generated header tree.

Use the runtimes-side libc-provider abstraction in
`runtimes/cmake/Modules/HandleLibC.cmake`:

  - at compiler-rt top level, `include(HandleLibC)` when
    `LLVM_RUNTIMES_BUILD` is set, so all compiler-rt subcomponents can
    reuse the `runtimes-libc-*` targets. `libcxx` / `libcxxabi` /
    `libunwind` include it the same way at their top-level CMakeLists.
  - in `compiler-rt/lib/profile/CMakeLists.txt`, when the GPU build
    sees the sibling `runtimes-libc-headers` target, pass it through
    `LINK_LIBS` of `add_compiler_rt_runtime(clang_rt.profile ...)`.

In the `llvm-libc` case this pulls in LLVM-libc's `libc-headers`
(`-isystem <build>/include/<triple>`), waits for
`generate-libc-headers`, and adds `-nostdlibinc` so the profile compile
does not consult host C library paths.

The dependency is added only when `COMPILER_RT_GPU_BUILD` is on and the
sibling `runtimes-libc-headers` target actually exists, so host
compiler-rt builds, standalone compiler-rt builds, and runtimes builds
without LLVM-libc selected are unchanged.

`add_compiler_rt_runtime` passes `LINK_LIBS` to
`target_link_libraries(<libname> PRIVATE ...)`, so the include path is
used when compiling the profile target itself but is not propagated to
downstream consumers of `libclang_rt.profile.a`.

Related: PR #177665.


  Commit: 2ed87bad858138f5614bfb30670a47d1f779c76f
      https://github.com/llvm/llvm-project/commit/2ed87bad858138f5614bfb30670a47d1f779c76f
  Author: Björn Schäpers <bjoern at hazardy.de>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/docs/ClangFormatStyleOptions.rst
    M clang/include/clang/Format/Format.h
    M clang/lib/Format/Format.cpp
    M clang/unittests/Format/ConfigParseTest.cpp

  Log Message:
  -----------
  [clang-format] Add c++23 and 26 to the configuration (#193327)


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

  Changed paths:
    M mlir/lib/Dialect/LLVMIR/IR/FunctionCallUtils.cpp
    A mlir/test/Conversion/FuncToLLVM/func-duplicate-symbol.mlir

  Log Message:
  -----------
  [mlir][func] Avoid to create duplicate symbol during conversion (#192342)

`LLVM::lookupOrCreateFn` only checks for an existing `LLVM::LLVMFuncOp`
before creating a new function declaration. When a symbol with the same
name exists as a different op type (e.g., `func.func` that hasn't been
converted to LLVM dialect yet), the function blindly creates a duplicate
`LLVMFuncOp`, which either causes a "redefinition of symbol" error or
silently introduces a renamed symbol (`@free_0`) that won't resolve at
link time.

This happens in practice when user code declares function that is also
used internally by MLIR lowerings. For example, a Fortran `bind(c,
name="free")` declaration produces a `func.func @free` in the IR. When
`memref.dealloc` is lowered (via DeallocOpLowering), it calls
lookupOrCreateFreeFn which calls lookupOrCreateFn — and since the
existing `func.func @free` is not an LLVMFuncOp, a conflicting duplicate
is created.

The fix adds a check in lookupOrCreateFn: before creating a new
LLVMFuncOp, it verifies that no symbol with the requested name already
exists in the module (regardless of op type). If one does, it returns
failure() so the calling conversion pattern can be retried after the
existing symbol is converted by another pattern (e.g., func-to-llvm).


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

  Changed paths:
    M llvm/test/CodeGen/X86/vector-fshl-128.ll
    M llvm/test/CodeGen/X86/vector-fshl-rot-128.ll
    M llvm/test/CodeGen/X86/vector-fshl-rot-sub128.ll
    M llvm/test/CodeGen/X86/vector-fshl-sub128.ll
    M llvm/test/CodeGen/X86/vector-fshr-128.ll
    M llvm/test/CodeGen/X86/vector-fshr-rot-128.ll
    M llvm/test/CodeGen/X86/vector-fshr-rot-sub128.ll
    M llvm/test/CodeGen/X86/vector-fshr-sub128.ll
    M llvm/test/CodeGen/X86/vector-rotate-128.ll
    M llvm/test/CodeGen/X86/vector-shift-shl-128.ll
    M llvm/test/CodeGen/X86/vector-shift-shl-sub128.ll

  Log Message:
  -----------
  [X86] Regenerate vector shifts tests to reduce diffs in #188206 (#193325)

Regenerate missing asm comments to reduce noise in upcoming patch


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

  Changed paths:
    M libcxx/utils/ci/docker/docker-compose.yml

  Log Message:
  -----------
  [libcxx][Github] Bump Github Runner to 2.334.0 (#193339)

To stay ahead of the support horizon. Use the same base image to prevent
any differences beyond the runner binary.


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

  Changed paths:
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
    M lldb/unittests/SymbolFile/DWARF/DWARFUnitTest.cpp

  Log Message:
  -----------
  [lldb/DWARF] Support 5-component Swift version in DW_AT_producer (#193305)


  Commit: d7d2c0ca6afd1b5fa58c9dbae943c0508a5bf7c9
      https://github.com/llvm/llvm-project/commit/d7d2c0ca6afd1b5fa58c9dbae943c0508a5bf7c9
  Author: Michael Jones <michaelrj at google.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [bazel][clang] Fix build for #191932 (#193337)

Straightforward build fix.


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

  Changed paths:
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp

  Log Message:
  -----------
  [SSAF] Fix -Wunused-variable (#193344)

We currently take the return value of inserting into a map (the iterator
and insertion boolean) to assert on the value of the insertion boolean.
This is unused in non-asserts builds, so mark it [[maybe_unused]] given
we cannot inline due to the insertion having side effects.


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

  Changed paths:
    M .ci/compute_projects.py
    M .ci/compute_projects_test.py

  Log Message:
  -----------
  [CI] Fix cross-project-tests dependencies (#193323)

We error out in CMake otherwise if we do not enable `clang`. Avoid
adding other dependencies for now as they are optional and otherwise
cause us to build them when using cross-project-tests to test other
projects like lld.


  Commit: 2b63e5e75dbadc30218e41c8113a40acbc625334
      https://github.com/llvm/llvm-project/commit/2b63e5e75dbadc30218e41c8113a40acbc625334
  Author: Zachary Yedidia <zyedidia at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M libunwind/src/UnwindRegistersRestore.S
    M libunwind/src/UnwindRegistersSave.S

  Log Message:
  -----------
  [LFI][libunwind] Avoid writing to reserved registers on the `aarch64_lfi` target (#192739)

The registers `x25`, `x26`, `x27`, and `x28` are reserved for the
`aarch64_lfi` target and should not be written/used. See
`llvm/docs/LFI.rst` for more details. They contain fixed constants or
temporaries used as part of assembly-level rewrites of load/store
instructions. The rewriter will reject programs that attempt to write to
these registers. It is technically OK to save/read them (in
`UnwindRegistersSave.S`), but there is no point since there is no need
to restore them (and to maintain LFI's security invariant, they in fact
cannot be written).


  Commit: 7014ce846164bbf1bf5e7287302ed9faf61547b0
      https://github.com/llvm/llvm-project/commit/7014ce846164bbf1bf5e7287302ed9faf61547b0
  Author: Michael Jones <michaelrj at google.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [bazel][lldb] Fix missing dep in ScriptedProcess (#193348)

Added in #181501


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

  Changed paths:
    M libc/cmake/modules/LLVMLibCTestRules.cmake

  Log Message:
  -----------
  [libc][NFC] Remove trailing whitespace from LLVMLibCTestRules.cmake (#193350)


  Commit: 54c1b3050cb901efa71032e7314edb2904ed8909
      https://github.com/llvm/llvm-project/commit/54c1b3050cb901efa71032e7314edb2904ed8909
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M libcxx/utils/ci/images/libcxx_next_runners.txt
    M libcxx/utils/ci/images/libcxx_runners.txt

  Log Message:
  -----------
  [libcxx][Github] Bump container version (#193351)

Now that the rebuilt container images are available with an upgraded
Github runner, bump to the latest image.


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

  Changed paths:
    M libc/cmake/modules/LLVMLibCTestRules.cmake
    M libc/utils/libctest/format.py

  Log Message:
  -----------
  Support loader arguments in GPU hermetic tests (#193341)

GPU tests require arguments passed to the loader (like llvm-gpu-loader)
to be placed before the test binary on the command line.

Updated LLVMLibCTestRules.cmake to generate a three-part .params file to
separate loader flags from test arguments and pass environment
overrides. Implicitly added LIBOMPTARGET_STACK_SIZE for NVPTX targets.

Modified format.py to parse this new format and position the loader
arguments correctly before the binary.


  Commit: 5892e34a96131821256f89c0555ba68c23c91dbe
      https://github.com/llvm/llvm-project/commit/5892e34a96131821256f89c0555ba68c23c91dbe
  Author: Yeoul Na <yeoul_na at apple.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/DeclSpec.h
    M clang/lib/Parse/ParseCXXInlineMethods.cpp

  Log Message:
  -----------
  [BoundsSafety][NFC] Move LateParsedAttribute outside Parser class; move LateParsedAttrList to DeclSpec.h (#192145)

Preparatory refactoring for llvm/llvm-project#179612, which introduces
late parsing of bounds-safety attributes as type attributes. The new
approach needs LateParsedAttribute accessible from DeclSpec.h (to store
late attr pointers in DeclaratorChunk, Declarator, and DeclSpec), which
cannot depend on Parser.h.

- Move LateParsedDeclaration and LateParsedAttribute to namespace level
in Parser.h
- Move LateParsedAttrList to DeclSpec.h with a forward declaration of
LateParsedAttribute

Other LateParsedDeclaration subclasses (LateParsedClass,
LateParsedPragma, LateParsedMemberInitializer, etc.) remain inside
Parser as they are only created and consumed within Parser and don't
need to cross the Parser/Sema boundary.


  Commit: 404609d013f6211d77c0f5fc85960df846a7264c
      https://github.com/llvm/llvm-project/commit/404609d013f6211d77c0f5fc85960df846a7264c
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M runtimes/cmake/config-Fortran.cmake

  Log Message:
  -----------
  [runtimes] Enable Fortran only with explicit CMAKE_Fortran_COMPILER (#193332)

Only enable Fortran support when the user (or the bootstrapping build)
passes `-DCMAKE_Fortran_COMPILER=...`.

`enable_language(...)` other than C/CXX reveals problems with the
current build system. LLVM likes to add
`-Wl,--color-diagnostics`
to `CMAKE_EXE_LINKER_FLAGS` whenever possible. The problem is that
`CMAKE_EXE_LINKER_FLAGS` is added to the linker line regardless of which
language is used, but `HandleLLVMOptions.cmake` probes only
`CMAKE_CXX_COMPILER`. Other languages' compilers such as
`CMAKE_CUDA_COMPILER` (`nvcc`) or `CMAKE_Fortran_COMPILER` (`gfortran`)
may not accept the flag. CMake then fails when those compilers are "not
able to compile a simple test program." because it does not accept the
`--color-diagnostics` flag.

`CMAKE_EXE_LINKER_FLAGS` does not support generator expression such that
`$<$<COMPILE_LANGUAGE:C,CXX>:-Wl,--color-diagnostics>` does not work
either.

We disable automatic detection of a Fortran compiler out of precaution
if other such problems are found. The bootstrapping build will pass
just-built Clang and Flang together which are compatible to each other.
In runtimes default/standalone builds, users will have to pass the
compiler explicitly if they want Fortran modules.


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

  Changed paths:
    M offload/plugins-nextgen/common/include/PluginInterface.h
    M offload/plugins-nextgen/common/src/PluginInterface.cpp

  Log Message:
  -----------
  [offload] Fix synchronization when record replay is enabled (#193291)

When kernel record replay was enabled, the operations on the current
stream were not synchronized. That's because the current stream was
"ignored", and a new stream was used when RR is active. This is invalid
when there are pending operations on the original stream and can lead to
invalid prologue recording data.

This commit addresses this issue by using the original stream and
synchronizing it explicitly before and after kernel launch. This way, we
ensure the operations are completed before performing the prologue and
epilogue data recording. Additionally, the kernel record replay entry
points are moved to the same layer, in `GenericKernelTy::launch()`.


  Commit: 4d83691e290b6cf6ebef3aa7eae00d090bf179c3
      https://github.com/llvm/llvm-project/commit/4d83691e290b6cf6ebef3aa7eae00d090bf179c3
  Author: Sergei Barannikov <barannikov88 at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M lldb/include/lldb/Core/EmulateInstruction.h
    M lldb/source/Core/EmulateInstruction.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.h
    M lldb/source/ValueObject/ValueObject.cpp

  Log Message:
  -----------
  [lldb] Fix a couple of return type / return value mismatches (#191464)

* `EmulateInstruction::ReadMemory()` returns a boolean value and is used
in boolean contexts, but the return type is specified as `size_t`.
Change it to `bool`. This also aligns it with `WriteMemory()`.
* `ClangExpressionDeclMap::GetSymbolAddress()` returns `false` if
`Target` is not available, but it is expected to return an address.
Change it to return `LLDB_INVALID_ADDRESS`.
* `ValueObject::GetPointeeData()` returns `true`, whereas a return value
of type `size_t` is expected. Change it to return 0 (this code is
unreachable).


  Commit: 1cbd27f1ddb08eb6de6ad641f7589ffe414cf8e3
      https://github.com/llvm/llvm-project/commit/1cbd27f1ddb08eb6de6ad641f7589ffe414cf8e3
  Author: Wenju He <wenju.he at intel.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Analysis/ConstantFolding.cpp
    M llvm/test/Transforms/InstSimplify/ConstProp/loads.ll

  Log Message:
  -----------
  [ConstantFolding] Increase folding limit for vector loads to 128 bytes (#192775)

In FoldReinterpretLoadFromConst, ReadDataFromGlobal bails out when
BytesLoaded exceeds 32 bytes. This prevent folding in our downstream
OpenCL case where global constant is [16 x float] array and is loaded as
float16 vector, which is 64 bytes.

This PR increases BytesLoaded cap to 128 bytes, to accommodate large
vector support, e.g. double16 type in OpenCL. For scalar integer load,
the limit remains 32 bytes to avoid regression on load from string
literal.

---------

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


  Commit: f2e4fcd134d1367b472b324355131b8a68b9f149
      https://github.com/llvm/llvm-project/commit/f2e4fcd134d1367b472b324355131b8a68b9f149
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    A llvm/test/Transforms/LowerTypeTests/aarch64-jumptable-dbg.ll
    A llvm/test/Transforms/LowerTypeTests/x86-jumptable-dbg.ll

  Log Message:
  -----------
  [NFC][LowerTypeTests] Add AArch64 and X86 jump table tests with debug info (#192735) (#193358)

It just recommits test copied from non dbg version.

Implementation is https://github.com/llvm/llvm-project/pull/192736.

This is the same as #192735, accidentally merged into spr/users branch.


  Commit: 820654dca4f8ccfb0dad9c203d7774488776d948
      https://github.com/llvm/llvm-project/commit/820654dca4f8ccfb0dad9c203d7774488776d948
  Author: Ziqing Luo <ziqing_luo at apple.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M clang/include/clang/Analysis/Analyses/UnsafeBufferUsage.h
    M clang/lib/Analysis/UnsafeBufferUsage.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp

  Log Message:
  -----------
  [UnsafeBufferUsage][SSAF] Change -Wunsafe-buffer-usage API for SSAF-based analysis (#191934)

Change -Wunsafe-buffer-usage API to match `Stmt`s instead of `Decl`s. It
is up to clients of the API to determine how to traversal a `Decl`. In
this change, the client is SSAF-based
UnsafeBufferUsageExtractor.

---------

Co-authored-by: Balázs Benics <benicsbalazs at gmail.com>


  Commit: 506c3f17b450bdda8f376c529cbc37787de48fa7
      https://github.com/llvm/llvm-project/commit/506c3f17b450bdda8f376c529cbc37787de48fa7
  Author: Gaurav Dhingra <gauravdhingra.gxyd at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang-tools-extra/clang-tidy/readability/ConvertMemberFunctionsToStaticCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/checkers/readability/convert-member-functions-to-static.cpp

  Log Message:
  -----------
  [clang-tidy] Fix false positive in readability-convert-member-functions-to-static for const overloads (#191712)

Don't suggest conversion of overloaded + same signature methods
differing in `const`ness to replace the `const` method with `static`.
    
E.g.;
```
void S::f();         // method1
void S::f() const;   // method2
```
    
method2 can't have it's `const` replaced with `static`.
    
Fixes #149152


  Commit: 3081d52d8242a31620d5ce8111fdd2ad817574b7
      https://github.com/llvm/llvm-project/commit/3081d52d8242a31620d5ce8111fdd2ad817574b7
  Author: Jaewook Shin <jaewooks at nvidia.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/MC/MCDwarf.cpp
    M llvm/unittests/MC/CMakeLists.txt
    A llvm/unittests/MC/DwarfDebugFrameCIE.cpp

  Log Message:
  -----------
  [MC][debug_frame] Fix a bug in MCDwarfFrameEmitter::emit() so that per-function CIE can be generated when CIEs are different (#192727)

When CIEs of the .debug_frame section are different across multiple
functions, CIEs must not be deduplicated. This PR fixes a bug that has
prevented generating per-function CIE for `IsEH=false` when they are
different.

The test case (DwarfDebugFrameCIE.cpp) generation is assisted by LLM
agents.


  Commit: 523c26f9c2c7119a4651ca3ca9aa999a2dfc5535
      https://github.com/llvm/llvm-project/commit/523c26f9c2c7119a4651ca3ca9aa999a2dfc5535
  Author: Zeyi Xu <mitchell.xu2 at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    A clang-tools-extra/clang-tidy/tool/check_update_docs.py
    A clang-tools-extra/test/clang-tidy/infrastructure/update-checks-list.test

  Log Message:
  -----------
  [clang-tidy][NFC] Add a unittest for checking list.rst (#193134)

Follow up of #192228


  Commit: 653030b4c6275179393b65b04f0ce27e328a8084
      https://github.com/llvm/llvm-project/commit/653030b4c6275179393b65b04f0ce27e328a8084
  Author: Haohai Wen <haohai.wen at intel.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h
    M llvm/include/llvm/DebugInfo/PDB/Native/SymbolCache.h
    M llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp
    M llvm/lib/DebugInfo/PDB/Native/SymbolCache.cpp

  Log Message:
  -----------
  [PDB] Refactor cache strategy for function symbol lookups (#188927)

The original algorithm only caches the symbols that are being queried.
The module needs to be decoded again and again even when looking up the
same symbol but different address. This is time consuming when looking
for a large amount of symbol info. This patch uses IntervalMap to cache
decoded symbols to avoid duplicate decoding. We tested the symbol lookup
time for all symbols in symtab for Blender. The time was shortened by
258x relative to the original algorithm. This will greatly improve the
experience of loading symbols for pseudo probe on Windows.


  Commit: 2531a6730ddd65f0a39dff37ebfbe9f3c1e6abf0
      https://github.com/llvm/llvm-project/commit/2531a6730ddd65f0a39dff37ebfbe9f3c1e6abf0
  Author: Haohai Wen <haohai.wen at intel.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/lib/CodeGen/CGDebugInfo.cpp
    M clang/test/DebugInfo/CXX/atexit-stub.cpp
    M clang/test/DebugInfo/CXX/global-ctor-dtor.cpp

  Log Message:
  -----------
  [clang][DebugInfo] Set linkage name for dynamic initializer/destructor debug info (#189794)

Compiler-generated dynamic initializers and atexit destructors for global
variables were missing DW_AT_linkage_name in their DWARF debug info.
For CodeView targets, different template instantiations of the same
variable all shared the same human-readable name, making them
indistinguishable in the debug info.

Set LinkageName to Fn->getName() if subprogram name does not match
the mangled name.


  Commit: b5f7bc55573ca472de8c7af9a1d8b8e66f49a00c
      https://github.com/llvm/llvm-project/commit/b5f7bc55573ca472de8c7af9a1d8b8e66f49a00c
  Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [Bazel] Fixes 3081d52 (#193376)

This fixes 3081d52d8242a31620d5ce8111fdd2ad817574b7.

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>


  Commit: a680361bcdaa1c4bcd619dd5d59cfb1a8fa1b51c
      https://github.com/llvm/llvm-project/commit/a680361bcdaa1c4bcd619dd5d59cfb1a8fa1b51c
  Author: Zeyi Xu <mitchell.xu2 at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang-tools-extra/clang-tidy/readability/UseAnyOfAllOfCheck.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/docs/clang-tidy/checks/readability/use-anyofallof.rst
    M clang-tools-extra/test/clang-tidy/checkers/readability/use-anyofallof-cpp20.cpp
    M clang-tools-extra/test/clang-tidy/checkers/readability/use-anyofallof.cpp

  Log Message:
  -----------
  [clang-tidy] Suggest materializing temporary ranges in readability-use-anyofallof (#185791)

While the check still correctly identifies that the loop can be replaced
with `any_of`/`all_of`, reusing these temporaries directly in the
replacement is often unsafe or leads to compilation errors. So we
suggest a `note: ` for these cases.

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


  Commit: f4bf7297963b35b086ea4bff519249397d7bd84b
      https://github.com/llvm/llvm-project/commit/f4bf7297963b35b086ea4bff519249397d7bd84b
  Author: Dave Lee <davelee.com at gmail.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M lldb/examples/darwin/heap_find/heap.py
    M lldb/examples/python/diagnose_nsstring.py
    M lldb/examples/python/diagnose_unwind.py
    M lldb/examples/python/jump.py
    M lldb/examples/python/lldbtk.py
    M lldb/examples/python/memory.py
    M lldb/examples/python/sources.py
    M lldb/examples/python/stacks.py
    M lldb/examples/python/types.py

  Log Message:
  -----------
  [lldb] Add exe_ctx to examples commands (#193347)

Updates example python commands to use `SBExecutionContext` where
beneficial. This was to remove uses of
`GetSelected{Target,Thread,Frame}`.

While making this changes, I also renamed `dict` parameters to
`internal_dict`. In examples, it's better not to shadow `dict`, which is
the builtin type and constructor for dictionaries.

Lastly, I removed a command (`section_ptr_refs`) whose function was
disabled, and non-functional (it calls a non-existent function
`load_dylib`).


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

  Changed paths:
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/test/Other/new-pm-defaults.ll
    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:
  -----------
  Revert "[JTS][Passes] Enable JTS By Default" (#193399)

Reverts llvm/llvm-project#193300

Still causing failures on the BOLT bot.

https://lab.llvm.org/buildbot/#/builders/113/builds/12403

Seems related to the zero GUID issue.


  Commit: eb4296f98ad789d38d50dceef3b2fe118cc9cfb9
      https://github.com/llvm/llvm-project/commit/eb4296f98ad789d38d50dceef3b2fe118cc9cfb9
  Author: Ouyancheng <ou2 at ualberta.ca>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    A llvm/test/TableGen/AsmMatcherFullCustomConversionMethod.td
    M llvm/utils/TableGen/AsmMatcherEmitter.cpp

  Log Message:
  -----------
  [llvm-mc][AsmMatcherEmitter] Fix the minimum ConversionTable entry size (#191977)

When working on a target with fully customized instruction
conversion method, there's a build failure due to the case that in the
target's generated asm matcher, the size of `ConversionTable` entry is 2
(i.e., the minimum size defined in `AsmMatcherEmitter` TableGen
backend).

However, for a target that has customized conversion method for all
instructions, a `ConversionTable` entry should be looking like: `{
CVT_<the-custom-conversion-method>, <the-position-of-operand>, CVT_Done
}`, where the position of operand for custom conversion is by-default 0.

This commit includes a test case to illustrate this scenario, along with
a little fix.


  Commit: b3a5d146fc20234ee8203c3d0d8784ae74af7282
      https://github.com/llvm/llvm-project/commit/b3a5d146fc20234ee8203c3d0d8784ae74af7282
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp

  Log Message:
  -----------
  [lldb] Doxygenify comments in AppleObjCRuntimeV2 (NFC) (#193401)


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

  Changed paths:
    M lld/test/ELF/linkerscript/memory-include.test
    M lld/test/ELF/linkerscript/output-section-include.test
    M lld/test/ELF/linkerscript/section-include.test

  Log Message:
  -----------
  [ELF,test] Convert INCLUDE tests to split-file pattern (#193403)

Preparatory for adding negative test cases.


  Commit: bf7ced3bc90158802c368826a7bd4f182532a80f
      https://github.com/llvm/llvm-project/commit/bf7ced3bc90158802c368826a7bd4f182532a80f
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M lldb/test/API/functionalities/plugins/python_os_plugin/os_plugin_in_dsym/Makefile
    M lldb/test/API/functionalities/thread/backtrace_limit/Makefile
    M lldb/test/API/functionalities/thread/jump/Makefile
    M lldb/test/API/python_api/lldbutil/process/Makefile
    M lldb/test/API/python_api/module_section/Makefile
    M lldb/test/API/tools/lldb-dap/save-core/Makefile
    M lldb/test/API/tools/lldb-dap/step/Makefile
    M lldb/test/API/tools/lldb-dap/stepInTargets/Makefile

  Log Message:
  -----------
  [lldb] Remove ENABLE_THREADS from Makefiles that don't need it (#193363)

Likely these Makefiles were copy/pasted.


  Commit: dee5769870ce188e5f67307c57e93fb4a6bbcaab
      https://github.com/llvm/llvm-project/commit/dee5769870ce188e5f67307c57e93fb4a6bbcaab
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M lldb/test/API/functionalities/always-run-threads/TestAlwaysRunThreadNames.py
    M lldb/test/API/functionalities/always-run-threads/main.cpp

  Log Message:
  -----------
  [lldb] Fix potential TestAlwaysRunThreadNames flakiness (#193405)

Change the stepped function to spin on a flag until the helper thread
advances the counter, so the step-over can only complete if the helper
thread actually ran.

Fixes #193398


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

  Changed paths:
    M llvm/lib/Transforms/Scalar/JumpTableToSwitch.cpp
    M llvm/test/Transforms/JumpTableToSwitch/profile-no-guid-metadata.ll

  Log Message:
  -----------
  [JTS] Correctly handle all zero profile values in VP metadata (#193402)

We can end up with cases where the VP metadata only has zero profile
values, for example if all of the functions end up being external and
uninstrumented. This caused fixes an assertion failure on the BOLT
builder that came up last time we tried to turn the pass on by default.


  Commit: 554edb289bb208eaff55509bb1168b749a17eedf
      https://github.com/llvm/llvm-project/commit/554edb289bb208eaff55509bb1168b749a17eedf
  Author: Fangrui Song <i at maskray.me>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

  Changed paths:
    M lld/test/ELF/linkerscript/memory-include.test

  Log Message:
  -----------
  [ELF,test] Cover empty INCLUDE inside MEMORY { ... } (#193411)


  Commit: 0f4fb3b2426e3b656b6121f93bdbe7584c1e04a2
      https://github.com/llvm/llvm-project/commit/0f4fb3b2426e3b656b6121f93bdbe7584c1e04a2
  Author: Jaydeep Chauhan <chauhan.jaydeep.ashwinbhai at intel.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/include/llvm/MC/MCPseudoProbe.h

  Log Message:
  -----------
  [NFC] [MC] Fixed rule-of-five for MCPseudoProbeDecoder class (#193181)

- Added destructor for **MCPseudoProbeDecoder** class as rule of five
(https://en.cppreference.com/cpp/language/rule_of_three)


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

  Changed paths:
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/test/Other/new-pm-defaults.ll
    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:
  -----------
  Reapply "[JTS][Passes] Enable JTS By Default" (#193409)

Reverts llvm/llvm-project#193399

The last assertion failure seen on the BOLT buildbot should be fixed by
ee06802dc4a85b4a05ae75c1853bca8e58f76f6d.


  Commit: fde2e27a017c6bee40dbd09288482119258ef0ce
      https://github.com/llvm/llvm-project/commit/fde2e27a017c6bee40dbd09288482119258ef0ce
  Author: David Meng <159511732+davidmenggx at users.noreply.github.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/test/SemaCXX/warn-weak-vtables.cpp

  Log Message:
  -----------
  [clang][modules] Fix false positive -Wweak-vtables in named modules (#193136)

The -Wweak-vtables warning was incorrectly firing for classes defined in
C++20 module units. This warning does not apply to module units as the
vtable should be owned by the module and emitted only once.

Fixes #193004


  Commit: efa0f22883b5cc8c77272dff471027b22623b6a1
      https://github.com/llvm/llvm-project/commit/efa0f22883b5cc8c77272dff471027b22623b6a1
  Author: Kito Cheng <kito.cheng at sifive.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.h
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.h
    M llvm/test/MC/RISCV/mapping-across-sections.s
    A llvm/test/MC/RISCV/mapping-isa-attribute.s
    A llvm/test/MC/RISCV/mapping-isa-option-rv32.s
    A llvm/test/MC/RISCV/mapping-isa-option-rv64.s
    A llvm/test/MC/RISCV/mapping-isa-option-rvc-dedup.s

  Log Message:
  -----------
  [RISCV][MC] Emit ISA mapping symbols on .option arch/rvc/norvc/pop (#193123)

When .option arch, .option rvc, .option norvc, or .option pop changes
the active ISA, emit a "$x<ISAString>" mapping symbol before the next
instruction so that tools can determine the ISA in effect for each code
region.

Also emit ISA mapping symbols on begin of first instruction to make sure
link with different object still can disassemble correctly.

Based on #67541

---------

Co-authored-by: Joseph.Faulls <Joseph.Faulls at imgtec.com>


  Commit: cfa67454e9d44037f3c87eb2fc4ae32cf8b68576
      https://github.com/llvm/llvm-project/commit/cfa67454e9d44037f3c87eb2fc4ae32cf8b68576
  Author: Jakob Linke <jakob at linke.cx>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [clangd] Add go-to-definition support for fields in offsetof expressions (#192953)

clangd had no handling for OffsetOfExpr in FindTarget.cpp, so
go-to-definition and find-references on field names inside
__builtin_offsetof(Type, field) produced no results.

Fix this by adding VisitOffsetOfExpr to both visitors:
- The TargetFinder visitor in add(const Stmt*) so that allTargetDecls()
resolves the referenced FieldDecl(s).
- The refInStmt visitor so that findExplicitReferences() emits a
ReferenceLoc per field component, enabling find-references and rename to
locate each field at its source position.

Each OffsetOfNode of kind Field is visited; Identifier nodes (unresolved
dependent-type designators) and Base nodes (implicit base-class
indirections) are intentionally skipped.

Repro:
```                                                                                                                                                                                                                                             
  struct Foo { int bar; };                               
  int x = offsetof(Foo, bar);  // go-to-def on `bar` previously did nothing
```


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

  Changed paths:
    A lld/test/ELF/linkerscript/header-alloc.test
    R lld/test/ELF/linkerscript/header-phdr2.s
    R lld/test/ELF/linkerscript/sizeofheaders.s

  Log Message:
  -----------
  [ELF] Improve allocateHeaders tests (#193419)


  Commit: a61de4b50c04ac033c61e638e886ca6b3a8324bc
      https://github.com/llvm/llvm-project/commit/a61de4b50c04ac033c61e638e886ca6b3a8324bc
  Author: Davide Grohmann <davide.grohmann at arm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M mlir/lib/Dialect/SPIRV/IR/SPIRVTypes.cpp
    M mlir/test/Conversion/FuncToSPIRV/types-to-spirv.mlir
    M mlir/test/Dialect/SPIRV/IR/types.mlir
    M mlir/test/Target/SPIRV/tensorARM.mlir

  Log Message:
  -----------
  [mlir][spirv][nfc] Clean up FP8 and BF16 SPIR-V type tests (#193196)

Rename the non-emulation check prefixes for clarity, expand FP8/BF16
test coverage in SPIR-V type and TensorArm tests, and simplify a few
type predicates in SPIRVTypes.cpp.

No functional change intended.

Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>


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

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

  Log Message:
  -----------
  [clangd] [Modules] Refactor cache to support duplicated module name (#193413)

Following of https://github.com/llvm/llvm-project/pull/193158

Although https://github.com/llvm/llvm-project/pull/193158 handles
duplicated module name, the cache in ModulesBuilder still uses the old
assumption.

This patch tries to resolve the problem while not affecting original use
cases as much as possible. As the duplicated module name should be rare
in real world case.

AI Assisted


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

  Changed paths:
    M clang/lib/AST/ByteCode/Compiler.cpp
    M clang/test/AST/ByteCode/cxx20.cpp

  Log Message:
  -----------
  [clang][bytecode] Fix DefaultInitExpr base pointer in IndirectFieldDecls (#193149)

We built up an in correct set of init chain links, causing a
`DefaultInitExpr` later to pick the wrong base pointer. Fix this by
adding one link per decl (-1) in the `IndirectFieldDecl`.


  Commit: 9435160a040b9bfc29820f1e67faa57ae4375438
      https://github.com/llvm/llvm-project/commit/9435160a040b9bfc29820f1e67faa57ae4375438
  Author: Srinivasa Ravi <srinivasar at nvidia.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
    R mlir/test/Dialect/LLVMIR/nvvm-check-targetSM.mlir
    A mlir/test/Dialect/LLVMIR/nvvm_check_target_sm.mlir
    A mlir/test/Dialect/LLVMIR/nvvm_check_target_sm_trait.mlir

  Log Message:
  -----------
  [MLIR][NVVM] Update SM version requirements of Ops (#192257)

This change updates the SM version requirements of Ops with the
`NVVMRequiresSM` trait to include family-specific SM versions wherever
applicable.


  Commit: f4cc934dcbca36786885dbf919d4a86a50ff555e
      https://github.com/llvm/llvm-project/commit/f4cc934dcbca36786885dbf919d4a86a50ff555e
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [LV] NFCI: Create VPExpressions in transformToPartialReductions. (#182863)

With this change, all logic to generate partial reductions and
recognising them as VPExpressions is contained in
`transformToPartialReductions`, without the need for a second transform
pass.
The PR intends to be a non-functional change.


  Commit: 5ef29d1d8bb576f8362196ee616fc7bef03ce7be
      https://github.com/llvm/llvm-project/commit/5ef29d1d8bb576f8362196ee616fc7bef03ce7be
  Author: Oliver Hunt <oliver at apple.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:

  Log Message:
  -----------
  [ADT] Add predicate based match support to StringSwitch (#188046)

This introduces `Predicate` and `IfNotPredicate` case selection to
StringSwitch to allow use cases like

```
StringSwitch<...>(..)
  .Case("foo", FooTok)
  .Predicate(isAlpha, IdentifierTok)
...
```

This is mostly useful for improving conciseness and clarity when
processing generated strings, diagnostics, and similar.


  Commit: cd145989585ed70bb02c1d9d704e62ccf4bd04d1
      https://github.com/llvm/llvm-project/commit/cd145989585ed70bb02c1d9d704e62ccf4bd04d1
  Author: Vikash Gupta <Vikash.Gupta at amd.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [AMDGPU][NFC] Eliminates the redundant code in the AMDGPUTargetMachine.cpp (#193169)


  Commit: 83b4c5cd71c8e9779f6fcab3bfbb8e28cd078cdd
      https://github.com/llvm/llvm-project/commit/83b4c5cd71c8e9779f6fcab3bfbb8e28cd078cdd
  Author: Srinivasa Ravi <srinivasar at nvidia.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/docs/NVPTXUsage.rst
    M llvm/include/llvm/IR/IntrinsicsNVVM.td
    M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp
    M llvm/lib/Target/NVPTX/NVPTX.h
    M llvm/lib/Target/NVPTX/NVPTX.td
    M llvm/lib/Target/NVPTX/NVPTXInstrInfo.td
    M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
    M llvm/lib/Target/NVPTX/NVPTXSubtarget.h
    A llvm/test/CodeGen/NVPTX/convert_fp4x2_to_bf16x2.ll
    A llvm/test/CodeGen/NVPTX/convert_fp6x2_to_bf16x2.ll
    A llvm/test/CodeGen/NVPTX/convert_fp8x2_to_bf16x2.ll

  Log Message:
  -----------
  [NVPTX] Add intrinsics for narrow-fp to bf16 conversions (#191376)

Adds the following intrinsics for narrow-fp to bf16 conversions
introduced in PTX 9.2:
-
llvm.nvvm.{e4m3x2/e5m2x2}.to.bf16x2.rn{.relu}{.satfinite}.scale.n2.ue8m0
-
llvm.nvvm.{e2m3x2/e3m2x2}.to.bf16x2.rn{.relu}{.satfinite}.scale.n2.ue8m0
- llvm.nvvm.e2m1x2.to.bf16x2.rn{.relu}{.satfinite}.scale.n2.ue8m0

Tests have been verified through `ptxas-13.2`.

PTX ISA Reference:
https://docs.nvidia.com/cuda/parallel-thread-execution/#data-movement-and-conversion-instructions-cvt


  Commit: 22bb938f873f321466654ac5d7e04ea87731407e
      https://github.com/llvm/llvm-project/commit/22bb938f873f321466654ac5d7e04ea87731407e
  Author: Jiahao Guo <eoonguo at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [CIR][AArch64] Lower NEON vminv intrinsics (#192901)

### Summary

part of : https://github.com/llvm/llvm-project/issues/185382

Lower all intrinsics in
https://arm-software.github.io/acle/neon_intrinsics/advsimd.html#minimum-across-vector
and
https://arm-software.github.io/acle/neon_intrinsics/advsimd.html#minimum-across-vector-(IEEE754)

Add ClangIR (CIR) codegen support for the NEON minimum-across-vector
builtins on AArch64. This covers the ACLE sections 2.1.1.13.4 Minimum
across vector (signed/unsigned integer + float) and 2.1.1.13.6 Minimum
across vector (IEEE 754, NaN-ignoring). Corresponding
classic-CodeGen-only tests are migrated into the shared CIR+LLVM test
file so both pipelines are checked from the same RUN lines.

These builtins are already registered in AArch64SISDIntrinsicMap
(clang/include/clang/Basic/AArch64CodeGenUtils.h) with the correct
LLVMIntrinsic IDs and TypeModifiers, mirroring the classic CodeGen flow
in
clang/lib/CodeGen/TargetBuiltins/ARM.cpp::EmitCommonNeonSISDBuiltinExpr.
In CIR the same map drives emitCommonNeonSISDBuiltinExpr, so the only
missing piece was adding these builtin IDs to the dispatch switch — no
intrinsic-specific lowering is needed.


  Commit: 35480b22737fdffb5ab9e6f729edbb09ac4bff55
      https://github.com/llvm/llvm-project/commit/35480b22737fdffb5ab9e6f729edbb09ac4bff55
  Author: Diego Novillo <dnovillo at nvidia.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SPIRV/CMakeLists.txt
    M llvm/lib/Target/SPIRV/SPIRV.h
    M llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp
    R llvm/lib/Target/SPIRV/SPIRVEmitNonSemanticDI.cpp
    M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
    A llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
    A llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
    M llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp
    M llvm/test/CodeGen/SPIRV/debug-info/debug-compilation-unit.ll
    A llvm/test/CodeGen/SPIRV/debug-info/debug-optype-void-emission.ll
    A llvm/test/CodeGen/SPIRV/debug-info/debug-source-language-glsl.ll
    A llvm/test/CodeGen/SPIRV/debug-info/debug-source-language-unknown.ll
    M llvm/test/CodeGen/SPIRV/debug-info/debug-type-basic.ll
    M llvm/test/CodeGen/SPIRV/debug-info/debug-type-pointer.ll
    M llvm/test/CodeGen/SPIRV/llc-pipeline.ll

  Log Message:
  -----------
  [SPIRV] Migrate NSDI emission from a machine pass to DebugHandlerBase (#191212)

This PR implements the basic harness for the migration I discussed in
https://discourse.llvm.org/t/hlsl-spirv-nsdi-debug-info-support-for-clang-dxc/90149.


  Commit: 9ec6788421accc6f649a790b6841d4cce7900fba
      https://github.com/llvm/llvm-project/commit/9ec6788421accc6f649a790b6841d4cce7900fba
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/decorators.py
    M lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
    M lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStoreProperties.td
    M lldb/test/API/symstore/TestSymStore.py
    M llvm/include/llvm/HTTP/HTTPClient.h
    M llvm/lib/HTTP/CMakeLists.txt
    M llvm/lib/HTTP/HTTPClient.cpp

  Log Message:
  -----------
  [lldb] Add HTTPS tests for SymbolLocatorSymStore (#192274)

Using self-signed certificates is the only way forward for testing 
security features on the HTTPS path. As we don't want to allow
any arbitrary certificate, we add a new property that pins a
fingerprint and any self-signed certificate is only accepted if it
matches this fingerprint.


  Commit: 7af4283bc96ca51742d290bde2a806cd19dc0570
      https://github.com/llvm/llvm-project/commit/7af4283bc96ca51742d290bde2a806cd19dc0570
  Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    M llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp

  Log Message:
  -----------
  [NFC][SPIR-V] Use getScalarOrVectorComponent{Count,Type} instead of raw operand access (#193410)

Replace direct accesses to SPIR-V type instruction operands with the
existing getScalarOrVectorComponentCount() and
getScalarOrVectorComponentType() helpers


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

  Changed paths:
    M libcxx/test/std/atomics/atomics.types.generic/cas_non_power_of_2.pass.cpp

  Log Message:
  -----------
  [libcxx][test] Skip cas_non_power_of_2.pass.cpp in Picolibc build (#191415)

Relates to #191388

This test is currently being run and failing to link, however this is
masked by the XFAIL for clang 21. It is also marked unsupported for 22,
for now.

I ran it with 23 and got this linker error:
```
| ld.lld: error: undefined symbol: __atomic_load
<...>
| ld.lld: error: undefined symbol: __atomic_compare_exchange
```

This happens because for 5 and 6 byte variables, we can't simply
generate code for the atomic, so we emit a library call, and the
picolibc build does not provide implementations of these functions.

Presumably we could fix that, so I opened an issue to track that.

In the meantime, I want to make sure this doesn't start failing when CI
is updated to clang 23.

I decided to disable the whole test instead of the alternatives, which
are:
* Adding some extra feature like has-atomic-lib-calls. I wasn't sure
what was a good name for it, or how to write an accurate check for it.
* ifdef-ing out the 5 and 6 byte part with `__PICOLIBC__`. It's not a
problem with picolibc but our specific build type. I don't want to take
coverage away from anyone else's build.


  Commit: 0da0163d3ace71ca5dcdb3a9b2e89848d34765e4
      https://github.com/llvm/llvm-project/commit/0da0163d3ace71ca5dcdb3a9b2e89848d34765e4
  Author: Xinlong Chen <xinlongchen at tencent.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [SelectionDAG] Preserve poison in IS_FPCLASS folds (#193246)

Handle poison explicitly in `IS_FPCLASS` so the fold preserves poison
semantics instead of turning the result into `false`.

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


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

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86InstrAVX512.td
    M llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
    M llvm/test/CodeGen/X86/pr192034.ll

  Log Message:
  -----------
  [X86] Recognise vectors with zeros in all upper elements to improve VMOVS*Z folding (#193263)

Currently the VMOVSHZ (etc.) patterns are mainly limited to merging with
X86vzmovl patterns which explicitly demonstrate the upper elements
should be zero (and we can remove the X86vzmovl node).

This patch adds a X86vzelts PatLeaf to help match more general cases
where we can use the result of a passthrough node (in this case
X86vzload) is known to be zero in the upper elements via value tracking,
allowing us to fold to VMOVSHZ (but not remove the passthrough node).

Fixes #192034


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

  Changed paths:
    M lldb/test/CMakeLists.txt

  Log Message:
  -----------
  [lldb] Fix pexpect detection with LLDB_ENFORCE_STRICT_TEST_REQUIREMENTS (#193444)

Fixes ec8df555702d85511290742388d28016b69468de / #193437.

In which I tried to not require pexpect on Windows because key parts of
it do not work there
(https://pexpect.readthedocs.io/en/stable/overview.html#windows).

Which I did but made a mistake which removed pexpect from the list of
required modules for *all* platforms as a side effect.

`list(APPEND pexpect)` creates an empty list called foo
(https://cmake.org/cmake/help/latest/command/list.html#append), I meant
to append to the useful modules list.

With that fixed, we require pexpect everywhere apart from Windows.

GitHub CI is already installing pexpect on Linux
(see .ci/all_requirements.txt). All the Linux bots using
LLDB_ENFORCE_STRICT_TEST_REQUIREMENTS have it installed. The Linux
remote testing bots don't use that option but pexpect tests don't run
when remote anyway.


  Commit: d24ebe3f00b35c14b64c06d88451c7556ccbc016
      https://github.com/llvm/llvm-project/commit/d24ebe3f00b35c14b64c06d88451c7556ccbc016
  Author: Takuto Ikuta <tikuta at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [Support] Add std::string overload for llvm::sys::path::native (#193228)

This patch adds an overload of `llvm::sys::path::native` that returns a
`std::string` directly, making it more convenient to use when a
`std::string` is needed instead of modifying a `SmallVectorImpl<char>`
in place.

This is for
https://github.com/llvm/llvm-project/pull/193160#discussion_r3117268925,
but made separate PR.


  Commit: 34a917a53e51a602492ff42b128714edf5f6b23c
      https://github.com/llvm/llvm-project/commit/34a917a53e51a602492ff42b128714edf5f6b23c
  Author: Davide Grohmann <davide.grohmann at arm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVTosaOps.td
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVTosaTypes.td
    M mlir/test/Dialect/SPIRV/IR/tosa-ops-verification.mlir

  Log Message:
  -----------
  [mlir][spirv] Add SPV_EXT_FP8 type support to SPIR-V TOSA ops (#193199)

Add SPV_EXT_FP8 support for SPIR-V TOSA ops by updating the shared type
definitions and extending op constraints for the newly supported element
types.

Also update verifier coverage to reflect the new constraints:
- refresh existing negative tests whose diagnostics now list FP8 types
- add negative tests for SPV_EXT_FP8-specific output, weight,
accumulator, and cast restrictions

Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>


  Commit: 86b9775612f893c669466fc749643cfacb8df682
      https://github.com/llvm/llvm-project/commit/86b9775612f893c669466fc749643cfacb8df682
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp
    M flang/lib/Optimizer/Passes/Pipelines.cpp
    M llvm/include/llvm/Passes/OptimizationLevel.h
    M llvm/lib/Passes/OptimizationLevel.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/test/Analysis/FunctionPropertiesAnalysis/pipeline.ll
    M llvm/test/Analysis/InstCount/pipeline.ll
    M llvm/test/CodeGen/Hexagon/glob-align-volatile.ll
    M llvm/test/Other/function-simplification.ll
    M llvm/test/Other/new-pm-defaults.ll
    M llvm/test/Other/new-pm-lto-defaults.ll
    M llvm/test/Other/new-pm-pgo-preinline.ll
    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/Other/opt-On.ll
    A llvm/test/Other/opt-Os-Oz.ll
    M llvm/test/Other/opt-hot-cold-split.ll
    M llvm/test/Other/optimize-inrange-gep.ll
    M llvm/test/Other/pipeline-callbacks-string-api.ll
    M llvm/test/Transforms/Inline/always-inline-phase-ordering.ll
    M llvm/test/Transforms/Inline/devirtualize.ll
    M llvm/test/Transforms/Inline/inline-optsize.ll
    M llvm/test/Transforms/Inline/inline-threshold.ll
    R llvm/test/Transforms/LoopUnroll/opt-levels.ll
    R llvm/test/Transforms/LoopUnrollAndJam/opt-levels.ll
    M llvm/test/Transforms/PhaseOrdering/AArch64/Oz-and-forced-vectorize.ll
    M llvm/test/Transforms/PhaseOrdering/X86/loop-vectorize-metadata.ll
    M llvm/test/Transforms/PhaseOrdering/always-inline-alloca-promotion.ll
    M llvm/test/Transforms/PhaseOrdering/cmp-logic.ll
    M llvm/test/Transforms/PhaseOrdering/enable-loop-header-duplication-oz.ll
    M llvm/test/Transforms/PhaseOrdering/runtime-check-removal.ll
    M llvm/test/Transforms/SimpleLoopUnswitch/pipeline.ll
    M mlir/lib/ExecutionEngine/OptUtils.cpp
    M polly/test/Support/defaultpipelines.ll

  Log Message:
  -----------
  [Passes] Remove Os and Oz optimization pipelines (#191363)

These should use O2 with the optsize or minsize attributes instead.

This enforces that there is no divergence between pipeline-level Os/Oz
and function-level Os/Oz at an architectural level.

For the purpose of testing IR that does not have optsize/minsize itself,
it's possible to use `-force-attribute=optsize` etc.


  Commit: 7a154470f51fef202a9a14e0618344a6a419579a
      https://github.com/llvm/llvm-project/commit/7a154470f51fef202a9a14e0618344a6a419579a
  Author: SunilKuravinakop <98882378+SunilKuravinakop at users.noreply.github.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M flang/lib/Parser/prescan.cpp
    M flang/test/Driver/escaped-backslash.f90

  Log Message:
  -----------
  [Flang] bug: preprocessor increases backslash to double backslash (#191512)

Correcting the preprocessing (-E) output when` '\'` is used in a string.
Prior to this fix it was being replaced with `"\\"`.

Fixes[191463](https://github.com/llvm/llvm-project/issues/191463)

Co-authored-by: Sunil Kuravinakop <kuravina at pe31.hpc.amslabs.hpecorp.net>


  Commit: 3e7c207ebe359a7e02b7247b0f24578b17d18eae
      https://github.com/llvm/llvm-project/commit/3e7c207ebe359a7e02b7247b0f24578b17d18eae
  Author: Urvi Rav <94829943+ravurvi20 at users.noreply.github.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M flang/lib/Semantics/resolve-directives.cpp
    A flang/test/Semantics/OpenMP/cray-pointer-default-none.f90
    M flang/test/Semantics/OpenMP/cray-pointer-usage.f90

  Log Message:
  -----------
  [Flang][OpenMP] Fix DEFAULT(NONE) check for Cray pointers in nested OpenMP directives (#190764)

Fixes - [#190750](https://github.com/llvm/llvm-project/issues/190750)

In resolve-directives.cpp, the handling of DEFAULT(NONE) for Cray
pointers in nested OpenMP regions was incomplete.

The existing implementation only checked the data-sharing attribute
(DSA) of the Cray pointee, and did not account for the associated Cray
pointer. This led to incorrect diagnostics when the pointee was used
inside a region, but the pointer’s DSA was not properly considered.

This patch updates the logic to:

1. Check DSAs for both the Cray pointee and its corresponding pointer
2. Restrict the validation to the current directive context, ensuring
that each default(none) region enforces its own data-sharing
requirements
3. Introduce a helper (initSymbolDSA) to reuse DSA lookup logic

With this change, nested default(none) regions correctly require the
Cray pointer to be explicitly listed in each region, and diagnostics are
issued when either the pointer or pointee is missing a DSA in the
current context.

A test case has also been added to cover this scenario.

Co-authored-by: Leandro Lupori
<[leandro.lupori at linaro.org](mailto:leandro.lupori at linaro.org)>

---------

Co-authored-by: Michael Klemm <michael.klemm at amd.com>


  Commit: 8e56a89c8f28c2d8b1a952b0ee321c4953594b6b
      https://github.com/llvm/llvm-project/commit/8e56a89c8f28c2d8b1a952b0ee321c4953594b6b
  Author: Balázs Benics <benicsbalazs at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/docs/ScalableStaticAnalysisFramework/developer-docs/ForceLinkerHeaders.rst
    M clang/docs/ScalableStaticAnalysisFramework/developer-docs/HowToExtend.rst
    A clang/include/clang/ScalableStaticAnalysisFramework/BuiltinAnchorSources.def
    M clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormatRegistry.h
    M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/ExtractorRegistry.h
    M clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisRegistry.h
    M clang/include/clang/ScalableStaticAnalysisFramework/SSAFBuiltinForceLinker.h
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractor.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphJSONFormat.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisRegistry.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/Registries/FancyAnalysisData.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSummaryExtractor1.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSummaryExtractor2.cpp
    R clang/unittests/ScalableStaticAnalysisFramework/SSAFBuiltinTestForceLinker.h
    R clang/unittests/ScalableStaticAnalysisFramework/SSAFTestForceLinker.h
    M clang/unittests/ScalableStaticAnalysisFramework/TestFixture.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/AnalysisDriverTest.cpp

  Log Message:
  -----------
  [clang][ssaf][NFC] Rework how the Force linker anchors are defined and used (#189409)

- Moves them to the `clang::ssaf` namespace.
- Drops the custom force linker header used for testing, because all
object files are directly linked into the unittest executable, so we
don't need special handling there. This reduces complexity.
- Updates the documentation to reflect the new use.


  Commit: c37764cc00f235bbd18e0ff496dfd2d40e6a64ec
      https://github.com/llvm/llvm-project/commit/c37764cc00f235bbd18e0ff496dfd2d40e6a64ec
  Author: Kiva <imkiva at islovely.icu>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CGExprComplex.cpp
    M clang/lib/CodeGen/TargetBuiltins/NVPTX.cpp
    M clang/lib/CodeGen/TargetBuiltins/PPC.cpp
    M clang/lib/CodeGen/TargetBuiltins/SystemZ.cpp
    M clang/lib/CodeGen/TargetBuiltins/WebAssembly.cpp
    M llvm/include/llvm/IR/IRBuilder.h
    M llvm/lib/CodeGen/ExpandIRInsts.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
    M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
    M llvm/unittests/IR/IRBuilderTest.cpp

  Log Message:
  -----------
  [IRBuilder][NFC] Add `CreateFAbs` helper (#193421)

This PR refactors the common logic for creating the `llvm.fabs`
intrinsic into a shared helper.

The refactoring was found while reviewing #192182. As it affects code
beyond the scope of that original change, it is split into a seprate PR
here.

NFC intended.


  Commit: 8fea7910b0b43396aa5b12261ad3404609b03c26
      https://github.com/llvm/llvm-project/commit/8fea7910b0b43396aa5b12261ad3404609b03c26
  Author: Henrich Lauko <xlauko at mail.muni.cz>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/include/clang/CIR/MissingFeatures.h
    M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
    A clang/test/CIR/CodeGenBuiltins/builtin-bit-clz-ctz-target.cpp

  Log Message:
  -----------
  [CIR] Fix __builtin_clz/__builtin_ctz poison_zero to respect target (#192865)

CIR was hardcoding poisonZero=true for all clz/ctz builtins, ignoring
the target's isCLZForZeroUndef(). This caused incorrect UB on targets
like AArch64 where clz/ctz of zero is well-defined.

Also add support for __builtin_c[lt]zg fallback (2-arg) variants with
compare+select, and add NYI stubs for elementwise variants.


  Commit: 582958c4337f539e650096c0257a322315298e1a
      https://github.com/llvm/llvm-project/commit/582958c4337f539e650096c0257a322315298e1a
  Author: Balázs Benics <benicsbalazs at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/docs/ScalableStaticAnalysisFramework/developer-docs/ForceLinkerHeaders.rst
    M clang/docs/ScalableStaticAnalysisFramework/developer-docs/HowToExtend.rst
    R clang/include/clang/ScalableStaticAnalysisFramework/BuiltinAnchorSources.def
    M clang/include/clang/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormatRegistry.h
    M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/ExtractorRegistry.h
    M clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisRegistry.h
    M clang/include/clang/ScalableStaticAnalysisFramework/SSAFBuiltinForceLinker.h
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractor.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphJSONFormat.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisRegistry.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/Registries/FancyAnalysisData.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSummaryExtractor1.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSummaryExtractor2.cpp
    A clang/unittests/ScalableStaticAnalysisFramework/SSAFBuiltinTestForceLinker.h
    A clang/unittests/ScalableStaticAnalysisFramework/SSAFTestForceLinker.h
    M clang/unittests/ScalableStaticAnalysisFramework/TestFixture.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/AnalysisDriverTest.cpp

  Log Message:
  -----------
  Revert "[clang][ssaf][NFC] Rework how the Force linker anchors are defined and used" (#193451)

Reverts llvm/llvm-project#189409

https://github.com/llvm/llvm-project/pull/189409#issuecomment-4295217473
https://lab.llvm.org/buildbot/#/builders/2/builds/49749

```
FAILED: bin/clang-ssaf-format.exe
bin\clang-ssaf-format.exe : fatal error LNK1120: 6 unresolved externals
...
```


  Commit: d368c5728fcd66342dd9ff1dea16bf06c68426e5
      https://github.com/llvm/llvm-project/commit/d368c5728fcd66342dd9ff1dea16bf06c68426e5
  Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [DA] Remove unnecesasry SCEV negation operation (NFCI) (#193447)

Previously, we needed to normalize the coefficient to positive in the
Weak Crossing SIV test because the subsequent analysis relied on the
sign of `Delta`. However, since that logic has been removed, we no
longer need to make the coefficient positive.


  Commit: 808af6fd987e6558742d8bf61fde30dc774a65f2
      https://github.com/llvm/llvm-project/commit/808af6fd987e6558742d8bf61fde30dc774a65f2
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Analysis/ConstantFolding.cpp
    M llvm/test/Transforms/InstSimplify/constant-fold-fp-denormal.ll

  Log Message:
  -----------
  [LLVM][ConstantFolding] Use correct type when flushing denormals. (#193254)

flushDenormalConstant always created a scalar ConstantFP even when
passed a vector type. I've had to change the return type from
ConstantFP* to Constant* because ConstantFP::get does not necessarily
return a ConstantFP. This can be reverted when ConstantFP vectors are
enabled by default (although additional work is required to support
zero).


  Commit: 8f6598133b37d6fc891aa48777a660b16f5bf1de
      https://github.com/llvm/llvm-project/commit/8f6598133b37d6fc891aa48777a660b16f5bf1de
  Author: Takuto Ikuta <tikuta at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang-tools-extra/clangd/tool/ClangdMain.cpp
    M clang-tools-extra/clangd/unittests/TestFS.cpp
    M clang-tools-extra/clangd/unittests/URITests.cpp

  Log Message:
  -----------
  [clangd][test] Fix test failures when LLVM_WINDOWS_PREFER_FORWARD_SLASH is ON (#193160)

This commit addresses several test failures in Clangd that occur on
Windows when the CMake option -DLLVM_WINDOWS_PREFER_FORWARD_SLASH=ON is
enabled.

Key changes:
- Updated testRoot() and TestScheme to dynamically return native path
styles.
- Normalized expected paths in URI tests using a helper that calls
llvm::sys::path::native.


  Commit: f5f107e017788e5a90154182d724ee1e39a69666
      https://github.com/llvm/llvm-project/commit/f5f107e017788e5a90154182d724ee1e39a69666
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
    A llvm/test/CodeGen/WebAssembly/simd-pr190773.ll

  Log Message:
  -----------
  [LLVM][SelectionDAG] Reduce chances of a split VSETCC being rewidened. (#191438)

This is a reimplementation of
https://github.com/llvm/llvm-project/pull/139295 but without introducing
a potential infinite type legalisation loop whereby splitting a SETCC
requires the result to be rewidened.

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


  Commit: 1d9775f68440be4312afd11d01476d22bfe9d03d
      https://github.com/llvm/llvm-project/commit/1d9775f68440be4312afd11d01476d22bfe9d03d
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/blend-costs.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/call-costs.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/conditional-branches-cost.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/conditional-scalar-assignment-fold-tail.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/conditional-scalar-assignment.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/divs-with-scalable-vfs.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/drop-poison-generating-flags.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/epilog-vectorization-widen-inductions.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/first-order-recurrence-fold-tail.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/fixed-order-recurrence.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/fixed-wide-lane-mask.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/fold-tail-low-trip-count.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/induction-costs-sve.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/induction-costs.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/interleave-with-gaps.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/invariant-replicate-region.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/loop-vectorization-factors.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/low_trip_count_predicates.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/masked-call-scalarize.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/masked-call.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/optsize_minsize.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/outer_loop_prefer_scalable.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/outer_loop_test1_no_explicit_vect_width.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-epilogue.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-neon.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-incomplete-chains.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-sub.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/pr60831-sve-inv-store-crash.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/predicated-costs.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/reduction-recurrence-costs-sve.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/replicating-load-store-costs-apple.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/replicating-load-store-costs.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/scalable-avoid-scalarization.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/scalable-reductions-tf.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/scalable-strict-fadd.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/scalable-struct-return.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/simple_early_exit.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/store-costs-sve.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/strict-fadd.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-low-trip-count.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-optsize.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-reductions.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-unroll.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-wide-lane-mask.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-widen-gep.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/tail-fold-uniform-memops.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/tail-folding-styles.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-fold-tail.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-multi-block.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-wide-ops.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/type-shrinkage-insertelt.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/vector-call-linear-args.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/widen-gep-all-indices-invariant.ll
    M llvm/test/Transforms/LoopVectorize/ARM/gather-cost.ll
    M llvm/test/Transforms/LoopVectorize/ARM/tail-folding-counting-down.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/conditional-scalar-assignment-fold-tail.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/conditional-scalar-assignment.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/dbg-tail-folding-by-evl.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/divrem.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/illegal-type.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/riscv-vector-reverse.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/strided-accesses.ll
    M llvm/test/Transforms/LoopVectorize/SystemZ/force-target-instruction-cost.ll
    M llvm/test/Transforms/LoopVectorize/SystemZ/predicated-first-order-recurrence.ll
    M llvm/test/Transforms/LoopVectorize/SystemZ/scalar-steps-with-users-demanding-all-lanes-and-first-lane-only.ll
    M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/sve-tail-folding-forced.ll
    M llvm/test/Transforms/LoopVectorize/VPlan/AArch64/widen-call-with-intrinsic-or-libfunc.ll
    M llvm/test/Transforms/LoopVectorize/X86/conditional-scalar-assignment.ll
    M llvm/test/Transforms/LoopVectorize/X86/consecutive-ptr-uniforms.ll
    M llvm/test/Transforms/LoopVectorize/X86/constant-fold.ll
    M llvm/test/Transforms/LoopVectorize/X86/cost-conditional-branches.ll
    M llvm/test/Transforms/LoopVectorize/X86/cost-model.ll
    M llvm/test/Transforms/LoopVectorize/X86/divs-with-tail-folding.ll
    M llvm/test/Transforms/LoopVectorize/X86/drop-poison-generating-flags.ll
    M llvm/test/Transforms/LoopVectorize/X86/epilog-vectorization-inductions.ll
    M llvm/test/Transforms/LoopVectorize/X86/fixed-order-recurrence.ll
    M llvm/test/Transforms/LoopVectorize/X86/gather_scatter.ll
    M llvm/test/Transforms/LoopVectorize/X86/gep-use-outside-loop.ll
    M llvm/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll
    M llvm/test/Transforms/LoopVectorize/X86/induction-costs.ll
    M llvm/test/Transforms/LoopVectorize/X86/interleave-opaque-pointers.ll
    M llvm/test/Transforms/LoopVectorize/X86/interleave-ptradd-with-replicated-operand.ll
    M llvm/test/Transforms/LoopVectorize/X86/interleaved-accesses-hoist-load-across-store.ll
    M llvm/test/Transforms/LoopVectorize/X86/interleaved-accesses-sink-store-across-load.ll
    M llvm/test/Transforms/LoopVectorize/X86/invariant-load-gather.ll
    M llvm/test/Transforms/LoopVectorize/X86/invariant-store-vectorization.ll
    M llvm/test/Transforms/LoopVectorize/X86/iv-live-outs.ll
    M llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll
    M llvm/test/Transforms/LoopVectorize/X86/multi-exit-cost.ll
    M llvm/test/Transforms/LoopVectorize/X86/outer_loop_test1_no_explicit_vect_width.ll
    M llvm/test/Transforms/LoopVectorize/X86/pr109581-unused-blend.ll
    M llvm/test/Transforms/LoopVectorize/X86/pr131359-dead-for-splice.ll
    M llvm/test/Transforms/LoopVectorize/X86/pr48340.ll
    M llvm/test/Transforms/LoopVectorize/X86/pr51366-sunk-instruction-used-outside-of-loop.ll
    M llvm/test/Transforms/LoopVectorize/X86/pr55096-scalarize-add.ll
    M llvm/test/Transforms/LoopVectorize/X86/pr72969.ll
    M llvm/test/Transforms/LoopVectorize/X86/predicated-instruction-cost.ll
    M llvm/test/Transforms/LoopVectorize/X86/predicated-udiv.ll
    M llvm/test/Transforms/LoopVectorize/X86/replicate-recipe-with-only-first-lane-used.ll
    M llvm/test/Transforms/LoopVectorize/X86/replicating-load-store-costs-max-bandwidth.ll
    M llvm/test/Transforms/LoopVectorize/X86/replicating-load-store-costs.ll
    M llvm/test/Transforms/LoopVectorize/X86/small-size.ll
    M llvm/test/Transforms/LoopVectorize/X86/strided_load_cost.ll
    M llvm/test/Transforms/LoopVectorize/X86/transform-narrow-interleave-to-widen-memory-gaps.ll
    M llvm/test/Transforms/LoopVectorize/X86/vectorize-interleaved-accesses-gap.ll
    M llvm/test/Transforms/LoopVectorize/X86/vplan-native-inner-loop-only.ll
    M llvm/test/Transforms/LoopVectorize/X86/widened-value-used-as-scalar-and-first-lane.ll
    M llvm/test/Transforms/LoopVectorize/X86/x86-pr39099.ll
    M llvm/test/Transforms/LoopVectorize/X86/x86-predication.ll
    M llvm/test/Transforms/LoopVectorize/X86/x86_fp80-vector-store.ll
    M llvm/test/Transforms/LoopVectorize/assume.ll
    M llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
    M llvm/test/Transforms/LoopVectorize/constant-fold-commutative-and.ll
    M llvm/test/Transforms/LoopVectorize/constantfolder-infer-correct-gepty.ll
    M llvm/test/Transforms/LoopVectorize/constantfolder.ll
    M llvm/test/Transforms/LoopVectorize/cse-casts.ll
    M llvm/test/Transforms/LoopVectorize/cse-replicate-regions.ll
    M llvm/test/Transforms/LoopVectorize/dbg-outer-loop-vect.ll
    M llvm/test/Transforms/LoopVectorize/debugloc.ll
    M llvm/test/Transforms/LoopVectorize/dereferenceable-info-from-assumption-constant-size.ll
    M llvm/test/Transforms/LoopVectorize/dereferenceable-info-from-assumption-variable-size.ll
    M llvm/test/Transforms/LoopVectorize/dont-fold-tail-for-divisible-TC.ll
    M llvm/test/Transforms/LoopVectorize/epilog-vectorization-fixed-order-recurrences.ll
    M llvm/test/Transforms/LoopVectorize/epilog-vectorization-reductions.ll
    M llvm/test/Transforms/LoopVectorize/find-last-iv-sinkable-expr-tail-folding.ll
    M llvm/test/Transforms/LoopVectorize/find-last-iv-sinkable-load.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence-chains.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence-complex.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence-dead-instructions.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence-multiply-recurrences.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence-scalable-vf1.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence-tail-folding.ll
    M llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
    M llvm/test/Transforms/LoopVectorize/fmax-without-fast-math-flags-interleave.ll
    M llvm/test/Transforms/LoopVectorize/hoist-and-sink-mem-ops-with-invariant-pointers.ll
    M llvm/test/Transforms/LoopVectorize/hoist-predicated-loads-with-predicated-stores.ll
    M llvm/test/Transforms/LoopVectorize/hoist-predicated-loads.ll
    M llvm/test/Transforms/LoopVectorize/if-pred-non-void.ll
    M llvm/test/Transforms/LoopVectorize/if-pred-stores.ll
    M llvm/test/Transforms/LoopVectorize/induction-wrapflags.ll
    M llvm/test/Transforms/LoopVectorize/induction.ll
    M llvm/test/Transforms/LoopVectorize/instruction-only-used-outside-of-loop.ll
    M llvm/test/Transforms/LoopVectorize/interleaved-accesses-different-insert-position.ll
    M llvm/test/Transforms/LoopVectorize/iv-select-cmp-decreasing.ll
    M llvm/test/Transforms/LoopVectorize/iv-select-cmp-no-wrap.ll
    M llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll
    M llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll
    M llvm/test/Transforms/LoopVectorize/iv-select-cmp.ll
    M llvm/test/Transforms/LoopVectorize/iv_outside_user.ll
    M llvm/test/Transforms/LoopVectorize/lcssa-crashes.ll
    M llvm/test/Transforms/LoopVectorize/load-deref-pred-align.ll
    M llvm/test/Transforms/LoopVectorize/load-deref-pred-neg-off.ll
    M llvm/test/Transforms/LoopVectorize/load-deref-pred-poison-ub-ops-feeding-pointer.ll
    M llvm/test/Transforms/LoopVectorize/load-of-struct-deref-pred.ll
    M llvm/test/Transforms/LoopVectorize/loop-form.ll
    M llvm/test/Transforms/LoopVectorize/memdep-fold-tail.ll
    M llvm/test/Transforms/LoopVectorize/metadata.ll
    M llvm/test/Transforms/LoopVectorize/multi_early_exit.ll
    M llvm/test/Transforms/LoopVectorize/multiple-result-intrinsics.ll
    M llvm/test/Transforms/LoopVectorize/narrow-to-single-scalar.ll
    M llvm/test/Transforms/LoopVectorize/nested-outer-loop-vect.ll
    M llvm/test/Transforms/LoopVectorize/no-fold-tail-by-masking-iv-external-uses.ll
    M llvm/test/Transforms/LoopVectorize/no_outside_user.ll
    M llvm/test/Transforms/LoopVectorize/non-widenable-intrinsics-outer-loop.ll
    M llvm/test/Transforms/LoopVectorize/opaque-ptr.ll
    M llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-liveout.ll
    M llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization.ll
    M llvm/test/Transforms/LoopVectorize/optsize.ll
    M llvm/test/Transforms/LoopVectorize/outer-loop-inner-latch-successors.ll
    M llvm/test/Transforms/LoopVectorize/outer-loop-vec-phi-predecessor-order.ll
    M llvm/test/Transforms/LoopVectorize/outer-loop-wide-phis.ll
    M llvm/test/Transforms/LoopVectorize/outer_loop_hcfg_construction.ll
    M llvm/test/Transforms/LoopVectorize/outer_loop_scalable.ll
    M llvm/test/Transforms/LoopVectorize/outer_loop_test1.ll
    M llvm/test/Transforms/LoopVectorize/outer_loop_test2.ll
    M llvm/test/Transforms/LoopVectorize/pointer-induction-index-width-smaller-than-iv-width.ll
    M llvm/test/Transforms/LoopVectorize/pointer-induction.ll
    M llvm/test/Transforms/LoopVectorize/pr34681.ll
    M llvm/test/Transforms/LoopVectorize/pr36983-multiple-lcssa.ll
    M llvm/test/Transforms/LoopVectorize/pr37248.ll
    M llvm/test/Transforms/LoopVectorize/pr39417-optsize-scevchecks.ll
    M llvm/test/Transforms/LoopVectorize/pr43166-fold-tail-by-masking.ll
    M llvm/test/Transforms/LoopVectorize/pr44488-predication.ll
    M llvm/test/Transforms/LoopVectorize/pr45259.ll
    M llvm/test/Transforms/LoopVectorize/pr45679-fold-tail-by-masking.ll
    M llvm/test/Transforms/LoopVectorize/pr51614-fold-tail-by-masking.ll
    M llvm/test/Transforms/LoopVectorize/pr55167-fold-tail-live-out.ll
    M llvm/test/Transforms/LoopVectorize/pr87407-trunc-with-intrinsic.ll
    M llvm/test/Transforms/LoopVectorize/predicate-switch.ll
    M llvm/test/Transforms/LoopVectorize/predicated-inductions.ll
    M llvm/test/Transforms/LoopVectorize/predicatedinst-loop-invariant.ll
    M llvm/test/Transforms/LoopVectorize/preserve-dbg-loc-and-loop-metadata.ll
    M llvm/test/Transforms/LoopVectorize/reduction-inloop.ll
    M llvm/test/Transforms/LoopVectorize/reduction-minmax-users-and-predicated.ll
    M llvm/test/Transforms/LoopVectorize/reduction-small-size.ll
    M llvm/test/Transforms/LoopVectorize/reduction-with-invariant-store.ll
    M llvm/test/Transforms/LoopVectorize/reuse-lcssa-phi-scev-expansion.ll
    M llvm/test/Transforms/LoopVectorize/runtime-check-small-clamped-bounds.ll
    M llvm/test/Transforms/LoopVectorize/scalable-assume.ll
    M llvm/test/Transforms/LoopVectorize/scalarize-masked-call.ll
    M llvm/test/Transforms/LoopVectorize/scev-predicate-reasoning.ll
    M llvm/test/Transforms/LoopVectorize/select-cmp-multiuse.ll
    M llvm/test/Transforms/LoopVectorize/select-cmp-predicated.ll
    M llvm/test/Transforms/LoopVectorize/select-folds.ll
    M llvm/test/Transforms/LoopVectorize/single-early-exit-cond-poison.ll
    M llvm/test/Transforms/LoopVectorize/single-scalar-cast-minbw.ll
    M llvm/test/Transforms/LoopVectorize/single-value-blend-phis.ll
    M llvm/test/Transforms/LoopVectorize/single_early_exit_live_outs.ll
    M llvm/test/Transforms/LoopVectorize/skeleton-lcssa-crash.ll
    M llvm/test/Transforms/LoopVectorize/step-vector-i1-wrapping.ll
    M llvm/test/Transforms/LoopVectorize/struct-return-replicate.ll
    M llvm/test/Transforms/LoopVectorize/struct-return.ll
    M llvm/test/Transforms/LoopVectorize/tail-folding-alloca-in-loop.ll
    M llvm/test/Transforms/LoopVectorize/tail-folding-masked-mem-opts.ll
    M llvm/test/Transforms/LoopVectorize/tail-folding-optimize-vector-induction-width.ll
    M llvm/test/Transforms/LoopVectorize/tail-folding-replicate-region.ll
    M llvm/test/Transforms/LoopVectorize/tail-folding-switch.ll
    M llvm/test/Transforms/LoopVectorize/tail-folding-vectorization-factor-1.ll
    M llvm/test/Transforms/LoopVectorize/trip-count-expansion-may-introduce-ub.ll
    M llvm/test/Transforms/LoopVectorize/uniform-blend.ll
    M llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction1.ll
    M llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction1_and.ll
    M llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction1_div_urem.ll
    M llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction1_lshr.ll
    M llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction2.ll
    M llvm/test/Transforms/LoopVectorize/use-scalar-epilogue-if-tp-fails.ll
    M llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination-early-exit.ll
    M llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination.ll
    M llvm/test/Transforms/LoopVectorize/version-stride-with-integer-casts.ll
    M llvm/test/Transforms/LoopVectorize/vplan-native-path-inner-loop-with-runtime-checks.ll
    M llvm/test/Transforms/LoopVectorize/vplan-vectorize-inner-loop-reduction.ll
    M llvm/test/Transforms/LoopVectorize/vplan-widen-call-instruction.ll
    M llvm/test/Transforms/LoopVectorize/vplan-widen-select-instruction.ll
    M llvm/test/Transforms/LoopVectorize/widen-gep-all-indices-invariant.ll

  Log Message:
  -----------
  [LV] Change VPLane::getAsRuntimeExpr to use constant 64-bit indices (#193206)

The canonical form preferred by instcombine is to use 64-bit values for
the index when it is a constant. We should try to do the same where
possible in the loop vectoriser as this reduces churn in the compiler.

It also makes other work easier, such as removing extra unnecessary
passes on the RUN line in the test directory which I plan to do
afterwards.


  Commit: 34a8d497d29a33f0a2c55853cbd45f03f747a288
      https://github.com/llvm/llvm-project/commit/34a8d497d29a33f0a2c55853cbd45f03f747a288
  Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [Bazel] Fixes 8e56a89 (#193450)

This fixes 8e56a89c8f28c2d8b1a952b0ee321c4953594b6b.

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>


  Commit: a5f7f4962751110298ff1c5adeb858c5cefb41a7
      https://github.com/llvm/llvm-project/commit/a5f7f4962751110298ff1c5adeb858c5cefb41a7
  Author: Hocky Yudhiono <hocky.yudhiono at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/test/Dialect/Linalg/canonicalize.mlir

  Log Message:
  -----------
  [mlir][linalg] Fix crash when folding tensor.cast into unpack using static packed shape for inner tiles (#188000)

This change fixes #187975 and #188405, a crash in Linalg tensor-cast
folding for pack/unpack when tile sizes are dynamic or otherwise not
provably constant.

Previously, canonicalization could reach getNewMixedTileSizes and
unconditionally access `getConstantIntValue(tile).value()`. For dynamic
tile operands, that value can be absent, causing
`std::bad_optional_access/assert` aborts.

When folding `tensor.cast` into `linalg.unpack` (and the same helper is
used for linalg.pack), mixed inner tile sizes are updated from the
refined packed tensor type. Every static trailing packed dimension gets
a matching static tile attribute, replacing SSA tile values and
overwriting tile constants that disagreed with that type.

Dynamic packed dimensions still keep the original tile operands.

Assisted-by: CLion code completion


  Commit: b313bb714528f2165865346a6fe4c91500ac65ce
      https://github.com/llvm/llvm-project/commit/b313bb714528f2165865346a6fe4c91500ac65ce
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/AArch64CodeGenUtils.h
    M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
    M clang/test/CodeGen/AArch64/neon-fcvt-intrinsics.c
    M clang/test/CodeGen/AArch64/neon-intrinsics-constrained.c
    M clang/test/CodeGen/AArch64/neon-intrinsics.c
    M clang/test/CodeGen/AArch64/neon-misc.c
    M clang/test/CodeGen/AArch64/v8.2a-fp16-intrinsics-constrained.c
    M clang/test/CodeGen/AArch64/v8.2a-fp16-intrinsics.c
    M clang/test/CodeGen/AArch64/v8.2a-neon-intrinsics.c

  Log Message:
  -----------
  [Clang][AArch64] Lower NEON fcvtz{u/s} intrinsics into fpto{u/s}i.sat (#191365)

They already produce identical assembly.


  Commit: c1cff89bdcea641d0defabe0edfc9c1722daa4da
      https://github.com/llvm/llvm-project/commit/c1cff89bdcea641d0defabe0edfc9c1722daa4da
  Author: Hocky Yudhiono <hocky.yudhiono at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M flang/lib/Optimizer/Transforms/CUDA/CUFDeviceFuncTransform.cpp
    A mlir/include/mlir/Conversion/LLVMCommon/LowerFunctionDiscardablesToLLVM.h
    M mlir/include/mlir/Dialect/GPU/IR/GPUOps.td
    M mlir/lib/Conversion/FuncToLLVM/FuncToLLVM.cpp
    M mlir/lib/Conversion/GPUCommon/GPUOpsLowering.cpp
    M mlir/lib/Conversion/GPUCommon/GPUOpsLowering.h
    M mlir/lib/Conversion/LLVMCommon/CMakeLists.txt
    A mlir/lib/Conversion/LLVMCommon/LowerFunctionDiscardablesToLLVM.cpp
    M mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
    M mlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseGPUCodegen.cpp
    M mlir/lib/Dialect/XeGPU/Transforms/XeGPUSubgroupDistribute.cpp

  Log Message:
  -----------
  [mlir][GPU] Refactor GPUOps lowering (#188905)

This change promotes `gpu.func` / `gpu.launch` metadata that was
previously carried as discardable attributes into proper inherent ODS
fields (`kernel`, `workgroup_attributions`), renames the block-argument
helpers to avoid clashing with generated getters, and routes `func.func`
and `gpu.func` lowering through a shared helper that maps discardable
`llvm.*` attributes into `llvm.func` properties.

Downstream producers (Flang CUDA device func transform, kernel
outlining, sparse GPU codegen, XeGPU) set kernels via `setKernel(true)`
instead of manually attaching `gpu.kernel`.

Fixes #185174

Assisted-by: CLion code completion, GPT 5.3 - Codex


  Commit: b2f3532e9fb18cb51c6ea87a2de0595baef85f33
      https://github.com/llvm/llvm-project/commit/b2f3532e9fb18cb51c6ea87a2de0595baef85f33
  Author: Sohaib Iftikhar <sohaibiftikhar at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  Revert "[Bazel] Fixes 8e56a89" (#193459)

Reverts llvm/llvm-project#193450

Since original change was also reverted in
582958c4337f539e650096c0257a322315298e1a


  Commit: 6d097d240dd6076546cc5e9ff811c80c97beb6a4
      https://github.com/llvm/llvm-project/commit/6d097d240dd6076546cc5e9ff811c80c97beb6a4
  Author: Jonathan Thackray <jonathan.thackray at arm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/tools/c-index-test/CMakeLists.txt

  Log Message:
  -----------
  [clang] Suppress glibc C11 extension warning in `c-index-test` (#193335)

`c-index-test.c` is still compiled with `-std=gnu89` on purpose. That acts
as a useful guard rail: it helps keep the file compatible with older C
dialects instead of silently picking up newer C features because Clang
defaults to a newer language mode.

Ubuntu 26.04 LTS updates glibc's `string.h` so `strchr`, `strrchr` and
`strstr` are routed through `_Generic`-based macros. When Clang compiles
`c-index-test.c` with `-std=gnu89` and `-pedantic`, that now triggers
`-Wc11-extensions` warnings even though the source itself is not using
C11 features.

Keep the gnu89 check in place and suppress this warning only for Clang
when building c-index-test.

Fixes #193356


  Commit: 5fc5c112023095c4bb96272fe23e1a42f16c558d
      https://github.com/llvm/llvm-project/commit/5fc5c112023095c4bb96272fe23e1a42f16c558d
  Author: Alex Dutka <adutka at cerfacs.fr>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang-tools-extra/clang-tidy/readability/IdentifierLengthCheck.cpp
    M clang-tools-extra/clang-tidy/readability/IdentifierLengthCheck.h
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/docs/clang-tidy/checks/readability/identifier-length.rst
    A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-line-count-threshold.cpp

  Log Message:
  -----------
  [clang-tidy][readability-identifier-length] Add a line count threshold (without std::transform_reduce) (#193276)

This PR is a new attempt at implementing the feature described in
#185318 after the rollback of #185319.


  Commit: 17be5a7dee8d7d1ec98b6a1651f820a45e48e846
      https://github.com/llvm/llvm-project/commit/17be5a7dee8d7d1ec98b6a1651f820a45e48e846
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M lldb/tools/debugserver/source/RNBRemote.cpp
    M lldb/tools/debugserver/source/RNBRemote.h

  Log Message:
  -----------
  [debugserver][NFCI] Factor out logic handling breakpoint packets (#192912)

This creates a helper function that can be shared with the upcoming
MultiBreakpoint packet.

It is largely NFC with one logging exception: where we were previously
sending an "ILL_FORMED" error, we would identify the file/line in the
location where the error was emitted. This has been lost, however the
error messages are still unique enough that the line can be recovered
from the error message, and this is a principle we've been trying to
follow.

There was also a comment about gdb and refcounting of breakpoints. Such
comment was removed as it did not seem applicable to any line of code.


  Commit: 6fcc4d701da8ce7d8ba543ac9d755360f41f8321
      https://github.com/llvm/llvm-project/commit/6fcc4d701da8ce7d8ba543ac9d755360f41f8321
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaDecl.cpp
    M clang/test/C/C2y/n3410.c
    R clang/test/Sema/linkage-internal-extern.c
    R clang/test/Sema/linkage-internal-extern.cpp
    M clang/www/c_status.html

  Log Message:
  -----------
  Revert "[Clang] Diagnose UB and emit error when identifier has both internal and external linkage" (#193462)

Reverts llvm/llvm-project#192116

See comments at
https://github.com/llvm/llvm-project/pull/192116#pullrequestreview-4153002566


  Commit: 2a3639cd085fb22b9218537015d2372428b59d99
      https://github.com/llvm/llvm-project/commit/2a3639cd085fb22b9218537015d2372428b59d99
  Author: Xinlong Chen <xinlongchen at tencent.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [DAG] computeKnownFPClass - add ISD::EXTRACT_VECTOR_ELT handling (#190307)

This PR implements `ISD::EXTRACT_VECTOR_ELT` in
`SelectionDAG::computeKnownFPClass` to propagate floating-point class
information from vector sources to extracted scalar elements.

Additionally, added RISC-V test coverage for `ISD::EXTRACT_VECTOR_ELT`.

Fixes #189585


  Commit: 5659f86af5ab6b1c32d7923390ca926cf09dc381
      https://github.com/llvm/llvm-project/commit/5659f86af5ab6b1c32d7923390ca926cf09dc381
  Author: apple-fcloutier <fcloutier at apple.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/docs/UsersManual.rst
    M clang/include/clang/Basic/CodeGenOptions.def
    M clang/include/clang/Basic/CodeGenOptions.h
    M clang/include/clang/Options/Options.td
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGObjC.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    A clang/test/CodeGen/strict-bool.c
    A clang/test/CodeGenHLSL/builtins/BoolSwizzles.hlsl
    M clang/test/CodeGenHLSL/builtins/ScalarSwizzles.hlsl
    A clang/test/CodeGenHLSL/strict-bool.hlsl
    A clang/test/CodeGenObjC/strict-bool.m
    A clang/test/Driver/strict-bool.c

  Log Message:
  -----------
  [clang] Implement -fstrict-bool (#160790)

This PR implements the [-fstrict-bool
RFC](https://discourse.llvm.org/t/defining-what-happens-when-a-bool-isn-t-0-or-1/86778/).

``bool`` values are stored as i8 in memory, and it is undefined behavior
for a ``bool`` value to be any value other than 0 or 1. Clang exploits
this with range metadata: ``bool`` load instructions at any optimization
level above -O0 are assumed to only have their lowest bit set. This can
create memory safety problems when other bits are set, for instance
through ``memcpy``.

This change allows users to configure this behavior in three ways:

* ``-fstrict-bool`` represents the status quo; range metadata is added
at levels above -O0 and allows the compiler to assume in-memory ``bool``
values are always either 0 or 1.
* ``-fno-strict-bool[={truncate|nonzero}]`` disables range metadata on
``bool`` loaded values and offers two ways to interpret the loaded
values. ``truncate`` means the value is true is the least significant
bit is 1 and false otherwise; ``nonzero`` means the value is true if any
bit is 1 and false otherwise.

The default is ``-fstrict-bool`` to not change the current behavior of
Clang. The default behavior of ``-fno-strict-bool`` is ``truncate``.

Radar-ID: 139397212


  Commit: b965d52bbbcc6f42848544bb1f3ecb26a497ecfd
      https://github.com/llvm/llvm-project/commit/b965d52bbbcc6f42848544bb1f3ecb26a497ecfd
  Author: Yeongu Choe <yeongu.choe at icloud.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp

  Log Message:
  -----------
  [LLVM][GlobalISel] Remove unnecessary comment (#193333)

Remove unnecessary FIXME from
`InstructionSelect.cpp:selectMachineFunction()`.
Reference: [[LLVM][GlobalISel] Support Blocks Created During Instruction
Selection #192625](https://github.com/llvm/llvm-project/pull/192625)


  Commit: 567583cbfee569c159772aff3902b9ba3a3fa367
      https://github.com/llvm/llvm-project/commit/567583cbfee569c159772aff3902b9ba3a3fa367
  Author: Nikita Terentev <svet58585 at mail.ru>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/test/CodeGen/SystemZ/builtins-systemz-i128.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-vector-constrained.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-vector.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-vector2-constrained.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-vector2.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-vector3.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-vector4.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-vector5.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector-constrained.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector-error.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector2-constrained.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector2.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector3.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector4.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector5.c

  Log Message:
  -----------
  [Clang][SystemZ] Fix unwanted unsequenced volatile accesses in codegen tests (#190212)

This PR  fix(as I hope)  #186584 

For fix I write one-use program that found and renamed volatile var in
funcall. After use tests seems valid(but more verbose) and it's pass.

Link to script: https://pastebin.com/QR71We5b


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

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
    M llvm/test/CodeGen/AMDGPU/fptoi.i128.ll
    M llvm/test/CodeGen/AMDGPU/load-constant-i1.ll
    M llvm/test/CodeGen/AMDGPU/sra.ll

  Log Message:
  -----------
  [AMDGPU] performSraCombine - SRA(X,BW-1) - don't freeze HI operand for single (repeated) shift (#193468)

When splitting i64 SRA(X,BW-1) sign splat shifts, don't both freezing the HI upper i32 as only a single (repeated) shift will be generated

Noticed in a regression in #188206


  Commit: 8e1095ff01c1fc78548bc2325c4406d32300e0af
      https://github.com/llvm/llvm-project/commit/8e1095ff01c1fc78548bc2325c4406d32300e0af
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-add-sdot-i16-i32.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-add-sdot-i8-i16.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-chained.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-fdot-product.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-usabs.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce.ll

  Log Message:
  -----------
  [AArch64] Only prefer partial reductions if cost is lower. (#191369)

When the cost of a partial reduction equals the cost of a regular
reduction, favour the regular reduction, because the single (reduction)
register dependence makes a partial reduction more expensive, even when
the instructions used to implement the reduction inside the loop are no
different from when implementing this as a regular reduction.

This addresses
https://github.com/llvm/llvm-project/pull/181707#issuecomment-4175033093


  Commit: 9673f1f8ce8b709ba40fea25d5ea0f5c15950fdf
      https://github.com/llvm/llvm-project/commit/9673f1f8ce8b709ba40fea25d5ea0f5c15950fdf
  Author: Steven Perron <stevenperron at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    A llvm/test/CodeGen/SPIRV/pointers/getelementptr-byte-addressing-array.ll
    A llvm/test/CodeGen/SPIRV/pointers/struct-i8-dynamic-index.ll

  Log Message:
  -----------
  [SPIR-V] Handle [N x i8] byte addressing in SPIRVEmitIntrinsics (#192994)

LLVM started generating [N x i8] types on array indexing GEPs. Emit
intrinsiscs did not know what to do with it so it was generating a
cast to [N x i8] to perform the GEP. This does not work in logical
addressing.

The handle this, we expand the `i8` gep handling for logical addressing
mode to work for arbitrary size byte addressing.


<!-- branch-stack-start -->

<!-- branch-stack-end -->


  Commit: cd60aed5f8d711403453a06d8c0de448addfefb7
      https://github.com/llvm/llvm-project/commit/cd60aed5f8d711403453a06d8c0de448addfefb7
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    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/clause-validity01.f90
    M flang/test/Semantics/OpenMP/deprecation.f90

  Log Message:
  -----------
  [flang][OpenMP] Move directive deprecation check to semantic checks (#192796)

Replace IssueNonConformanceWarning in resolve-directives.cpp with
CheckDirectiveDeprecation in check-omp-structure.cpp.


  Commit: d137e6601f1cdfbe825cf21077b104f687272e8e
      https://github.com/llvm/llvm-project/commit/d137e6601f1cdfbe825cf21077b104f687272e8e
  Author: Hui <hui.xie1990 at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M libcxx/src/CMakeLists.txt
    M libcxx/src/atomic.cpp
    M libcxx/src/chrono.cpp
    R libcxx/src/include/apple_availability.h

  Log Message:
  -----------
  [libc++] Remove apple_availability.h (#192851)

The apple_availability.h header defines what versions of OS support ulock_wait.
All the versions of Apple OSes supported by libc++ already provide ulock_wait,
based on https://libcxx.llvm.org/#platform-and-compiler-support and 
https://developer.apple.com/support/xcode.

Fixes #186470


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

  Changed paths:
    A llvm/test/CodeGen/X86/combine-reductions.ll

  Log Message:
  -----------
  [X86] Add baseline tests for #144231 (#193484)


  Commit: 2039a51881bb1f0e26a439d123525f82dda62d2d
      https://github.com/llvm/llvm-project/commit/2039a51881bb1f0e26a439d123525f82dda62d2d
  Author: Hristo Hristov <hghristov.rmm at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/23.rst
    M libcxx/docs/Status/Cxx23Papers.csv
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/include/CMakeLists.txt
    A libcxx/include/__ranges/enumerate_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.enumerate/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
    M libcxx/test/std/library/description/conventions/customization.point.object/cpo.compile.pass.cpp
    M libcxx/test/std/ranges/iterator_robust_against_adl.compile.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/adaptor.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/base.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/begin.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/ctad.compile.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/ctor.base.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/ctor.default.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/enable_borrowed_range.compile.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/end.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/arithmetic.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/base.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/compare.three_way.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/ctor.convert.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/ctor.default.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/deref.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/equal.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/index.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/iter_move.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/subscript.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/types.compile.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel/base.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel/ctor.convert.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel/ctor.default.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel/equal.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel/minus.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/size.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/types.h
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/types_iterators.h
    M libcxx/test/support/test_range.h
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++][ranges] P2164R9: Implements `views::enumerate` (#73617)

This patch implements https://wg21.link/P2164R9 `std::views::enumerate`.
This PR was migrated from https://reviews.llvm.org/D157193.

Implemented papers and LWG issues:
- https://wg21.link/P2164R9: views::enumerate
- https://wg21.link/LWG3919: enumerate_view may invoke UB for sized common non-forward underlying ranges
- https://wg21.link/LWG3914: Inconsistent template-head of ranges::enumerate_view
- https://wg21.link/LWG3912: enumerate_view::iterator::operator- should be noexcept

Closes #105251
Closes #105315
Closes #105280
Closes #105279


  Commit: 64c9a758394ccbd4a49080970f4093d68599fe0c
      https://github.com/llvm/llvm-project/commit/64c9a758394ccbd4a49080970f4093d68599fe0c
  Author: Martin Storsjö <martin at martin.st>
  Date:   2026-04-22 (Wed, 22 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:
  -----------
  Revert "[LifetimeSafety] Add support for `new`/`delete`" (#193482)

Reverts llvm/llvm-project#192504

This caused crashes on some inputs, and broke compiling Clang for a 32
bit host.

Crashing input: https://godbolt.org/z/cfGEWh3Mx


  Commit: 62ae7e4786d9b5653435861fd5f6b89baaa084e0
      https://github.com/llvm/llvm-project/commit/62ae7e4786d9b5653435861fd5f6b89baaa084e0
  Author: Alexandre Ganea <aganea at havenstudios.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M compiler-rt/lib/asan/asan_allocator.cpp
    M compiler-rt/lib/asan/asan_win_static_runtime_thunk.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_memintrinsics.inc

  Log Message:
  -----------
  [ASan][Windows] Fix memmove/memcpy interception on x64 (#192060)

On Windows x64, memcpy and memmove used to share an implementation in
`vcruntime140.dll`, but newer versions of the CRT may provide them as
separate functions. Detect this at runtime and intercept accordingly,
rather than unconditionally assuming they alias each other.

Should fix https://github.com/llvm/llvm-project/issues/126077


  Commit: 58127f3ebffde72d942d6c772779519975cf006b
      https://github.com/llvm/llvm-project/commit/58127f3ebffde72d942d6c772779519975cf006b
  Author: Joseph Huber <huberjn at outlook.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M openmp/device/CMakeLists.txt

  Log Message:
  -----------
  [OpenMP] Fix OpenMP device subdir installation w/ multilibs (#193378)

Summary:
These did not use the correct subdir so if you did a mulitilib build of
the OpenMP runtime it would simply overwrite it.


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

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

  Log Message:
  -----------
  [VPlan] Permit licm-sinking recipes with no users (#189957)

The patch is a preparatory step for sinking invariant stores in licm. We
have extended cannotHoistOrSink to accept a flag indicating whether we
are sinking, in order to prevent sinking assumes: without this change,
there is a bad test update in tree. Unfortunately, as the only possible
instructions without users that will not be trivially dce'd, and on
which the vectorizer will not bail out are, are stores and assumes:
since we forbid assume-sinking, and store sinking will only be done in a
follow-up, we have no test changes to show.


  Commit: 4d18c1061dada94a53da5f93591236fcb77a014c
      https://github.com/llvm/llvm-project/commit/4d18c1061dada94a53da5f93591236fcb77a014c
  Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [VPlan] Prefer checking opcode over underlying value (NFC) (#193463)

When possible, we should check opcodes instead of underlying values.
This aligns with our long-term goal of getting rid of underlying values
altogether.


  Commit: 3bb7c2c6f7993ebec717e2483cb51213bffb45b8
      https://github.com/llvm/llvm-project/commit/3bb7c2c6f7993ebec717e2483cb51213bffb45b8
  Author: Sohaib Iftikhar <sohaibiftikhar at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [MLIR][BUILD] Fix for c1cff89b (#193489)

[MLIR][BUILD] Fix for c1cff89b


  Commit: b3319caafa4c197cd1040e857a764a991d6f69b9
      https://github.com/llvm/llvm-project/commit/b3319caafa4c197cd1040e857a764a991d6f69b9
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [LLVM]Codegen][X86] Add vector ConstantInt/FP support to CollectConstantBits. (#193249)


  Commit: 90fa375b8c18ff85535a5d5da3cc39098d17a845
      https://github.com/llvm/llvm-project/commit/90fa375b8c18ff85535a5d5da3cc39098d17a845
  Author: Evgenii Kudriashov <evgenii.kudriashov at intel.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    R llvm/test/CodeGen/X86/GlobalISel/fadd-scalar.ll
    R llvm/test/CodeGen/X86/GlobalISel/fdiv-scalar.ll
    R llvm/test/CodeGen/X86/GlobalISel/fmul-scalar.ll
    R llvm/test/CodeGen/X86/GlobalISel/fsub-scalar.ll
    A llvm/test/CodeGen/X86/isel-fadd-vector.ll
    A llvm/test/CodeGen/X86/isel-fadd.ll
    A llvm/test/CodeGen/X86/isel-fdiv-vector.ll
    A llvm/test/CodeGen/X86/isel-fdiv.ll
    A llvm/test/CodeGen/X86/isel-fmul-vector.ll
    A llvm/test/CodeGen/X86/isel-fmul.ll
    A llvm/test/CodeGen/X86/isel-fsub-vector.ll
    A llvm/test/CodeGen/X86/isel-fsub.ll

  Log Message:
  -----------
  [X86][NFC] Reorganize fadd, fsub, fmul and fdiv selection tests (#193012)

* Introduce basic tests for SDAG, FastISel and GlobalISel
* Remove GlobalISel tests as redundant


  Commit: 1b7de19f86ee8b78afa03b4ea6394cef91389029
      https://github.com/llvm/llvm-project/commit/1b7de19f86ee8b78afa03b4ea6394cef91389029
  Author: zackc6 <112835067+zackc6 at users.noreply.github.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
    M mlir/test/Dialect/Vector/canonicalize.mlir

  Log Message:
  -----------
  [mlir][vector] Prevent masked transfer read/write identity folding (#192966)

Avoid folding transfer_read + transfer_write to the base tensor when
either op is masked, since masked transfer semantics are not identity.
Add regression coverage for masked read-only, masked write-only, and
masked read+write cases.


  Commit: 39865a002e6b51655be4588c5cc5af133d8b8148
      https://github.com/llvm/llvm-project/commit/39865a002e6b51655be4588c5cc5af133d8b8148
  Author: David Spickett <david.spickett at arm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/builders/builder.py
    M lldb/packages/Python/lldbsuite/test/configuration.py
    M lldb/packages/Python/lldbsuite/test/dotest.py
    M lldb/packages/Python/lldbsuite/test/dotest_args.py
    M lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
    M lldb/packages/Python/lldbsuite/test/lldbtest.py
    M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
    R lldb/packages/Python/lldbsuite/test/make/WASI.rules
    M lldb/test/API/CMakeLists.txt
    M lldb/test/API/lit.cfg.py
    M lldb/test/API/lit.site.cfg.py.in

  Log Message:
  -----------
  Revert "[lldb][test] Add support for building Wasm test inferiors" (#193493)

Reverts llvm/llvm-project#192872

Buildbot failures reported.


  Commit: 7f703cabf728f3f9942c5e403900c991cde8876c
      https://github.com/llvm/llvm-project/commit/7f703cabf728f3f9942c5e403900c991cde8876c
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M mlir/lib/AsmParser/Parser.cpp

  Log Message:
  -----------
  [MLIR][AsmParser] Fix non-deterministic SSA value completion order under LLVM_REVERSE_ITERATION (#192150)

codeCompleteSSAUse() iterated IsolatedSSANameScope::values, a StringMap,
whose hash-based iteration order reverses under LLVM_REVERSE_ITERATION.
This caused the SSA value completion items in the LSP server to appear
in a non-deterministic order, breaking the CHECK-NEXT assertions in
mlir-lsp-server/completion.test.

Sort SSA value names alphabetically before emitting completion items.

Assisted-by: Claude Code

Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>


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

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.h

  Log Message:
  -----------
  [NFC][SPIR-V] Consolidate OpVariable insertion point logic into getOpVariableMBBIt (#193433)

Merge getFirstValidInstructionInsertPoint into getOpVariableMBBIt and
remove duplicated utility that computed the same insertion point


  Commit: 2e0112ff197d94c4a732fbae61fab9db514c36b3
      https://github.com/llvm/llvm-project/commit/2e0112ff197d94c4a732fbae61fab9db514c36b3
  Author: Jacques Pienaar <jacques+gh at japienaar.info>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M mlir/utils/vscode/package.json
    M mlir/utils/vscode/src/mlirContext.ts

  Log Message:
  -----------
  Enable disable LSPs in extension (#191957)

Fixes llvm/vscode-mlir#9


  Commit: c6e90081a7bc7e2bcfc9a50d92268d2ecd30322c
      https://github.com/llvm/llvm-project/commit/c6e90081a7bc7e2bcfc9a50d92268d2ecd30322c
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
    M llvm/test/Transforms/InstCombine/phi.ll

  Log Message:
  -----------
  [InstCombine] Remove support for volatile in phi of load transform (#193154)

The volatile support does not have test coverage, and dates back to when
this transform was originally introduced 20 years ago, so it does not
appear that volatile support was specifically added -- it was just
naively implemented to start with, and then received bug fixes.

The current implementation is still buggy, e.g. it allows sinking
volatile past inaccessiblemem calls, which is invalid (as those may
contain volatile accesses on allocas).

After https://github.com/llvm/llvm-project/pull/192992, there would be
another constraint that all the instructions after the volatile load are
speculatable.

This wouldn't be hard to fix, but I'd rather remove volatile support
here entirely.


  Commit: 124f14cbf7d335fa7056b1dd5c93b7c3af1b3759
      https://github.com/llvm/llvm-project/commit/124f14cbf7d335fa7056b1dd5c93b7c3af1b3759
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Passes/PassRegistry.def

  Log Message:
  -----------
  [Passes] Remove Os/Oz from pass option listings (#193491)

These were dropped in https://github.com/llvm/llvm-project/pull/191363.


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

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

  Log Message:
  -----------
  [clang] isConvertingBoolWithCmp0 - fix MSVC "not all control paths return a value" warning. (#193495)


  Commit: 94278b30b95777f8f688657022bfd634fe02c6bf
      https://github.com/llvm/llvm-project/commit/94278b30b95777f8f688657022bfd634fe02c6bf
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [flang] Move ResolveAccParts and ResolveOmpParts into better location… (#193497)

…, NFC

These two functions, which are the entry points into the framework-
specific symbol resolution, somehow ended up in between OpenMP
functions. Move them to immediately after the visitor classes that they
rely on. Hopefully that will prevent them from drifting into obscure
places again.


  Commit: f66b3baed2546caa93c1f419939542a45e7c40d8
      https://github.com/llvm/llvm-project/commit/f66b3baed2546caa93c1f419939542a45e7c40d8
  Author: Kiriti Ponduri <123718855+udaykiriti at users.noreply.github.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M libc/src/__support/math/cosf.h

  Log Message:
  -----------
  [libc][math] small typo (#193349)

small typo in "cosf.h" in comment . not a significant thing.

Signed-off-by: udaykiriti <udaykiriti624 at gmail.com>


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

  Changed paths:
    M lldb/source/Commands/CommandObjectMemoryTag.cpp

  Log Message:
  -----------
  [lldb] Add full stop to "memory tag" help (#193505)

To match the other sub commands' help text.


  Commit: f5e80c985804783a06f066c84985c6eaab0957aa
      https://github.com/llvm/llvm-project/commit/f5e80c985804783a06f066c84985c6eaab0957aa
  Author: Jack Styles <jack.styles at arm.com>
  Date:   2026-04-22 (Wed, 22 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/simd-directive.f90
    A flang/test/Parser/simd-directive.f90
    A flang/test/Semantics/simd-directive01.f90

  Log Message:
  -----------
  [Flang] Add SIMD Compiler Directive (#192969)

Similar to #192674, this adds support for the SIMD Compiler Directive,
previously supported by legacy Fortran frontends such as classic-flang.
This operates in the same way as `VECTORALWAYS`, marking a DO loop to be
vectorised by the LLVM Backend.

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


  Commit: eda6c60a051fe877676bdebb27282461410d5027
      https://github.com/llvm/llvm-project/commit/eda6c60a051fe877676bdebb27282461410d5027
  Author: Łukasz Plewa <lukasz.plewa at intel.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M offload/plugins-nextgen/level_zero/include/L0Context.h
    M offload/plugins-nextgen/level_zero/include/L0Kernel.h
    M offload/plugins-nextgen/level_zero/src/L0Context.cpp
    M offload/plugins-nextgen/level_zero/src/L0Kernel.cpp

  Log Message:
  -----------
  [offload] Get kernel argument sizes from Level Zero (#192487)

Retrieve kernel argument sizes directly from Level Zero API as a
temporary workaround. This approach assumes no padding or alignment
between arguments. This enables immediate functionality while a more
permanent solution requiring offload API changes is being discussed.


  Commit: c8b526f76b63e93e2aeccaf0a7acad8aec7addb5
      https://github.com/llvm/llvm-project/commit/c8b526f76b63e93e2aeccaf0a7acad8aec7addb5
  Author: Hemant Kulkarni <hkulkar at amazon.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M bolt/lib/Target/AArch64/AArch64MCSymbolizer.cpp
    A bolt/test/AArch64/tls-desc-le-relaxation-alternative.test

  Log Message:
  -----------
  [bolt] AArch64: Fix TLSDESC to LE relaxation by mold (#190370)

mold linker creates relaxation stub from TLSDESC to LE, (lld makes it
IE) using sequence as NOP+NOP+MOVZ+MOVK. This in itself is not an issue,
when --emit-relocs is added the relocs R_AARCH64_TLSDESC_ADD_LO12 and
R_AARCH64_TLSDESC_CALL are associated with useful MOVW instructions.
However bolt does not check for R_AARCH64_TLSDESC_ADD_LO12 in
adjustRelocation() when disassembling the file. This later triggers a
bug when reloc is patched as movk is patched with S_LO12 fixup kind
which is invalid.

Refer to bug: https://github.com/llvm/llvm-project/issues/190366 for
details.


  Commit: 20a7d26297c2cfef48909064069b98701b77fc84
      https://github.com/llvm/llvm-project/commit/20a7d26297c2cfef48909064069b98701b77fc84
  Author: Nick Sarnie <nick.sarnie at intel.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVLegalizeZeroSizeArrays.cpp
    A llvm/test/CodeGen/SPIRV/legalize-zero-size-arrays-appending.ll

  Log Message:
  -----------
  [SPIRV] Fix legalization of zero-sized intrinsic globals (#192730)

Some LLVM global intrinsics like `llvm.global_ctors` may become
zero-sized arrays if all constructors are inlined/optimized out.

These variables use appending linkage, which is only valid on arrays,
however as we are lowing to a pointer, this causes invalid IR if we
maintain the same linkage.

Use `ExternalWeak` linkage, the only other mergable linking type allowed
for intrinsic global variables with definitions. We also need to not
specify an initializer to not produce an invalid module.

As these variables do not represent user visible code, and all entries
were optimized out anyway, the new linkage should be fine.

---------

Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>


  Commit: 475639a10ecd0bda2700353ac912f84c54e9662f
      https://github.com/llvm/llvm-project/commit/475639a10ecd0bda2700353ac912f84c54e9662f
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/test/lit.cfg.py

  Log Message:
  -----------
  Add SPIRV to excluded profcheck targets (#193509)


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

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

  Log Message:
  -----------
  [X86] Add TODO for nsw+nuw handling to (add (add X, Y), X) --> add(add(X, X), Y) (#193503)

Noticed on #162242


  Commit: ba767d0bbbde4107700ff66ecfd97eb75d85a35d
      https://github.com/llvm/llvm-project/commit/ba767d0bbbde4107700ff66ecfd97eb75d85a35d
  Author: Jack Styles <jack.styles at arm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [MachineCopyPropagation][NFC] Refactor EliminateSpillageCopies (#192609)

This patch builds on the original implementation to address areas that
may impact compile time regression if enabled. The aim of the patch is
to streamline and improve the implementation for better compile time
impact. A summary of the changes is as follows:
- Cost modelling that does an initial scan of the block, any blocks with
less than 6 copies are immediately skipped.
- RegMask scan in `findLastSeenDefInCopy` removed. This now only checks
the recorded copies to ensure that RegMasks are clobbered when they are
seen if they clobber a Reg
- Streamlining of `IsSpillReloadPair` and `IsChainedCopy` to reduce the
need for a second call to isCopyInstr to get the DestSourcePair, these
are now returned from the lamdba function
- Use of TRI API to get the CommonRegClass

Assisted-by: Claude Sonnet 4.6 (Co-Pilot)


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

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/AMDGPU/load-constant-i16.ll
    M llvm/test/CodeGen/AMDGPU/load-constant-i8.ll
    M llvm/test/CodeGen/AMDGPU/load-global-i16.ll
    M llvm/test/CodeGen/AMDGPU/load-global-i8.ll
    M llvm/test/CodeGen/AMDGPU/load-local-i16.ll
    M llvm/test/CodeGen/RISCV/abds.ll
    M llvm/test/CodeGen/RISCV/abdu-neg.ll
    M llvm/test/CodeGen/RISCV/bitint-fp-conv-200.ll
    M llvm/test/CodeGen/RISCV/iabs.ll
    M llvm/test/CodeGen/RISCV/idiv_large.ll
    M llvm/test/CodeGen/RISCV/rvv/setcc-fp-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-splice.ll
    M llvm/test/CodeGen/X86/bmi-select-distrib.ll
    M llvm/test/CodeGen/X86/insertelement-var-index.ll
    M llvm/test/CodeGen/X86/midpoint-int-vec-256.ll
    M llvm/test/CodeGen/X86/midpoint-int-vec-512.ll
    M llvm/test/CodeGen/X86/vector-fshl-256.ll
    M llvm/test/CodeGen/X86/vector-fshl-512.ll
    M llvm/test/CodeGen/X86/vector-fshl-rot-256.ll
    M llvm/test/CodeGen/X86/vector-fshl-rot-512.ll
    M llvm/test/CodeGen/X86/vector-fshr-128.ll
    M llvm/test/CodeGen/X86/vector-fshr-256.ll
    M llvm/test/CodeGen/X86/vector-fshr-rot-128.ll
    M llvm/test/CodeGen/X86/vector-fshr-rot-256.ll
    M llvm/test/CodeGen/X86/vector-rotate-256.ll
    M llvm/test/CodeGen/X86/vector-rotate-512.ll
    M llvm/test/CodeGen/X86/vector-shift-lut.ll
    M llvm/test/CodeGen/X86/vector-shift-shl-256.ll
    M llvm/test/CodeGen/X86/vector-shift-shl-512.ll

  Log Message:
  -----------
  [DAG] visitFREEZE - revisit frozen node after merging with unfrozen uses (#188206)

After merging other uses of a N to all use FREEZE(N), make sure we
revisit FREEZE(N) to attempt to push the FREEZE through the (now
hasOneUse()) operand.

The only remaining annoyance I can find is the freeze nodes interfering
with amdgpu scalar/vector instructions - mainly because we end up with
more freeze(vectorload) patterns and extract_vector_elt nodes can't peek
through anymore - this is an ongoing general problem that nobody has
found a good answer to yet.


  Commit: 1364f522a773037627d6207c08932095fed814ff
      https://github.com/llvm/llvm-project/commit/1364f522a773037627d6207c08932095fed814ff
  Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/test/Transforms/LoopInterchange/pr45743-move-from-inner-preheader.ll

  Log Message:
  -----------
  [LoopInterchange] Fix out-of-bounds accesses in tests (NFC) (#193272)

These tests trigger out-of-bounds accesses. Fix them by decreasing the
backedge-taken counts of the loops, and add pseudo code.


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

  Changed paths:
    M clang/lib/AST/ByteCode/Pointer.h

  Log Message:
  -----------
  [clang][bytecode] print array root state in Pointer::print() (#193494)

And check isZero() so later output checks don't run into null pointers
as much.


  Commit: 8f51fe418509ac88e14c531183d9efa81b7e8618
      https://github.com/llvm/llvm-project/commit/8f51fe418509ac88e14c531183d9efa81b7e8618
  Author: Folkert de Vries <folkert at folkertdev.nl>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    A llvm/test/CodeGen/Thumb2/mve-no-fp.ll

  Log Message:
  -----------
  arm: fix float to integer conversion with `+mve` (#193319)

Fix an instruction selection failure when using the `+mve` (and an implied `-mve.fp`)
target feature. From what I understand, e.g. based on
https://reviews.llvm.org/D60694, this combination of target features
enables float registers and loads/moves, but no real FP operations.
Hence

https://godbolt.org/z/xeTcbqMqx

```llvm
define i32 @foo(float %x) {
  %i = call i32 @llvm.fptosi.sat.i32.f32(float %x)
  ret i32 %i
}
```

compiled with `llc -mtriple=thumbv8m.main-none-eabi
-mattr=+v8.1m.main,-mve.fp,+mve -O2` hit

```
LLVM ERROR: Cannot select: t5: i32 = fp_to_sint_sat t3, ValueType:ch:i32
  t3: f32 = bitcast t2
    t2: i32,ch = CopyFromReg t0, Register:i32 %0
In function: foo
```

This was reported as https://github.com/rust-lang/rust/issues/155557


  Commit: 59bf8960f28dc27877c0d1b1491a2827a893ef22
      https://github.com/llvm/llvm-project/commit/59bf8960f28dc27877c0d1b1491a2827a893ef22
  Author: David Spickett <david.spickett at arm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    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/Commands/CommandObjectMultiword.cpp
    M lldb/source/Commands/CommandObjectPlatform.cpp
    M lldb/source/Commands/CommandObjectProcess.cpp
    M lldb/source/Commands/CommandObjectRegister.cpp

  Log Message:
  -----------
  [lldb] Remove trailing newlines from AppendErrorWithFormat calls (part 2) (#193168)

Follow up to #192965.

This call adds a newline if there isn't one. Changing these will
eventually let us always add a newline, which is in line with
the other methods on CommandReturnObject.

This is a small part of calls found with:
* VSCode search for
`(\.AppendErrorWithFormat\(([\s\r\n]+)?"(?:(?:\\.|[^"\\])*))\\n"` and
replace with `$1"`.
* Asserting that the last character of the format string is not a
newline.
* Manual inspection.


  Commit: e1ab08a5bd268c67c119347d89a02fede91c4d0a
      https://github.com/llvm/llvm-project/commit/e1ab08a5bd268c67c119347d89a02fede91c4d0a
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/lib/CodeGen/ExpandReductions.cpp
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/test/CodeGen/RISCV/rvv/vreductions-fp-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vreductions-int.ll

  Log Message:
  -----------
  [RISCV] Functional llvm.vector.reduce.mul on scalable types (#193094)

RVV does not have an instruction for performing a horizontal multiply
reduction (either integer or floating point). However, a user of clang
can explicitly write at least the integer form via the
__builtin_reduce_mul construct, and currently we just crash when
compiling this.

This change converts the crash into functionally correct scalar loop to
process each element one by one at runtime. This will be slow, but at
least correct.

Note that to my knowledge we can't generate the floating point one
directly from C, but I decided to handle both for completeness while I
was here.

Written by Claude Code with guidance and review by me.


  Commit: 54fcd86203130ffea30e868b5bf24633391c5406
      https://github.com/llvm/llvm-project/commit/54fcd86203130ffea30e868b5bf24633391c5406
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M libc/hdr/types/CMakeLists.txt
    A libc/hdr/types/struct_sockaddr_storage.h
    M libc/include/CMakeLists.txt
    M libc/include/llvm-libc-types/CMakeLists.txt
    M libc/include/llvm-libc-types/struct_sockaddr.h
    A libc/include/llvm-libc-types/struct_sockaddr_storage.h
    M libc/include/llvm-libc-types/struct_sockaddr_un.h
    M libc/include/sys/socket.yaml
    M libc/test/src/sys/socket/linux/CMakeLists.txt
    A libc/test/src/sys/socket/linux/sockaddr_storage_helper.cpp
    A libc/test/src/sys/socket/linux/sockaddr_storage_test.cpp

  Log Message:
  -----------
  [libc] Add struct sockaddr_storage (on linux) (#192978)

This deceptively simple patch has one catch. The POSIX standard states:

"""
When a pointer to a sockaddr_storage structure is converted to a pointer
to a sockaddr structure, or vice versa, the ss_family member of the
sockaddr_storage structure shall map onto the sa_family member of the
sockaddr structure. When a pointer to a sockaddr_storage structure is
converted to a pointer to a protocol-specific address structure, or vice
versa, the ss_family member shall map onto a member of that structure
that is of type sa_family_t that identifies the protocol's address
family. When a pointer to a sockaddr structure is converted to a pointer
to a protocol-specific address structure, or vice versa, the sa_family
member shall map onto a member of that structure that is of type
sa_family_t that identifies the protocol's address family. Additionally,
the structures shall be defined in such a way that the compiler treats
an access to the stored value of the sa_family_t member of any of these
structures, via an lvalue expression whose type involves any other one
of these structures, as permissible, despite the more restrictive
expression rules on stored value access as stated in the ISO C standard.

...

Note that defining the sockaddr_storage and sockaddr structures using
only mechanisms defined in early editions of the ISO C standard may
produce aliasing diagnostics when applications use casting between
pointers to the various socket address structures. Because of the large
body of existing code utilizing sockets in a way that could trigger
undefined behavior due to strict aliasing rules, this standard mandates
that these structures can alias each other for accessing the sa_family_t
member of the structures (or other members for protocol-specific
structure references), so as to preserve well-defined semantics. An
implementation's header files may need to use anonymous unions, or even
an implementation-specific extension, to comply with the requirements of
this standard.
"""

To satisfy this requirement I add the may_alias attribute on all the
sockaddr structures.


  Commit: d154ccd8d4a19ab30f705a4a40fbaa4b86d2a331
      https://github.com/llvm/llvm-project/commit/d154ccd8d4a19ab30f705a4a40fbaa4b86d2a331
  Author: Matthew Devereau <matthew.devereau at arm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/fixed-vector-deinterleave.ll

  Log Message:
  -----------
  [AArch64][ISel] Add lowering for fixed-width deinterleave3 (#192972)


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

  Changed paths:
    M lldb/source/Target/AssertFrameRecognizer.cpp

  Log Message:
  -----------
  [lldb] Fix assert frame recognizer for non-macOS Apple platforms (#193435)


  Commit: 20005a09f950bedd7734c4eef99f24dc8071a944
      https://github.com/llvm/llvm-project/commit/20005a09f950bedd7734c4eef99f24dc8071a944
  Author: Kelvin Li <kli at ca.ibm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M flang/test/Lower/constant-logical-transfer.f90

  Log Message:
  -----------
  [flang] Update LIT test for big-endian platform (NFC) (#193309)

Specify the kind type parameter to ensure the 64-bit value is correctly represented
in the big endian environment.


  Commit: b13867d5146b8b9c9cc5035d81a1d5246b7b7cd1
      https://github.com/llvm/llvm-project/commit/b13867d5146b8b9c9cc5035d81a1d5246b7b7cd1
  Author: jinge90 <ge.jin at intel.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M compiler-rt/cmake/Modules/CompilerRTUtils.cmake
    M compiler-rt/cmake/builtin-config-ix.cmake
    A compiler-rt/cmake/caches/SPIRV64.cmake
    M compiler-rt/lib/builtins/CMakeLists.txt
    M compiler-rt/lib/builtins/int_lib.h
    M compiler-rt/lib/builtins/int_types.h

  Log Message:
  -----------
  [compiler-rt] Initial support for compiler-rt builtins on SPIRV64 target (#192897)


  Commit: 93419bf99ede00317b8aa02064d71dc74280bf7a
      https://github.com/llvm/llvm-project/commit/93419bf99ede00317b8aa02064d71dc74280bf7a
  Author: Matthew Devereau <matthew.devereau at arm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

  Log Message:
  -----------
  [AArch64][ISel] Use TripleOpVT in LowerVECTOR_INTERLEAVE (#193506)


  Commit: 9d704b490d5aa1fc167a31d19ca1d39f2aabd265
      https://github.com/llvm/llvm-project/commit/9d704b490d5aa1fc167a31d19ca1d39f2aabd265
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [flang][OpenMP] Remove unused member, NFC (#193512)

After e8e8b6a3d8616b5d6572f9e16442cc97ef3867bd, the member
`privateDataSharingAttributeObjects_` of OmpAttributeVisitor is no
longer used. Remove it and the associated accessor functions.


  Commit: 6f115abef8c9c4b3fdec9bbc0c54b578c31b1e5b
      https://github.com/llvm/llvm-project/commit/6f115abef8c9c4b3fdec9bbc0c54b578c31b1e5b
  Author: Dave Lee <davelee.com at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [lldb] Remove unused ExpressionPathOptions: NoFragileObjcIvar, NoSyntheticArrayRange (NFC) (#193336)

As of #193120, `eExpressionPathOptionsNoFragileObjcIvar` and
`eExpressionPathOptionsNoSyntheticArrayRange` are no longer used
anywhere, and aren't expected to be used again.


  Commit: 36331abd8cbb630fc174e182f1580e7cdefd2616
      https://github.com/llvm/llvm-project/commit/36331abd8cbb630fc174e182f1580e7cdefd2616
  Author: Oleksandr "Alex" Zinenko <git at ozinenko.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/Transform/IR/Utils.h
    M mlir/lib/Dialect/Transform/IR/TransformDialect.cpp
    M mlir/lib/Dialect/Transform/IR/Utils.cpp
    M mlir/test/Dialect/Transform/normal-forms.mlir

  Log Message:
  -----------
  [mlir] targeted verification for transform "inlining" (#192956)

When merging named transform sequences into their include locations,
rely on the InlinerDialectInterface implementation newly added to the
transform dialect instead of the full verification after the fact. This
enables us to only verify aspects of the IR that may change in a way
compatible with the rest of the infra, reducing the overall cost of the
process.

Use `LogicalResult` as appropriate instead of returning dummy
`InFlightDiagnostic` while I'm here.

Assisted-by: Claude Opus 4.7 / Cursor


  Commit: 8fc58340444bda3d76b630d625e4ea797b56ba18
      https://github.com/llvm/llvm-project/commit/8fc58340444bda3d76b630d625e4ea797b56ba18
  Author: Alex MacLean <amaclean at nvidia.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp

  Log Message:
  -----------
  [GIsel] Use changeElementType for cond types in LegalizerHelper (#193049)

Otherwise this will assert when using extended LLT


  Commit: 58f3d78102114f363f1b3b359a2730442b2fae2b
      https://github.com/llvm/llvm-project/commit/58f3d78102114f363f1b3b359a2730442b2fae2b
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvp-ext-rv32.ll

  Log Message:
  -----------
  [RISCV][P-ext] Custom legalize vector (setne X, allzeros) and (setgt X, allones) (#193360)

(setne X, allzeros) can be lowered to (setult X0, X).

(setgt X, allones) can be lowered to (not (setlt X, 0)). The not
can often be folded into and, orn, xnor, or merge.


  Commit: 3950da0bc76478d49cbb97b8b763157632c405aa
      https://github.com/llvm/llvm-project/commit/3950da0bc76478d49cbb97b8b763157632c405aa
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
    M llvm/lib/Target/RISCV/RISCVVSETVLIInfoAnalysis.h

  Log Message:
  -----------
  [RISCV] Add isKnown method to VSETVLIInfo. NFC (#193406)

This is equivalent to isValid() && !isUnknown() which is a common thing
we check for.


  Commit: 9a63d044471d7ed3f23ed7c5653ac3adf2a215f9
      https://github.com/llvm/llvm-project/commit/9a63d044471d7ed3f23ed7c5653ac3adf2a215f9
  Author: Sergei Barannikov <barannikov88 at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M lldb/source/Commands/CommandObjectProcess.cpp
    M lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp
    M lldb/source/Plugins/Platform/Windows/PlatformWindows.cpp
    M lldb/source/Target/Process.cpp

  Log Message:
  -----------
  [lldb] Fix inappropriate uses of LLDB_INVALID_IMAGE_TOKEN (#193365)

It may not be obvious from its name, but `Process::m_image_tokens`
contains loaded image addresses, not "tokens". The tokens are actually
indices into that array.


  Commit: 42ef1321e6cbdc6df7f0bf00206f516e6bb2352d
      https://github.com/llvm/llvm-project/commit/42ef1321e6cbdc6df7f0bf00206f516e6bb2352d
  Author: Sohaib Iftikhar <sohaibiftikhar at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [MLIR][BUILD]: Fix for 36331abd8cbb630fc174e182f1580e7cdefd2616 (#193523)


  Commit: fb6f1bde00c4ed3650bd1152607718a95ca0ce6d
      https://github.com/llvm/llvm-project/commit/fb6f1bde00c4ed3650bd1152607718a95ca0ce6d
  Author: Marco Elver <elver at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M libcxxabi/src/demangle/ItaniumDemangle.h
    M libcxxabi/test/DemangleTestCases.inc
    M llvm/include/llvm/Demangle/ItaniumDemangle.h
    M llvm/include/llvm/Testing/Demangle/DemangleTestCases.inc
    M llvm/lib/Demangle/Demangle.cpp
    A llvm/test/tools/llvm-cxxfilt/alloc-token.test

  Log Message:
  -----------
  [ItaniumDemangle] Strip __alloc_token_ to transparently demangle allocation functions (#191048)

Update the Itanium demangler to recognize and strip `__alloc_token_`
prefixes introduced by AllocToken instrumentation [1]. This ensures that
instrumented allocation functions (e.g., `__alloc_token__Znwm`) demangle
back to their original source-level names (e.g., `operator new(unsigned
long)`) with a suffix `(.alloc_token)` indicating their non-standard
origin.

Since AllocToken is intended to be transparent to users who continue to
use `operator new` as before, the demangled name should reflect this
reality instead of confusing users with internal instrumentation names
in stack traces or symbolization output.

Synchronize changes across llvm and libcxxabi copies.

[1] https://clang.llvm.org/docs/AllocToken.html

Original RFC: https://discourse.llvm.org/t/rfc-a-framework-for-allocator-partitioning-hints/87434


  Commit: 2072474a24c49a2d52ffd8befbcb6e4837822b08
      https://github.com/llvm/llvm-project/commit/2072474a24c49a2d52ffd8befbcb6e4837822b08
  Author: Chi-Chun, Chen <chichun.chen at hpe.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M mlir/test/Target/LLVMIR/openmp-llvm.mlir

  Log Message:
  -----------
  [OpenMP][OMPIRBuilder] Support complex types in atomic update/capture (#191490)

Route struct-typed values through the libcall path in
`emitAtomicUpdate`.

Previously, the libcall path was gated on `RMWOp == BAD_BINOP`, so
atomic capture swap patterns (`v = x; x = expr`) for complex values
lowered as structs fell through to the cmpxchg path. That path called
`getScalarSizeInBits()` on a struct type, produced 0, and triggered an
assertion in `IntegerType::get()`.

Remove the `BAD_BINOP` restriction so struct types always use the
libcall path. This is safe because the libcall path does not use `RMWOp`
and already handles arbitrary type sizes correctly.

Also fix `LoadSize` in the libcall path to use `XElemTy` rather than the
pointer type, which previously gave the wrong size for larger complex
types such as `complex(8)`.

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

Assisted with copilot and GPT-5.4


  Commit: bb092120f1f031824def23311d8ceb0f39941f3b
      https://github.com/llvm/llvm-project/commit/bb092120f1f031824def23311d8ceb0f39941f3b
  Author: Maxime Schmitt <Syllo at users.noreply.github.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/lib/Driver/ToolChains/Hexagon.h
    M clang/test/Driver/hexagon-toolchain-elf.c

  Log Message:
  -----------
  [Hexagon] Non-pie default on hexagon-unknown-elf (#193184)

The Hexagon driver on non-linux OS should not default to position
independent executable (pie).
For standalone QuRT applications (non FastRPC), default to static
executables.


  Commit: cdc0a9073733c548f6d9ab0a00ed9314eab2d300
      https://github.com/llvm/llvm-project/commit/cdc0a9073733c548f6d9ab0a00ed9314eab2d300
  Author: Alexandre Ganea <aganea at havenstudios.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M compiler-rt/lib/asan/asan_allocator.cpp
    M compiler-rt/lib/asan/asan_win_static_runtime_thunk.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_memintrinsics.inc

  Log Message:
  -----------
  Revert "[ASan][Windows] Fix memmove/memcpy interception on x64" (#193524)

Reverts llvm/llvm-project#192060 since it breaks a bot:
https://lab.llvm.org/buildbot/#/builders/107/builds/19020


  Commit: 8c82aa0a5070ebd367322ba02b5e70c01e57d7c1
      https://github.com/llvm/llvm-project/commit/8c82aa0a5070ebd367322ba02b5e70c01e57d7c1
  Author: Dave Lee <davelee.com at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp
    A lldb/test/API/lang/objc/module-import-log/Makefile
    A lldb/test/API/lang/objc/module-import-log/TestClangModuleImportLog.py
    A lldb/test/API/lang/objc/module-import-log/main.m

  Log Message:
  -----------
  [lldb] Log clang module loads (#193389)


  Commit: 5ea5b9eb8eec9c5ba7f053cb74327a3efd6b762d
      https://github.com/llvm/llvm-project/commit/5ea5b9eb8eec9c5ba7f053cb74327a3efd6b762d
  Author: Nick Sarnie <nick.sarnie at intel.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Utils/ProfileVerify.cpp

  Log Message:
  -----------
  [profcheck] Fix assert in getInitializer call on global with no initializer (#193514)

This code calls `getInitializer` without checking if the global has an
initializer, which causes an assert if there isn't one. These globals
may have no initializer after optimization from `globalopt`.

Check for an initializer first.

This is already locked down with
`CodeGen/SPIRV/legalize-zero-size-arrays-appending.ll` so we don't need
a new test.

This issue was exposed by
https://github.com/llvm/llvm-project/pull/192730.

Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>


  Commit: 94b9accfab9ee4641cc9a34bc02528185018c7bc
      https://github.com/llvm/llvm-project/commit/94b9accfab9ee4641cc9a34bc02528185018c7bc
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-04-22 (Wed, 22 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-setcc-fp-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/setcc-fp-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/sink-splat-operands.ll

  Log Message:
  -----------
  [RISCV] Remove codegen for vp.fcmp (#193529)

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.fcmp from #179622. The corresponding ISD node is
ISD::VP_SETCC, but this only removes the lowering for FP types


  Commit: 836c77bc02826f17478f6c4c7aefdf1d9c29b2f3
      https://github.com/llvm/llvm-project/commit/836c77bc02826f17478f6c4c7aefdf1d9c29b2f3
  Author: Jeff Bailey <jbailey at raspberryginger.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    A libc/Maintainers.md
    R libc/Maintainers.rst
    M libc/docs/CMakeLists.txt
    A libc/docs/Maintainers.md
    R libc/docs/Maintainers.rst

  Log Message:
  -----------
  [libc][docs][NFC] Rename Maintainers.rst to Maintainers.md (#191882)

Renamed Maintainers.rst to Maintainers.md at the root of libc to match
other LLVM projects.

* Updated libc/docs/Maintainers.md to use MyST include directive,
following the pattern used by Clang.
* Fixed libc/docs/CMakeLists.txt to copy Maintainers.md instead of
Maintainers.rst to the build directory.


  Commit: f1c4db6aef43203e0be634755bfd3bf76e9ba878
      https://github.com/llvm/llvm-project/commit/f1c4db6aef43203e0be634755bfd3bf76e9ba878
  Author: SiliconA-Z <gfunni234 at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/test/CodeGen/AMDGPU/ssubo.ll
    M llvm/test/CodeGen/AMDGPU/ssubsat.ll
    M llvm/test/CodeGen/RISCV/arith-with-overflow.ll
    M llvm/test/CodeGen/RISCV/ssub_sat.ll
    M llvm/test/CodeGen/RISCV/ssub_sat_plus.ll
    M llvm/test/CodeGen/RISCV/xaluo.ll
    M llvm/test/CodeGen/RISCV/xqcia.ll
    M llvm/test/CodeGen/Thumb2/mve-saturating-arith.ll
    M llvm/test/CodeGen/X86/expand-vp-int-intrinsics.ll
    M llvm/test/CodeGen/X86/ssub_sat.ll
    M llvm/test/CodeGen/X86/ssub_sat_vec.ll
    M llvm/test/CodeGen/X86/vec_ssubo.ll

  Log Message:
  -----------
  [SelectionDAG] Change SSUBO to do (LHS < RHS) XOR (RESULT < 0) (#191747)

Refactor expandSADDSUBO in TargetLowering so addition and subtraction
use separate, clearly named paths.

SADDO: unchanged meaning: overflow when (result < LHS) disagrees with
(RHS < 0) (signed compares).

SSUBO: use the equivalent formulation: overflow when (LHS < RHS)
disagrees with (result < 0) instead of (result < LHS) vs (RHS > 0).


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

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
    M lldb/test/API/macosx/extended-backtrace-api/TestExtendedBacktraceAPI.py
    M lldb/test/API/macosx/queues/TestQueues.py

  Log Message:
  -----------
  [lldb/test] Fix BacktraceRecording path for Darwin embedded devices (NFC) (#193436)

rdar://172707080

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


  Commit: c3bd0c12943c3fcdb263b63a6fd754057b1c0775
      https://github.com/llvm/llvm-project/commit/c3bd0c12943c3fcdb263b63a6fd754057b1c0775
  Author: nataliakokoromyti <nataliakokoromyti at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M lldb/cmake/modules/FindCursesAndPanel.cmake

  Log Message:
  -----------
  [lldb] add terminfo name (#191740)

Fixes #191532

This PR just adds terminfo next to tinfo in FindCursesAndPanel.cmake
since NetBSD uses a separate library terminfo that LLDB’s CMake did not
look for (see #191532).


  Commit: e52df047f762d651404285dd8716f6bfa513b104
      https://github.com/llvm/llvm-project/commit/e52df047f762d651404285dd8716f6bfa513b104
  Author: Zixu Wang <zixu_wang at apple.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang-tools-extra/clang-doc/JSONGenerator.cpp
    M clang/include/clang/Basic/Sarif.h
    M clang/lib/Basic/DarwinSDKInfo.cpp
    M clang/tools/clang-installapi/Options.cpp
    M clang/unittests/Basic/SarifTest.cpp
    M lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.h
    M lldb/source/Plugins/Process/Linux/IntelPTThreadTraceCollection.h
    M llvm/benchmarks/CMakeLists.txt
    A llvm/benchmarks/JSONParserBM.cpp
    M llvm/include/llvm/Support/JSON.h
    M llvm/lib/Support/JSON.cpp
    M llvm/tools/llvm-mca/Views/InstructionInfoView.h

  Log Message:
  -----------
  [Support][JSON] Use `std::unordered_map` for object storage (#171230)

`llvm::DenseMap` is not suitable for the key-value `Storage` inside
`llvm::json::Object`. Use `std::unordered_map` instead to optimize
memory usage.

`llvm::DenseMap` is optimized for mapping small keys and values
(pointers), and it pre-allocates 64 buckets by default.
`llvm::json::ObjectKey` is 24 bytes in size, and `llvm::json::Value` is
40 bytes. Currently, the JSON parser allocates 4KB of memory for each
JSON object. In practice, most JSON objects contain only a handful of
fields, and likely to have lists of many small objects. This is a
significant waste of memory.

Assisted-by: Claude Code (claude-opus-4-6)


  Commit: d2673ad6b0eb09de8d55f9ee9423103bb6b716de
      https://github.com/llvm/llvm-project/commit/d2673ad6b0eb09de8d55f9ee9423103bb6b716de
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fshr-fshl-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fshr-fshl-vp.ll

  Log Message:
  -----------
  [RISCV] Expand vp.fshl, vp.fshr (#193225)

It looks like we never implemented custom lowering for the corresponding
ISD nodes so these were always just expanded by expandVPFunnelShift.


  Commit: 7136a4b39b050e3e1e7ca5047bae37178c72ac40
      https://github.com/llvm/llvm-project/commit/7136a4b39b050e3e1e7ca5047bae37178c72ac40
  Author: Fangrui Song <i at maskray.me>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M lld/ELF/ScriptParser.cpp

  Log Message:
  -----------
  [ELF] Factor linker-script dispatch loops into helpers. NFC (#193547)

Extract the per-token dispatch inside readLinkerScript, readSections,
readOutputSectionDescription, and readMemory into four new helpers.
Preparatory for making INCLUDE run a nested parse (#193427).


  Commit: 7a633290d6b1ab7f3d74106d472f2fe171fe119e
      https://github.com/llvm/llvm-project/commit/7a633290d6b1ab7f3d74106d472f2fe171fe119e
  Author: Zixu Wang <zixu_wang at apple.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang-tools-extra/clang-doc/JSONGenerator.cpp
    M clang/include/clang/Basic/Sarif.h
    M clang/lib/Basic/DarwinSDKInfo.cpp
    M clang/tools/clang-installapi/Options.cpp
    M clang/unittests/Basic/SarifTest.cpp
    M lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.h
    M lldb/source/Plugins/Process/Linux/IntelPTThreadTraceCollection.h
    M llvm/benchmarks/CMakeLists.txt
    R llvm/benchmarks/JSONParserBM.cpp
    M llvm/include/llvm/Support/JSON.h
    M llvm/lib/Support/JSON.cpp
    M llvm/tools/llvm-mca/Views/InstructionInfoView.h

  Log Message:
  -----------
  Revert "[Support][JSON] Use `std::unordered_map` for object storage" (#193549)

Reverts llvm/llvm-project#171230 to look at failures.


  Commit: bd09b03b1b09ab31f7576acb7623fee57d78ea3c
      https://github.com/llvm/llvm-project/commit/bd09b03b1b09ab31f7576acb7623fee57d78ea3c
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [NFC][ADT] Make a few functions constexpr (#193302)

So we can use them in static_asserts in #192862.

It converts what ever is trivially possible. In future more can
be converted as well, if we constexpr fetch32/fetch64.

---------

Co-authored-by: Matt Arsenault <Matthew.Arsenault at amd.com>


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

  Changed paths:
    M libc/cmake/modules/LLVMLibCTestRules.cmake

  Log Message:
  -----------
  [libc] Fix .params file generation for integration tests (#193544)

Update add_integration_test to include loader arguments in the .params
file. The lit format already supported three-part .params files, but
add_integration_test was only generating two parts.


  Commit: 2f5ccd4aaa3e3a8ffe6f46bdfc5d825478e1cc06
      https://github.com/llvm/llvm-project/commit/2f5ccd4aaa3e3a8ffe6f46bdfc5d825478e1cc06
  Author: Andrey Pavlenko <andrey.a.pavlenko at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M mlir/lib/Target/LLVM/CMakeLists.txt

  Log Message:
  -----------
  [MLIR][XeGPU] Do not use ocloc lib if LLVM_BUILD_LLVM_DYLIB is ON (#193259)

This fixes LLVM dylib build in environments with installed ocloc.
The problem is that LLVM shared lib is never linked with ocloc and the
linker fails to resolve the symbols `oclocInvoke` and `oclocFreeOutput`.


  Commit: 18bd7e409217daa829e2ed4d043bbba58e82d72a
      https://github.com/llvm/llvm-project/commit/18bd7e409217daa829e2ed4d043bbba58e82d72a
  Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [Bazel] Fixes e52df04 (#193548)

This fixes e52df047f762d651404285dd8716f6bfa513b104.

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>


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

  Changed paths:
    M libc/shared/rpc.h
    M libc/shared/rpc_server.h

  Log Message:
  -----------
  [libc][NFC] Fix minor RPC warnings (#192997)

Summary:
Fix some warnings that show up with strict warnings set, reduces noise
when used as a header onyl library in projects.


  Commit: 8f1b0f632756d87ac030a3a9412a80d5a3ee60a1
      https://github.com/llvm/llvm-project/commit/8f1b0f632756d87ac030a3a9412a80d5a3ee60a1
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/decorators.py
    M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
    M lldb/test/API/api/multiple-debuggers/TestMultipleDebuggers.py
    M lldb/test/API/api/multiple-targets/TestMultipleTargets.py
    M lldb/test/API/api/multithreaded/TestMultithreaded.py
    M lldb/test/API/commands/expression/no-deadlock/TestExprDoesntBlock.py
    M lldb/test/API/commands/gui/expand-threads-tree/TestGuiExpandThreadsTree.py
    M lldb/test/API/commands/gui/spawn-threads/TestGuiSpawnThreads.py
    M lldb/test/API/commands/process/attach-resume/TestAttachResume.py
    M lldb/test/API/commands/process/detach-resumes/TestDetachResumes.py
    M lldb/test/API/commands/register/aarch64_sme_z_registers/za_dynamic_resize/TestZAThreadedDynamic.py
    M lldb/test/API/commands/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.py
    M lldb/test/API/commands/thread/backtrace/TestThreadBacktraceRepeat.py
    M lldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py
    M lldb/test/API/commands/watchpoints/hello_watchlocation/TestWatchLocation.py
    M lldb/test/API/commands/watchpoints/multiple_threads/TestWatchpointMultipleThreads.py
    M lldb/test/API/commands/watchpoints/watchpoint_set_command/TestWatchLocationWithWatchSet.py
    M lldb/test/API/functionalities/breakpoint/breakpoint_command_auto_continue/TestBreakpointCommandAutoContinue.py
    M lldb/test/API/functionalities/breakpoint/breakpoint_on_lambda_capture/TestBreakOnLambdaCapture.py
    M lldb/test/API/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/TestHWBreakMultiThread.py
    M lldb/test/API/functionalities/breakpoint/two_hits_one_actual/TestTwoHitsOneActual.py
    M lldb/test/API/functionalities/fork/concurrent_vfork/TestConcurrentVFork.py
    M lldb/test/API/functionalities/plugins/python_os_plugin/stepping_plugin_threads/TestOSPluginStepping.py
    M lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump.py
    M lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump64b.py
    M lldb/test/API/functionalities/scripted_process/TestScriptedProcess.py
    M lldb/test/API/functionalities/single-thread-step/TestSingleThreadStepTimeout.py
    M lldb/test/API/functionalities/thread/break_after_join/TestBreakAfterJoin.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBatchedBreakpointStepOver.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointDelayBreakpointOneSignal.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointOneDelayBreakpointThreads.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointsDelayedBreakpointOneWatchpoint.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithSignal.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpoint.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpointBreakpointSignal.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelaySignalBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelaySignalWatch.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayWatchBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayedCrashWithBreakpointSignal.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayedCrashWithBreakpointWatchpoint.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyBreakpoints.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyCrash.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManySignals.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyWatchpoints.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentNWatchNBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalDelayBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalDelayWatch.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalNWatchNBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalWatch.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalWatchBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointThreads.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneDelaySignal.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneSignal.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneWatchpoint.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointThreads.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneBreakpoint.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneDelayBreakpoint.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneSignal.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchBreakDelay.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchpointDelayWatchpointOneBreakpoint.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchpointWithDelayWatchpointThreads.py
    M lldb/test/API/functionalities/thread/concurrent_events/exit/TestConcurrentThreadExit.py
    M lldb/test/API/functionalities/thread/create_after_attach/TestCreateAfterAttach.py
    M lldb/test/API/functionalities/thread/create_during_step/TestCreateDuringStep.py
    M lldb/test/API/functionalities/thread/exit_during_break/TestExitDuringBreak.py
    M lldb/test/API/functionalities/thread/exit_during_expression/TestExitDuringExpression.py
    M lldb/test/API/functionalities/thread/exit_during_step/TestExitDuringStep.py
    M lldb/test/API/functionalities/thread/ignore_suspended/TestIgnoreSuspendedThread.py
    M lldb/test/API/functionalities/thread/main_thread_exit/TestMainThreadExit.py
    M lldb/test/API/functionalities/thread/multi_break/TestMultipleBreakpoints.py
    M lldb/test/API/functionalities/thread/num_threads/TestNumThreads.py
    M lldb/test/API/functionalities/thread/state_after_expression/TestStateAfterExpression.py
    M lldb/test/API/functionalities/thread/step_out/TestThreadStepOut.py
    M lldb/test/API/functionalities/thread/thread_exit/TestThreadExit.py
    M lldb/test/API/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py
    M lldb/test/API/functionalities/thread/thread_specific_break_plus_condition/TestThreadSpecificBpPlusCondition.py
    M lldb/test/API/lang/c/step_over_no_deadlock/TestStepOverDoesntBlock.py
    M lldb/test/API/lang/c/tls_globals/TestTlsGlobals.py
    M lldb/test/API/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py
    M lldb/test/API/python_api/lldbutil/iter/TestLLDBIterator.py
    M lldb/test/API/python_api/lldbutil/iter/TestRegistersIterator.py
    M lldb/test/API/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
    M lldb/test/API/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
    M lldb/test/API/tools/lldb-dap/threads/TestDAP_threads.py
    M lldb/test/API/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
    M lldb/test/API/tools/lldb-server/vCont-threads/TestPartialResume.py
    M lldb/test/API/tools/lldb-server/vCont-threads/TestSignal.py

  Log Message:
  -----------
  [lldb] Decorate tests that use threading (#193117)

Add a new decorator `skipIfTargetDoesNotSupportThreads` to skip tests
that use threading. This is motivated by running the test suite
targeting WebAssembly, where `wasip1` does not support threads. There
are variants that do support threading (e.g. `wasip1-threading`) that
the current implementation accounts for.


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

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
    M llvm/test/CodeGen/AArch64/insertextract.ll
    M llvm/test/CodeGen/AMDGPU/promote-alloca-vector-dynamic-idx-bitcasts-llc.ll
    M llvm/test/CodeGen/ARM/combine-vmovdrr.ll
    M llvm/test/CodeGen/ARM/pr122670-regression.ll
    M llvm/test/CodeGen/LoongArch/lasx/ir-instruction/extractelement.ll
    M llvm/test/CodeGen/LoongArch/lasx/ir-instruction/insertelement.ll
    M llvm/test/CodeGen/LoongArch/lsx/ir-instruction/extractelement.ll
    M llvm/test/CodeGen/LoongArch/lsx/ir-instruction/insertelement.ll
    M llvm/test/CodeGen/Mips/msa/basic_operations.ll
    M llvm/test/CodeGen/PowerPC/aix-vec_insert_elt.ll
    M llvm/test/CodeGen/PowerPC/aix32-p8-scalar_vector_conversions.ll
    M llvm/test/CodeGen/PowerPC/vec_insert_elt.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-extract.ll
    M llvm/test/CodeGen/X86/insertelement-var-index.ll
    M llvm/test/CodeGen/X86/vector-extend-inreg.ll

  Log Message:
  -----------
  [LegalizeTypes][DAG] Use SHL(X,1) instead of ADD(X,X) for variable vector indices for extraction/insertion legalization (#188277)

Avoid ADD(X,X) as it doesn't correctly handle undef elements and helps avoid some FREEZE() fold headaches

Resurrects #86857


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

  Changed paths:
    M runtimes/cmake/Modules/HandleLibC.cmake

  Log Message:
  -----------
  [Runtimes] Allow HandleLibc.cmake to be called multiple times (#193540)

Summary:
This needs to check to see if it's already been called now that we want
to use it more places than just libcxx.


  Commit: 5d0143187437cf53f90609f81f5fcd205c46a38d
      https://github.com/llvm/llvm-project/commit/5d0143187437cf53f90609f81f5fcd205c46a38d
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
    M lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp

  Log Message:
  -----------
  [lldb] Scope symbol lookups to specific modules in ObjC/SystemRuntime plugins (#193379)

This narrows `FindSymbolsWithNameAndType` calls from searching all
loaded images to the specific module that owns the symbol (Foundation,
CoreFoundation, libBacktraceRecording.dylib).

The arclite fallback in `CalculateHasNewLiteralsAndIndexing` still
searches all images because libarclite is a static library linked into
the main executable.


  Commit: 91fe498ccc31ca2ac3cfe9d83bd8c9e22be3b566
      https://github.com/llvm/llvm-project/commit/91fe498ccc31ca2ac3cfe9d83bd8c9e22be3b566
  Author: Shubham Sandeep Rastogi <Shubham.Rastogi at sony.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    R llvm/test/DebugInfo/X86/sdag-load-sext-trunc.ll
    R llvm/test/DebugInfo/X86/sdag-load-sext.ll
    R llvm/test/DebugInfo/X86/sdag-load-zext-multiple-args.ll

  Log Message:
  -----------
  Revert "[SelectionDAG] Salvage debuginfo when combining load and z|s ext instrs. (#188544)" (#193554)

This reverts commit fe5d5b762ab3b92b18b56f413965abb81a459ac6.

Reverted because of https://github.com/llvm/llvm-project/issues/193475

clang crashes on valid code at -O{2,3} on x86_64-linux-gnu: Assertion
`N->getOpcode() != ISD::DELETED_NODE && "DELETED_NODE in CSEMap!"'
failed


  Commit: 440872232bbe7ce4b9c8a9eeede4e3e9ad748cf0
      https://github.com/llvm/llvm-project/commit/440872232bbe7ce4b9c8a9eeede4e3e9ad748cf0
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [NFC][MachineBlockHashInfo] Add static asserts to guard agains hash_16_bytes changes (#192862)

`hashing::detail::hash_16_bytes` is not guaranteed to be stable across
different versions of LLVM, it can change any time.

We put asserts here, so if it changed, author don't forget to work
around them here.


  Commit: 4f1be838a9f1102699a668c4ec735a4c532f95cb
      https://github.com/llvm/llvm-project/commit/4f1be838a9f1102699a668c4ec735a4c532f95cb
  Author: Andrew Haberlandt <ahaberlandt at apple.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [compiler-rt] [Darwin] Enable arm64e tests on macOS (#193391)

This enables compiler-rt tests on Darwin arm64e (when supported by the
linker).

Note that arm64e is not enabled for sanitizers yet, but this does add
test coverage for builtins.

rdar://175303507


  Commit: 6e4fb52144fe7c21bd93c5a66644e59126b29ae5
      https://github.com/llvm/llvm-project/commit/6e4fb52144fe7c21bd93c5a66644e59126b29ae5
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
    M llvm/test/Transforms/LoopVectorize/AArch64/eliminate-tail-predication.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-epilogue.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-mixed.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-sub.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/simple_early_exit.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vect.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-widen-phi.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/fminimumnum.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/lmul.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/truncate-to-minimal-bitwidth-evl-crash.ll

  Log Message:
  -----------
  [VPlan] Use MaxRuntimeStep in materializeVectorTC to simplify middle br. (#193067)

For scalable vectors, pass the maximum runtime step to
materializeVectorTripCount. Use it to simplify the vector trip count to
the original trip count directly, if MaxRuntimeSteps divides the
original trip count without remainder.

In those cases, all lower power-of-2 vscales will divide the rip count
without remainder.

PR: https://github.com/llvm/llvm-project/pull/193067


  Commit: 9e649076b9d6364cbb1d79c5e787687b3f48515f
      https://github.com/llvm/llvm-project/commit/9e649076b9d6364cbb1d79c5e787687b3f48515f
  Author: Jeff Bailey <jbailey at raspberryginger.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M libc/test/CMakeLists.txt
    M libc/test/include/CMakeLists.txt
    M libc/test/integration/CMakeLists.txt
    M libc/utils/libctest/format.py

  Log Message:
  -----------
  [libc] Replace check-libc with lit-based test execution (#184163)

Now that check-libc-lit has been validated alongside check-libc, make
lit the default test runner by renaming check-libc-lit to check-libc.
Remove the old CMake-driven check-libc custom target.


  Commit: 38874e1897e3e7d5f4eb16ac1c06ece961ad8d3a
      https://github.com/llvm/llvm-project/commit/38874e1897e3e7d5f4eb16ac1c06ece961ad8d3a
  Author: SiliconA-Z <gfunni234 at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ssubo.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ssubsat.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/subo.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-addo-subo-rv32.mir
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-addo-subo-rv64.mir
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-sat-rv32.mir
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-sat-rv64.mir
    M llvm/test/CodeGen/SPIRV/llvm-intrinsics/signed_arithmetic_overflow.ll

  Log Message:
  -----------
  [GlobalISel] Change SSUBO to do (LHS < RHS) XOR (RESULT < 0) (#191744)

Refactor lowerSADDO_SSUBO in LegalizerHelper so addition and subtraction
use separate, clearly named paths.

SADDO: unchanged meaning: overflow when (result < LHS) disagrees with
(RHS < 0) (signed compares).

SSUBO: use the equivalent formulation: overflow when (LHS < RHS)
disagrees with (result < 0) instead of (result < LHS) vs (RHS > 0).


  Commit: 8f2935c2ebe35f48910e6b188648094265e6761d
      https://github.com/llvm/llvm-project/commit/8f2935c2ebe35f48910e6b188648094265e6761d
  Author: dyung <douglas.yung at sony.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/bindings/python/tests/cindex/test_version.py

  Log Message:
  -----------
  Loosen check for clang version string in test to work when setting CLANG_VENDOR. (#192961)

We are trying to update our buildbot to use the `-DCLANG_VENDOR` and
`-DCLANG_VENDOR_UTI` options, but need to fix some tests first. This is
one of them.

---------

Co-authored-by: Jannick Kremer <jannick.kremer at mailbox.org>
Co-authored-by: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>


  Commit: da7ee36ad52167c588ec1feb9a70797d26ea40ed
      https://github.com/llvm/llvm-project/commit/da7ee36ad52167c588ec1feb9a70797d26ea40ed
  Author: cmtice <cmtice at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
    M clang/lib/Sema/SemaTemplateInstantiate.cpp
    M clang/test/SemaTemplate/concepts-out-of-line-def.cpp

  Log Message:
  -----------
  Revert "[clang] fix matching constrained out-of-line definitions of class specialization member function templates" (#193558)

Reverts llvm/llvm-project#192806 , which is causing the compiler to
reject some valid code.


  Commit: 37be0841b30b4bd89205006175ff492b7489e969
      https://github.com/llvm/llvm-project/commit/37be0841b30b4bd89205006175ff492b7489e969
  Author: Kazu Hirata <kazu at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/MemProfUse.cpp
    A llvm/test/Transforms/PGOProfile/memprof-inline-call-stacks.ll

  Log Message:
  -----------
  Reland: [MemProf] Dump inline call stacks as optimization remarks (#193545)

This iteration limits the test case to x86_64-linux to prevent bot
failures.

---

This patch teaches the MemProf matching pass to dump inline call
stacks as analysis remarks like so:

frame: 704e4117e6a62739 main:10:5
frame: 273929e54b9f1234 foo:2:12
inline call stack: 704e4117e6a62739,273929e54b9f1234

The output consists of two types of remarks:

- "frame": Acts as a dictionary mapping a unique MD5-based FrameID
  to source information (function name, line offset, and column).

- "inline call stack": Provides the full call stack for a call site
  as a sequence of FrameIDs.

Both types of remarks are deduplicated to reduce the output size.

This patch is intended to be a debugging aid.


  Commit: 80efad535e81ee572ec938e560fc39ddb4226485
      https://github.com/llvm/llvm-project/commit/80efad535e81ee572ec938e560fc39ddb4226485
  Author: adams381 <adams at nvidia.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
    M clang/test/CIR/CodeGen/static-local.cpp

  Log Message:
  -----------
  [CIR] Support guard COMDAT for weak linkage in LoweringPrepare (#193274)

Static locals inside inline functions get `linkonce_odr` linkage, and
their guard variables need their own COMDAT groups so the linker can
deduplicate them across TUs. We were hitting an NYI error for this case
in `LoweringPrepare`.

The fix is straightforward: set `guard.setComdat(true)`, which makes
`LowerToLLVM` create a per-symbol COMDAT selector — the same thing
classic codegen does at `ItaniumCXXABI.cpp:2798`.

I ran into this while trying to compile the Bullet physics engine
through CIR. Functions like `btMatrix3x3::getIdentity()` use this
pattern (return a reference to a function-local static from an inline
member function), and 6 of the 121 source files were failing because of
it. With this fix, all 121 compile cleanly.

Made with [Cursor](https://cursor.com)


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/X86/commutative-copyable-external-phi-use.ll
    M llvm/test/Transforms/SLPVectorizer/X86/copyable-used-outside-with-immediate-op.ll

  Log Message:
  -----------
  [SLP]Fix scheduling of copyable bundle with commutative op used outside parent PHI

The previous (V, Op) pair insert was a no-op since V is unique per iteration.
Replace it with a hasOneUse() fast path plus a check that bails only when I
has a user outside the grandparent PHI's Scalars. Uses within the same
vectorized PHI are tracked by the existing dep machinery; an external user
(e.g. a scalar PHI in a different block) is what trips scheduleBlock's
"must be scheduled at this point" assertion.

Fixes #193315.

Reviewers: 

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


  Commit: 55762f305866075f0659f08937c992ae02bb9987
      https://github.com/llvm/llvm-project/commit/55762f305866075f0659f08937c992ae02bb9987
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/IR/Verifier.cpp
    A llvm/test/Assembler/fpmath.ll

  Log Message:
  -----------
  IR: Allow !fpmath metadata on homogeneous float structs (#193537)

This matches the logic for fast math flags / nofpclass, and allows
marking llvm.sincos calls with !fpmath.


  Commit: 0dbf7373b51e2560af9e23b903cee1a9c7acdbfd
      https://github.com/llvm/llvm-project/commit/0dbf7373b51e2560af9e23b903cee1a9c7acdbfd
  Author: Ralf Jung <post at ralfj.de>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/docs/LangRef.rst

  Log Message:
  -----------
  [LangRef] inline asm: the instructions are treated opaquely (#157080)

This wasn't true until recently, but
https://github.com/llvm/llvm-project/issues/156571 got fixed to make it
true.

I was not entirely sure where to put this; for now I made it a new
paragraph fairly early on in the inline asm docs.


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

  Changed paths:
    M clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
    A clang/test/CIR/CodeGen/cxx-abi-lowering-string-array.cpp

  Log Message:
  -----------
  [CIR] Fix lowering of strings in constant array attributes (#193553)

There was code in the CIR CXXABILowering pass that was assuming
ConstArrayAttr::getElts() would return an ArrayAttr. This isn't true in
the case of string constants with trailing zeros, so we had a crash in a
mlir::cast<> call. The problem only appeared when a string array
appeared in the same initializer as a type that required CXXABI-specific
lowering, such as a member pointer.

This change fixes the CXXABILowering to simply keep the existing string
attribute, which is known to be legal for the purposes of that pass.

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


  Commit: 50d7c990d9b35e97eef1e3836d7eb9c30acc11d0
      https://github.com/llvm/llvm-project/commit/50d7c990d9b35e97eef1e3836d7eb9c30acc11d0
  Author: Matt <MattPD at users.noreply.github.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M flang/include/flang/Lower/OpenMP/Clauses.h
    M flang/include/flang/Lower/Support/ReductionProcessor.h
    M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M flang/lib/Lower/Support/PrivateReductionUtils.cpp
    M flang/lib/Lower/Support/ReductionProcessor.cpp
    A flang/test/Lower/OpenMP/declare-reduction-finalizer.f90
    M flang/test/Lower/OpenMP/declare-reduction-intrinsic-op.f90
    M flang/test/Lower/OpenMP/omp-declare-reduction-derivedtype.f90
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp

  Log Message:
  -----------
  [flang][OpenMP] Support user-defined declare reduction with derived types (#190288)

Fix lowering of `!$omp declare reduction` for intrinsic operators
applied
to user-defined derived types (e.g., `+` on `type(t)`). Previously, this
hit a TODO in `ReductionProcessor::getReductionInitValue` because the
code
tried to compute an init value for a non-predefined type, when it should
instead use the initializer region from the `DeclareReductionOp`.

This fixes the issue #176278: [Flang][OpenMP] Compilation error when
type-list in declare reduction directive is derived type name.

The root cause was a naming mismatch: `genOMP` for
`OpenMPDeclareReductionConstruct` used a raw operator string (e.g.,
"Add")
as the reduction name, while `processReductionArguments` at the use site
computed a canonical name via `getReductionName` (e.g.,
"add_reduction_byref_rec__QFTt"). The `lookupSymbol` in
`createDeclareReductionHelper` never found the already-created op, so it
fell through to `createDeclareReduction` which called
`getReductionInitValue` with the derived type and hit the TODO.

The fix has four parts:

1. Consistent names: In `genOMP` for `OpenMPDeclareReductionConstruct`,
compute the reduction name using the same `getReductionName` scheme that
`processReductionArguments` uses, so both sites produce identical symbol
names. For intrinsic operators, this maps through `ReductionIdentifier`
to
get the canonical name. For user-defined named reductions, the raw
symbol
name is used directly, matching the existing custom-reduction lookup
path.

2. Reuse reduction: In `processReductionArguments`, when an intrinsic
operator reduction is requested, check whether a user-defined declare
reduction already exists under that canonical name before attempting to
create a new one. If found, reuse it. This avoids calling
`createDeclareReduction` (and thus `getReductionInitValue`) for types
that
have user-provided initializers.

3. Reference semantics: Change `doReductionByRef` to return true for
derived types. Previously it returned false for both trivial and derived
types, treating derived types as by-val. This is incorrect for
user-defined combiners that operate on components via side-effects
(e.g.,
`omp_out%x = omp_out%x + omp_in%x`): the combiner mutates `omp_out` in
place and does not produce a whole-struct value, so `convertExprToValue`
returns the component type (`i32`) rather than the struct type, causing
a
type mismatch in the `omp.yield`. By-ref is the correct model: the
combiner stores into the lhs reference and yields it.

The combiner callback in `processReductionCombiner` is also updated to
handle the by-ref derived-type case: when the combiner result type does
not match the element type (as happens with component-level
assignments),
the store is skipped since the assignment already wrote into omp_out as
a
side-effect, and only the lhs reference is yielded.

4. GPU codegen for non-descriptor by-ref reductions: The GPU reduction
codegen in OMPIRBuilder unconditionally called the `DataPtrPtrGen`
callback for all by-ref elements, assuming descriptor-based pointer
indirection was always needed. For simple derived types (e.g., a struct
with scalar integer members), there is no Fortran descriptor/box, so
`dataPtrPtrRegion` is empty and `DataPtrPtrGen` is null. This caused a
`std::bad_function_call` crash (or an assertion failure in
`getSingleElement` when the empty region was inlined).

The fix returns a null `DataPtrPtrGen` callback from `makeRefDataPtrGen`
when `dataPtrPtrRegion` is empty, and guards all call sites in
OMPIRBuilder to skip descriptor indirection when `DataPtrPtrGen` is
null.
For non-descriptor by-ref reductions, the pointer already references the
data directly--no indirection is needed.

Tests:
- Update declare-reduction-intrinsic-op.f90 from a negative test
(checking for the TODO error) to a positive test checking generated
MLIR.
- Update omp-declare-reduction-derivedtype.f90 CHECK lines to match the
  reference semantics fix.
- Add declare-reduction-finalizer.f90 for derived type with init and
  finalization.

Remaining work: declare reduction without an initializer clause is not
yet
supported.

Co-authored-by: Matt P. Dziubinski <matt-p.dziubinski at hpe.com>
Assisted-by: Claude Opus 4.6.

Co-authored-by: Matt P. Dziubinski <matt-p.dziubinski at hpe.com>


  Commit: fb024337497f4c158ea16bfb90e50138d9a2a0c6
      https://github.com/llvm/llvm-project/commit/fb024337497f4c158ea16bfb90e50138d9a2a0c6
  Author: ykiko <ykikoykikoykiko at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang-tools-extra/test/clang-tidy/checkers/misc/unused-using-decls.cpp
    M clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-c-arrays.cpp
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/ASTNodeTraverser.h
    M clang/include/clang/AST/DeclTemplate.h
    M clang/include/clang/AST/JSONNodeDumper.h
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/include/clang/AST/TextNodeDumper.h
    M clang/include/clang/AST/TypeBase.h
    M clang/include/clang/Basic/DeclNodes.td
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/Decl.cpp
    M clang/lib/AST/DeclBase.cpp
    M clang/lib/AST/DeclPrinter.cpp
    M clang/lib/AST/DeclTemplate.cpp
    M clang/lib/AST/JSONNodeDumper.cpp
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
    M clang/lib/CIR/CodeGen/CIRGenModule.cpp
    M clang/lib/CodeGen/CGDecl.cpp
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/Sema/SemaModule.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Serialization/ASTCommon.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/lib/Tooling/Syntax/BuildTree.cpp
    M clang/test/AST/ast-dump-templates-pattern.cpp
    M clang/test/AST/ast-dump-templates.cpp
    A clang/test/AST/ast-print-explicit-instantiation.cpp
    A clang/test/AST/explicit-instantiation-source-info.cpp
    A clang/test/Modules/explicit-instantiation-in-module.cppm
    A clang/test/Modules/explicit-instantiation-merge.cppm
    A clang/test/SemaTemplate/explicit-instantiation-diag-location.cpp
    M clang/tools/libclang/CIndex.cpp

  Log Message:
  -----------
   [Clang][AST] Introduce `ExplicitInstantiationDecl` to preserve source info and fix diagnostic locations  (#191658)

This is the initial fix of
https://github.com/llvm/llvm-project/issues/191442. Following the
discussion here
https://github.com/llvm/llvm-project/issues/115418#issuecomment-2467017012.

- Fix #21040
- Fix #52659
- Fix #115418
- Fix #14230
- Fix #21133

### Description

This PR introduces a new AST node, `ExplicitInstantiationDecl`, to
systematically fix the long-standing issue of missing or incorrect
source location information for explicit template instantiations.

#### Background & The Problem
Historically, Clang's AST lacked a dedicated node to represent the
lexical occurrence of an explicit instantiation statement. Instead,
`Sema` tried to shoehorn this information into existing specialization
nodes (e.g., `FunctionDecl`, `VarTemplateSpecializationDecl`) or simply
returned `nullptr`.

This resulted in fragmented behavior across the seven instantiable
entity types:
* Function & Member Function Templates: Returned `nullptr`, completely
losing `SourceRange` and `NestedNameSpecifier` information.
* Member Functions & Static Data Members: Mutated existing nodes
in-place. Consequently, multiple `template` or `extern template`
declarations in the same file would overwrite each other's source
locations.
* Variable Templates: Suffered from `dyn_cast` bugs and dropped NNS
information.

#### Design Trade-offs Evaluated

Before settling on the current design, I evaluated a mixed
redeclaration-chain approach (similar to how explicit *specializations*
are handled, creating new `FunctionDecl` nodes and stitching them into
the redecl chain). However, this approach had significant flaws:
1. Inconsistency: It couldn't be cleanly applied to member functions or
static data members due to `DeclContext` constraints (e.g., a member
function shouldn't lexically reside in a namespace `DeclContext`, but
placing it in the class context would pollute member lookup).
2. Fragility: It required bypassing standard `FoldingSet` mechanisms
(`setFunctionTemplateSpecialization`).
3. Lookup Pollution: Injecting new `NamedDecl` nodes purely for
instantiations risked breaking downstream `ASTMatcher`s and altering
name lookup behavior.

To avoid these pitfalls, this PR introduces `ExplicitInstantiationDecl`
as a **purely lexical annotation node**.

**Key Design Characteristics:**
1. Inherits from `Decl`, not `NamedDecl`: This is the most crucial
design choice. Much like `StaticAssertDecl` or `FriendDecl`, this node
lives in a `DeclContext` (making it traversable by `RecursiveASTVisitor`
and visible in AST dumps) but remains completely invisible to C++ name
lookup. It does not interfere with overload resolution or lookup tables.
2. Unified Representation: A single node type now covers all seven
entity types. It holds a pointer (`Specialization`) to the underlying
instantiated declaration, unifying how functions, variables, classes,
and members are handled.
3. Lexical Fidelity: The node resides in the enclosing namespace or
Translation Unit where the explicit instantiation was actually written,
perfectly preserving the `SourceRange`, `NestedNameSpecifierLoc`, and
the exact locations of the `template` and `extern` keywords.

Assisted-by: Claude Code (Anthropic) — used for test writing and
checking test results


  Commit: e2f66182fa60c65c8c28ad7d3e45b12ac0359be6
      https://github.com/llvm/llvm-project/commit/e2f66182fa60c65c8c28ad7d3e45b12ac0359be6
  Author: Qiongsi Wu <qiongsiwu at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/lib/Lex/ModuleMap.cpp

  Log Message:
  -----------
  [clang][Modules] Avoid checking for duplicating module definitions when a module does not have a valid definition location (#193534)

69e0367e8221b8002b5d438fb70ff3daf36257fc enhanced the duplicating module
definition diagnostics to check across ModuleMaps in a very specific
case. The check proved to be overly strict. This PR makes sure we do not
check when the `Existing` module's definition location is unknown. Such
cases are only observed when a module built through include-tree (CAS)
is imported through a pch (e.g.
https://github.com/swiftlang/llvm-project/blob/4a8f552d072f7dfdecc241c02696f82761ec0596/clang/test/ClangScanDeps/modules-include-tree-pch-common-stale-prefix-map.c#L1)
Such cases are only present when CAS is used, so no test case is
attached here.

Assisted-by: claude-opus-4.6

rdar://174894322


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

  Changed paths:
    M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
    M llvm/lib/CodeGen/TargetLoweringBase.cpp
    A llvm/test/Transforms/PreISelIntrinsicLowering/AArch64/expand-fp-math.ll

  Log Message:
  -----------
  [PreISelIntrinsicLowering] Expand all unary elementwise intrinsics (#193552)

This expands the set of scalable typed unary intrinsics which can be
expanded to match the entire set of builtin element wise routines
provided by clang. Support for the binary ones will follow in a separate
patch.

Note that the lowering quality is terrible, particularly when the libc
entry for the scalar routine doesn't preserve vector registers (e.g.
RISC-V default). This is a functional fix to avoid crashes when trying
to codegen these, nothing more.

Written by Claude, sanity checked by me.


  Commit: 335f9f95bc0bbd319c8803ea818e991910b46cb1
      https://github.com/llvm/llvm-project/commit/335f9f95bc0bbd319c8803ea818e991910b46cb1
  Author: Helena Kotas <hekotas at microsoft.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/lib/Sema/SemaHLSL.cpp
    M clang/test/CodeGenHLSL/BasicFeatures/InitLists.hlsl
    M clang/test/SemaHLSL/Language/InitListAST.hlsl

  Log Message:
  -----------
  [HLSL] Reuse temporaries of aggregate types in list initialization (#191605)

When aggregate types appear as _prvalues_ in HLSL initializer lists, convert them to _xvalues_ and wrap them in `OpaqueValueExpr` so the temporaries can be reused across all element accesses. This allows code generation to avoid emitting redundant copies of the same aggregate temporary.

This should be especially helpful once support for constructors on user-defined structs is removed, and initializer lists will be the primary mechanism for struct initialization.

A similar optimization may also be applicable to vector and matrix types. However, their current code generation path does not yet support handling `OpaqueValueExpr` in initializer lists.


  Commit: 1fe66f66d23911728bd8ff254e9c6832a4f09a35
      https://github.com/llvm/llvm-project/commit/1fe66f66d23911728bd8ff254e9c6832a4f09a35
  Author: bcahoon <59846893+bcahoon at users.noreply.github.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Object/OffloadBundle.cpp
    A llvm/test/tools/llvm-objdump/Offloading/fatbin-compress.test

  Log Message:
  -----------
  [llvm-objdump][offload] Fix offload bundle decompressing (#192729)

The flag to enable decompressing offload bundles was not passed along to
the OffloadBundleFatBin class. The --offloading option was not
decompressing compressed objects.


  Commit: 1c6ab11365041fa7f9aec2c9a48649b76380c355
      https://github.com/llvm/llvm-project/commit/1c6ab11365041fa7f9aec2c9a48649b76380c355
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/utils/profcheck-xfail.txt

  Log Message:
  -----------
  Add expand-fp-math.ll to profcheck-xfail.txt (#193577)

(from #193552) 
We haven't yet addressed PreIselIntrinsicsLowering


  Commit: 5d9a1c172baeaf0ad462b23914293dadc6d28a6e
      https://github.com/llvm/llvm-project/commit/5d9a1c172baeaf0ad462b23914293dadc6d28a6e
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M lldb/source/Target/SectionLoadList.cpp

  Log Message:
  -----------
  [lldb] Eliminate linear scan in SetSectionLoadAddress (#193560)

This PR changes SectionLoadList::SetSectionLoadAddress to avoid O(n)
linear scan when removing stale reverse-map entries. While I was there,
I did some gardening to improve the function's readability.

The change is not NFC as I also fixed a pre-existing bug where the stale
addr-to-sect entry was not removed when the new load address already
existed in the map (the ats_pos != end() branch).


  Commit: 6ef1b80feff54db7e908edcf2c856e48ae0649d0
      https://github.com/llvm/llvm-project/commit/6ef1b80feff54db7e908edcf2c856e48ae0649d0
  Author: Farid Zakaria <fmzakari at fb.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M bolt/lib/Rewrite/DWARFRewriter.cpp
    M bolt/test/X86/dwarf4-dwp-x86.s

  Log Message:
  -----------
  [BOLT] Fix null pointer dereference in DWP processing with split DWARF (#191474)

Fix two null pointer dereferences in BOLT's DWP processing path that
cause SIGSEGV in worker threads when -update-debug-sections is used with
a co-located .dwp file.

1. getSliceData() in updateDebugData() dereferences the result of
getContribution() without checking for null. getContribution() returns
nullptr when the requested section kind (e.g. DW_SECT_LINE) is not
present as a column in the DWP CU index. When BOLT processes a DWP where
certain section kinds are absent from the index, every worker thread
that hits this path crashes simultaneously.

2. processSplitCU() dereferences getUnitDIEbyUnit() without checking for
null. If buildDWOUnit() fails for a CU, the returned DIE* is null and
the dereference crashes.

Crash signature from dmesg:
```
  llvm-worker-*: segfault at 8 ip <offset> error 4 in llvm-bolt
  (multiple worker threads crash at the same instruction)
```
The faulting address 0x8 corresponds to accessing the Length field
(offset 8) of a null `DWARFUnitIndex::Entry::SectionContribution*`.

At Meta, I reproduced this building hhvm with a co-located .dwp file and
the flags `update-debug-sections -debug-thread-count=80 -lite=0` with
profile data.

I confirmed that the unfixed BOLT crashes deterministically whereas the
fixed BOLT completes successfully.


  Commit: 0062071c2759a89258da3e3838859a02fde8292b
      https://github.com/llvm/llvm-project/commit/0062071c2759a89258da3e3838859a02fde8292b
  Author: Andy Kaylor <akaylor at nvidia.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenModule.cpp
    A clang/test/CIR/CodeGen/replace-global-deferred-strings.c

  Log Message:
  -----------
  [CIR] Fix a dangling reference to a replaced global (#193561)

We had a bug in CIR where we were replacing a global value that was
being used to track the insertion location of the last global created.
When we erased this value while still holding a reference to it, it
caused subsequent globals to be created in a detatched state, which in
turn led to crashes when lowering uses of those globals to the LLVM
dialect.

This change updates `lastGlobalOp` when the global it is referencing is
replaced.

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


  Commit: 97015ad916c48ddf0fa34a4801e2851230cf5070
      https://github.com/llvm/llvm-project/commit/97015ad916c48ddf0fa34a4801e2851230cf5070
  Author: Joshua Batista <jbatista at microsoft.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/IdentifierTable.h
    M clang/include/clang/Basic/TokenKinds.def
    M clang/lib/Basic/IdentifierTable.cpp
    A clang/test/SemaHLSL/Language/Volatile.hlsl

  Log Message:
  -----------
  [HLSL] Disallow `volatile` keyword (#193322)

This PR disallows the `volatile` keyword in HLSL.
The keyword is meaningless in this language, and it comes from the C++
foundation that HLSL stands on.
Fixes https://github.com/llvm/llvm-project/issues/192559
It is arguably in the category of this scenario:
https://github.com/llvm/wg-hlsl/issues/300
Assisted by: Github Copilot


  Commit: fed79d4c91b5fa00196e733105b2558785d55e7b
      https://github.com/llvm/llvm-project/commit/fed79d4c91b5fa00196e733105b2558785d55e7b
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-inttoptr-ptrtoint.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-inttoptr-ptrtoint.ll

  Log Message:
  -----------
  [RISCV] Expand vp.inttoptr, vp.ptrtoint (#193530)

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. There are no corresponding
ISD nodes, they are converted into the appropriate integer casts in
SelectionDAGBuilder


  Commit: 698dce153ab53b2724a21c72a930a9ad6d5a3317
      https://github.com/llvm/llvm-project/commit/698dce153ab53b2724a21c72a930a9ad6d5a3317
  Author: Zhen Wang <zhenw at nvidia.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    A flang/test/Lower/Intrinsics/transfer-unsigned.f90

  Log Message:
  -----------
  [flang] Fix inline transfer for unsigned integer types (#193570)

Fix a crash when transfer is used with Fortran unsigned types. The
arith.bitcast op requires signless integer or float operands, but the
inline optimization was applying it to unsigned integer types (ui32),
causing a verification failure. Changed the guard from
mlir::isa<mlir::IntegerType> to isSignlessIntOrFloat() so unsigned
integer transfers fall through to the address-level fir.convert path
instead.

This is to fix a regression reported here:
https://github.com/llvm/llvm-project/pull/191589#issuecomment-4298846795


  Commit: b9b472c8740a626d90f855f8364fb5d8ad12a027
      https://github.com/llvm/llvm-project/commit/b9b472c8740a626d90f855f8364fb5d8ad12a027
  Author: Erich Keane <ekeane at nvidia.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/test/SemaTemplate/concepts-out-of-line-def.cpp

  Log Message:
  -----------
  [NFC] Add check lines to concepts-out-of-line-def.cpp to fix failure (#193579)

Revert in #193558 failed to correct a test that was fixed in the
meantime, and was dependent on this. This patch adds a check-line to
make CI go green again.


  Commit: 59596d789eacd059a3f9aaaebad5dde173398b6a
      https://github.com/llvm/llvm-project/commit/59596d789eacd059a3f9aaaebad5dde173398b6a
  Author: David Green <david.green at arm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/test/CodeGen/AArch64/hadd-combine.ll

  Log Message:
  -----------
  [AArch64][GlobalISel] Add hadd-combine globalisel test coverage. NFC (#193591)


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

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/test/CodeGen/AMDGPU/GlobalISel/fdiv.f64.ll
    M llvm/test/CodeGen/AMDGPU/fdiv.f64.ll
    M llvm/test/CodeGen/AMDGPU/fneg-combines.new.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rcp.ll
    M llvm/test/CodeGen/AMDGPU/rsq.f64.ll

  Log Message:
  -----------
  AMDGPU: Skip last corrections in afn f64 reciprocal (#183696)

Device libs has a fast reciprocal macro that is close
to the fast division expansion, but skips the last terms
compared to the full division.

The basic reciprocal handling has identical output to this
macro. The negative reciprocal case has different fneg placement
and smaller code size, but I believe should be the same.


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

  Changed paths:
    M lldb/source/Plugins/Process/scripted/ScriptedThread.cpp

  Log Message:
  -----------
  [lldb] Fix empty backtraces for scripted threads with no artificial frames (#193387)

Following 86aa43999bec, `ScriptedThread::LoadArtificialStackFrames`
unconditionally calls `SetAllFramesFetched` even when the scripted
thread provided zero artificial stack frames via `get_stackframes`.

This prevents the normal unwinder from creating frames from the register
context, leaving `m_frames` empty. When GetFrameAtIndex(0) is
subsequently called, it triggered the follow on assertion builds:

```
  assert(!m_thread.IsValid() && "A valid thread has no frames.")
```

This affects scripted threads that provide register context via
`get_register_context` but rely on the unwinder for frame creation
rather than overriding `get_stackframes`.

This patch fixes the issue by returning early in
`LoadArtificialStackFrames` in case the scripted thread StackFrame array
is empty, preventing it from calling `SetAllFramesFetched` on it's
StackFrameList.

rdar://175019759

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


  Commit: 1bec68a29602838d31f2dd4eb9d0de182f2c53d3
      https://github.com/llvm/llvm-project/commit/1bec68a29602838d31f2dd4eb9d0de182f2c53d3
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/test/CodeGen/RISCV/rvv/abs-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-abs-vp.ll

  Log Message:
  -----------
  [RISCV] Remove codegen for vp_abs (#193533)

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_abs from #179622.


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

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    A llvm/test/Transforms/LoopVectorize/vector-loop-backedge-elimination-predicated-early-exit.ll

  Log Message:
  -----------
  [VPlan] Pick correct insert point after creating canonical IV. (#193587)

Retrieve (or create) the canonical IV increment before setting up the
VPBuilder insertion point at Header->begin(). getOrCreate may insert the
increment recipe into the Header, which would invalidate an insertion
point captured before the increment exists.

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


  Commit: 7431a4f984be8df7ff3d534fe4884d80b69f5548
      https://github.com/llvm/llvm-project/commit/7431a4f984be8df7ff3d534fe4884d80b69f5548
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/X86/non-schedulable-before-main.ll

  Log Message:
  -----------
  [SLP]Fix dominance for multi-use copyable scalars in scheduled bundle

scheduleBlock skips copyable bundle members with their own ScheduleData,
leaving them at their original position. If such a scalar comes after
MainOp and satisfies doesNotNeedToBeScheduled, the vectorized op is
inserted at LastScheduledInst while the scalar stays behind, so the
insertelement feeding the copyable lane fails to be dominated by it.

After placing bundle members, move copyable scalars with more than one
use (same block as MainOp, doesNotNeedToBeScheduled, schedulable from
the tree entry's view) to just before LastScheduledInst.

Fixes #193513.

Reviewers: 

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


  Commit: e4e8bcb54da5bb017ce9c96282e4eaeb81ac6486
      https://github.com/llvm/llvm-project/commit/e4e8bcb54da5bb017ce9c96282e4eaeb81ac6486
  Author: Luke Lau <luke at igalia.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/test/CodeGen/RISCV/rvv/ctlz-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-marith-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vand-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vor-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vxor-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/marith-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/sink-splat-operands-i1.ll
    M llvm/test/CodeGen/RISCV/rvv/undef-vp-ops.ll
    M llvm/test/CodeGen/RISCV/rvv/vand-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vandn-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vor-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vxor-vp.ll

  Log Message:
  -----------
  [RISCV] Expand vp.and, vp.or, vp.xor (#193542)

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 expands 3 intrinsics from #179622. The codegen support is left in
for now as other parts in DAGCombiner/SelectionDAGBuilder can generate
these.


  Commit: 083cab66fa7c7b524a881249aa37473250325acb
      https://github.com/llvm/llvm-project/commit/083cab66fa7c7b524a881249aa37473250325acb
  Author: Ryan Buchner <rbuchner at qti.qualcomm.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [SLP] Precommit tests for strided store reordering (#193565)

Currently these tests generate incorrect vectorization because we try to re-order strided store
nodes in `reorderBottomToTop`.


  Commit: 4b44e2039c78c51cd88ee1ef191c828eaef522b4
      https://github.com/llvm/llvm-project/commit/4b44e2039c78c51cd88ee1ef191c828eaef522b4
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [fuzzer] Set target_cflags instead of target_flags in lit config (#191510)

This PR fixes warning "Compiler lib dir != compiler-rt lib dir"

There is a check in compiler-rt/test/lit.common.cfg.py which detects
runtime dir using target_cflags.

If we set target_flags only, the test will complain as below:

The persistent from #111498, but I don't see anything wrong.

```
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON -DLLVM_CCACHE_BUILD=ON  -DLLVM_ENABLE_ASSERTIONS=OFF '-DLLVM_ENABLE_PROJECTS='\''clang;lld'\''' '-DLLVM_ENABLE_RUNTIMES='\''compiler-rt;libunwind;libcxx;libcxxabi'\''' -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ../../llvm-project/llvm

ninja check-compiler-rt
```

```
-- Installing: runtimes/runtimes-bins/compiler-rt/lib/tsan/libcxx_tsan_x86_64/lib/libc++.modules.json
[3235/3236] Running compiler_rt regression tests
llvm-lit: llvm-project/compiler-rt/test/lit.common.cfg.py:244: warning: Compiler lib dir != compiler-rt lib dir
Compiler libdir:     "lib/clang/23/lib/x86_64-unknown-linux-gnu"
compiler-rt libdir:  "lib/clang/23/lib/i386-unknown-linux-gnu"
llvm-lit: llvm-project/compiler-rt/test/lit.common.cfg.py:255: warning: COMPILER_RT_TEST_STANDALONE_BUILD_LIBS=ON, but this test suite does not support testing the just-built runtime libraries when the test compiler is configured to use different runtime libraries. Either modify this test suite to support this test configuration, or set COMPILER_RT_TEST_STANDALONE_BUILD_LIBS=OFF to test the runtime libraries included in the compiler instead.
llvm-lit: llvm-project/compiler-rt/test/lit.common.cfg.py:266: note: Testing using libraries in "./lib/../lib/clang/23/lib/i386-unknown-linux-gnu"
llvm-lit: llvm-project/compiler-rt/test/lit.common.cfg.py:244: warning: Compiler lib dir != compiler-rt lib dir
Compiler libdir:     "lib/clang/23/lib/x86_64-unknown-linux-gnu"
compiler-rt libdir:  "lib/clang/23/lib/i386-unknown-linux-gnu"
llvm-lit: llvm-project/compiler-rt/test/lit.common.cfg.py:255: warning: COMPILER_RT_TEST_STANDALONE_BUILD_LIBS=ON, but this test suite does not support testing the just-built runtime libraries when the test compiler is configured to use different runtime libraries. Either modify this test suite to support this test configuration, or set COMPILER_RT_TEST_STANDALONE_BUILD_LIBS=OFF to test the runtime libraries included in the compiler instead.
llvm-lit: llvm-project/compiler-rt/test/lit.common.cfg.py:266: note: Testing using libraries in "./lib/../lib/clang/23/lib/i386-unknown-linux-gnu"
llvm-lit: llvm-project/compiler-rt/test/lit.common.cfg.py:244: warning: Compiler lib dir != compiler-rt lib dir
Compiler libdir:     "lib/clang/23/lib/x86_64-unknown-linux-gnu"
compiler-rt libdir:  "lib/clang/23/lib/i386-unknown-linux-gnu"
llvm-lit: llvm-project/compiler-rt/test/lit.common.cfg.py:255: warning: COMPILER_RT_TEST_STANDALONE_BUILD_LIBS=ON, but this test suite does not support testing the just-built runtime libraries when the test compiler is configured to use different runtime libraries. Either modify this test suite to support this test configuration, or set COMPILER_RT_TEST_STANDALONE_BUILD_LIBS=OFF to test the runtime libraries included in the compiler instead.
llvm-lit: llvm-project/compiler-rt/test/lit.common.cfg.py:266: note: Testing using libraries in "./lib/../lib/clang/23/lib/i386-unknown-linux-gnu"

```

For libfuzzer there should be no difference, as it already applies
target_cflags.


  Commit: 19b40f71fd7077bf1636afbc13e558c2a0f6ac6a
      https://github.com/llvm/llvm-project/commit/19b40f71fd7077bf1636afbc13e558c2a0f6ac6a
  Author: Dmitry Sidorov <Dmitry.Sidorov at amd.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/docs/SPIRVUsage.rst
    M llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
    M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
    M llvm/lib/Target/SPIRV/SPIRVSymbolicOperands.td
    M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
    A llvm/test/CodeGen/SPIRV/linkage/weak-linkage.ll

  Log Message:
  -----------
  [SPIR-V] Add SPV_AMD_weak_linkage extension (#193307)

Spec is available here:
https://github.com/KhronosGroup/SPIRV-Registry/pull/401


  Commit: 8a12b26feb0cde64391bc6c38c3365a260700022
      https://github.com/llvm/llvm-project/commit/8a12b26feb0cde64391bc6c38c3365a260700022
  Author: Jeff Bailey <jbailey at raspberryginger.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M libc/test/CMakeLists.txt
    M libc/test/include/CMakeLists.txt
    M libc/test/integration/CMakeLists.txt
    M libc/utils/libctest/format.py

  Log Message:
  -----------
  Revert "[libc] Replace check-libc with lit-based test execution" (#193610)

Reverts llvm/llvm-project#184163


  Commit: 107701b3e619c34f3d6494193b02112de5433fe8
      https://github.com/llvm/llvm-project/commit/107701b3e619c34f3d6494193b02112de5433fe8
  Author: gulfemsavrun <gulfem at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    R llvm/test/Transforms/SimplifyCFG/X86/switch-to-lookup-comdat.ll

  Log Message:
  -----------
  Revert "Reapply "[SimplifyCFG] Reuse function comdat for switch lookup table"" (#193582)

Reverts llvm/llvm-project#193229

Broke two-stage build while compiling llvm-profdata on Windows.

https://luci-milo.appspot.com/ui/p/fuchsia/builders/prod/clang-windows-x64/b8683881140581066385/overview


  Commit: e68d91afdff340550a603c6a4e75cdffe36871f1
      https://github.com/llvm/llvm-project/commit/e68d91afdff340550a603c6a4e75cdffe36871f1
  Author: joaosaffran <joaosaffranllvm at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp

  Log Message:
  -----------
  [NFC][SPIRV] Introduce function to handle 64 bits overflow (#193088)

Some intrinsics require special logic to deal with 64bits, usually
because vulkan doesn't allow 64 overloads. This patch introduces a
function that can be reused in some of those intrinsics to deal with
this specific case.

Requested here
https://github.com/llvm/llvm-project/pull/193068#discussion_r3113352858
as part of https://github.com/llvm/llvm-project/issues/192756


  Commit: 802de7ebd18e0203b4a50a5ac466e3d01d2b72a2
      https://github.com/llvm/llvm-project/commit/802de7ebd18e0203b4a50a5ac466e3d01d2b72a2
  Author: Kevin Sala Penades <salapenades1 at llnl.gov>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M offload/include/Shared/APITypes.h
    M offload/include/omptarget.h
    M offload/libomptarget/interface.cpp
    M offload/libomptarget/omptarget.cpp
    M offload/libomptarget/private.h
    M offload/plugins-nextgen/common/include/RecordReplay.h
    M offload/plugins-nextgen/common/src/RecordReplay.cpp
    M offload/tools/kernelreplay/llvm-omp-kernel-replay.cpp

  Log Message:
  -----------
  [offload] Allow replay repetitions and report basic timing (#193388)

This commit extends the kernel replay tool to perform multiple replay
repetitions on the same process. It also prints the execution time of
the kernel replay, which includes the kernel launch and kernel
synchronization (replay I/O time is excluded). Precise kernel timing
should be obtained through the corresponding profiling tools for now.

The output report after recording has been improved as well.


  Commit: 9f5e0ac8a8f2e36ecf6b0a7b47cb230f6ba6657b
      https://github.com/llvm/llvm-project/commit/9f5e0ac8a8f2e36ecf6b0a7b47cb230f6ba6657b
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M libc/include/elf.yaml

  Log Message:
  -----------
  [libc] Add some more segment type macros

Missing macros from
https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/progheader.html.

We need PT_GNU_EH_FRAME for libunwind.

Reviewers: jtstogel, frobtech, vonosmas, michaelrj-google

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


  Commit: 2c7b820bc8fd83b9faf4d718fada34724fc53210
      https://github.com/llvm/llvm-project/commit/2c7b820bc8fd83b9faf4d718fada34724fc53210
  Author: jimingham <jingham at apple.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M lldb/include/lldb/DataFormatters/TypeSynthetic.h
    M lldb/include/lldb/Target/Target.h
    M lldb/include/lldb/ValueObject/ValueObject.h
    M lldb/include/lldb/ValueObject/ValueObjectConstResult.h
    M lldb/packages/Python/lldbsuite/test/lldbtest.py
    M lldb/source/API/SBValue.cpp
    M lldb/source/DataFormatters/TypeSynthetic.cpp
    M lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
    M lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp
    M lldb/source/Plugins/Language/CPlusPlus/GenericInitializerList.cpp
    M lldb/source/Plugins/Language/CPlusPlus/GenericList.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibStdcppSpan.cpp
    M lldb/source/Plugins/Language/CPlusPlus/MsvcStlDeque.cpp
    M lldb/source/Plugins/Language/CPlusPlus/MsvcStlSpan.cpp
    M lldb/source/Plugins/Language/CPlusPlus/MsvcStlVector.cpp
    M lldb/source/Plugins/Language/ObjC/NSArray.cpp
    M lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
    M lldb/source/Plugins/Language/ObjC/NSError.cpp
    M lldb/source/Plugins/Language/ObjC/NSException.cpp
    M lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
    M lldb/source/Plugins/Language/ObjC/NSSet.cpp
    M lldb/source/Plugins/Language/ObjC/NSString.cpp
    M lldb/source/Target/Target.cpp
    M lldb/source/Target/TargetProperties.td
    M lldb/source/ValueObject/ValueObject.cpp
    M lldb/source/ValueObject/ValueObjectConstResult.cpp
    M lldb/source/ValueObject/ValueObjectConstResultImpl.cpp
    M lldb/source/ValueObject/ValueObjectSynthetic.cpp
    M lldb/test/API/commands/expression/issue_11588/Test11588.py
    M lldb/test/API/functionalities/data-formatter/callback-matching/TestDataFormatterCallbackMatching.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-python-synth/ftsp.py
    M lldb/test/API/functionalities/data-formatter/type-synth-wants-deref/provider.py
    M lldb/test/API/python_api/formatters/synth.py

  Log Message:
  -----------
  Ensure that the Synthetic children of a ValueObject are managed by their parents ClusterManager (#192561)

A very common pattern in our synthetic child providers was to make the
child ValueObject using ValueObjectConstResult::Create or some form of
the static ValueObject::CreateValueObjectFrom*** methods, and store and
hand that out as the child. Doing that creates a "root" ValueObject
whose lifecycle is not linked to the lifecycle of the ValueObject it is
a child of. And that means it is possible that either the child or the
parent could have gotten destroyed when the other ValueObject gets asked
a question about it.

For the most part this doesn't happen because there are usually enough
other shared pointer references binding the two to keep both sides
alive. But we have gotten a small but steady stream of reports for years
now of crashes where a ValueObject accesses its ClusterManager but that
has already been deleted. I've never been able to find a reproducible
case of this, but one plausible cause is that we are violating the
contract that "all the children of a ValueObject have coterminous
lifespans, enforced by the ClusterManager". So it is unsurprising that
they might sometimes not stay alive as long as they should.

This patch addresses that by providing a way to use these static create
methods but passing in the ClusterManager to be used, and adds or
modifies where extant the CreateChildValueObjectFrom*** methods to pass
in the parent manager.

This patch is not complete. It turns out that routing the ClusterManager
from CreateValueObjectFromExpression all the way to where the expression
result VO is made is quite intrusive, and would have made this already
quite large (though largly mechanical) patch become unweildy. Since I am
mostly concerned about synthetic child providers, and we discourage
using expressions for them, I think that's an acceptable separation.

I also added a test where the ValueObjectSynthetic hands out its
children, checking whether the child being handed out is in fact owned
by the parent handing it out. It is controlled by a setting
(target.check-vo-ownership) which is currently off by default - since I
can't provide a way to do this correctly for expressions yet. But I turn
it on in the testsuite. That's the real testing strategy for this patch,
since its goal is to ensure that all the children we hand out are
managed by their parents. I didn't put an equivalent check in
ValueObjectVariable because that system really doesn't allow a way to do
this incorrectly.

I also fixed some of the tests that were making children using
CreateValueObjectFromExpression to make their children with
CreateValueObjectFromData instead. I could have opted the tests out of
the check, but using the expression parser to do this work is not best
practice, so I didn't want to leave bad examples around. I left one case
that does do it with expressions, however, so we still have a test for
that not-recommended but people do it anyway path.


  Commit: 2ca5abe3f5936dfc164a9c366ed2514661a16961
      https://github.com/llvm/llvm-project/commit/2ca5abe3f5936dfc164a9c366ed2514661a16961
  Author: Alex Voicu <alexandru.voicu at amd.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVPreLegalizer.cpp
    M llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.h
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_inline_assembly/inline_asm.ll

  Log Message:
  -----------
  [SPIR-V] Handle ASM with multiple outputs (#187128)

Inline ASM that writes to multiple registers is represented as a struct
returning call in LLVM IR. We did not handle this properly, as we
mutated the callsite, but did not correctly retrieve the type during
lowering to SPIR-V. Furthermore, IRTranslator tries to do some clever
things when lowering ASM, which are completely unhelpful to SPIR-V,
which merely wants to pass the original ASM through. This patch
correctly retains the IR type and cleans up the IRTranslator introduced
noise, matching how the SPIRV-LLVM Translator would handle such cases.
There is probably a cleaner reformulation of this to be had when we
rework the entire callsite mutation infra.

<!-- branch-stack-start -->

<!-- branch-stack-end -->

---------

Co-authored-by: Marcos Maronas <marcos.maronas at intel.com>
Co-authored-by: Juan Manuel Martinez Caamaño <jmartinezcaamao at gmail.com>


  Commit: 819aabfe1ba19ff85230abad7fb585e4069080bd
      https://github.com/llvm/llvm-project/commit/819aabfe1ba19ff85230abad7fb585e4069080bd
  Author: Dave Lee <davelee.com at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [lldb] Update filecheck_log to use direct input (NFC-ish) (#193618)

Pass log files as direct input to `FileCheck` via its `-input-file`
option.

I had a failing test case where the log file contains the string being
checked for, and yet `FileCheck` failed. While debugging, I noticed the
output from running `platform shell -h -- cat ...` was somehow
truncated. I have not debugged why. As soon as I saw the issue, I
figured it was best to skip all the intermediaries, and pass the log
file straight to `FileCheck`.


  Commit: 90209202d336d93721eed6032dc1898645a6433e
      https://github.com/llvm/llvm-project/commit/90209202d336d93721eed6032dc1898645a6433e
  Author: Andy Kaylor <akaylor at nvidia.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenCall.cpp

  Log Message:
  -----------
  [CIR][NFC] Delete unnecessary errorNYI call in emitDelegateCallArg (#193608)

There was a call to errorNYI in `CIRGenFunction::emitDelegateCallArg`
when the parameter decl was a `CXXRecordDecl`. This was an artifact from
an older version of this function in classic codegen, which called
`ErrorUnsupported` for InAlloca arguments, but that handling was deleted
as part of https://reviews.llvm.org/D154007.


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

  Changed paths:
    A llvm/test/Transforms/SLPVectorizer/RISCV/revec-strided-store.ll

  Log Message:
  -----------
  [SLP][NFC] Precommit test for strided store revectorization (#191569)


  Commit: 417f5bc952962437bcd031e412d757f156d4fa64
      https://github.com/llvm/llvm-project/commit/417f5bc952962437bcd031e412d757f156d4fa64
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M compiler-rt/test/sanitizer_common/TestCases/Posix/getpw_getgr.cpp

  Log Message:
  -----------
  [NFC][sanitizer_common] Fix getpw_getgr.cpp test for large groups (#193625)

On my desktop buffer needs to be about 1MB.


  Commit: ccc608f11937c5a0787a11bb90695615b345a6d2
      https://github.com/llvm/llvm-project/commit/ccc608f11937c5a0787a11bb90695615b345a6d2
  Author: Deric C. <cheung.deric at gmail.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/DirectX/DXIL.td
    M llvm/lib/Target/DirectX/DXILOpLowering.cpp
    M llvm/lib/Target/DirectX/DXILResourceAccess.cpp
    A llvm/test/CodeGen/DirectX/ResourceAccess/load_texture.ll
    A llvm/test/CodeGen/DirectX/TextureLoad.ll

  Log Message:
  -----------
  [DirectX] Implement lowering of Texture Load and Texture .operator[] (#193343)

Fixes https://github.com/llvm/llvm-project/issues/192546 and
https://github.com/llvm/llvm-project/issues/192558

This PR defines the TextureLoad DXIL Op (opcode 66), and implements
lowering of the texture load (dx_resource_load_level) intrinsic to the
DXIL op.

This PR also implements the transformation of loads from texture
resources (via dx_resource_getpointer) into dx_resource_load_level
intrinsics.

Assisted-by: Claude Opus 4.7


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

  Changed paths:
    M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
    M libc/include/llvm-libc-types/cnd_t.h
    M libc/src/__support/threads/CMakeLists.txt
    M libc/src/__support/threads/CndVar.h
    M libc/src/__support/threads/linux/CMakeLists.txt
    R libc/src/__support/threads/linux/CndVar.cpp
    M libc/src/__support/threads/linux/barrier.cpp
    M libc/src/__support/threads/raw_mutex.h
    M libc/src/__support/threads/raw_rwlock.h
    M libc/src/__support/threads/unix_mutex.h
    M libc/src/threads/linux/CMakeLists.txt
    M libc/src/threads/linux/cnd_destroy.cpp
    M libc/src/threads/linux/cnd_init.cpp
    M libc/src/threads/linux/cnd_wait.cpp
    M libc/test/integration/src/__support/threads/CMakeLists.txt
    A libc/test/integration/src/__support/threads/cndvar_test.cpp
    M libc/test/integration/src/pthread/CMakeLists.txt
    M libc/test/integration/src/threads/CMakeLists.txt
    M utils/bazel/llvm-project-overlay/libc/libc_configure_options.bzl

  Log Message:
  -----------
  [libc][CndVar] reimplmement conditional variable with FIFO ordering (#192748)

This PR reimplements conditional variable with two different variants:
- futex-based shared condvar with atomic counter for waiters
- queue-based private condvar

Notice that thread-local queue node cannot be reliably accessed in
shared processes, so we cannot use a unified implementation in this
case.

POSIX.1-2024 (Issue 8) added atomicity conditions to conditional
variable:

- The `pthread_cond_broadcast()` function shall, **as a single atomic
operation**, determine which threads, if any, are blocked on the
specified condition variable cond and unblock all of these threads.

- The `pthread_cond_signal()` function shall, as a **single atomic
operation**, determine which threads, if any, are blocked on the
specified condition variable cond and unblock at least one of these
threads.

This means that threads parked after a condvar signal event shall not
steal signals before it. From my read, both implementation fulfills the
requirement but glibc claims that single futex does not provide the
stronger ordering needed by its users hence switched to a rotational
queue, to fulfill the requirements mentioned in
https://sourceware.org/bugzilla/show_bug.cgi?id=13165. As in a single
futex, the lock acquisition do not happen in order and hence when a
spurious wakeup happen, later waiters may "steal" the signal. However
musl's shared implementation and bionic's whole implementation and
Rust's std condvar still stick to a signal-futex+accounting data style.

Musl's private condvar and this implementation are even stronger in the
sense that not only the queue is decided as an atomic event, the mutex
acquisition also happens in baton-passing style.

Our implementation is different from musl in the sense that we have done
some spin attempts instead of always do futex syscall to requeue threads
(with a new requeued state added). This gives a chance for the
signal/waiter to stay in fast path if the queue is really small. Based
on the microbenchmark, this implementation is generally more performant.
We also abuse the `RawMutex`'s LOCKED state as "waiting for its turn".

One caveat we can see from the benchmark
(https://github.com/SchrodingerZhu/condvar-benchmark) is that strict
FIFO condvar is not that good if users are maintain the order on
themselves as in `turn_ring`, because many threads may just wake up
first only see it is not its turn while blocking the real thread in
turn. However, a semaphore or other synchronization primitives would be
more suitable in those cases. Even though in benchmark like
`turn_ring/broadcast_stress` made this code perform badly (but still
similar to musl anyway), they are not really the correct usage. In other
cases, we are always close to the fastest while providing a stronger
FIFO semantic.

TODO in future commit:
- support pthread cancellation. Ideally we should block cancellation
when signal is consumed and add cancellation callback for checking
illegibility.
- think about stronger ordering semantic in shared case (?)


  Commit: 46e09c516ffc5d603cde8141b1e15301788d1847
      https://github.com/llvm/llvm-project/commit/46e09c516ffc5d603cde8141b1e15301788d1847
  Author: Mingjie Xu <xumingjie.enna1 at bytedance.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

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

  Log Message:
  -----------
  [ExpandMemCmp] Pre-collect memcmp calls to improve compile time (#193415)

Avoid restarting the basic block iteration from the beginning of the
function every time a memcmp/bcmp is expanded. Instead, pre-collect all
memcmp/bcmp calls and process them in a single pass.


  Commit: 0d0595b50f84046d1ce2cccb969bd45739965403
      https://github.com/llvm/llvm-project/commit/0d0595b50f84046d1ce2cccb969bd45739965403
  Author: Alex Voicu <alexandru.voicu at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/lib/Basic/Targets/SPIR.h
    M clang/lib/CodeGen/Targets/SPIR.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/test/CodeGen/AMDGPU/amdgpu-atomic-float.c
    M clang/test/CodeGenCUDA/atomic-options.hip
    M clang/test/CodeGenHIP/amdgpu-flat-atomic-fadd.hip
    M clang/test/CodeGenHIP/amdgpu-global-atomic-fadd.hip
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    A llvm/test/CodeGen/SPIRV/amdgcnspirv-atomic-metadata-decoration.ll

  Log Message:
  -----------
  [SPIR-V] Encode Atomic metadata as UserSemantic string decoration (#193019)

AMDGPU uses metadata to guide atomic related optimisations. SPIR-V was
not handling it, which led to significant and spurious performance
differences. This patch fixes this oversight by encoding the metadata as
UserSemantic string decorations applied to the atomic instructions.


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

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

  Log Message:
  -----------
  [lldb/test] Fix shared library symlinks for remote testing (#189177)

When running tests on a remote device, framework convenience symlinks
created by test Makefiles (e.g. `$(BUILDDIR)/Framework` pointing to
`$(BUILDDIR)/Framework.framework/Framework`) cause launch failures.

`Platform::Install` recreates these as symlinks on the remote device
pointing to host build paths that don't exist, resulting in "No such
file or directory" from dyld.

This patch changes `LN_SF` in Makefile.rules to strip the common
directory prefix from the symlink source using `patsubst` so it produces
relative symlinks instead of absolute ones.

It also resolve symlinks with `os.path.realpath()` in
`registerSharedLibrariesWithTarget` before registering modules so that
`Platform::Install` sees a regular file and transfers the actual binary
content.

rdar://173566256

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


  Commit: 1a772bc616cf1acc04ba2f9affdafdfcb7e3a7be
      https://github.com/llvm/llvm-project/commit/1a772bc616cf1acc04ba2f9affdafdfcb7e3a7be
  Author: Feng Zou <feng.zou at intel.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/apx/ccmp.ll
    M llvm/test/CodeGen/X86/apx/ctest.ll
    M llvm/test/CodeGen/X86/freeze-binary.ll
    A llvm/test/CodeGen/X86/setcc-carry.ll
    A llvm/test/CodeGen/X86/setcc-poison.ll

  Log Message:
  -----------
  [X86] Improve FREEZE node elimination for SETCC operations (#192362)

This improves FREEZE node handling around SETCC and SETCC_CARRY
operations to enable better optimization, particularly for APX
CCMP/CTEST
pattern matching with fastmath comparisons.

Resolve https://github.com/llvm/llvm-project/issues/191716.


  Commit: 06a7d41eb12bd5c9b4f3fae94f31f644d1816688
      https://github.com/llvm/llvm-project/commit/06a7d41eb12bd5c9b4f3fae94f31f644d1816688
  Author: Eugene Epshteyn <eepshteyn at nvidia.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M flang/lib/Evaluate/check-expression.cpp
    M flang/test/Lower/call-copy-in-out.f90

  Log Message:
  -----------
  [flang] Disable copy-out to INTENT(IN) args (#192382)

Don't copy out to actual args that themselves happen to be INTENT(IN)
dummy args.
```
    subroutine test(a)
      real, intent(in) :: a(:)
      call require_contiguous_arg(a(1:n:2))  ! copy-in only, no copy-out
    end
```

---------

Co-authored-by: Claude Sonnet 4.6 <noreply at anthropic.com>


  Commit: b2ae992193e3c157b306f1067a5a30cadae9b7b0
      https://github.com/llvm/llvm-project/commit/b2ae992193e3c157b306f1067a5a30cadae9b7b0
  Author: Boyao Wang <wangboyao at bytedance.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZvzip.td
    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

  Log Message:
  -----------
  [RISCV][CodeGen] Add initial CodeGen support of vpair{e,o} (#192918)

Add initial support for vpair{e,o} instructions, which are included in
zvzip extension.
Doc:

https://github.com/ved-rivos/riscv-isa-manual/blob/zvzip/src/zvzip.adoc

https://github.com/riscv/riscv-opcodes/blob/master/extensions/unratified/rv_zvzip.


  Commit: 50916c4319a1ec9669f301a2863d8b36a0198621
      https://github.com/llvm/llvm-project/commit/50916c4319a1ec9669f301a2863d8b36a0198621
  Author: Jianjian Guan <jacquesguan at me.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenBuiltinRISCV.cpp
    A clang/test/CIR/CodeGenBuiltins/RISCV/riscv-zbb.c

  Log Message:
  -----------
  [CIR][RISCV] Support zbb builitin codegen (#188932)

Include 2 builtins: __builtin_riscv_orc_b_32 and
__builtin_riscv_orc_b_64.


  Commit: 96bc719fbad5a453edc388e4f5c77cfe101abf12
      https://github.com/llvm/llvm-project/commit/96bc719fbad5a453edc388e4f5c77cfe101abf12
  Author: Alexis Perry-Holby <aperry at lanl.gov>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M flang/docs/MeetingNotes/2026/2026-04-08.md
    A flang/docs/MeetingNotes/2026/2026-04-22.md

  Log Message:
  -----------
  [flang] Add Flang Community Call notes for 4/22/2026 (#193575)

Add Flang Community Call notes for 4/22/2026 and make one correction the
4/8/2026 notes


  Commit: 2855525c4a1f7c1e105b2b71a3c6b9b34f842f36
      https://github.com/llvm/llvm-project/commit/2855525c4a1f7c1e105b2b71a3c6b9b34f842f36
  Author: Fangrui Song <i at maskray.me>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M lld/ELF/ScriptLexer.cpp
    M lld/ELF/ScriptLexer.h
    M lld/ELF/ScriptParser.cpp
    A lld/test/ELF/linkerscript/include-mid-construct.s
    M lld/test/ELF/linkerscript/memory-include.test
    M lld/test/ELF/linkerscript/output-section-include.test
    M lld/test/ELF/linkerscript/section-include.test

  Log Message:
  -----------
  [ELF] Handle INCLUDE like a call stack (#193427)

The lexer maintains a stack of buffers, which allows a construct
started in an INCLUDE'd file to be closed by the parent. This produces
spurious acceptance of malformed scripts (e.g. a bare assignment with
no trailing `;` in the include, terminated by the parent's `;` after
`INCLUDE`) and undefined-behavior span computations in
`readAssignment`'s `commandString` (issue #190376).

Force each INCLUDE to fully parse its own content, similar to a call
stack frame. `ScriptLexer::lex` no longer auto-pops on EOF; the
`buffers` member is gone. `readInclude` takes a `function_ref<void()>`
callback, and the four call sites (top-level, SECTIONS, output
section, MEMORY) pass a context-appropriate parser.

With this, each buffer contains complete parser structures by
construction, so the `[oldS, curTok)` pointer range in
`readAssignment` no longer needs a guard.


  Commit: c74951c6c3074be23fd7b12843e1187ca98e98af
      https://github.com/llvm/llvm-project/commit/c74951c6c3074be23fd7b12843e1187ca98e98af
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/test/Other/new-pm-defaults.ll
    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:
  -----------
  Revert "Reapply "[JTS][Passes] Enable JTS By Default" (#193409)" (#193649)

Breaks asan buildbots
https://lab.llvm.org/buildbot/#/builders/52/builds/16717
This reverts commit bb762095af80273ed2db7509ebc2cae4613ab787 from
#193409.

Symbolized report
https://gist.github.com/vitalybuka/f60465c13ffad56b8870e87b0fc443ff
Probably false positive caused by pass, but can't tell for sure.


  Commit: abb4ff508e8fa504478a7415ffc9a04dcf8e8192
      https://github.com/llvm/llvm-project/commit/abb4ff508e8fa504478a7415ffc9a04dcf8e8192
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-23 (Thu, 23 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:
  -----------
  [LowerTypeTests] Add debug info to jump table entries (#192736)

When Control Flow Integrity (CFI) is enabled, jump tables are used to
redirect indirect calls. Previously, these jump table entries lacked
debug information, making it difficult for profilers and debuggers to
attribute execution time correctly.

Now stack trace, when stopped on jump table entry will looks like this:
```
#0: __ubsan_check_cfi_icall_jt at sanitizer/ubsan_interface.h:0
#1: c::c() (.cfi_jt) at sanitizer/ubsan_interface.h:0:0
#2: .cfi.jumptable.81 at sanitizer/ubsan_interface.h:0:0
```


  Commit: 2fe8966d029b2733272ee01feba529ea61bee6c2
      https://github.com/llvm/llvm-project/commit/2fe8966d029b2733272ee01feba529ea61bee6c2
  Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/docs/SPIRVUsage.rst

  Log Message:
  -----------
  [SPIR-V][docs] Document supported extensions missing from SPIRVUsage.rst (#193449)

Add entries for extensions that are actively used in the backend but
were not listed in the supported extensions table


  Commit: 60cd34d221751a7f3890dc7310a4a45b93028afb
      https://github.com/llvm/llvm-project/commit/60cd34d221751a7f3890dc7310a4a45b93028afb
  Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
    M llvm/test/CodeGen/SPIRV/image_dim.ll

  Log Message:
  -----------
  [SPIR-V] Fix OpTypeImage capability requirements for Vulkan (#192626)

Emit StorageImageMultisample for 2D multisampled storage images and
ImageMSArray for 2D multisampled arrayed images


  Commit: 2a7313a2ff42c510e73487816b6301abee35d3b1
      https://github.com/llvm/llvm-project/commit/2a7313a2ff42c510e73487816b6301abee35d3b1
  Author: Madhur Amilkanthwar <madhura at nvidia.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Analysis/IVDescriptors.cpp
    A llvm/test/Transforms/LoopVectorize/minmax-extra-outside-users.ll

  Log Message:
  -----------
  [LV] Relax OutOfLoopUses check in `getMinMaxRecurrence()` (#189906)

For more context of this patch, please see #182473. By relaxing,
`OutOfLoopUses` check, we can recognize more case for minmax reduction
and thus vectorize.


  Commit: 66beeecd4694ef95f56800b6fe827572dd035640
      https://github.com/llvm/llvm-project/commit/66beeecd4694ef95f56800b6fe827572dd035640
  Author: Jaydeep Chauhan <chauhan.jaydeep.ashwinbhai at intel.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp

  Log Message:
  -----------
  [NFC][GlobalISel] Use move capture for SmallVector in LegalityPredicates lambdas (#193464)

Fix lambda captures in `LegalityPredicates` to move `SmallVector`
instead of copying.


  Commit: a3f1035b48a0bf5129213b9c81e875d6e1ece1e4
      https://github.com/llvm/llvm-project/commit/a3f1035b48a0bf5129213b9c81e875d6e1ece1e4
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-23 (Thu, 23 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 "[LowerTypeTests] Add debug info to jump table entries" (#193663)

Reverts llvm/llvm-project#192736

Seems to cause buildbot failures in cross-project-tests, including on
the premerge postcommit builder.

https://lab.llvm.org/staging/#/builders/192/builds/28251


  Commit: 46bb3789ef6c1bea2ba0a31eaf2e56162f2f811f
      https://github.com/llvm/llvm-project/commit/46bb3789ef6c1bea2ba0a31eaf2e56162f2f811f
  Author: Fangrui Song <i at maskray.me>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

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

  Log Message:
  -----------
  [ScheduleDAG] Avoid duplicate worklist entries in ComputeDepth/ComputeHeight. NFC (#192023)

The old loop pushed every not-current predecessor in one sweep, so on
diamond-shaped DAGs a predecessor could be pushed while still on the
stack. Measured on clang -O2 -c sqlite3.i with the old algorithm
instrumented: ComputeDepth had 10.8% duplicate pushes (21.4% of calls
hit the issue).

Rewrite as an iterative post-order DFS that pushes one predecessor at a
time and breaks.


  Commit: 642d0167de9cb222c12f74cfa8861919337d99c5
      https://github.com/llvm/llvm-project/commit/642d0167de9cb222c12f74cfa8861919337d99c5
  Author: hanbeom <kese111 at gmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
    M llvm/test/CodeGen/WebAssembly/simd-bitmask.ll

  Log Message:
  -----------
  [WebAssembly] Fix wide bitmask fallback in performBitcastCombine (#190915)

The wide <N x i1> -> iN fallback in performBitcastCombine hardcoded
v16i1/i16 partial masks for every chunk. That is only valid for
16-lane chunks and can crash for cases such as v32i16, where each
concat operand is v8i16 and the partial mask should be v8i1/i8.

Derive the per-chunk mask and integer types from the actual concat
operand type when reconstructing the final scalar bitmask.

Fixed: https://github.com/llvm/llvm-project/issues/190306


  Commit: 968e34e09ab5bb859b9a4456477224f283d19f7e
      https://github.com/llvm/llvm-project/commit/968e34e09ab5bb859b9a4456477224f283d19f7e
  Author: vangthao95 <vang.thao at amd.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.h
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h
    M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.mfma.mir
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.bf16.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.i8.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.ll

  Log Message:
  -----------
  AMDGPU/GlobalISel: RegBankLegalize AGPR support and gfx908 MFMA rules (#192603)

Initial patch adding AGPR support for RegBankLegalize along with support
for gfx908 MFMA intrinsics.

There is a regression with extra COPYs that will be addressed in future
patches.


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

  Changed paths:
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/lib/Driver/ModulesDriver.cpp
    M clang/test/Driver/modules-driver-dep-graph.cpp
    M clang/test/Driver/modules-driver-duplicate-named-module.cpp
    A clang/test/Driver/modules-driver-filetype-mismatch.cpp

  Log Message:
  -----------
  [clang][modules-driver] Reject module definitions in non-module inputs (#193629)

This changes the modules driver to only allow files of type `-x
c++module` to define a module.
This makes it easier to add support for `-fno-modules-reduced-bmi` later
on and better follows Clang conventions.

Addresses:
https://github.com/llvm/llvm-project/pull/193312#discussion_r3122860347


  Commit: 26cc17f4bcdebe56e05c03e02ca12df9f96f96ba
      https://github.com/llvm/llvm-project/commit/26cc17f4bcdebe56e05c03e02ca12df9f96f96ba
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M libc/include/llvm-libc-types/struct_dl_phdr_info.h

  Log Message:
  -----------
  [libc] Drop elf.h include from dl_phdr_info header

This is a public header which can cause problems in some build
configurations (e.g., clang fails to find elf.h in my build
configuration given it is hermetic). All the types that are actually
needed in the file are also included properly through the internal
headers through link-macros.h.

Reviewers: frobtech, michaelrj-google, vonosmas, jtstogel

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


  Commit: 85c13cea0ba6410f1779038bba28d778b7f07eb8
      https://github.com/llvm/llvm-project/commit/85c13cea0ba6410f1779038bba28d778b7f07eb8
  Author: Jean-Didier PAILLEUX <jean-didier.pailleux at sipearl.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M flang/lib/Semantics/check-deallocate.cpp
    A flang/test/Semantics/deallocate08.f90

  Log Message:
  -----------
  [Flang][Semantics] Allow EVENT_TYPE, LOCK_TYPE and NOTIFY TYPE to be deallocate (#192940)

It appears that variables of type `EVENT_TYPE`, `LOCK_TYPE`, and
`NOTIFY_TYPE` are not allowed in the DEALLOCATE statement (but allowed
in ALLOCATE).
The standard does not specify that this type of variable cannot be
ALLOCATABLE and/or cannot be called within a DEALLOCATE


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

  Changed paths:
    M libc/docs/full_host_build.rst

  Log Message:
  -----------
  [libc] Readd instructions on building kernel headers from sources

These existed in this page before
aa0e429576cfb496e66f6bbe76df8982aab6b083. Readd them given I enjoyed
being able to copy and paste them and they're short/simple enough that I
don't think there's a good reason not to just include them.

Reviewers: kaladron, michaelrj-google, nickdesaulniers

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


  Commit: e3b3706ceeea94ade3557275628a0e589e10ba24
      https://github.com/llvm/llvm-project/commit/e3b3706ceeea94ade3557275628a0e589e10ba24
  Author: Mariusz Borsa <wrotki at msn.com>
  Date:   2026-04-22 (Wed, 22 Apr 2026)

  Changed paths:
    M compiler-rt/include/sanitizer/asan_interface.h
    M compiler-rt/lib/asan/AIX/asan.link_with_main_exec.txt
    M compiler-rt/lib/asan/asan_errors.cpp
    M compiler-rt/lib/asan/asan_errors.h
    M compiler-rt/lib/asan/asan_interface.inc
    M compiler-rt/lib/asan/asan_report.cpp
    M compiler-rt/lib/asan/asan_report.h
    M compiler-rt/lib/asan/asan_rtl.cpp
    R compiler-rt/test/asan/TestCases/assume_dereferenceable.cpp
    R compiler-rt/test/asan/TestCases/assume_dereferenceable_fully_poisoned.cpp
    R compiler-rt/test/asan/TestCases/assume_dereferenceable_halt_on_error.cpp
    R compiler-rt/test/asan/TestCases/assume_dereferenceable_pass.cpp
    M compiler-rt/test/asan/TestCases/debug_report.cpp
    M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
    R llvm/test/Instrumentation/AddressSanitizer/assume-dereferenceable.ll

  Log Message:
  -----------
  Revert "[compiler-rt][asan] Add asan checks for __builtin_assume_dereferencable" (#193655)

Reverts llvm/llvm-project#190871

Why: it breaks tests, no reaction when I pointed it out:


https://ci.swift.org/job/llvm.org/job/clang-stage1-RA-as/job/main/1412/#showFailuresLink

Its looks like you're adding new instrumentation/entry points to ASAN -
can you make it conditional so it doesn't affect the test?

Here's the original PR where the test was defined:
https://reviews.llvm.org/D143675


  Commit: 739c45916d4c6d3c64e9d4e215e12f8f8a917a72
      https://github.com/llvm/llvm-project/commit/739c45916d4c6d3c64e9d4e215e12f8f8a917a72
  Author: Naveen Seth Hanig <naveen.hanig at outlook.com>
  Date:   2026-04-23 (Thu, 23 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:
  -----------
  [clang][modules-driver] Add support for C++ named modules and `import std` (#193312)

This patch 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: c1ff819a184e55681406af969b0355b3f07740ff
      https://github.com/llvm/llvm-project/commit/c1ff819a184e55681406af969b0355b3f07740ff
  Author: zackc6 <112835067+zackc6 at users.noreply.github.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
    M mlir/test/Target/LLVMIR/llvmir.mlir

  Log Message:
  -----------
  [mlir][LLVMIR] Extend FP array-splat constant lowering (#192378)

Handle floating-point compatible array splats in the ConstantDataArray
path using bit-pattern based ConstantDataArray::getFP construction,
instead of only specializing integer element types.


  Commit: dd13552783cea190f569b369eb2fc879b6336398
      https://github.com/llvm/llvm-project/commit/dd13552783cea190f569b369eb2fc879b6336398
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-23 (Thu, 23 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:
  -----------
  Reland: [LowerTypeTests] Add debug info to jump table entries (#193670)

When Control Flow Integrity (CFI) is enabled, jump tables are used to
redirect indirect calls. Previously, these jump table entries lacked
debug information, making it difficult for profilers and debuggers to
attribute execution time correctly.

Now stack trace, when stopped on jump table entry will looks like this:
```
#0: __ubsan_check_cfi_icall_jt at sanitizer/ubsan_interface.h:0
#1: c::c() (.cfi_jt) at sanitizer/ubsan_interface.h:0:0
#2: .cfi.jumptable.81 at sanitizer/ubsan_interface.h:0:0
```

This is reland of #192736, reverted with #193663.
This version don't update debug info for "Cross-DSO CFI" mode.


  Commit: 9152f212208b3b9f4bc7e5336c5e85aa80c9c02a
      https://github.com/llvm/llvm-project/commit/9152f212208b3b9f4bc7e5336c5e85aa80c9c02a
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M compiler-rt/cmake/Modules/AddCompilerRT.cmake

  Log Message:
  -----------
  [compiler-rt] Set CMAKE_INSTALL_MESSAGE to NEVER for custom libcxx (#193666)

It removes like 90% of logs my typical local build.


  Commit: 582db3c2371d062a5fc7f7a4cafa9878830a97fb
      https://github.com/llvm/llvm-project/commit/582db3c2371d062a5fc7f7a4cafa9878830a97fb
  Author: Naveen Seth Hanig <naveen.hanig at outlook.com>
  Date:   2026-04-23 (Thu, 23 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 "[clang][modules-driver] Add support for C++ named modules and `import std`" (#193677)

Reverts llvm/llvm-project#193312 due to a failing test
(Driver/modules-driver-import-std.cpp)


  Commit: 3f6aa4dd8052003cbf563986f02910c7699f9d21
      https://github.com/llvm/llvm-project/commit/3f6aa4dd8052003cbf563986f02910c7699f9d21
  Author: Phoebe Wang <phoebe.wang at intel.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetInstrInfo.h
    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/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.h
    M llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
    M llvm/lib/Target/SystemZ/SystemZInstrInfo.h
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86InstrInfo.h

  Log Message:
  -----------
  [CodeGen][NFC] Remove InsertPt since it's always the same as MI (#193668)


  Commit: 019cf510ba39da50d5122fbe151744d6ee98a63b
      https://github.com/llvm/llvm-project/commit/019cf510ba39da50d5122fbe151744d6ee98a63b
  Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

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

  Log Message:
  -----------
  [RISCV][NFC] Rename isZipEven/isZipOdd to isPairEven/isPairOdd (#193674)

To match the terminologies in Zvzip extension.

And some comments are changed accordingly.


  Commit: 52e5d65561c5822549a3da051f176ae2de085cac
      https://github.com/llvm/llvm-project/commit/52e5d65561c5822549a3da051f176ae2de085cac
  Author: David Green <david.green at arm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/test/CodeGen/AArch64/bf16-instructions.ll
    M llvm/test/CodeGen/AArch64/bf16-v4-instructions.ll
    M llvm/test/CodeGen/AArch64/bf16-v8-instructions.ll

  Log Message:
  -----------
  [AArch64][GlobalISel] Add fpext bf16 legalization. (#193342)

These are simple, as they lower straight to shifts and so are always
available.


  Commit: 4209849cd3dbe728e549316b346b1c1832b2dcec
      https://github.com/llvm/llvm-project/commit/4209849cd3dbe728e549316b346b1c1832b2dcec
  Author: Sergei Druzhkov <serzhdruzhok at gmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M lldb/test/API/tools/lldb-dap/locations/TestDAP_locations.py
    M lldb/test/API/tools/lldb-dap/locations/main.cpp
    M lldb/tools/lldb-dap/Handler/LocationsRequestHandler.cpp
    M lldb/tools/lldb-dap/JSONUtils.cpp

  Log Message:
  -----------
  [lldb-dap] Add valueLocationReference for member function pointers (#186837)

Added `valueLocationReference` for member function pointers. Also
changed `GetValueAsAddress`, because original implementation doesn't
work for member function pointers.


  Commit: 8e2c42b3bcb5cc818dd3882a510fb4f3dc5fdfc5
      https://github.com/llvm/llvm-project/commit/8e2c42b3bcb5cc818dd3882a510fb4f3dc5fdfc5
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/AArch64/max-vf-for-interleaved.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/reduction-small-size.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-cond-inv-loads.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-extract-last-veclane.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-gather-scatter.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-inductions.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-large-strides.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-masked-loadstore.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-vector-reverse.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-widen-phi.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse-mask4.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse.ll
    M llvm/test/Transforms/LoopVectorize/AMDGPU/packed-math.ll
    M llvm/test/Transforms/LoopVectorize/ARM/mve-reduction-predselect.ll
    M llvm/test/Transforms/LoopVectorize/ARM/pointer_iv.ll
    M llvm/test/Transforms/LoopVectorize/SystemZ/addressing.ll
    M llvm/test/Transforms/LoopVectorize/X86/parallel-loops.ll
    M llvm/test/Transforms/LoopVectorize/X86/pr55096-scalarize-add.ll
    M llvm/test/Transforms/LoopVectorize/bsd_regex.ll
    M llvm/test/Transforms/LoopVectorize/extract-last-veclane.ll
    M llvm/test/Transforms/LoopVectorize/float-induction.ll
    M llvm/test/Transforms/LoopVectorize/global_alias.ll
    M llvm/test/Transforms/LoopVectorize/if-conversion-nest.ll
    M llvm/test/Transforms/LoopVectorize/invariant-store-vectorization-2.ll
    M llvm/test/Transforms/LoopVectorize/invariant-store-vectorization.ll
    M llvm/test/Transforms/LoopVectorize/multiple-address-spaces.ll
    M llvm/test/Transforms/LoopVectorize/non-const-n.ll
    M llvm/test/Transforms/LoopVectorize/reduction-inloop-cond.ll
    M llvm/test/Transforms/LoopVectorize/reduction-inloop-min-max.ll
    M llvm/test/Transforms/LoopVectorize/reduction-inloop-pred.ll
    M llvm/test/Transforms/LoopVectorize/reduction-inloop-uf4.ll
    M llvm/test/Transforms/LoopVectorize/reduction-predselect.ll
    M llvm/test/Transforms/LoopVectorize/reduction.ll
    M llvm/test/Transforms/LoopVectorize/runtime-check-readonly.ll
    M llvm/test/Transforms/LoopVectorize/runtime-check.ll
    M llvm/test/Transforms/LoopVectorize/scalable-inductions.ll
    M llvm/test/Transforms/LoopVectorize/store-shuffle-bug.ll
    M llvm/test/Transforms/LoopVectorize/tbaa-nodep.ll
    M llvm/test/Transforms/LoopVectorize/trunc-reductions.ll

  Log Message:
  -----------
  [LV][NFC] Stop running DCE pass in tests (#193521)

The additional DCE pass made no difference to the output, so I've
removed it.


  Commit: 5a45fbb35ea32e01de7aec4defc7c3e11c204eaf
      https://github.com/llvm/llvm-project/commit/5a45fbb35ea32e01de7aec4defc7c3e11c204eaf
  Author: Brandon Wu <brandon.wu at sifive.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-setcc.ll
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-lmul-max.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-fp-vp.ll

  Log Message:
  -----------
  [llvm][RISCV] Split LMUL=8 fixed vector fcmp for zvfhmin and zvfbfmin (#193424)

Currently we don't handle any of illegal promoted fixed vectors for
zvfhmin and zvfbfmin we expand it and make general legalizer handle it.
However some of operators are split and some are scalarized depends on
operator type, in this case we need to split it manually.


  Commit: 5673b0215c06e93ff688baad80820f1decd377c0
      https://github.com/llvm/llvm-project/commit/5673b0215c06e93ff688baad80820f1decd377c0
  Author: Kito Cheng <kito.cheng at sifive.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/test/MC/RISCV/XTHeadVdot-valid.s
    M llvm/test/MC/RISCV/rvv/add.s
    M llvm/test/MC/RISCV/rvv/and.s
    M llvm/test/MC/RISCV/rvv/clip.s
    M llvm/test/MC/RISCV/rvv/compare.s
    M llvm/test/MC/RISCV/rvv/convert.s
    M llvm/test/MC/RISCV/rvv/div.s
    M llvm/test/MC/RISCV/rvv/ext.s
    M llvm/test/MC/RISCV/rvv/fadd.s
    M llvm/test/MC/RISCV/rvv/fcompare.s
    M llvm/test/MC/RISCV/rvv/fdiv.s
    M llvm/test/MC/RISCV/rvv/fmacc.s
    M llvm/test/MC/RISCV/rvv/fminmax.s
    M llvm/test/MC/RISCV/rvv/fmul.s
    M llvm/test/MC/RISCV/rvv/fmv.s
    M llvm/test/MC/RISCV/rvv/fothers.s
    M llvm/test/MC/RISCV/rvv/freduction.s
    M llvm/test/MC/RISCV/rvv/fsub.s
    M llvm/test/MC/RISCV/rvv/load.s
    M llvm/test/MC/RISCV/rvv/macc.s
    M llvm/test/MC/RISCV/rvv/mask.s
    M llvm/test/MC/RISCV/rvv/minmax.s
    M llvm/test/MC/RISCV/rvv/mul.s
    M llvm/test/MC/RISCV/rvv/mv.s
    M llvm/test/MC/RISCV/rvv/or.s
    M llvm/test/MC/RISCV/rvv/others.s
    M llvm/test/MC/RISCV/rvv/reduction.s
    M llvm/test/MC/RISCV/rvv/shift.s
    M llvm/test/MC/RISCV/rvv/sign-injection.s
    M llvm/test/MC/RISCV/rvv/store.s
    M llvm/test/MC/RISCV/rvv/sub.s
    M llvm/test/MC/RISCV/rvv/vsetvl-alt.s
    M llvm/test/MC/RISCV/rvv/vsetvl.s
    M llvm/test/MC/RISCV/rvv/xor.s
    M llvm/test/MC/RISCV/rvv/xsfmm.s
    M llvm/test/MC/RISCV/rvv/xsfvcp.s
    M llvm/test/MC/RISCV/rvv/xsfvfnrclip.s
    M llvm/test/MC/RISCV/rvv/xsfvfwmacc.s
    M llvm/test/MC/RISCV/rvv/xsfvqmacc.s
    M llvm/test/MC/RISCV/rvv/zvabd.s
    M llvm/test/MC/RISCV/rvv/zvbb.s
    M llvm/test/MC/RISCV/rvv/zvbc.s
    M llvm/test/MC/RISCV/rvv/zvdot4a8i.s
    M llvm/test/MC/RISCV/rvv/zvfbfmin.s
    M llvm/test/MC/RISCV/rvv/zvfbfwma.s
    M llvm/test/MC/RISCV/rvv/zvfofp8min.s
    M llvm/test/MC/RISCV/rvv/zvkb.s
    M llvm/test/MC/RISCV/rvv/zvkg.s
    M llvm/test/MC/RISCV/rvv/zvkgs.s
    M llvm/test/MC/RISCV/rvv/zvkned.s
    M llvm/test/MC/RISCV/rvv/zvknh.s
    M llvm/test/MC/RISCV/rvv/zvksed.s
    M llvm/test/MC/RISCV/rvv/zvksh.s
    M llvm/test/MC/RISCV/rvv/zvlsseg.s
    M llvm/test/MC/RISCV/xsfvfexp.s
    M llvm/test/MC/RISCV/xsfvfexpa.s
    M llvm/test/MC/RISCV/xsmtvdot-valid.s
    M llvm/test/MC/RISCV/zibi-valid.s

  Log Message:
  -----------
  [RISCV][MC] Remove tautological CHECK-UNKNOWN disassembly checks (NFC) (#193682)

Many RISC-V MC tests assemble with `--mattr=+v` (or another extension),
then run llvm-objdump on the result *without* `--mattr=`, expecting the
disassembler to print `<unknown>` for every instruction. These
CHECK-UNKNOWN lines only restate the encoded bytes that are already
verified by CHECK-ENCODING from `llvm-mc -show-encoding`, so they do not
add coverage.

Drop the CHECK-UNKNOWN RUN lines and check directives from the affected
tests to reduce noise and make the tests easier to read. The remaining
CHECK-INST / CHECK-ENCODING / CHECK-ERROR coverage is unchanged.

This is a preparatory cleanup that makes the upcoming llvm-objdump
per-region disassembly change (using ISA mapping symbols #193448) easier
to review.

Assisted-by: Claude Opus
I use Opus to write commit message...:P


  Commit: 6a06c8bdcbdaa49496cb70ab1c56b5a750327c0c
      https://github.com/llvm/llvm-project/commit/6a06c8bdcbdaa49496cb70ab1c56b5a750327c0c
  Author: Amina Chabane <amina.chabane at arm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

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

  Log Message:
  -----------
  [BOLT][AArch64] Refuse to run ThreeWayBranch pass (#193252)

On AArch64, `--three-way-branch` produces a crash as it is not
implemented. This patch adds a guard
and updates relevant test(s).


  Commit: 9baca0126178f4ae47aab86d37558c7b374deae1
      https://github.com/llvm/llvm-project/commit/9baca0126178f4ae47aab86d37558c7b374deae1
  Author: Longsheng Mou <longshengmou at gmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M mlir/lib/Dialect/Tensor/Transforms/CMakeLists.txt
    A mlir/lib/Dialect/Tensor/Transforms/DropRedundantRankExpansionPatterns.cpp
    M mlir/lib/Dialect/Tensor/Transforms/FoldTensorSubsetOps.cpp
    R mlir/lib/Dialect/Tensor/Transforms/MergeConsecutiveInsertExtractSlicePatterns.cpp
    M mlir/test/Dialect/Tensor/fold-consecutive-insert-extract-slice.mlir
    M mlir/test/Dialect/Tensor/fold-tensor-subset-ops.mlir

  Log Message:
  -----------
  [mlir][tensor] Consolidate tensor fold patterns and rename related file (#192820)

This PR moves `MergeConsecutiveExtractSlice` from `MergeConsecutiveInsertExtractSlicePatterns.cpp` to `FoldTensorSubsetOps.cpp`, and removes the duplicate `MergeConsecutiveInsertSlice` pattern in favor of `InsertSliceOfInsertSliceFolder`, which already exists in `FoldTensorSubsetOps.cpp` and provides equivalent functionality with greater stability. Since the merge-related patterns have been fully migrated out, `MergeConsecutiveInsertExtractSlicePatterns.cpp` is renamed to `DropRedundantRankExpansionPatterns.cpp` to better reflect its remaining responsibilities.


  Commit: 1bf0787a1638dff7cdf3dbd87191060b8c2a8dc2
      https://github.com/llvm/llvm-project/commit/1bf0787a1638dff7cdf3dbd87191060b8c2a8dc2
  Author: David Spickett <david.spickett at arm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M lldb/source/Commands/CommandObjectSource.cpp
    M lldb/source/Commands/CommandObjectTarget.cpp
    M lldb/source/Commands/CommandObjectThread.cpp
    M lldb/source/Commands/CommandObjectThreadUtil.cpp
    M lldb/source/Commands/CommandObjectTrace.cpp
    M lldb/source/Commands/CommandObjectType.cpp
    M lldb/source/Commands/CommandObjectWatchpoint.cpp
    M lldb/source/Commands/CommandObjectWatchpointCommand.cpp
    M lldb/source/Interpreter/CommandInterpreter.cpp
    M lldb/source/Plugins/LanguageRuntime/CPlusPlus/CommandObjectCPlusPlus.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
    M lldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.cpp

  Log Message:
  -----------
  [lldb] Remove trailing newlines from AppendErrorWithFormat calls (part 3) (#193527)

Follow up to #193168.

This call adds a newline if there isn't one. Changing these will
eventually let us always add a newline, which is in line with
the other methods on CommandReturnObject.

This is a small part of calls found with:
* VSCode search for
`(\.AppendErrorWithFormat\(([\s\r\n]+)?"(?:(?:\\.|[^"\\])*))\\n"` and
replace with `$1"`.
* Asserting that the last character of the format string is not a
newline.
* Manual inspection.


  Commit: 2aadaae9a0ba8d4858897e8453ceb891cd27a4c1
      https://github.com/llvm/llvm-project/commit/2aadaae9a0ba8d4858897e8453ceb891cd27a4c1
  Author: Jacek Caban <jacek at codeweavers.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M lld/MinGW/Driver.cpp
    M lld/MinGW/Options.td
    M lld/test/MinGW/driver.test

  Log Message:
  -----------
  [LLD][MinGW] Introduce --native-def argument (#193598)

This is the MinGW counterpart of -defarm64native.

When --native-def is not specified, pass the input def file as
-defarm64native on the ARM64X target as well. This reflects the most
common intent when providing a def file for ARM64X and, since the
regular def file is already passed as an input file, it feels consistent
to allow a proper build without requiring additional arguments. This can
be overridden by passing an empty value with --native-def= if using only
the EC def file is desired.


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

  Changed paths:
    A llvm/test/CodeGen/X86/pr193475.ll

  Log Message:
  -----------
  [X86] Add crash test coverage for #193475 (#193690)


  Commit: 5502053d578657d2ec6f69b06aa4e0de3e64fc10
      https://github.com/llvm/llvm-project/commit/5502053d578657d2ec6f69b06aa4e0de3e64fc10
  Author: Nathiyaa Sengodan <133644025+Nathiyaa-Sengodan at users.noreply.github.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
    M llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
    A llvm/test/Transforms/GVN/PRE/load-pre-num-unavailable-preds-crash.ll

  Log Message:
  -----------
  [MemoryDependenceAnalysis] Disambiguate visited state in non-local pointer dep tracking (#193220)

NonLocalPointerDepVisited used nullptr for both "not visited basic block
in current epoch" and "visited, but PHI translation failed". This
ambiguity could cause incorrect predecessor-state handling in non-local
dependency queries and trigger a GVN LoadPRE assertion crash.

Use NonLocalPointerDepEpoch to explicitly check visited state instead of
inferring from the stored pointer value

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


  Commit: de9830fe40bf0bcca05dccd9fb9bcd983eaea3bf
      https://github.com/llvm/llvm-project/commit/de9830fe40bf0bcca05dccd9fb9bcd983eaea3bf
  Author: lijinpei-amd <jinpli at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

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

  Log Message:
  -----------
  [InstCombine] Treat sdiv as udiv in foldICmpDivConstant when both operands are non-negative (#188731)

When foldICmpDivConstant encounters a signedness mismatch between the
sdiv and the icmp (e.g. icmp ugt (sdiv X, 64), 2), it previously bailed
out. This patch allows it to proceed by checking whether the sdiv's
dividend is known non-negative (via assumes/known bits) and the divisor
is a positive constant. In that case, sdiv is equivalent to udiv, so we
set DivIsSigned=false and let the existing udiv folding handle the rest.

---------

Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>


  Commit: 378cd9a307c266ea3e5b8b0439cfc63f3c56f630
      https://github.com/llvm/llvm-project/commit/378cd9a307c266ea3e5b8b0439cfc63f3c56f630
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M libcxx/include/__format/escaped_output_table.h
    M libcxx/utils/generate_escaped_output_table.py

  Log Message:
  -----------
  [libc++] Avoid using ranges::upper_bound in <format> (#186781)

The `ranges` algorithms take a significant time to instantiate.
Replacing `ranges::upper_bound` with `std::upper_bound` reduces the time
to parse `<format>` by ~50ms, or 10%.


  Commit: 7425ab9d95776777959767b6054024bd1725ae76
      https://github.com/llvm/llvm-project/commit/7425ab9d95776777959767b6054024bd1725ae76
  Author: Folkert de Vries <folkert at folkertdev.nl>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    A llvm/test/CodeGen/AArch64/aarch64_be-shuffle-vector.ll
    R llvm/test/CodeGen/AArch64/fix-shuffle-vector-be-rev.ll

  Log Message:
  -----------
  [AArch64] Fix `shufflevector` miscompilation on `aarch64_be` (#193076)

A function like 

```llvm
define <4 x i16> @xtn_shuffle_even_v8i16(<8 x i16> %a) {
entry:
  %r = shufflevector <8 x i16> %a, <8 x i16> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  ret <4 x i16> %r
}
```

will use the `xtn` instruction, which for each 32-bit vector element
keeps only the lower 16 bits, so effectively this is a truncation.
However, if the vector actually has 16-bit elements, then the conversion
from a shuffle to a truncation is only valid on LE, not on BE. On BE,
`uzp1` should be used instead. So this PR moves some logic to right
after a check for LE, so that BE does not miscompile.

I filed this as an issue on `rust-lang-rust` as
https://github.com/rust-lang/rust/issues/155459, and we had some
discussion at [#t-libs/stdarch > `simd_shuffle!` behaves
strangely on
`aarch64_be`](https://rust-lang.zulipchat.com/#narrow/channel/208962-t-libs.2Fstdarch/topic/.60simd_shuffle.21.60.20behaves.20strangely.20on.20.60aarch64_be.60/with/587766433).


  Commit: 124fd5997e5f73289edd798021af59e89d94b7fd
      https://github.com/llvm/llvm-project/commit/124fd5997e5f73289edd798021af59e89d94b7fd
  Author: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Analysis/DependenceAnalysis.cpp
    R llvm/test/Analysis/DependenceAnalysis/monotonicity-cast.ll
    R llvm/test/Analysis/DependenceAnalysis/monotonicity-delinearize.ll
    R llvm/test/Analysis/DependenceAnalysis/monotonicity-invariant.ll
    R llvm/test/Analysis/DependenceAnalysis/monotonicity-loop-guard.ll
    R llvm/test/Analysis/DependenceAnalysis/monotonicity-no-wrap-flags.ll
    R llvm/test/Analysis/DependenceAnalysis/non-monotonic.ll

  Log Message:
  -----------
  [DA] Remove monotonicity-related code and tests (#193697)

The concept of monotonicity was introduced in #162280 to abstract the
assumptions used in dependence tests. However, for the ZIV / SIV / RDIV
tests, this concept is excessive and not meaningful. For the MIV tests,
I believe such a concept is necessary, but since we have decided to
disable the Banerjee MIV test for now (see #174733), monotonicity has
effectively become a maintenance burden. Let's clean it for the time
being and reintroduce it only when we truly need it.

Discussion: #176367


  Commit: d0a38203bf2f4c2a380f9efc7f33b4dc4858d63f
      https://github.com/llvm/llvm-project/commit/d0a38203bf2f4c2a380f9efc7f33b4dc4858d63f
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp

  Log Message:
  -----------
  [NFC] Remove assert from AArch64TargetLowering::LowerCTTZ. (#193474)

The assert is overly complex and pretty much boils down to "true". In
the unlikely event it would fire the lowering is perfectly safe anyway.


  Commit: 57c10b0b8032bfcbd39290e44f11c49b684f1c3a
      https://github.com/llvm/llvm-project/commit/57c10b0b8032bfcbd39290e44f11c49b684f1c3a
  Author: Tom Weaver <43210711+TomWeaver18 at users.noreply.github.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/test/Parser/macro-braces-recovery.cpp

  Log Message:
  -----------
  Add C++20 diagnostic to macro-braces-recovery.cpp. (#192654)

Add C++20 diagnostic to macro-braces-recovery.cpp.

For C++17 (clang's default standard) this test passes fine. For C++20 or
above standards as default this test produces an additional diagnostic
for reverse order candidate conversion functions.

To fix this I've added a --std=c++17 to the original run line,
introduced a second run line for C++20 and a cxx20-note expectation for
the new language spec diagnostic.


  Commit: 51325ba110fb4027d3bbf47a7477edb8d789c51d
      https://github.com/llvm/llvm-project/commit/51325ba110fb4027d3bbf47a7477edb8d789c51d
  Author: Zeyi Xu <mitchell.xu2 at gmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp
    M clang-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape-treat-functions-without-specification-as-throwing.cpp

  Log Message:
  -----------
  [clang-tidy] Fix FP in bugprone-exception-escape for bodyless non-throwing functions (#192658)

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


  Commit: de281fe220550204ce1bba0973cfa13a770ac662
      https://github.com/llvm/llvm-project/commit/de281fe220550204ce1bba0973cfa13a770ac662
  Author: Jonas Paulsson <paulson1 at linux.ibm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
    M llvm/test/Analysis/CostModel/SystemZ/bitcast.ll
    M llvm/test/Analysis/CostModel/SystemZ/cmp-mem.ll
    M llvm/test/Analysis/CostModel/SystemZ/divrem-pow2.ll
    M llvm/test/Analysis/CostModel/SystemZ/divrem-reg.ll
    M llvm/test/Analysis/CostModel/SystemZ/int-operands-extcost.ll
    M llvm/test/Analysis/CostModel/SystemZ/logicalop.ll
    M llvm/test/Analysis/CostModel/SystemZ/reduce-and.ll
    M llvm/test/Analysis/CostModel/SystemZ/reduce-or.ll
    M llvm/test/Analysis/CostModel/SystemZ/struct-cost-crash.ll
    M llvm/test/Analysis/CostModel/SystemZ/vector-reductions.ll
    M llvm/test/Transforms/LoopVectorize/SystemZ/branch-for-predicated-block.ll
    M llvm/test/Transforms/LoopVectorize/SystemZ/scalar-steps-with-users-demanding-all-lanes-and-first-lane-only.ll

  Log Message:
  -----------
  [SystemZ] Implement getCFInstrCost(). (#191017)

Implement SystemZTTIImpl::getCFInstrCost() they way it is done for X86 and
others - let these instructions be free with the cost kind TCK_RecipThroughput.


  Commit: 848be2d800db6baa01c227cfd563d85d7766c97f
      https://github.com/llvm/llvm-project/commit/848be2d800db6baa01c227cfd563d85d7766c97f
  Author: Jeff Bailey <jbailey at raspberryginger.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M libc/utils/libctest/format.py

  Log Message:
  -----------
  Add missed variable change from a refactor (#193684)

extra_args got renamed to test_args.


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

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

  Log Message:
  -----------
  AMDGPU: Set transient stack alignment to 4 (#193517)


  Commit: e3ebeeca9531d2e29196f16ec31c96cbc683d3e2
      https://github.com/llvm/llvm-project/commit/e3ebeeca9531d2e29196f16ec31c96cbc683d3e2
  Author: Paweł Bylica <pawel at hepcolgum.band>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/CodeGen/ModuleBuilder.cpp
    A clang/test/CoverageMapping/consteval.cpp

  Log Message:
  -----------
  [Coverage] Skip coverage mapping for consteval member functions (#190870)

Static consteval member functions were incorrectly getting a coverage
mapping with zero count, making them appear as uncovered lines. Free
consteval functions were already correctly excluded because
EmitTopLevelDecl returns early for immediate functions.

The fix adds an isImmediateFunction() check in
HandleInlineMemberFunction before adding deferred coverage mappings,
consistent with the top-level check.

Fixes #164448.


  Commit: 7e9561ffd11d4713a70149d689d262bfa56998b7
      https://github.com/llvm/llvm-project/commit/7e9561ffd11d4713a70149d689d262bfa56998b7
  Author: Jonas Paulsson <paulson1 at linux.ibm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
    M llvm/test/Transforms/LoopVectorize/SystemZ/addressing.ll
    M llvm/test/Transforms/LoopVectorize/SystemZ/vectorized-epilogue-loop.ll

  Log Message:
  -----------
  [SystemZ] Enable LoopVectorizer interleaving for vectorized loops. (#184306)

This reduced the number of tiny loops and helps performance.


  Commit: 1f332ae4f1b33f82590fffb30922185e20a6eae2
      https://github.com/llvm/llvm-project/commit/1f332ae4f1b33f82590fffb30922185e20a6eae2
  Author: Alexander Kornienko <alexfh at google.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M libunwind/src/CompactUnwinder.hpp

  Log Message:
  -----------
  Fix -Wformat diagnostic after #190965 (#193704)

Fixes libunwind compiler diagnostic when building with clang after
034d4dcad6396d1241e8262e69871b8d61da7e4f:
```
In file included from libunwind/src/libunwind.cpp:31:
In file included from libunwind/src/UnwindCursor.hpp:52:
libunwind/src/CompactUnwinder.hpp:339:46: error: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Werror,-Wformat]
  338 |                            "function starting at 0x%llX",
      |                                                    ~~~~
      |                                                    %lX
  339 |                             compactEncoding, functionStart);
      |                                              ^~~~~~~~~~~~~
libunwind/src/config.h:215:63: note: expanded from macro '_LIBUNWIND_DEBUG_LOG'
  215 |   #define _LIBUNWIND_DEBUG_LOG(msg, ...)  _LIBUNWIND_LOG(msg, __VA_ARGS__)
      |                                                          ~~~  ^~~~~~~~~~~
libunwind/src/config.h:181:45: note: expanded from macro '_LIBUNWIND_LOG'
  181 |     fprintf(stderr, "libunwind: " msg "\n", __VA_ARGS__);                      \
      |                                   ~~~       ^~~~~~~~~~~
In file included from libunwind/src/libunwind.cpp:31:
In file included from libunwind/src/UnwindCursor.hpp:52:
libunwind/src/CompactUnwinder.hpp:458:39: error: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Werror,-Wformat]
  457 |                            "function starting at 0x%llX",
      |                                                    ~~~~
      |                                                    %lX
  458 |                             encoding, functionStart);
      |                                       ^~~~~~~~~~~~~
libunwind/src/config.h:215:63: note: expanded from macro '_LIBUNWIND_DEBUG_LOG'
  215 |   #define _LIBUNWIND_DEBUG_LOG(msg, ...)  _LIBUNWIND_LOG(msg, __VA_ARGS__)
      |                                                          ~~~  ^~~~~~~~~~~
libunwind/src/config.h:181:45: note: expanded from macro '_LIBUNWIND_LOG'
  181 |     fprintf(stderr, "libunwind: " msg "\n", __VA_ARGS__);                      \
      |                                   ~~~       ^~~~~~~~~~~
```


  Commit: d19e954b83cb497c03cccb0e9874cb9f1a51b18d
      https://github.com/llvm/llvm-project/commit/d19e954b83cb497c03cccb0e9874cb9f1a51b18d
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/IR/Constants.cpp

  Log Message:
  -----------
  [LLVM] Make -use-constant-fp-for-fixed-length-splat the default. (#193264)


  Commit: 4f0af7adaac9310148ca90b824171703e822b58e
      https://github.com/llvm/llvm-project/commit/4f0af7adaac9310148ca90b824171703e822b58e
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/include/llvm/CodeGen/SelectionDAG.h
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    A llvm/test/CodeGen/AArch64/partial-reduction-sub-fp.ll
    A llvm/test/CodeGen/AArch64/partial-reduction-sub.ll

  Log Message:
  -----------
  [ISel][AArch64] Add CodeGen support for partial sub reductions. (#186809)

Sub-only (partial) reductions are transformed by the LoopVectorizer to
add-reductions with a scalar sub in the middle block. When there is a
sub-reduction in a chain that has both adds and subs, the resulting
partial reduction with the negation/sub is expanded. This PR improves
codegen of such operations to make use of the [USF]MLSLB/T instructions.


  Commit: 882527f9f5ae3ac8859cab684dd81daed49bf5de
      https://github.com/llvm/llvm-project/commit/882527f9f5ae3ac8859cab684dd81daed49bf5de
  Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp

  Log Message:
  -----------
  [NFC][SPIR-V] Remove dead non-intrinsic path in selectAtomicCmpXchg (#193692)

SPIRVEmitIntrinsics unconditionally rewrites every cmpxchg into the
@llvm.spv.cmpxchg intrinsic before instruction selection, so
G_ATOMIC_CMPXCHG branch of selectAtomicCmpXchg was never reached


  Commit: 12411c1e6ac577e4144aa541c3c4be87dff68d2a
      https://github.com/llvm/llvm-project/commit/12411c1e6ac577e4144aa541c3c4be87dff68d2a
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/IntegralAP.h
    M clang/test/AST/ByteCode/intap.cpp

  Log Message:
  -----------
  [clang][bytecode] 0 bitwidth IntAP values also use one word (#193224)

Not 0. This can happen in error cases.


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

  Changed paths:
    M llvm/lib/Target/Mips/MipsISelLowering.cpp
    M llvm/lib/Target/Mips/MipsInstrInfo.td
    A llvm/test/CodeGen/Mips/fence.ll

  Log Message:
  -----------
  [Mips] Support mips1 and singlethread ATOMIC_FENCE (#190129)

Fix #61166.


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

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

  Log Message:
  -----------
  [LV] Factor out VF-independent code from cost model (NFC). (#192426)

LoopVectorizationCostModel currently contains state and helpers to deal
with both VF-dependent and independent aspects of cost modeling.

Some of the state it tracks is per-VF, other state is shared across all
VFs.

This patch tries to factor out most of the VF-independent state +
functions to a new class, to try to more clearly separate those aspects,
and make it easier to reason about what decisions are independent of
VF-specific costs.

PR: https://github.com/llvm/llvm-project/pull/192426


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

  Changed paths:
    M bolt/test/AArch64/jmp-table-unsupported.s
    M bolt/test/runtime/AArch64/instrumentation-ind-call.c
    M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/atomic-anyextending-load-crash.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/invoke-region.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-exceptions.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/localizer-arm64-tti.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/localizer-propagate-debug-loc.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/select-fp-anyext-crash.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/translate-constant-dag.ll
    M llvm/test/CodeGen/AArch64/O0-pipeline.ll
    M llvm/test/CodeGen/AArch64/O3-pipeline.ll
    M llvm/test/CodeGen/AArch64/aarch64-fastcc-stackup.ll
    M llvm/test/CodeGen/AArch64/aarch64-tbz.ll
    M llvm/test/CodeGen/AArch64/cfguard-checks.ll
    M llvm/test/CodeGen/AArch64/cpa-globalisel.ll
    M llvm/test/CodeGen/AArch64/large-stack.ll
    M llvm/test/CodeGen/AArch64/phi-dbg.ll
    M llvm/test/CodeGen/AArch64/popcount.ll
    M llvm/test/CodeGen/AArch64/pr92062.ll
    M llvm/test/CodeGen/AArch64/vararg.ll
    M llvm/test/CodeGen/AArch64/win64_vararg_float.ll
    M llvm/test/CodeGen/AArch64/win64_vararg_float_cc.ll
    M llvm/test/Other/print-changed-machine.ll

  Log Message:
  -----------
  [AArch64][GlobalISel] Do not run the Localizer at -O0 (#177359)

We have reports of this pass causing some severe compile time
regressions, in the order of ~30x. It should not be necessary at -O0 so
this patch disables it from the pass pipeline.


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

  Changed paths:
    M llvm/test/CodeGen/AArch64/ldst-opt.ll

  Log Message:
  -----------
  [NFC][AArch64] Regenerate ldst-opt.ll checks to use update_llc_test_checks (#193712)

Updated test-names to test_names to allow use of update_llc_test_checks
script

Hit this as it was proving impossible to keep up to date while working
on topological dag regressions


  Commit: 3f3b50054165685febee95fc768321ebe155565b
      https://github.com/llvm/llvm-project/commit/3f3b50054165685febee95fc768321ebe155565b
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/AArch64/masked-call-scalarize.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/veclib-function-calls.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/veclib-intrinsic-calls.ll
    M llvm/test/Transforms/LoopVectorize/ARM/mve-reductions-interleave.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/veclib-function-calls.ll
    M llvm/test/Transforms/LoopVectorize/hints-trans.ll
    M llvm/test/Transforms/LoopVectorize/scalarize-masked-call.ll

  Log Message:
  -----------
  [LV][NFC] Remove more unnecessary passes from RUN lines (#193686)

Some instances of instsimplify and simplifycfg made no difference to the
actual IR so I've removed them.


  Commit: eb29a502b6e84dc847e94fa9ad42dfa0c68076c7
      https://github.com/llvm/llvm-project/commit/eb29a502b6e84dc847e94fa9ad42dfa0c68076c7
  Author: widberg <jaredwidberg at gmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/test/AST/ByteCode/builtin-functions.cpp
    M clang/test/SemaCXX/builtins-overflow.cpp

  Log Message:
  -----------
  [Clang] Fix constexpr __builtin_(add|sub|mul)_overflow bugs (#192568)

Fixes

1. constexpr/non-constexpr add overflowed disagree for 1 + 1 with a bool
result https://godbolt.org/z/4Goaa63sc. I found this issue for a similar
bug https://github.com/llvm/llvm-project/issues/40897.
2. constexpr unsigned assertion https://godbolt.org/z/MEahfsW9E.
3. constexpr bool result assertion https://godbolt.org/z/G3YsxozbE.

Related CIR PR #192569.


  Commit: 148f5509e6f2c7b3dc8beee84415e189fd9c8759
      https://github.com/llvm/llvm-project/commit/148f5509e6f2c7b3dc8beee84415e189fd9c8759
  Author: Ebuka Ezike <yerimyah1 at gmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M lldb/test/API/tools/lldb-dap/databreakpoint/TestDAP_setDataBreakpoints.py
    M lldb/tools/lldb-dap/EventHelper.cpp
    M lldb/tools/lldb-dap/ProtocolUtils.h
    M lldb/tools/lldb-dap/Watchpoint.cpp

  Log Message:
  -----------
  [lldb-dap] Make Breakpoint ids unique. (#193526)

In normal lldb you can have a breakpoint and watchpoint with the same
id. This is not the case in DAP protocol as Breakpoint id is unique for
each session.

So we end up waiting for the wrong breakpoint id that never gets hit.


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

  Changed paths:
    M llvm/test/CodeGen/SPIRV/instructions/scalar-integer-arithmetic.ll
    M llvm/test/CodeGen/SPIRV/instructions/vector-integer-arithmetic.ll

  Log Message:
  -----------
  [NFC][SPIR-V] Add urem, srem, and snegate tests for integer arithmetic (#193170)

Add test coverage for OpUMod, OpSRem, and OpISub (negate) for both
scalar and vector integer arithmetic


  Commit: 263e4f22fd1417c3ab6de7f16e39ba30c20340be
      https://github.com/llvm/llvm-project/commit/263e4f22fd1417c3ab6de7f16e39ba30c20340be
  Author: Rahul Joshi <rjoshi at nvidia.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/lib/IR/Intrinsics.cpp

  Log Message:
  -----------
  [NFC][LLVM] Simplify IIT encoding for scalable vectors (#191737)

Currently, scalable vectors are represented as an `IIT_SCALABLE_VEC`
token in the IIT info table, followed by a IIT encoding for the vector.
This requires remembering the last token seen when decoding the IIT
table and passing that into the recursive call to decode the vector.
Instead, change the representation to use:

```
IIT_V<Size>, IIT_SCALABLE_VEC (optional), Element Type
```

This allows decoding the scalable vector type without having to pass the
last token seen in `DecodeIITType` calls.


  Commit: 43aa40ddc67c8f1585e122c33706ecb17b24f3bd
      https://github.com/llvm/llvm-project/commit/43aa40ddc67c8f1585e122c33706ecb17b24f3bd
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M flang/include/flang/Lower/PFTBuilder.h
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M flang/test/Lower/pre-fir-tree03.f90

  Log Message:
  -----------
  [flang][OpenMP] Remove OmpEndLoopDirective from PFT (#193602)

It's no longer necessary. An end-directive for a loop construct used to
be a separate construct, but now it only exists as a member in
OpenMPLoopConstruct.


  Commit: 01291a8ea59a1b3ed6aee22fd1279016c4248071
      https://github.com/llvm/llvm-project/commit/01291a8ea59a1b3ed6aee22fd1279016c4248071
  Author: ZhaoQi <zhaoqi01 at loongson.cn>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

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

  Log Message:
  -----------
  [LoongArch] Custom legalize vector_shuffle to `xvextrins` (#164375)


  Commit: 25ad2ee86da1642431b98c3e3c45942c80ff7dbf
      https://github.com/llvm/llvm-project/commit/25ad2ee86da1642431b98c3e3c45942c80ff7dbf
  Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Analysis/DataFlow/IntegerRangeAnalysis.h
    M mlir/lib/Analysis/DataFlow/IntegerRangeAnalysis.cpp
    M mlir/lib/Dialect/Arith/Transforms/UnsignedWhenEquivalent.cpp
    A mlir/test/Dialect/Arith/int-range-opts-bug-119045.mlir

  Log Message:
  -----------
  [mlir][IntegerRangeAnalysis] Don't unsoundly update constant lattice (#193546)

Fixes #119045

Integer range analysis tried to be clever and update the constant value
lattice when it inferred something to be a constant. However, this
caused correctness issues, because the integer range analysis can go
from "constant" to "not a constant" once more control edges are
analyzed, but the constant value lattice is used by dead code
elimination to skip branches ... including those that might prove that
the conditional for the branch isn't actually a constant.

Unlike in my ancient attempt at a fix, the solution is just to stop
trying to be clever.

This change required loading the constant propagation analysis in
-arith-unsigned-when-equivalent to keep tests working (which should have
been loaded anyway to make the dead code analysis work correctly).

No AI tools used.


  Commit: cd26e990ebed7e5e5d81ce764b2537d9a613b095
      https://github.com/llvm/llvm-project/commit/cd26e990ebed7e5e5d81ce764b2537d9a613b095
  Author: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/NVGPU/IR/NVGPUOps.td
    A mlir/include/mlir/Dialect/NVGPU/Transforms/MemoryAccessOpInterfacesImpl.h
    M mlir/lib/Dialect/MemRef/Transforms/FoldMemRefAliasOps.cpp
    M mlir/lib/Dialect/NVGPU/IR/NVGPUDialect.cpp
    M mlir/lib/Dialect/NVGPU/Transforms/CMakeLists.txt
    A mlir/lib/Dialect/NVGPU/Transforms/MemoryAccessOpInterfacesImpl.cpp
    M mlir/lib/RegisterAllDialects.cpp
    M mlir/test/Dialect/MemRef/fold-memref-alias-ops.mlir
    A mlir/test/Dialect/NVGPU/fold-memref-alias-ops.mlir

  Log Message:
  -----------
  [mlir][memref][NVGPU] Move NVGPU ops to IndexedAccessOpInterface (#190430)

This removes the need for the memref dialect to know about nvgpu
operations (though we still haven't converted
ExtractAddressComputations to t new interface, so we can't remove the
dependency just yet).

ldmatrix is defined to access a 1-D region of memory in order to enable
folding in arbitrary expand_ and collpapse_shapes, as its underlying
lowering is jut a scalar getStridedElementPtr()


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

  Changed paths:
    M llvm/docs/Atomics.rst
    M llvm/docs/LangRef.rst
    M llvm/lib/IR/Instruction.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/ArgumentPromotion/X86/attributes.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/X86/min-legal-vector-width.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/chained.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/musttail.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/sret.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/return-argument.ll
    M llvm/test/Transforms/Attributor/align.ll
    M llvm/test/Transforms/Attributor/call-simplify-pointer-info.ll
    M llvm/test/Transforms/Attributor/dereferenceable-1.ll
    M llvm/test/Transforms/Attributor/dereferenceable-2-inseltpoison.ll
    M llvm/test/Transforms/Attributor/dereferenceable-2.ll
    M llvm/test/Transforms/Attributor/liveness.ll
    M llvm/test/Transforms/Attributor/nocapture-1.ll
    M llvm/test/Transforms/Attributor/nonnull.ll
    M llvm/test/Transforms/Attributor/nosync.ll
    M llvm/test/Transforms/Attributor/readattrs.ll
    M llvm/test/Transforms/Attributor/reduced/clear_cached_analysis_for_deleted_functions.ll
    M llvm/test/Transforms/Attributor/undefined_behavior.ll
    M llvm/test/Transforms/Attributor/value-simplify-local-remote.ll
    M llvm/test/Transforms/Attributor/value-simplify-reachability.ll
    M llvm/test/Transforms/Attributor/value-simplify.ll
    M llvm/test/Transforms/FunctionAttrs/initializes.ll
    M llvm/test/Transforms/FunctionAttrs/nocapture.ll
    M llvm/test/Transforms/FunctionAttrs/nofpclass.ll
    M llvm/test/Transforms/FunctionAttrs/nonnull.ll
    M llvm/test/Transforms/FunctionAttrs/nosync.ll
    M llvm/test/Transforms/FunctionAttrs/readattrs.ll
    M llvm/test/Transforms/FunctionAttrs/writeonly.ll
    M llvm/test/Transforms/GVN/PRE/pre-load-dbg.ll
    M llvm/test/Transforms/GVN/PRE/volatile.ll
    M llvm/test/Transforms/LICM/hoist-nounwind.ll
    M llvm/test/Transforms/LICM/sink-debuginfo-preserve.ll
    M llvm/test/Transforms/LoopFlatten/loop-flatten-gep.ll
    M llvm/test/Transforms/LoopUnroll/unroll-loads-cse.ll
    M llvm/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll

  Log Message:
  -----------
  [LangRef] Make volatile loads non-willreturn (#192992)

We currently define that volatile stores are not willreturn (i.e. they
may trap). However, volatile loads are willreturn.

I think that we should align these semantics to say that volatile
operations are always non-willreturn. There's two motivations for this:

* N3128 (part of C23) clarifies the intended meaning of "undefined
behavior" to not allow backwards propagation of UB across certain
observable side-effects, including all volatile operations. This only
made it into the standard as a non-normative note, so complying with
this is not *strictly* necessary for conformance. However, I don't think
there is a strong reason not to follow the recommendation.
* This gives a well-defined (if not very ergonomic) way to interact with
potentially trapping memory.


  Commit: a9731960adc6537a7684f1e1dea9ccfa5d3edbf8
      https://github.com/llvm/llvm-project/commit/a9731960adc6537a7684f1e1dea9ccfa5d3edbf8
  Author: Robert Imschweiler <robert.imschweiler at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetRegisterInfo.h
    M llvm/lib/CodeGen/TargetRegisterInfo.cpp
    M llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
    M llvm/lib/Target/AMDGPU/GCNSubtarget.h
    M llvm/lib/Target/AMDGPU/SIInstrInfo.h
    M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
    M llvm/test/CodeGen/AMDGPU/calling-conventions.ll
    M llvm/test/CodeGen/AMDGPU/fmed3.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.iglp.opt.exp.large.mir
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.iglp.opt.exp.small.mir
    A llvm/test/CodeGen/AMDGPU/packed-dependencies.mir
    M llvm/test/CodeGen/AMDGPU/sched-image-sample-post-RA.mir
    M llvm/test/CodeGen/AMDGPU/schedule-physregdeps.mir
    M llvm/test/CodeGen/AMDGPU/shufflevector.v3i64.v2i64.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v3i64.v3i64.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v3i64.v4i64.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v3p0.v2p0.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v3p0.v3p0.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v3p0.v4p0.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4i64.v2i64.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4i64.v3i64.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4i64.v4i64.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4p0.v2p0.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4p0.v3p0.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4p0.v4p0.ll

  Log Message:
  -----------
  [AMDGPU] misched: avoid subregister dependencies (#140255)

There are some VOP3P instructions which operate on packed values
and can be configured (op_sel/op_sel_hi) to only use one of the values.
This patch adapts the scheduling dependencies so that a write to vgpr3,
for example, is not a data dependency for a read from vgpr2_vgpr3 in
case only vgpr2 is actually used.

Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>


  Commit: 1b325745f13471bdb11ba32cd5dece51dcf299ac
      https://github.com/llvm/llvm-project/commit/1b325745f13471bdb11ba32cd5dece51dcf299ac
  Author: Rose Hudson <rose.hudson at sony.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/X86/GISel/X86InstructionSelector.cpp
    M llvm/test/CodeGen/X86/GlobalISel/GV.ll

  Log Message:
  -----------
  [X86][GISel] lower GOT-relative G_GLOBAL_VALUEs (#181983)

During selection if we see a GOT-relative G_GLOBAL_VALUE, don't try to
fold it into an X86AddressMode (like we would with other modes of
accessing globals) because it needs a load from the GOT. Then select mov
for the G_GLOBAL_VALUE to do that load.


  Commit: 1bcdf716ae23c525d69ae6117567d7085545d9bf
      https://github.com/llvm/llvm-project/commit/1bcdf716ae23c525d69ae6117567d7085545d9bf
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/docs/AMDGPUUsage.rst
    M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
    M llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
    A llvm/test/CodeGen/AMDGPU/sched-ldsdma-mask.mir
    M llvm/test/CodeGen/AMDGPU/sched.barrier.inverted.mask.ll

  Log Message:
  -----------
  [AMDGPU] Add a sched group mask for LDSDMA instructions (#190872)


  Commit: ba0e4af50fd47498bec22e3b359ee389e4e98ff5
      https://github.com/llvm/llvm-project/commit/ba0e4af50fd47498bec22e3b359ee389e4e98ff5
  Author: LU-JOHN <John.Lu at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

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

  Log Message:
  -----------
  [CodeGen][NFC] Do not iterate in DCE unless needed (#193355)

Almost all dead code is found in the first iteration.

In LLVM lit tests, 461931 instructions were deleted in the first
iteration and 2 in the second.

In a 3-stage build of llvm, 1305507 instructions were deleted in the
first iteration and 0 in the second.

Added code to detect when another DCE iteration is needed. Number of DCE
iterations will almost always be reduced from 2 to 1.

---------

Signed-off-by: John Lu <John.Lu at amd.com>


  Commit: 1881b1cf436d36223ed9e60a03536c1c82491c9f
      https://github.com/llvm/llvm-project/commit/1881b1cf436d36223ed9e60a03536c1c82491c9f
  Author: forking-google-bazel-bot[bot] <265904573+forking-google-bazel-bot[bot]@users.noreply.github.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

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

  Log Message:
  -----------
  [Bazel] Fixes cd26e99 (#193729)

This fixes cd26e990ebed7e5e5d81ce764b2537d9a613b095.

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>


  Commit: 5a9d0cf7190f80096da0ef1f3c45b5ae0cd7f0d1
      https://github.com/llvm/llvm-project/commit/5a9d0cf7190f80096da0ef1f3c45b5ae0cd7f0d1
  Author: Lei Huang <lei at ca.ibm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.h
    M llvm/lib/Target/PowerPC/PPCInstrFuture.td
    M llvm/lib/Target/PowerPC/PPCOperands.td
    M llvm/test/MC/Disassembler/PowerPC/ppc-encoding-ISAFuture.txt
    M llvm/test/MC/Disassembler/PowerPC/ppc64le-encoding-ISAFuture.txt
    M llvm/test/MC/PowerPC/ppc-encoding-ISAFuture.s
    A llvm/test/MC/PowerPC/ppc64-psubis.s

  Log Message:
  -----------
  [PowerPC] Add mnemonics to paddis (#179979)

Add extended mnemonics to paddis:
```
  paddis RT,RA,SI  -> paddis RT,RA,SI,0
  plis RT,SI       -> paddis RT,0,SI,0
  psubis RT,RA,si  -> paddis RT,RA,-si,0
```

Assisted by AI.


  Commit: 1ee288a2b51d31c87a7605150380c431ffa34006
      https://github.com/llvm/llvm-project/commit/1ee288a2b51d31c87a7605150380c431ffa34006
  Author: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    A llvm/test/CodeGen/SPIRV/atomicrmw-storage-class-semantics.ll
    M llvm/test/CodeGen/SPIRV/atomicrmw-uinc-udec-wrap.ll
    M llvm/test/CodeGen/SPIRV/atomicrmw.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_add/atomicrmw_faddfsub_double.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_add/atomicrmw_faddfsub_float.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_add/atomicrmw_faddfsub_half.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_min_max/atomicrmw_fminfmax_double.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_min_max/atomicrmw_fminfmax_float.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_min_max/atomicrmw_fminfmax_half.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomic_bfloat16_load_store_xchg.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomic_int16_arithmetic.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomic_int16_load_store_xchg_cmpxchg.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomicrmw_faddfsub_bfloat16.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomicrmw_fminfmax_bfloat16.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_NV_shader_atomic_fp16_vector/atomicrmw_faddfsub_vec_float16.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_NV_shader_atomic_fp16_vector/atomicrmw_fminfmax_vec_float16.ll
    M llvm/test/CodeGen/SPIRV/instructions/atomic-ptr.ll
    M llvm/test/CodeGen/SPIRV/scoped_atomicrmw.ll

  Log Message:
  -----------
  [SPIR-V] Combine storage class bit with atomic memory semantics (#193696)

Per SPIR-V spec section 3.32 (Memory Semantics), atomic operations must
combine the ordering bits
(Acquire/Release/AcquireRelease/SequentiallyConsistent) with the
relevant storage class bit (UniformMemory, WorkgroupMemory,
CrossWorkgroupMemory, ...)


  Commit: 9b986d49d6ca963bc22f265ce4045affbde427b4
      https://github.com/llvm/llvm-project/commit/9b986d49d6ca963bc22f265ce4045affbde427b4
  Author: Benjamin Stott <Benjamin.Stott at sony.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    A llvm/utils/lit/lit/InprocBuiltins.py
    A llvm/utils/lit/lit/ShellEnvironment.py
    M llvm/utils/lit/lit/TestRunner.py

  Log Message:
  -----------
  [Lit][NFC] Refactor shell environment functionality and in-process builtins from TestRunner.py into new modules (Reopened) (#177358)

This is a fresh PR for https://github.com/llvm/llvm-project/pull/176761,
reopening after my rebasing error.

Original description:
This is the first in a series of PRs reworking Lit's handling of
in-process builtins to be run as part of command pipelines, and to
enable users to provide new in-process builtins via Lit's configuration.
The full series of patches can be found here:
https://github.com/BStott6/llvm-project/tree/lit-inproc-builtins.

This work is required for the test daemonization project:
https://discourse.llvm.org/t//88612/9


This PR moves the shell environment functionality and existing
in-process builtins from TestRunner.py into new modules. This is
important not just for organizational purposes but also because,
eventually, user defined in-process builtins will need to be able to
import items from these modules, but these cannot import TestRunner as
this would result in a dependency cycle.


  Commit: 41d05aef9c63958ec449fc3768f7a5b44e443722
      https://github.com/llvm/llvm-project/commit/41d05aef9c63958ec449fc3768f7a5b44e443722
  Author: Orlando Cazalet-Hyams <orlando.hyams at sony.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    R llvm/utils/lit/lit/InprocBuiltins.py
    R llvm/utils/lit/lit/ShellEnvironment.py
    M llvm/utils/lit/lit/TestRunner.py

  Log Message:
  -----------
  Revert "[Lit][NFC] Refactor shell environment functionality and in-process builtins from TestRunner.py into new modules (Reopened)" (#193740)

Reverts llvm/llvm-project#177358

Bot failure: https://lab.llvm.org/buildbot/#/builders/181/builds/41934


  Commit: 49dad1672430134e44e7831012cbeb06bebf32b7
      https://github.com/llvm/llvm-project/commit/49dad1672430134e44e7831012cbeb06bebf32b7
  Author: Eugene Epshteyn <eepshteyn at nvidia.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M flang/include/flang/Support/Fortran-features.h
    M flang/include/flang/Support/LangOptions.def
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Support/Fortran-features.cpp
    M flang/test/Lower/reallocate-lhs.f90
    A flang/test/Semantics/no-realloc-lhs-poly.f90

  Log Message:
  -----------
  [flang] Ignore -fno-realloc-lhs for polymorphic allocatable LHS with warning (#192697)

When -fno-realloc-lhs is specified and the LHS of an assignment is a
polymorphic allocatable (class(*) or class(T)), reallocation semantics
are required by the Fortran 2003 standard for dynamic type tracking and
cannot be safely skipped. Previously, the compiler generated invalid FIR
in such cases (type mismatch between i32 and
!fir.class<!fir.heap<none>>), causing a compilation error.

With this change, when -fno-realloc-lhs is in effect and a polymorphic
allocatable LHS is detected, the compiler emits a warning that the
option is being ignored for that assignment and proceeds with
reallocation semantics.


  Commit: 2a5126748fb5758742daaa23804678a7bc9bece9
      https://github.com/llvm/llvm-project/commit/2a5126748fb5758742daaa23804678a7bc9bece9
  Author: Wooseok Lee <wolee at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
    A llvm/test/CodeGen/AMDGPU/eliminate-frame-index-scalar-scc-clobber.mir

  Log Message:
  -----------
  [AMDGPU] Fix s_cselect scc clobber issue (#193498)

The frame index elimination e.g., for S_CSELECT_B32 (which reads SCC)
uses the SCC-preserving S_ADDC_U32+S_BITCMP1_B32+S_BITSET0_B32 sequence
instead of a plain S_ADD_I32, even when the regscavenger reports SCC as
unused due to its backward scan removing the SCC def from the live set.

Root cause: scavengeRegisterBackwards scans backward from MI and calls
LiveRegUnits::stepBackward() on each instruction. stepBackward removes
defs from the live set. When it processes the S_AND_B64 (which defines
SCC) immediately before S_CSELECT_B32, SCC is removed from LiveUnits.
This makes RS->isRegUsed(SCC) return false, so NeedSaveSCC was false
before the fix.

The fix adds MI->readsRegister(SCC) to the NeedSaveSCC condition so the
SCC-preserving ADDC+BITCMP1+BITSET0 sequence is always used when MI
reads SCC, regardless of what the regscavenger reports.

- commit message and the test are generated by claude


  Commit: ff125ae1bae7c815c9ee77fd9d65a2de41234725
      https://github.com/llvm/llvm-project/commit/ff125ae1bae7c815c9ee77fd9d65a2de41234725
  Author: Sayan Sivakumaran <sivakusayan at gmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Analysis/ConstantFolding.cpp
    A llvm/test/Transforms/InstCombine/constant-fold-nextafter.ll
    A llvm/test/Transforms/InstCombine/constant-fold-nexttoward-fp128.ll
    A llvm/test/Transforms/InstCombine/constant-fold-nexttoward-ppc-fp128.ll
    A llvm/test/Transforms/InstCombine/constant-fold-nexttoward-x86-fp80.ll

  Log Message:
  -----------
  [ConstantFolding] Constant fold nextafter and nexttoward (#168794)

Closes #74368.

This patch enables us to constant fold `nextafter` and `nexttoward` as
long as we know that `errno` won't be written. In the latter case, we
should keep the function call so the programmer can observe the side
effect.


  Commit: 0ff393f5dac1f582ffaf8874d32a8d7e2a39f8fe
      https://github.com/llvm/llvm-project/commit/0ff393f5dac1f582ffaf8874d32a8d7e2a39f8fe
  Author: Jaydeep Chauhan <chauhan.jaydeep.ashwinbhai at intel.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/include/llvm/Target/RegisterTargetPassConfigCallback.h

  Log Message:
  -----------
  [NFC][Target] Fixed rule-of-three for RegisterTargetPassConfigCallback class (#193470)

- This PR fixes ```RegisterTargetPassConfigCallback``` classes default
member functions as per rule of three
(https://en.cppreference.com/cpp/language/rule_of_three)


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

  Changed paths:
    M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSBundle.py

  Log Message:
  -----------
  [lldb/test] Relax NSBundle formatter test for Darwin embedded platforms (#193659)

Some Foundation APIs have been migrated from Objective-C to Swift while
maintaining backward compatibility. For instance, that can cause
`NSBundle` created via `initWithURL:` to format without the `@"..."`
prefix.

Match the path string without requiring the @ prefix so the test passes
with both the ObjC and Swift implementations

rdar://175394563

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


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

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

  Log Message:
  -----------
  [libc][docs] Add poll.h POSIX header documentation (#122006) (#193734)

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


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

  Changed paths:
    M lldb/test/API/functionalities/data-formatter/bytecode-synthetic/TestBytecodeSynthetic.py
    M lldb/test/API/lang/objc/module-import-log/TestClangModuleImportLog.py

  Log Message:
  -----------
  [lldb/test] Update remaining `filecheck` call sites to use `filecheck_log` (NFC) (#193654)


  Commit: c32d2d1f2951ee21c1b675405fd8de11dd25f986
      https://github.com/llvm/llvm-project/commit/c32d2d1f2951ee21c1b675405fd8de11dd25f986
  Author: tedj <tedmjohnson at protonmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M flang/docs/Overview.md
    M flang/include/flang/Optimizer/Passes/Pipelines.h
    M flang/lib/FrontendTool/CMakeLists.txt
    M flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
    M flang/lib/Optimizer/Passes/CMakeLists.txt
    M flang/lib/Optimizer/Passes/Pipelines.cpp
    A flang/test/Driver/mmlir-print-ir.f90
    A flang/test/Fir/print-ir-pass.fir
    M flang/tools/fir-opt/CMakeLists.txt
    M flang/tools/fir-opt/fir-opt.cpp

  Log Message:
  -----------
  [flang] Add the MLIR pass pipelines for dumping (#183144)

The flang driver never registered passes in the MLIR pass registry, so
--mlir-print-ir-before=<pass> always failed with `Cannot find option`.

This commit adds pass registration calls before CLI option parsing in
the -mmlir handler such that all ~30 pipeline passes are now selectable.


  Commit: 72b061857e0bd2e517e5882633df2e24aaaa5c7c
      https://github.com/llvm/llvm-project/commit/72b061857e0bd2e517e5882633df2e24aaaa5c7c
  Author: Matthias Wippich <mfwippich at gmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/docs/InternalsManual.rst

  Log Message:
  -----------
  [clang][docs] fix typo; NFC (#193648)


  Commit: 47523f7f079bd23d0e0db0dc0c23a036acd4c0a6
      https://github.com/llvm/llvm-project/commit/47523f7f079bd23d0e0db0dc0c23a036acd4c0a6
  Author: h-vetinari <h.vetinari at gmx.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/www/cxx_status.html

  Log Message:
  -----------
  [clang][docs] open details of C++{17,14,11} implementation by default (#193141)

Before
https://github.com/llvm/llvm-project/commit/b9c0e590f1fd4ea37da5c2b9b78d8e715c885f56
switched the C++ status page to a reverse chronological order, it made
sense to avoid wasting vertical space for already-implemented standards.
After that switch, it would make sense however to unfold them by
default.

This is for example why I had opened #61426, because CRTL+F did not show
P0588 on the status page[^1]. But not just for this paper, I think the
ease of finding papers is a good argument for folding out those tables.

[^1]: together with the fact that other status pages
([example](https://en.cppreference.com/cpp/compiler_support/20)) have
sorted this paper under C++20 rather than C++11.


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

  Changed paths:
    M clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h

  Log Message:
  -----------
  [LifetimeSafety] Simplify `AccessPath` root `PointerUnion` (#193520)

Stores generic `Expr*` and `Decl*` in `AccessPath`'s `PointerUnion` to
avoid problems where we do not have enough available low bits when more
template parameters are added.


  Commit: 19d97727aafb7569196c97d37df20a5079bc7db7
      https://github.com/llvm/llvm-project/commit/19d97727aafb7569196c97d37df20a5079bc7db7
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/SystemZ/SystemZTDC.cpp
    A llvm/test/CodeGen/SystemZ/tdc-08.ll

  Log Message:
  -----------
  [LLVM][CodeGen] Ensure SystemZTDCPass::convertFCmp only accepts scalar floating point types. (#193738)

Fixes https://lab.llvm.org/buildbot/#/builders/117/builds/18799


  Commit: 2f5fe2cf312c8904ebd9328c86d0e1617d96d101
      https://github.com/llvm/llvm-project/commit/2f5fe2cf312c8904ebd9328c86d0e1617d96d101
  Author: Benedek Kaibas <82393336+benedekaibas at users.noreply.github.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h

  Log Message:
  -----------
  [analyzer] Fix typo in ExprEngine.h (#193535)

While I was studying the code base I have spotted some typo in the
`ExprEngine.h` in this PR I have fixed these typos.


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

  Changed paths:
    M llvm/lib/Transforms/Scalar/MergeICmps.cpp
    A llvm/test/Transforms/MergeICmps/X86/wrong-signature.ll

  Log Message:
  -----------
  [MergeICmps] Check for libfunc emittability (#193764)

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


  Commit: a829194012f28b6371e910d5f492e00ecb02f75f
      https://github.com/llvm/llvm-project/commit/a829194012f28b6371e910d5f492e00ecb02f75f
  Author: Erick Ochoa Lopez <erick.ochoalopez at amd.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M mlir/lib/Dialect/Vector/Transforms/VectorDropLeadUnitDim.cpp
    M mlir/test/Dialect/Vector/vector-dropleadunitdim-transforms.mlir

  Log Message:
  -----------
  [mlir][vector] Generalize castAwayContractionLeadingOneDim (#187312)

This PR generalizes castAwayContractionLeadingOneDim to allow
accumulators with rank 1 to be matched.
With this generalization we allow the following contractions:

```
          %c = vector.contract {
               indexing_maps = [
                    affine_map<(d0, d1) -> (d0)>,
                    affine_map<(d0, d1) -> (d1, d0)>,
                    affine_map<(d0, d1) -> (d1)>],
               iterator_types = ["reduction", "parallel"],
               kind = #vector.kind<add>
               } %0, %1, %2 : vector<64xf32>, vector<1x64xf32> into vector<1xf32>
```

to be matched and transformed to 

```
map = affine_map<(d0) -> (d0)>
map1 = affine_map<(d0) -> ()>

    %2 = vector.contract {
            indexing_maps = [#map, #map, #map1],
            iterator_types = ["reduction"],
            kind = #vector.kind<add>
    } %arg0, %0, %1 : vector<64xf32>, vector<64xf32> into f32
```

I noticed the following chain of transformations in IREE which led me to
this fix:

```
          %23 = vector.shape_cast %22 : vector<64xf32> to vector<1x64xf32>
          %24 = vector.contract {indexing_maps = [affine_map<(d0, d1) -> (d0)>, affine_map<(d0, d1) -> (d1, d0)>, affine_map<(d0, d1) -> (d1)>], iterator_types = ["reduction", "parallel"], kind = #vector.kind<add>} %14, %23, %cst_0 : vector<64xf32>, vector<1x64xf32> into vector<1xf32>
```

ContractionOpToOuterProductOpLowering 

```
          %23 = vector.shape_cast %22 : vector<64xf32> to vector<1x64xf32>
          // transpose rhs
          %24 = vector.transpose %23, [1, 0] : vector<1x64xf32> to vector<64x1xf32> 
```

FoldTransposeShapeCast

```
          %21 = vector.shape_cast %20 : vector<64xf32> to vector<64x1xf32>
```

With this generalization, `castAwayContractionLeadingOneDim`'s will be
transformed to a reduction during ContractionOpLowering.

Assisted-by: Claude


  Commit: f19f3cde7fa5cd4924ddce49204c3a8425e78282
      https://github.com/llvm/llvm-project/commit/f19f3cde7fa5cd4924ddce49204c3a8425e78282
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

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

  Log Message:
  -----------
  [NFC][AMDGPU] Make code consistent in MCResourceInfo::gatherResourceInfo (#193735)

Some of the enums have the type name but some don't.


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

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86] Use getTargetVShiftByConstNode helper to reduce code duplication. NFCI. (#193736)

Cleanup getTargetVShiftByConstNode and use it instead of repeatedly handling bitcasts/shift amount creation.


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

  Changed paths:
    M libc/test/CMakeLists.txt

  Log Message:
  -----------
  [libc][NFC] Fix typo in GPU test warning message (#193762)

The warning referred to CMAKE_CROSS_COMPILING_EMULATOR (with an extra
underscore) instead of CMAKE_CROSSCOMPILING_EMULATOR.


  Commit: ef82b673fb56c93f91e69ce9e66547d3aa3ffa23
      https://github.com/llvm/llvm-project/commit/ef82b673fb56c93f91e69ce9e66547d3aa3ffa23
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

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

  Log Message:
  -----------
  [RISCV] Pass Subtarget to CC_RISCVAssign2XLen. NFC (#193609)

Previously we passed XLen and EABI, but still needed to get something
else from Subtarget so we looked it up from State. Instead, just pass
Subtarget and query all the information from it.


  Commit: a54364a7dc4ac16f79731d429edd1f10022e0a60
      https://github.com/llvm/llvm-project/commit/a54364a7dc4ac16f79731d429edd1f10022e0a60
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

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

  Log Message:
  -----------
  [DAGCombine] Relax restriction on (bswap shl(x,c)) combine (#193679)

We can still do the
(bswap shl(x,c)) -> (zext(bswap(trunc(shl(x,sub(c,bw/2))))))
combine if the shift amount is a multiple of 8 not just 16.

https://alive2.llvm.org/ce/z/crnSB6


  Commit: 183168aa5035a4ab59baa61e245f0bc178d2dfb3
      https://github.com/llvm/llvm-project/commit/183168aa5035a4ab59baa61e245f0bc178d2dfb3
  Author: Chi-Chun, Chen <chichun.chen at hpe.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Frontend/Atomic/Atomic.cpp
    M mlir/test/Target/LLVMIR/openmp-llvm.mlir

  Log Message:
  -----------
  [OpenMP][OMPIRBuilder] Convert cmpxchg memory order to C ABI constants (#193536)

`EmitAtomicCompareExchangeLibcall` passed LLVM AtomicOrdering enum
values directly as the success/failure ordering arguments to
`__atomic_compare_exchange`. However, the C ABI expects the `__ATOMIC_*`
constants instead.

`EmitAtomicLoadLibcall` and `EmitAtomicStoreLibcall` already use
`toCABI()` for this conversion. Apply the same conversion in
`EmitAtomicCompareExchangeLibcall`.

This PR is a reland of #191857 which was closed incorrectly due to
parent branch deleted.


  Commit: 2d84862fb3f4d46483bc803653bb971301a8f2a1
      https://github.com/llvm/llvm-project/commit/2d84862fb3f4d46483bc803653bb971301a8f2a1
  Author: Mirko <mirkomueller97 at live.de>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    A llvm/test/CodeGen/X86/indirect-br-gep-unmerge-flags.ll

  Log Message:
  -----------
  [CodeGenPrepare] Drop nuw on gep unmerging if the new index is negative (#193488)

Fixes #193487.

Drop nuw if unmerging would result in gep with a negative index.


  Commit: 37cd9addde72f88898f042ad239e94f33d547e5d
      https://github.com/llvm/llvm-project/commit/37cd9addde72f88898f042ad239e94f33d547e5d
  Author: Brian Cain <brian.cain at oss.qualcomm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/TypeSanitizer.cpp
    A llvm/test/Instrumentation/TypeSanitizer/alloca-32bit.ll

  Log Message:
  -----------
  [TySan] Fix size type mismatch in instrumentMemInst for 32-bit targets (#191601)

The outlined instrumentation path in instrumentMemInst passes Size
directly to the __tysan_instrument_mem_inst runtime call, which declares
its size parameter as uint64_t (i64). On 32-bit targets, Size is
IntptrTy (i32) for allocas and byval arguments, causing an assertion:

  Calling a function with a bad signature!

Add CreateZExtOrTrunc to widen Size to U64Ty before the call. This is a
no-op on 64-bit targets where IntptrTy is already i64.


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

  Changed paths:
    M clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h

  Log Message:
  -----------
  [NFC][Clang][Analyses] Fix AccessPath to have deleted copy assignment (#193639)

Static analysis flagged AccessPath because it had a copy constructor but
did not declare a copy assignment. It appears the intent is not to allow
assignment, so declare it deleted.


  Commit: 602cc92c19c1cfd66eb05e87ef7556d1e9125f5d
      https://github.com/llvm/llvm-project/commit/602cc92c19c1cfd66eb05e87ef7556d1e9125f5d
  Author: Brian Cain <brian.cain at oss.qualcomm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/include/llvm/IR/RuntimeLibcalls.td
    A llvm/test/CodeGen/Hexagon/safestack.ll

  Log Message:
  -----------
  [Hexagon] Add SafeStack runtime libcall to HexagonSystemLibrary (#191673)

Register DefaultSafeStackGlobals for the Hexagon target so that the
SafeStack pass can locate the thread-local unsafe stack pointer during
codegen.

Without this, compiling with `-fsanitize=safe-stack` for Hexagon errors
with "no location available for safestack pointer address".


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

  Changed paths:
    M llvm/test/CodeGen/X86/bit-manip-i256.ll
    M llvm/test/CodeGen/X86/bit-manip-i512.ll
    M llvm/test/CodeGen/X86/bitcnt-big-integer.ll

  Log Message:
  -----------
  [X86] Regenerate bit integer tests to show VPADD constant asm comments (#193763)


  Commit: 023e2e6c9d995ba34158340d5b4f044caa1cdee8
      https://github.com/llvm/llvm-project/commit/023e2e6c9d995ba34158340d5b4f044caa1cdee8
  Author: Paweł Bylica <pawel at hepcolgum.band>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/AArch64/bswap-known-bits.ll
    A llvm/test/CodeGen/RISCV/bswap-known-bits.ll
    M llvm/test/CodeGen/X86/known-pow2.ll

  Log Message:
  -----------
  [DAGCombiner] Fold bswap of single-byte-known-nonzero value to a shift (#193473)

When computeKnownBits proves that a bswap operand has at most one byte
of possibly-nonzero bits at a known byte-aligned position, the bswap is
equivalent to a shift that moves that byte to the mirror position. This
is a producer-side known-bits rule; it fires in visitBSWAP regardless
of how the narrow-value provenance was established, covering shapes
such as
  bswap(and X, 0xFF)
  bswap(and X, 0xFF00)       ; all byte positions
  bswap(zext i8 X to iN)
  bswap(zext i16 X to i64)

Motivation. While investigating a RISCV codegen regression under
-combiner-topological-sorting (bswap-shift.ll), I traced the root cause
to the existing consumer-side rule in
TargetLowering::SimplifyDemandedBits
for ISD::BSWAP: when a consumer demands only one byte of the bswap
result, that rule rewrites the inner bswap as a shift. Under topological
(producer-first) worklist ordering, this rewrite fires on the inner
bswap of bswap(srl(bswap X, 8)) before visitBSWAP's syntactic pattern
bswap(srl X, 8) -> (bswap X) shl 8 can collapse the whole chain, so
the outer bswap is stranded as bswap(and(X, MASK)), which no existing
combine recognizes.

The new rule is orthogonal: it matches when the operand's known bits
(rather than the consumer's demand) characterize a single-byte value,
so it closes the gap in both topological and non-topological modes. It
also captures genuinely new missed optimizations that are independent
of the ordering problem: bswap(zext i8 -> i64) previously emitted
zext.b + rev8 on RISCV+zbb and is now a single slli 56.

Placement choice. The rule is a natural dual of the existing consumer-
side rule in TargetLowering::SimplifyDemandedBits for ISD::BSWAP; the
needed information (computeKnownBits of the source) is readily
available there. I prototyped that placement and found it strictly
weaker: SimplifyDemandedBits runs later in the pipeline, typically
after integer type promotion, so a rewrite of a native i16 bswap fires
only after the value has been widened to i64 and the outer i16->i64
promotion shifts block further simplification. Placing the rule in
visitBSWAP fires pre-type-legalize on native i16/i32 values, letting
the resulting shift compose cleanly with downstream combines. A
comment in visitBSWAP cross-references the dual rule for future
readers.

Potential extension. The same logic can also be added to
TargetLowering::SimplifyDemandedBits (as a second check after the
existing one-byte-demanded rule, using computeKnownBits(Src) rather
than the demand-restricted Known2) for cases where visitBSWAP is not
reached via the combiner worklist but the bswap is recursed into by a
parent's demand analysis. I did not include that duplicate here
because no pre-existing test exercises such a path; the visitBSWAP
placement alone closes every case I found.


  Commit: 7df553349756468098289160f6c77aa21f1c2961
      https://github.com/llvm/llvm-project/commit/7df553349756468098289160f6c77aa21f1c2961
  Author: Connector Switch <c8ef at outlook.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M libcxx/docs/ReleaseNotes/23.rst
    M libcxx/docs/Status/Cxx23Papers.csv
    M libcxx/include/__algorithm/ranges_fold.h
    M libcxx/include/algorithm
    M libcxx/modules/std/algorithm.inc
    M libcxx/test/benchmarks/algorithms/nonmodifying/fold.bench.cpp
    M libcxx/test/libcxx/algorithms/nodiscard.verify.cpp
    R libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/left_folds.pass.cpp
    A libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/ranges.fold_left.pass.cpp
    A libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/ranges.fold_left_first.pass.cpp
    M libcxx/test/std/library/description/conventions/customization.point.object/niebloid.compile.pass.cpp

  Log Message:
  -----------
  [libc++] Implement `ranges::fold_left_first` and `ranges::fold_left_first_with_iter` (#180214)

- Part of #105208.
- Closes #174059.
- Closes #121558.

---------

Co-authored-by: JCGoran <jcgoran at protonmail.com>
Co-authored-by: A. Jiang <de34 at live.cn>


  Commit: 321db053f50da84431575263bdad7dba40c2877e
      https://github.com/llvm/llvm-project/commit/321db053f50da84431575263bdad7dba40c2877e
  Author: David Green <david.green at arm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M bolt/test/AArch64/jmp-table-unsupported.s
    M bolt/test/runtime/AArch64/instrumentation-ind-call.c
    M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/atomic-anyextending-load-crash.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/invoke-region.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-exceptions.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/localizer-arm64-tti.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/localizer-propagate-debug-loc.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/select-fp-anyext-crash.ll
    M llvm/test/CodeGen/AArch64/GlobalISel/translate-constant-dag.ll
    M llvm/test/CodeGen/AArch64/O0-pipeline.ll
    M llvm/test/CodeGen/AArch64/O3-pipeline.ll
    M llvm/test/CodeGen/AArch64/aarch64-fastcc-stackup.ll
    M llvm/test/CodeGen/AArch64/aarch64-tbz.ll
    M llvm/test/CodeGen/AArch64/cfguard-checks.ll
    M llvm/test/CodeGen/AArch64/cpa-globalisel.ll
    M llvm/test/CodeGen/AArch64/large-stack.ll
    M llvm/test/CodeGen/AArch64/phi-dbg.ll
    M llvm/test/CodeGen/AArch64/popcount.ll
    M llvm/test/CodeGen/AArch64/pr92062.ll
    M llvm/test/CodeGen/AArch64/vararg.ll
    M llvm/test/CodeGen/AArch64/win64_vararg_float.ll
    M llvm/test/CodeGen/AArch64/win64_vararg_float_cc.ll
    M llvm/test/Other/print-changed-machine.ll

  Log Message:
  -----------
  Revert "[AArch64][GlobalISel] Do not run the Localizer at -O0 (#177359)" (#193781)

This reverts commit dur to one of the lldb-api tests failing.


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

  Changed paths:
    M libc/utils/libctest/format.py

  Log Message:
  -----------
  [libc] Honor per-test timeout in lit test format (#193772)

The custom LibcTest format did not pass litConfig.maxIndividualTestTime
to executeCommand. This caused --timeout to be silently ignored, so
hanging tests like fdiv_test on AMDGPU blocked the entire suite until
the buildbot watchdog killed the process after 1200s.

Added timeout propagation and handling of ExecuteCommandTimeoutException
to return lit.Test.TIMEOUT. This follows the same pattern used by the
GoogleTest format in googletest.py.


  Commit: 2248253e7f97e5ebe172f343a13923cc4db62e8d
      https://github.com/llvm/llvm-project/commit/2248253e7f97e5ebe172f343a13923cc4db62e8d
  Author: zhijian lin <zhijian at ca.ibm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    M llvm/lib/Target/PowerPC/PPCISelLowering.h
    M llvm/test/CodeGen/PowerPC/testComparesieqsc.ll
    M llvm/test/CodeGen/PowerPC/testComparesieqsi.ll
    M llvm/test/CodeGen/PowerPC/testComparesieqss.ll
    M llvm/test/CodeGen/PowerPC/testComparesiequc.ll
    M llvm/test/CodeGen/PowerPC/testComparesiequi.ll
    M llvm/test/CodeGen/PowerPC/testComparesiequs.ll
    M llvm/test/CodeGen/PowerPC/testComparesileuc.ll
    M llvm/test/CodeGen/PowerPC/testComparesileui.ll
    M llvm/test/CodeGen/PowerPC/testComparesileus.ll
    M llvm/test/CodeGen/PowerPC/testCompareslleqsc.ll
    M llvm/test/CodeGen/PowerPC/testCompareslleqsi.ll
    M llvm/test/CodeGen/PowerPC/testCompareslleqss.ll
    M llvm/test/CodeGen/PowerPC/testComparesllequc.ll
    M llvm/test/CodeGen/PowerPC/testComparesllequi.ll
    M llvm/test/CodeGen/PowerPC/testComparesllequs.ll
    M llvm/test/CodeGen/PowerPC/testComparesllleuc.ll
    M llvm/test/CodeGen/PowerPC/testComparesllleui.ll
    M llvm/test/CodeGen/PowerPC/testComparesllleus.ll

  Log Message:
  -----------
  [PowerPC] fixed issue "Failure to optimize (x == 0) ? 0xFF : 0 to addic+subfe instead of cntlzw+srwi+neg" (#190606)

The patch fixed issue [[PowerPC] Failure to optimize (x == 0) ? 0xFF : 0
to addic+subfe instead of cntlzw+srwi+neg
](https://github.com/llvm/llvm-project/issues/98598)


  Commit: dd8c777656469e44e506f0e29279903a6d088783
      https://github.com/llvm/llvm-project/commit/dd8c777656469e44e506f0e29279903a6d088783
  Author: Gábor Spaits <gaborspaits1 at gmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/GISel/RISCVInstructionSelector.cpp
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.h
    M llvm/lib/Target/RISCV/RISCVSubtarget.cpp
    M llvm/lib/Target/RISCV/RISCVSubtarget.h
    A llvm/test/CodeGen/RISCV/GlobalISel/irtranslator-inline-asm.ll

  Log Message:
  -----------
  [RISCV][GlobalISel] Add intial support for inline asm (#193314)

This patch adds the (almost) minimal changes to support inline assembly
in the RISC-V GlobalISel backend.

The tests are mostly from
`llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-inline-asm.ll` but
sadly not all test could be taken. I am planning to address the
remaining tests in later PRs.

The motivation for the PR was a fallback to SelectionDAG when compiling
libc. The motivating case can be seen in the test
`test_input_register_pointer`. That is also the reason for the small
changes in `RISCVInstructionSelector::selectCopy`.


  Commit: 6f999388adeb41c5df8a57836a971836f5b6d512
      https://github.com/llvm/llvm-project/commit/6f999388adeb41c5df8a57836a971836f5b6d512
  Author: Benjamin Stott <Benjamin.Stott at sony.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    A llvm/utils/lit/lit/InprocBuiltins.py
    A llvm/utils/lit/lit/ShellEnvironment.py
    M llvm/utils/lit/lit/TestRunner.py

  Log Message:
  -----------
  Reland "[Lit][NFC] Refactor shell environment functionality and in-process builtins from TestRunner.py into new modules" (#193759)

Fixed version of #177358 which accidentally removed an import.

This is the first in a series of PRs reworking Lit's handling of
in-process builtins to be run as part of command pipelines, and to
enable users to provide new in-process builtins via Lit's configuration.
The full series of patches can be found here:
https://github.com/BStott6/llvm-project/tree/lit-inproc-builtins.

This work is required for the test daemonization project:
https://discourse.llvm.org/t//88612/9

This PR moves the shell environment functionality and existing
in-process builtins from TestRunner.py into new modules. This is
important not just for organizational purposes but also because,
eventually, user defined in-process builtins will need to be able to
import items from these modules, but these cannot import TestRunner as
this would result in a dependency cycle.


  Commit: ee3ed4a0f688ab6ad763126671390b63dee489ca
      https://github.com/llvm/llvm-project/commit/ee3ed4a0f688ab6ad763126671390b63dee489ca
  Author: Hongxu Xu <hxxu96 at gmail.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
    A llvm/test/Transforms/InstCombine/hyperbolic-lib-functions.ll

  Log Message:
  -----------
  [InstCombine] Fold neg arg in hyperbolic lib functions (#193586)

Fix #173706 (it is closed but not really fixed). 

The previous PR #173730 only addressed the **intrinsics**
`@llvm.sinh.f64` etc, which does not have effects on the C program
compiled without `-fno-math-errno`.

I validated the optimization by `clang -O2`.


  Commit: 7779ee8c0e957a9a8247ad540e5b59c86f1c819c
      https://github.com/llvm/llvm-project/commit/7779ee8c0e957a9a8247ad540e5b59c86f1c819c
  Author: Caroline Newcombe <caroline.newcombe at hpe.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M flang/include/flang/Evaluate/expression.h
    M flang/lib/Lower/ConvertExprToHLFIR.cpp
    M flang/lib/Semantics/expression.cpp
    M flang/test/Lower/HLFIR/conditional-expr.f90
    M flang/test/Semantics/conditional-expr.f90

  Log Message:
  -----------
  [flang] Support polymorphic types in conditional expressions (#192684)

Add lowering support for polymorphic (`CLASS(T)`) conditional
expressions.

`ConditionalExpr::GetType()` now checks both branches and returns the
polymorphic type if either is polymorphic (F2023 10.1.4(7)). In
lowering, polymorphic conditionals use `fir::ClassType` instead of
`fir::BoxType` for the allocatable temporary so that dynamic type info
is preserved through `hlfir.assign` realloc.

Covers scalar, array, and mixed `TYPE(T)`/`CLASS(T)` operands. Unlimited
polymorphic `CLASS(*)` does not have a declared type, and is therefore
rejected in semantics. LIT tests for lowering and semantics have been
updated.


  Commit: 9f75001f924a197201e577c7d3c6f15c77e37af3
      https://github.com/llvm/llvm-project/commit/9f75001f924a197201e577c7d3c6f15c77e37af3
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M lldb/test/API/python_api/run_locker/TestRunLocker.py

  Log Message:
  -----------
  [lldb] Fix flaky TestRunLocker by using lldb.target instead of lldb.frame (#193788)

`lldb.frame` is a Python convenience variable that resolves to `None`
when the process is running (no selected frame), potentially causing an
`AttributeError` before the run locker check is ever reached. Use
`lldb.target` instead, which is always valid and properly exercises the
run locker path.

Fixes #193787


  Commit: 0459273e347a2938f2909fbf91e8d80ba10b7677
      https://github.com/llvm/llvm-project/commit/0459273e347a2938f2909fbf91e8d80ba10b7677
  Author: Adar Dagan <101581112+Adar-Dagan at users.noreply.github.com>
  Date:   2026-04-24 (Fri, 24 Apr 2026)

  Changed paths:
    M llvm/include/llvm/IR/ConstantRange.h
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/IR/ConstantRange.cpp
    M llvm/unittests/Analysis/ValueTrackingTest.cpp
    M llvm/unittests/IR/ConstantRangeTest.cpp

  Log Message:
  -----------
  [ConstantRange] Expand makeAllowedICmpRegion to use samesign to give tighter range (#174355)

After the addition of samesign then instcombine correctly transforms
unsigned greater than to use it if it can prove that value is greater
than zero and then removes the assume that allowed it to prove that. For
example:
```
define i8 @remove_for_samesign(i8 %x) {
  %gt = icmp sgt i8 %x, 10
  call void @llvm.assume(i1 %gt)
  %gt.zero = icmp sge i8 %x, 0
  call void @llvm.assume(i1 %gt.zero)
  ret i8 %x
}
```
Is optimized to:
```
define i8 @remove_for_samesign(i8 %x) {
  %gt= icmp samesign ugt i8 [[X:%.*]], 10
  call void @llvm.assume(i1 %gt)
  ret i8 %x
}
```

This leads to a wrong range being returned from computeConstantRange
because it doesn't look at samesign when constructing a range from
assumes, this patch fixes that.

---------

Co-authored-by: Adar Dagan <adar.dagan at mobileye.com>


  Commit: 87a8d40fdd441014d665c979e1c7771debb093e2
      https://github.com/llvm/llvm-project/commit/87a8d40fdd441014d665c979e1c7771debb093e2
  Author: Helena Kotas <hekotas at microsoft.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/include/clang/AST/HLSLResource.h
    M clang/lib/AST/HLSLResource.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGHLSLRuntime.cpp
    M clang/lib/CodeGen/CGHLSLRuntime.h
    M clang/lib/Sema/SemaHLSL.cpp
    A clang/test/CodeGenHLSL/resources/resources-in-structs-array.hlsl
    A clang/test/CodeGenHLSL/resources/resources-in-structs-inheritance.hlsl
    A clang/test/CodeGenHLSL/resources/resources-in-structs.hlsl

  Log Message:
  -----------
  [HLSL] Add codegen for accessing resource members of a struct (2nd merge attempt) (#193584)

Any expression that accesses a resource or resource array member of a global struct instance must be during codegen replaced by an access of the corresponding implicit global resource variable.

When codegen encounters a `MemberExpr` of a resource type, it traverses the AST to locate the parent struct declaration, building the expected global resource variable name along the way. If the parent declaration is a non-static global struct instance, codegen searches its `HLSLAssociatedResourceDeclAttr` attributes to locate the matching global resource variable and then generates IR code to access the resource global in place of the member access.

Fixes #182989

This is the second try to land this. The [first one](https://github.com/llvm/llvm-project/pull/187127)collided with #188792 and both PRs had to be reverted. No updates needed to this change. I synced with @inbelic and we agreed
that this one should go in first.


  Commit: 44d1832283ca416b30c86bad028f2c6252e805b9
      https://github.com/llvm/llvm-project/commit/44d1832283ca416b30c86bad028f2c6252e805b9
  Author: Benjamin Stott <Benjamin.Stott at sony.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

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

  Log Message:
  -----------
  Reland #2 "[STLExtras] Add a template for detecting whether a type has an equality comparison operator" (#177415)

Reland PR #176893 which was an attempt to reland PR #176429.

Fix:

There was a test case asserting that for types `StructA` `StructB` where
`operator==(const StructB &, const StructA &)` is defined,
`has_equality_comparison_v<StructA, StructB>` is false because the
arguments are the wrong way around. However, in C++20, operator overload
resolution was changed so that for reflexive comparison operators `==`
and `!=` if a candidate exists with the arguments swapped then this will
be used. This means the test case failed when compiled with C++20. That
check was simply removed in this version.


  Commit: 84eb64d64f7877acb7f7f1a712a3c9a23523bc38
      https://github.com/llvm/llvm-project/commit/84eb64d64f7877acb7f7f1a712a3c9a23523bc38
  Author: Zhige Chen <zhigec_cpp at outlook.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    A llvm/test/tools/llubi/intr_arith_overflow.ll
    A llvm/test/tools/llubi/intr_arith_sat.ll
    A llvm/test/tools/llubi/intr_bit_manip.ll
    A llvm/test/tools/llubi/intr_int_arith.ll
    A llvm/test/tools/llubi/intr_passthrough.ll
    A llvm/test/tools/llubi/intr_vscale.ll
    A llvm/test/tools/llubi/intr_vscale_poison.ll
    M llvm/tools/llubi/lib/Interpreter.cpp

  Log Message:
  -----------
  [llubi] Implement intrinsics for integer arithmetic/bit manipulation (#193702)

This PR implements intrinsics for integer arithmetic (from the [Standard
C/C++ Library
Intrinsics](https://llvm.org/docs/LangRef.html#standard-c-c-library-intrinsics)),
bit manipulation, overflow arithmetic, and saturation arithmetic.


  Commit: d060b496ebf71911c3657874977742f58e38e9a8
      https://github.com/llvm/llvm-project/commit/d060b496ebf71911c3657874977742f58e38e9a8
  Author: Sairudra More <sairudra60 at gmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Lower/CustomIntrinsicCall.cpp
    A flang/test/Lower/HLFIR/elemental-character-min-max-optional-todo.f90
    M flang/test/Lower/HLFIR/elemental-character-min-max.f90

  Log Message:
  -----------
  [flang] Route elemental CHARACTER MIN/MAX OPTIONAL cases through custom lowering (#191244)

Follow-up to #189464.

Elemental CHARACTER MIN/MAX with dynamically optional arguments was
bypassing the custom optional-handling path and could lower incorrectly.

This change routes those cases through `genCustomIntrinsicRefCore` so
they hit the existing TODO instead of producing bad code. It also
unwraps sequence types before checking `fir::isa_char`, so the same TODO
is triggered for elemental calls as well as scalar ones, and adds a
negative test for the diagnostic.

Co-authored-by: Sairudra More <moresair at pe31.hpc.amslabs.hpecorp.net>


  Commit: 5506829f7fd70309ab6603e962109bc8ad8d6894
      https://github.com/llvm/llvm-project/commit/5506829f7fd70309ab6603e962109bc8ad8d6894
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Parse/ParseExpr.cpp
    M clang/lib/Parse/ParseExprCXX.cpp
    M clang/lib/Parse/ParseOpenMP.cpp
    M clang/lib/Sema/SemaExpr.cpp

  Log Message:
  -----------
  Remove unused parameter; NFC (#193767)

As part of removing delayed typo handling in
9eef4d1c5fa6b1bcbbe675c14ca8301d5d346f7b, the KeywordReplacement
parameter ended up being unused, so this patch removes it and adjusts
the callers. This issue was discovered by a downstream static analysis
scan.

It is an NFC change because the callers of the function were looking for
a sentinel return value to determine whether they needed to call
UnconsumeToken on that parameter, but those calls cannot be reached
because the sentinel return value cannot be produced any longer.


  Commit: df77a292371c3984d00816466b7b73ad3ebd21fb
      https://github.com/llvm/llvm-project/commit/df77a292371c3984d00816466b7b73ad3ebd21fb
  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:
  -----------
  [offload] Fix envar description in docs (#193642)


  Commit: 254fcbeface8716a42dfd38ded3a65dc0d72a55b
      https://github.com/llvm/llvm-project/commit/254fcbeface8716a42dfd38ded3a65dc0d72a55b
  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:
  -----------
  [offload][OpenMP] Add basic documentation for kernel record replay (#193699)


  Commit: 712b058c1222e2cdafad3c20df39020fb83c50de
      https://github.com/llvm/llvm-project/commit/712b058c1222e2cdafad3c20df39020fb83c50de
  Author: Jonathan Thackray <jonathan.thackray at arm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/utils/lit/tests/progress-bar.py

  Log Message:
  -----------
  [lit] Fix `progress-bar.py` flaky test (#193741)

The `lit` progress-bar test was checking for exact progress-bar text
like `0.. 10.. 20.. 30.. 40..`, but that output is not stable from run
to run.

The progress bar is based on timing estimates, including saved timings
from earlier runs, so small timing differences can change which numbers
get printed.

That made the test flaky: `FileCheck` could match the wrong `Testing:`
line
and then fail later, even though the actual test failures were correct.

Relax the test to verify ordering instead of exact progress-bar
contents. The updated checks assert that the test header is printed,
that
each failing test result is separated by a `Testing:` progress-bar line,
and that the final failed-tests summary lists all expected tests in
order.

This preserves coverage for the simple progress-bar path while removing
dependence on unstable timing-derived percentages.

Fixes #72022


  Commit: a1d11348aba4b70295ef9ada4a13a722455165d3
      https://github.com/llvm/llvm-project/commit/a1d11348aba4b70295ef9ada4a13a722455165d3
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2026-04-23 (Thu, 23 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
    A llvm/test/Transforms/PreISelIntrinsicLowering/AArch64/expand-fp-math-binary.ll
    A llvm/test/Transforms/PreISelIntrinsicLowering/RISCV/expand-fp-math-binary.ll

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

This expands the set of scalable typed binary intrinsics which can be
expanded to match the entire set of builtin element wise routines
provided by clang. Support for the binary ones will follow in a separate
patch.

Note that the lowering quality is terrible, particularly when the libc
entry for the scalar routine doesn't preserve vector registers (e.g.
RISC-V default). This is a functional fix to avoid crashes when trying
to codegen these, nothing more.

Written by Claude, sanity checked by me.


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

  Changed paths:
    M flang/lib/Optimizer/Transforms/CUDA/CUFGPUToLLVMConversion.cpp
    M flang/test/Fir/CUDA/cuda-gpu-launch-func.mlir

  Log Message:
  -----------
  [flang][cuda] Flatten memref descriptors in GPU kernel argument packing (#193651)

createKernelArgArray in CUFGPUToLLVMConversion packed one pointer per
operand, treating a memref argument as a single value. But gpu-to-nvvm
expands each memref into 3 + 2*rank scalar parameters, so the host-side
kernelParams did not match the device kernel signature and
cudaLaunchKernel failed with cudaErrorInvalidValue.

Host-side packing now unpacks each memref descriptor into its scalar
fields (allocatedPtr, alignedPtr, offset, sizes..., strides...),
matching the NVVM ABI. Non-memref operands pass through unchanged.


  Commit: 18e4f3be2d49086fff612b06156c42c6c8dd01d5
      https://github.com/llvm/llvm-project/commit/18e4f3be2d49086fff612b06156c42c6c8dd01d5
  Author: Matt <MattPD at users.noreply.github.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M flang/lib/Parser/openmp-parsers.cpp
    A flang/test/Parser/OpenMP/parallel-loop-unparse.f90

  Log Message:
  -----------
  [flang][OpenMP] Add parallel loop to loop directive parser set (#193621)

Add `OMPD_parallel_loop` to `GetLoopDirectives()` in the Flang OpenMP
parser so that the valid OpenMP 5.0 combined construct
`!$omp parallel loop` is recognized as a loop construct.

Previously, the parser failed to match `parallel loop` as a loop
directive. It then fell through to matching `parallel` as a block
construct, leaving `loop` as an unexpected token, producing:

```
error: expected OpenMP construct
    !$omp parallel loop
                       ^
```

The directive was already fully defined in OMP.td and handled in the
semantics directive sets, lowering, and MLIR `GenericLoopConversion`
passes. Only the parser set was missing the entry.

Fixes #193101

Assisted-by: Claude Opus 4.6.

Co-authored-by: Matt P. Dziubinski <matt-p.dziubinski at hpe.com>


  Commit: dc34d163d8c9c673b0f2415f23e07e129ce7648e
      https://github.com/llvm/llvm-project/commit/dc34d163d8c9c673b0f2415f23e07e129ce7648e
  Author: Lucas Ramirez <11032120+lucas-rami at users.noreply.github.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
    M llvm/lib/Target/AMDGPU/GCNSchedStrategy.h
    M llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats-attr.mir
    M llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats-debug.mir
    R llvm/test/CodeGen/AMDGPU/misched-remat-revert.ll
    M llvm/test/CodeGen/AMDGPU/sched_mfma_rewrite_copies.mir
    M llvm/test/CodeGen/AMDGPU/sched_mfma_rewrite_cost.mir
    M llvm/test/CodeGen/AMDGPU/sched_mfma_rewrite_diff_types.mir

  Log Message:
  -----------
  Re-apply "[AMDGPU][Scheduler] Use MIR-level rematerializer in rematerialization stage (#189491)" (#192443)

This fixes compilation errors in EXPENSIVE_CHECKS introduced by
[be62f27](https://github.com/llvm/llvm-project/commit/be62f270fd01e8c526f1e37df74ff1061e360dab).
This is solved by moving the EXPENSIVE_CHECKS block at its original
caller's site so that the data it reads is available.

Original PR description below.

---

This makes the scheduler's rematerialization stage use the
target-independent rematerializer. Previosuly duplicate logic is
deleted, and restrictions are put in place in the stage so that the same
cosntraints as before apply on rematerializable registers (as the
rematerializer is able to expose many more rematerialization
opportunities than what the stage can track at the moment). Consequently
it is not expected that this change improves performance overall, but it
is a first step toward being able to use the rematerializer's more
advanced capabilities during scheduling.

This is *not* a NFC for 2 reasons.

- Score equalities between two rematerialization candidates with
otherwise equivalent score are decided by their corresponding register's
index handle in the rematerializer (previously the pointer to their
state object's value). This is determined by the rematerializer's
register collection order, which is different from the stage's old
register collection order. This is the cause of all test changes but
one, and should not be detrimental to performance in real cases.
- To support rollback, the stage now uses the rematerializer's rollback
listener instead of its previous ad-hoc method (setting the opcode of
rematerialized MIs to a DBG_VALUE, and their registers to the sentinel).
This is the source of test changes in
`machine-scheduler-sink-trivial-remats-debug.mir`. The new rollback
mechanism completely removes the behavior tested by
`misched-remat-revert.ll` so the test is deleted.


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

  Changed paths:
    A libcxx/cmake/caches/Generic-llvm-libc.cmake
    A libcxx/test/configs/llvm-libc++-llvm-libc.cfg.in
    M libcxx/utils/ci/run-buildbot
    A libcxxabi/test/configs/llvm-libc++abi-llvm-libc.cfg.in

  Log Message:
  -----------
  [libcxx] Add Testing Configuration for LLVM libc

This patch adds a CMake cache, and the testing configs to build libc++
and run the tests against LLVM libc.

Reviewers: ldionne, philnik777, jtstogel

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


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

  Changed paths:
    M .github/workflows/libcxx-build-containers.yml

  Log Message:
  -----------
  [libcxx][Github] Build container images in separate jobs (#193346)

With some recent refactorings, these builds are almost entirely
independent (minus some caching of pulled base images). Put them into
separate jobs so we can take advantage of paralleism during the builds
to get the total wall-time down.

This wouldn't have as big of an advantage if we were using the just
built base image, but should still be wall-time advantagous even if we
go back to doing that when relevant.


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

  Changed paths:
    M libcxx/test/libcxx/fuzzing/random.pass.cpp
    M libcxx/test/libcxx/language.support/support.dynamic/assert.nothrow_new_not_overridden_fno_exceptions.pass.cpp
    M libcxx/test/libcxx/language.support/support.dynamic/new_dont_return_nullptr.pass.cpp
    M libcxx/test/libcxx/numerics/c.math/constexpr-cxx23-clang.pass.cpp
    M libcxx/test/selftest/dsl/dsl.sh.py
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_is_lock_free.pass.cpp
    M libcxx/test/std/containers/container.adaptors/container.adaptors.format/format.functions.format.pass.cpp
    M libcxx/test/std/containers/container.adaptors/container.adaptors.format/format.functions.vformat.pass.cpp
    M libcxx/test/std/depr/depr.c.headers/math_h.pass.cpp
    M libcxx/test/std/depr/depr.c.headers/signal_h.compile.pass.cpp
    M libcxx/test/std/depr/depr.c.headers/stdio_h.compile.pass.cpp
    M libcxx/test/std/depr/depr.c.headers/stdlib_h.pass.cpp
    M libcxx/test/std/depr/depr.c.headers/uchar_h.compile.pass.cpp
    M libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp
    M libcxx/test/std/language.support/support.runtime/csignal.pass.cpp
    M libcxx/test/std/language.support/support.runtime/cstdlib.pass.cpp
    M libcxx/test/std/numerics/c.math/cmath.pass.cpp
    M libcxx/test/std/numerics/c.math/hermite.pass.cpp
    M libcxx/test/std/numerics/complex.number/cmplx.over/pow.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.member.ops/divide_equal_complex.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.ops/complex_divide_complex.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.ops/scalar_divide_complex.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/acos.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/acosh.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/asin.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/asinh.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/atan.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/atanh.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/cos.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/cosh.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/exp.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/log.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/log10.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/pow_complex_complex.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/pow_complex_scalar.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/pow_scalar_complex.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/sin.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/sinh.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/sqrt.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/tan.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/tanh.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.value.ops/abs.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.value.ops/polar.pass.cpp
    M libcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/cosh_valarray.pass.cpp
    M libcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/sinh_valarray.pass.cpp
    M libcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/tanh_valarray.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/assign.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/copy.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/ctor_int_double.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/ctor_param.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/eq.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/eval.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/eval_param.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/get_param.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/max.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/min.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/param_assign.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/param_copy.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/param_ctor.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/param_eq.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/set_param.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.weibull/eval.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.weibull/eval_param.pass.cpp
    M libcxx/test/std/strings/c.strings/cuchar.compile.pass.cpp
    M libcxx/test/std/time/time.hash/time.hash_enabled.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtmap/format.functions.format.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtmap/format.functions.vformat.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtset/format.functions.format.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtset/format.functions.vformat.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtstr/format.functions.format.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtstr/format.functions.vformat.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtstr/format.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtstr/parse.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.formatter/format.functions.format.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.formatter/format.functions.vformat.pass.cpp
    M libcxx/utils/libcxx/test/features/platform.py

  Log Message:
  -----------
  [libcxx] XFAIL some tests for LLVM libc

Mark the tests that are currently failing on LLVM libc with the new
CMake cache as XFAIL so that we can get CI stood up as soon as possible.

Reviewers: ldionne, jtstogel, philnik777

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


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

  Changed paths:
    M llvm/utils/profcheck-xfail.txt

  Log Message:
  -----------
  [ProfCheck] Add test from #193580 to xfail list (#193799)

We haven't gotten to this part of pre-isel-intrinsic-lowering yet.


  Commit: 56fd2c016fd499d2532cb7cec78c34ee753811af
      https://github.com/llvm/llvm-project/commit/56fd2c016fd499d2532cb7cec78c34ee753811af
  Author: Amr Hesham <amr96 at programmer.net>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
    M clang/test/CIR/CodeGenOpenCL/as_type.cl

  Log Message:
  -----------
  [CIR] Upstream __builtin_astype int_to_ptr (#193519)

Upstream support for __builtin_astype int_to_ptr case

Issue https://github.com/llvm/llvm-project/issues/192311


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

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenBuilder.cpp
    A clang/test/CIR/CodeGen/global-ptr-init-negative-offset.c

  Log Message:
  -----------
  [CIR] Handle negative offsets in pointer constants (#193624)

When a negative offset was used as an index into a global array as part
of a global pointer initialization, CIR was hitting an unreachable
marker while trying to construct a GlobalView attribute to describe the
pointer initialization. Although this sort of negative offset is UB,
Clang allows it, so we want to produce the same results via CIR.

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


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

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
    A clang/test/CIR/CodeGen/delete-destroying.cpp

  Log Message:
  -----------
  [CIR] Implement handling for destroying delete (#193607)

This adds CIR handling for destroying delete calls. The basic support
for deleting objects via virtual and non-virtual delete calls was
already in place. All that was needed was to add the function to emit
these calls when a destroying operator delete was encountered in
`emitCXXDeleteExpr` and to add the code to add the destroying delete tag
parameter when it is needed.

Note, classic codegen elides the destroying delete tag parameter for the
new test case because it represents an empty class. That will be handled
as part of ABI lowering in CIR, but it is not yet implemented.

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


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

  Changed paths:
    M llvm/include/llvm/TargetParser/Triple.h
    M llvm/lib/TargetParser/Triple.cpp
    M llvm/unittests/TargetParser/TripleTest.cpp

  Log Message:
  -----------
  Triple: Add constructor from enum entries (#190632)

Don't require hardcoding the string names.


  Commit: 6fe957a8423f847a913b60f2c9004ef9ea9b3ca7
      https://github.com/llvm/llvm-project/commit/6fe957a8423f847a913b60f2c9004ef9ea9b3ca7
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/test/lit.cfg.py

  Log Message:
  -----------
  [clang][lit] Don't substitute cir-opt if it's not enabled (#193665)

Suppresses note like:
```
llvm-lit: llvm-project/llvm/utils/lit/lit/llvm/subst.py:130: note: Did not find cir-opt in ...
```


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

  Changed paths:
    M clang/include/clang/CIR/Dialect/IR/CIROps.td
    M clang/lib/CIR/Dialect/Transforms/LoweringPrepare.cpp
    A clang/test/CIR/CodeGen/global-var-template-ctor.cpp

  Log Message:
  -----------
  [CIR] Allow multi-block ctor regions on GlobalOp (#193596)

C++14 variable templates with non-constexpr constructors (e.g., `static
const Foo<N> x{}` where `Foo()` is not constexpr) crash CIR codegen
with:

```
'cir.global' op region #0 ('ctorRegion') failed to verify
constraint: region with at most 1 blocks
```

The problem is that `GlobalOp`'s `ctorRegion` is declared as
`MaxSizedRegion<1>`, but when exceptions are enabled, `emitAggExpr` can
create additional blocks in the ctor region for EH cleanup scaffolding
(unreachable/trap terminators). These extra blocks are dead code —
`LoweringPrepare` already discards them when it moves the ctor region
into `__cxx_global_var_init`.

This patch relaxes the constraint to `AnyRegion` and replaces the
`llvm_unreachable("Multiple blocks NYI")` in the static-local guard path
with an assert (that path will be reworked by #193576).

Made with [Cursor](https://cursor.com)


  Commit: 80a00e1de18f96d4d21ca6217c2fd7a77e520ccb
      https://github.com/llvm/llvm-project/commit/80a00e1de18f96d4d21ca6217c2fd7a77e520ccb
  Author: Eric Feng <55723758+efric at users.noreply.github.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPUOps.td
    M mlir/include/mlir/Dialect/AMDGPU/Utils/Chipset.h
    M mlir/lib/Conversion/AMDGPUToROCDL/AMDGPUToROCDL.cpp
    M mlir/lib/Dialect/AMDGPU/IR/AMDGPUOps.cpp
    A mlir/test/Conversion/AMDGPUToROCDL/dot-gfx11.mlir
    A mlir/test/Conversion/AMDGPUToROCDL/dot-gfx12.mlir
    A mlir/test/Conversion/AMDGPUToROCDL/dot-gfx9.mlir
    A mlir/test/Conversion/AMDGPUToROCDL/dot-invalid.mlir
    M mlir/test/Dialect/AMDGPU/invalid.mlir
    M mlir/test/Dialect/AMDGPU/ops.mlir

  Log Message:
  -----------
  [AMDGPU] Implement amdgpu.dot op (#193371)

Adds `amdgpu` wrapper for rocdl dot ops. 

Assisted by: Claude

---------

Signed-off-by: Eric Feng <Eric.Feng at amd.com>


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

  Changed paths:
    M llvm/docs/AMDGPUUsage.rst

  Log Message:
  -----------
  AMDGPU: Use preferred --target=triple flag in documentation (#193817)

This was using the long deprecated single dash target with space
as the example.


  Commit: 8c10815313231c629999a3f54b48f80eb6715e94
      https://github.com/llvm/llvm-project/commit/8c10815313231c629999a3f54b48f80eb6715e94
  Author: Tamas Kaman <tamas.kaman at arm.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/secondary.h

  Log Message:
  -----------
  [scudo] Adjust PROT_MTE page count for secondary allocator (#192202)

Secondary allocator currently mmaps 4 pages as PROT_MTE in case MTE is
enabled in the allocator for Aarch64.
Since only the headers are tagged, this is unnecessary, two pages are
sufficient in worst case scenario.


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

  Changed paths:
    M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSBundle.py

  Log Message:
  -----------
  [lldb/test] Fix TestDataFormatterObjCNSBundle.py following 8212cab4128d (NFC) (#193816)

This removes a spurious space introduced by 8212cab4128d.

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


  Commit: 3e432057bfca1c1458bebb04c5b032ee8fcd6368
      https://github.com/llvm/llvm-project/commit/3e432057bfca1c1458bebb04c5b032ee8fcd6368
  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/lib/CIR/CodeGen/CIRGenModule.h
    A clang/test/CIR/CodeGen/restrict-noalias.c

  Log Message:
  -----------
  [CIR] Add restrict→noalias on non-builtin pointer params (#191483)

Map `restrict`-qualified pointer parameters to `noalias`, skipping
builtins (e.g. `printf`) where OGCG doesn't apply it. OGCG only adds
`noalias` from `restrict` through its calling-convention lowering path,
which builtins bypass, so the `!fd->getBuiltinID()` guard keeps CIR in
line.

`constructFunctionArgumentAttributes` now takes `targetDecl` so it can
look up `ParmVarDecl` qualifiers.

Updated `asm-label-inline-builtins.c` checks to reflect the new
`noalias` on the non-builtin `__vfprintf_chkieee128` call. New test:
`restrict-noalias.c` (CIR / LLVM / OGCG).

Made with [Cursor](https://cursor.com)


  Commit: df1c7ebac75fac3a17a500a850246662b5e30d98
      https://github.com/llvm/llvm-project/commit/df1c7ebac75fac3a17a500a850246662b5e30d98
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M lldb/include/lldb/Symbol/Function.h
    M lldb/source/Symbol/Function.cpp

  Log Message:
  -----------
  [lldb] Speculative fix for crash in Function::GetCallEdges() (#193636)

Replace the unprotected union+bool lazy resolution in DirectCallEdge
with `std::call_once`/`std::once_flag`.

Multiple threads can call `GetCallee` on the same edge concurrently and
the old code had no synchronization on the union discriminator or its
contents. This could lead to a corrupted pointer that would explain the
crash we're observing sporadically.

rdar://175006028


  Commit: d2553595793f7f75b461413666eb4e82f79566b8
      https://github.com/llvm/llvm-project/commit/d2553595793f7f75b461413666eb4e82f79566b8
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
    M llvm/test/CodeGen/AMDGPU/lower-module-lds-link-time-classify.ll
    M llvm/test/CodeGen/AMDGPU/lower-module-lds-link-time-global-scope.ll
    M llvm/test/CodeGen/AMDGPU/lower-module-lds-link-time-internal-func.ll
    M llvm/test/CodeGen/AMDGPU/lower-module-lds-link-time-internal-multi-user.ll

  Log Message:
  -----------
  [NFC][AMDGPU] Remove `amdgpu-link-time-lds` module flag (#193806)

We could just use `AMDGPUTargetMachine::EnableObjectLinking` to control.
Don't really need this, which is from a previous design where we wanted
to let different components to decide whether we want to use object
linking independently, but that would not really work.


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

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/shuffle-vs-trunc-128.ll

  Log Message:
  -----------
  [X86] resolveTargetShuffleInputsAndMask - match repeated vector sources through bitcasts (#193810)


  Commit: 86230d50912c8f0cd695d1b1cadbcd497c9aead6
      https://github.com/llvm/llvm-project/commit/86230d50912c8f0cd695d1b1cadbcd497c9aead6
  Author: Amr Hesham <amr96 at programmer.net>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenDecl.cpp
    M clang/lib/CIR/CodeGen/CIRGenExprComplex.cpp
    M clang/test/CIR/CodeGen/vla.c

  Log Message:
  -----------
  [CIR] Implement VLA cast for ComplexType (#193583)

Implement VLA cast support for ComplexType

Issue #192331


  Commit: 0bdaf63d01598a140afb27a86ce630735692cc04
      https://github.com/llvm/llvm-project/commit/0bdaf63d01598a140afb27a86ce630735692cc04
  Author: Vincentius Janssen <janssen.vincentius at gmail.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M mlir/lib/IR/ODSSupport.cpp
    M mlir/test/IR/invalid-properties.mlir
    M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
    M mlir/tools/mlir-tblgen/OpFormatGen.cpp

  Log Message:
  -----------
  [mlir] Enhance error messages for attribute type mismatch in properties (#193758)


  Commit: 44a1d740333b271e752e921581513ac4a37ce8f0
      https://github.com/llvm/llvm-project/commit/44a1d740333b271e752e921581513ac4a37ce8f0
  Author: Sam Clegg <sbc at chromium.org>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M lld/test/wasm/pic-static.s
    A lld/test/wasm/tls-base-non-shared-memory.s
    M lld/wasm/Writer.cpp

  Log Message:
  -----------
  [lld][WebAssembly] Always initialize fixed `__tls_base` in single threaded mode (#193563)

Without this fix `__tls_base` can remain set to zero which leads
`__builtin_thread_pointer` to return NULL, which is should not.

See https://github.com/emscripten-core/emscripten/pull/26747


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

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
    A clang/test/CIR/CodeGen/cast-lvalue-conv.cpp

  Log Message:
  -----------
  [CIR] Handle CK_UserDefinedConversion and related casts in emitCastLValue (#193611)

`emitCastLValue` was hitting an NYI error for
`CK_UserDefinedConversion`, `CK_ConstructorConversion`,
`CK_CPointerToObjCPointerCast`, `CK_BlockPointerToObjCPointerCast`, and
`CK_LValueToRValue`. Classic codegen handles all of these as a
pass-through to the sub-expression (`CGExpr.cpp:6197`), and CIR should
do the same.

Made with [Cursor](https://cursor.com)


  Commit: a6ab955369ae401cec75ced651c52c2348f117ad
      https://github.com/llvm/llvm-project/commit/a6ab955369ae401cec75ced651c52c2348f117ad
  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:
  -----------
  [Darwin] Remove linker version checks for objc_msgSend selector stubs (#193637)

Remove the getLinkerVersion checks that gated default enablement of
-fobjc-msgsend-selector-stubs and -fobjc-msgsend-class-selector-stubs on
AArch64 Darwin targets.

The linker support for these stubs was added a long time ago, so the
version checks are no longer necessary. Additionally, getLinkerVersion
returns the version of the linker that was used to build clang, which
can differ from the linker actually used at invocation time, making the
check unreliable.


  Commit: 36d19f50db3fe08c6cfa71e8d62bce108a6adc0f
      https://github.com/llvm/llvm-project/commit/36d19f50db3fe08c6cfa71e8d62bce108a6adc0f
  Author: Ivan R. Ivanov <iivanov at nvidia.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M mlir/lib/Transforms/Mem2Reg.cpp
    M mlir/test/Transforms/mem2reg.mlir

  Log Message:
  -----------
  [MLIR][Mem2Reg] Ensure dominance of default value in regions (#193708)

When we promote an allocation, and a default value for a load from an
uninitialized slot is required, this value used to get inserted in the
same block as the allocation. However, in some cases, the default value
needs to be available in the predecessor blocks so that they can pass it
to the block of the allocation as an argument. For example, this is the
case for loops containing an allocation where the promoted value will
become and IV.

Make sure the default value is always available to all blocks by
creating it in the entry block of the region.

For reference, this is what used to be the output for the test. Note the
use of `%1`.
```
  "func.func"() <{function_type = (f64) -> (), sym_name = "poison_insertion_point"}> ({
  ^bb0(%arg0: f64):
    "cf.br"(%1)[^bb1] : (f64) -> ()
  ^bb1(%0: f64):  // 2 preds: ^bb0, ^bb2
    %1 = "ub.poison"() <{value = #ub.poison}> : () -> f64
    %2 = "test.get"() : () -> i1
    "cf.cond_br"(%2)[^bb2, ^bb3] <{operandSegmentSizes = array<i32: 1, 0, 0>}> : (i1) -> ()
  ^bb2:  // pred: ^bb1
    %3 = "test.get"() : () -> i1
    %4 = "scf.if"(%3) ({
      "scf.yield"(%arg0) : (f64) -> ()
    }, {
      "scf.yield"(%0) : (f64) -> ()
    }) : (i1) -> f64
    "test.use"(%4) : (f64) -> ()
    "cf.br"(%4)[^bb1] : (f64) -> ()
  ^bb3:  // pred: ^bb1
    "func.return"() : () -> ()
  }) : () -> ()
```


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

  Changed paths:
    A llvm/test/CodeGen/X86/pr193700.ll

  Log Message:
  -----------
  [X86] Add test coverage for #193700 (#193819)

Shows failure to scalarize partial vector code


  Commit: 1e690a2c16fdc8f56565fbd7f60d78a51d509a42
      https://github.com/llvm/llvm-project/commit/1e690a2c16fdc8f56565fbd7f60d78a51d509a42
  Author: Sietze Riemersma <43845930+KungFuDonkey at users.noreply.github.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/Builtins.td
    M clang/include/clang/Basic/HLSLIntrinsics.td
    M clang/lib/CodeGen/CGHLSLBuiltins.cpp
    M clang/lib/CodeGen/CGHLSLRuntime.h
    A clang/test/CodeGenHLSL/builtins/AllMemoryBarrier.hlsl
    A clang/test/CodeGenHLSL/builtins/AllMemoryBarrierWithGroupSync.hlsl
    A clang/test/CodeGenHLSL/builtins/DeviceMemoryBarrier.hlsl
    A clang/test/CodeGenHLSL/builtins/DeviceMemoryBarrierWithGroupSync.hlsl
    A clang/test/SemaHLSL/BuiltIns/AllMemoryBarrier-errors.hlsl
    A clang/test/SemaHLSL/BuiltIns/AllMemoryBarrierWithGroupSync-errors.hlsl
    A clang/test/SemaHLSL/BuiltIns/DeviceMemoryBarrier-errors.hlsl
    A clang/test/SemaHLSL/BuiltIns/DeviceMemoryBarrierWithGroupSync-errors.hlsl
    M llvm/include/llvm/IR/IntrinsicsDirectX.td
    M llvm/include/llvm/IR/IntrinsicsSPIRV.td
    M llvm/lib/Target/DirectX/DXIL.td
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    A llvm/test/CodeGen/DirectX/all_memory_barrier.ll
    A llvm/test/CodeGen/DirectX/all_memory_barrier_with_group_sync.ll
    A llvm/test/CodeGen/DirectX/device_memory_barrier.ll
    A llvm/test/CodeGen/DirectX/device_memory_barrier_with_group_sync.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/all_memory_barrier.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/all_memory_barrier_with_group_sync.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/device_memory_barrier.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/device_memory_barrier_with_group_sync.ll
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/group_memory_barrier.ll
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/group_memory_barrier_with_group_sync.ll

  Log Message:
  -----------
  [HLSL][DXIL][SPIRV] Added DeviceMemoryBarrier() and AllMemoryBarrier() intrinsics (#190633)

>From issue #99105, #99076, #99090, #99106 and adds the implementation of
DeviceMemoryBarrier(WithGroupSync) and AllMemoryBarrier(WithGroupSync)
to DXIL and SPIRV.


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

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/log10.ll
    M llvm/test/CodeGen/SPIRV/llvm-intrinsics/exp10-glsl.ll

  Log Message:
  -----------
  [SPIR-V] Fix half precision OpConstant for log10/exp10 lowering (#193730)


  Commit: b96263ce6c68834abbcd74cd2c7466f7b1da719d
      https://github.com/llvm/llvm-project/commit/b96263ce6c68834abbcd74cd2c7466f7b1da719d
  Author: Helena Kotas <hekotas at microsoft.com>
  Date:   2026-04-23 (Thu, 23 Apr 2026)

  Changed paths:
    M clang/test/CodeGenHLSL/convergence/global_array.hlsl

  Log Message:
  -----------
  [HLSL] Update global array convergence test (#193380)

Updates global array initialization convergence test to use static array
of resources instead of a user-defined struct with a constructor. The
test will no longer work as is once the support for user-defined
constructors is removed (#193375).


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

  Changed paths:
    M llvm/lib/Transforms/Utils/LowerVectorIntrinsics.cpp
    A llvm/test/Transforms/PreISelIntrinsicLowering/RISCV/expand-fp-math.ll

  Log Message:
  -----------
  [PreISelIntrinsicLowering] Use index type for index in intrinsic expansion (#193807)

We'd chosen intptr type for the binary in review, but on reflection the
index type is probably a conceptually better fit. On riscv, these are
going to be the same, so it's purely a conceptual issue.

For the unary case, this is an actual change since we were using i64
unconditionally. This improves codegen for RV32 by avoiding the need for expensive legalization of i64 expressions for the IV.


  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: 5e42f09a6f001ad60ff85bbc0f54290d86033912
      https://github.com/llvm/llvm-project/commit/5e42f09a6f001ad60ff85bbc0f54290d86033912
  Author: Timm Baeder <tbaeder at redhat.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

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

  Log Message:
  -----------
  [clang][bytecode] Reject non-number values in Rem op (#194309)


  Commit: aa04bcfd2f368405490a6ef45a8b7d6fd6ee964c
      https://github.com/llvm/llvm-project/commit/aa04bcfd2f368405490a6ef45a8b7d6fd6ee964c
  Author: ioana ghiban <ioana.ghiban at arm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M mlir/lib/Dialect/MemRef/Transforms/ElideReinterpretCast.cpp
    M mlir/test/Dialect/MemRef/elide-reinterpret-cast.mlir

  Log Message:
  -----------
  [memref] Simplify loads from reinterpret_cast of 1D contiguous memrefs (#188459)

Rewrite `memref.load` operations whose source is a `reinterpret_cast` that
represents a rank reshape of a 1D contiguous `memref` with a single  non-unit
dimension.

Assisted-by: ChatGPT (refine implementation + tests). I reviewed all code and
tests before submission.

## Example

Before:
```mlir
%reinterpret_cast = memref.reinterpret_cast %src
  to offset: [0], sizes: [1, 1, 999], strides: [999, 999, 1]
  : memref<999xi64> to memref<1x1x999xi64>
%0 = memref.load %reinterpret_cast[%c0, %c0, %i]
  : memref<1x1x999xi64>
```

After:
```mlir
%0 = memref.load %src[%i] : memref<999xi64>
```

## Motivation

This simplifies the IR, makes indexing explicit, and reduces  indirection,
which in turn improves downstream transformations and  lowerings (e.g. EmitC).

## Scope

This rewrite is intentionally narrow:
- Applies only to rank-expansion and rank-collapsing of a contiguous 1D buffer
  (at most one non-unit dimension).
- Requires `reinterpret_cast` with zero offset and fully static sizes and
  strides.
- Requires the non-unit dimension to be at a boundary (first or last).
- Requires any dropped indices (from size-1 dimensions) to be statically zero.

It does **not** handle:
- general `memref.reinterpret_cast` with arbitrary strides or offsets
- multiple non-unit dimensions
- cases where index dropping would change semantics
For example:
```mlir
%reinterpret_cast = memref.reinterpret_cast %src
to offset: [0], sizes: [1, 1, 1, 108], strides: [108, 108, 108, 1]
: memref<1x108xf32> to memref<1x1x1x108xf32>
%0 = memref.load %reinterpret_cast[%c0, %c1, %c0, %c0]
: memref<1x1x1x108xf32>
```
The pattern would skip `%c1` when forming the indices for the replacement load,
since it cuts the dimensions that were added to the left, including the
dimension where the non-zero index is:
```mlir
%0 = memref.load %src[%c0, %c0]
: memref<1x108xf32>
```
causing the rewrite to discard a non-zero index on a size-1 dimension, which is
not semantics-preserving.

## Correctness

In the accepted cases, the cast is a pure view that does not alter memory
layout. Size-1 dimensions do not contribute to address computation, and the
single non-unit dimension determines the access.

Dropping indices for size-1 dimensions (or inserting zeros when collapsing
rank) preserves the computed address. The rewrite is only applied when such
indices are statically zero, ensuring in-bounds semantics.

Therefore, the rewritten load is equivalent to the original load through the
`reinterpret_cast`


  Commit: 8a8d26fe77dc76864aa86171a4bcf0c645b16013
      https://github.com/llvm/llvm-project/commit/8a8d26fe77dc76864aa86171a4bcf0c645b16013
  Author: Brandon Wu <brandon.wu at sifive.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/non-policy/non-overloaded/vreinterpret.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/non-policy/overloaded/vreinterpret.c

  Log Message:
  -----------
  [RISCV] Support reinterpret cast intrinisc for OFP8 (#191626)

spec: https://github.com/riscv-non-isa/riscv-rvv-intrinsic-doc/pull/433

stacked on: https://github.com/llvm/llvm-project/pull/191349


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

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86] combineKSHIFT - pull out common operands. NFC. (#194326)

Minor refactor before adding additional folds.


  Commit: 31ea083c6b70a79706ba88dfea393d3834f65370
      https://github.com/llvm/llvm-project/commit/31ea083c6b70a79706ba88dfea393d3834f65370
  Author: Chandana Mudda <quic_csinderi at quicinc.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/WindowScheduler.cpp
    A llvm/test/CodeGen/Hexagon/win-sched-implicit-def.mir

  Log Message:
  -----------
  Handle IMPLICIT_DEF in TripleMBB for WindowScheduler (#179190)

Previously, IMPLICIT_DEF instructions were not copied into the
triple-MBB region used by the WindowScheduler. This left the
machine-level liveness inconsistent with the triplicated code and could
trigger a LiveIntervals assertion:
  LiveIntervals::HMEditor::updateRange: Assertion `LR.verify()' failed.
Copy IMPLICIT_DEF into the triple region so that the triplicated block
has a consistent set of defs and LiveIntervals can update ranges
correctly.

---------

Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>


  Commit: 94e0fd0988bb091960116a7aecc72f5e74161069
      https://github.com/llvm/llvm-project/commit/94e0fd0988bb091960116a7aecc72f5e74161069
  Author: Corentin Jabot <corentinjabot at gmail.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Frontend/InitPreprocessor.cpp
    M clang/lib/Sema/SemaCoroutine.cpp
    M clang/test/Analysis/Checkers/WebKit/uncounted-lambda-captures-co_await-assertion-failure.cpp
    M clang/test/Analysis/more-dtors-cfg-output.cpp
    M clang/test/CodeGenCXX/ubsan-coroutines.cpp
    M clang/test/CodeGenCoroutines/coro-params.cpp
    M clang/test/CodeGenCoroutines/coro-promise-dtor.cpp
    M clang/test/Lexer/cxx-features.cpp
    M clang/test/Modules/coro-await-elidable.cppm
    M clang/test/PCH/coroutines.cpp
    M clang/test/Parser/cxx20-coroutines.cpp
    M clang/test/SemaCXX/addr-label-in-coroutines.cpp
    M clang/test/SemaCXX/co_await-ast.cpp
    M clang/test/SemaCXX/coroutine-alloc-2.cpp
    M clang/test/SemaCXX/coroutine-alloc-3.cpp
    M clang/test/SemaCXX/coroutine-alloc-4.cpp
    M clang/test/SemaCXX/coroutine-allocs.cpp
    M clang/test/SemaCXX/coroutine-builtins.cpp
    M clang/test/SemaCXX/coroutine-dealloc.cpp
    M clang/test/SemaCXX/coroutine-final-suspend-noexcept.cpp
    M clang/test/SemaCXX/coroutine-no-valid-dealloc.cpp
    M clang/test/SemaCXX/coroutine-noreturn.cpp
    M clang/test/SemaCXX/coroutine-promise-ctor.cpp
    M clang/test/SemaCXX/coroutine-rvo.cpp
    M clang/test/SemaCXX/coroutine-traits-undefined-template.cpp
    M clang/test/SemaCXX/coroutine-unevaluate.cpp
    M clang/test/SemaCXX/coroutine-vla.cpp
    A clang/test/SemaCXX/coroutine-win32x86.cpp
    M clang/test/SemaCXX/coroutine_handle-address-return-type.cpp
    M clang/test/SemaCXX/coroutines.cpp
    M clang/test/SemaCXX/cxx20-delayed-typo-correction-crashes.cpp
    M clang/test/SemaCXX/cxx2b-deducing-this-coro.cpp
    M clang/test/SemaCXX/thread-safety-coro.cpp
    M clang/test/SemaCXX/warn-throw-out-noexcept-coro.cpp
    M clang/test/SemaCXX/warn-unused-parameters-coroutine.cpp
    M clang/www/cxx_status.html

  Log Message:
  -----------
  [Clang] No longer advertise support for coroutines on x86 windows. (#193456)

There are a large number of long standing issues with coroutines on
x86_32 windows as discussed here

https://github.com/llvm/llvm-project/issues/59382

- #59382
- #58556
- #58543
- #56989
- #193161
- #136481

As such this patches
  - No longer defines `__cpp_impl_coroutine` on that platform
  - Warn when using coroutines on that platform

The reason to not plainly error is that it would break too much valid
valid code, ie there are people who probably use coroutines sucessfully.

And we also want to keep testing on that platform, up until the point we
were to pull support completely.

Hopefully this is all temporary and someone will feel compelled to
improve the situation enough that we can unceremoniously revert this
patch.


  Commit: 48ee9c82f27e170e9cada55ca40e757a391829ef
      https://github.com/llvm/llvm-project/commit/48ee9c82f27e170e9cada55ca40e757a391829ef
  Author: Eugene Epshteyn <eepshteyn at nvidia.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M flang/test/Lower/pointer-initial-target-2.f90
    M flang/test/Lower/pointer-initial-target.f90
    M flang/test/Lower/pointer-references.f90
    M flang/test/Lower/pointer-results-as-arguments.f90
    M flang/test/Lower/pointer-runtime.f90

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

Tests converted from test/Lower: pointer-initial-target-2.f90,
pointer-initial-target.f90, pointer-references.f90,
pointer-results-as-arguments.f90, pointer-runtime.f90


  Commit: 6d89cd85942cc5f702267855ab2788e43c072961
      https://github.com/llvm/llvm-project/commit/6d89cd85942cc5f702267855ab2788e43c072961
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    A llvm/test/CodeGen/AArch64/sve-masked-ldst-alias-analysis.ll

  Log Message:
  -----------
  [LLVM][SelectionDAG] Don't assume masked loads access all lanes in memory. (#192706)

When creating the initial DAG for masked loads we are using the result
type to define LocationSize. However, being a masked load we do not know
which, if any, memory locations will be read.

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


  Commit: 8d060c0222a5cfa3b0fd875d48cf09b6c2dd4a5d
      https://github.com/llvm/llvm-project/commit/8d060c0222a5cfa3b0fd875d48cf09b6c2dd4a5d
  Author: Davide Grohmann <davide.grohmann at arm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVTosaOps.td
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVTosaTypes.td
    M mlir/lib/Dialect/SPIRV/IR/SPIRVTosaOps.cpp
    M mlir/test/Dialect/SPIRV/IR/tosa-ops-verification.mlir

  Log Message:
  -----------
  [mlir][spirv] Tighten SPIR-V TOSA pool constraints (#193515)

Tighten AvgPool2D and MaxPool2D verification by constraining kernel,
stride, and pad attributes and by checking the input/output NHWC
relationship.

Add verification tests for batch/channel mismatches, non-divisible
pooled shapes, pad-vs-kernel failures, and incorrect output shapes.

Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>


  Commit: c12ce4215408ddf83c338a4797b05dd0084b8d06
      https://github.com/llvm/llvm-project/commit/c12ce4215408ddf83c338a4797b05dd0084b8d06
  Author: Łukasz Plewa <lukasz.plewa at intel.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M offload/liboffload/API/Device.td
    M offload/liboffload/src/OffloadImpl.cpp
    M offload/plugins-nextgen/amdgpu/src/rtl.cpp
    M offload/plugins-nextgen/common/CMakeLists.txt
    M offload/plugins-nextgen/cuda/src/rtl.cpp
    M offload/plugins-nextgen/host/src/rtl.cpp
    M offload/plugins-nextgen/level_zero/dynamic_l0/L0DynWrapper.cpp
    M offload/plugins-nextgen/level_zero/dynamic_l0/level_zero/ze_api.h
    M offload/plugins-nextgen/level_zero/include/L0Device.h
    M offload/plugins-nextgen/level_zero/src/L0Device.cpp
    M offload/tools/deviceinfo/llvm-offload-device-info.cpp
    M offload/unittests/OffloadAPI/device/olGetDeviceInfo.cpp

  Log Message:
  -----------
  [offload] Add floating-point support detection queries (#193233)

Add device info queries to detect support for half-, single-, and
double-precision floating-point formats.

For the AMDGPU, CUDA, and Host plugins, add the new queries alongside
the existing capability reporting without changing current behavior.

For the Level Zero plugin, implement floating-point support detection
and capability querying.


  Commit: bd7cd403dbb3c6698c9edddc288e58c16aa88a36
      https://github.com/llvm/llvm-project/commit/bd7cd403dbb3c6698c9edddc288e58c16aa88a36
  Author: Amina Chabane <amina.chabane at arm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

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

  Log Message:
  -----------
  [BOLT][AArch64] Refuse to run CMOVConversion pass (#193998)

`--cmov-conversion` is unsupported in AArch64 as
convertMoveToConditionalMove() is only overriden for X86.

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


  Commit: 27ebc844f542c93991675a22dcd813020963819f
      https://github.com/llvm/llvm-project/commit/27ebc844f542c93991675a22dcd813020963819f
  Author: Alexandre Ganea <aganea at havenstudios.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/test/DebugInfo/Generic/codeview-buildinfo.c

  Log Message:
  -----------
  [clang][CodeView] Prevent the input name from appearing in LF_BUILDINFO (#194140)

The implicit contract of an `LF_BUILDINFO` record (represented in LLVM
by
[`BuildInfoRecord`](https://github.com/llvm/llvm-project/blob/6f0b55ec55f3e5e1ccc0d6b0d04a307479218768/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h#L667))
is that its `CommandLine` field should not contain the input source file
— a separate `SourceFile` field is reserved for that.

When the command-line flattening was moved from `llvm/` to `clang/` in
#106369, the comparison value used to identify and strip the source
positional was switched from `MainSourceFile->getFilename()` (the full
input path resolved by clang) to `CodeGenOpts.MainFileName` (just the
basename, set via `-main-file-name`). As a result, when the driver is
invoked with an absolute source path the cc1 positional is that absolute
path and no longer matches `MainFileName`, so the source filename leaks
into `CommandLine` as a trailing positional cc1 argument.

This is a regression in Clang 20. It breaks downstream tooling such as
Live++, whose unity-splitting feature relies on the embedded command
line being the cc1 invocation minus the source. Reported in #193900.

This PR restores the previous behavior by passing the resolved frontend
input path(s) to `flattenClangCommandLine` and including them in the
equality check that strips the source positional. The basename match
against `MainFileName` is kept for the relative-input case. A regression
test (and a symmetric relative-path test) is added to
`clang/test/DebugInfo/Generic/codeview-buildinfo.c`.

Should fix #193900.


  Commit: f60c5d989cf13e80acc576f638c2e7dd400a0aff
      https://github.com/llvm/llvm-project/commit/f60c5d989cf13e80acc576f638c2e7dd400a0aff
  Author: Łukasz Plewa <lukasz.plewa at intel.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M offload/plugins-nextgen/amdgpu/src/rtl.cpp

  Log Message:
  -----------
  [offload] fix compilation issue caused by #193233 (#194350)


  Commit: a51597f35f91ed5c25a391d5e965bfb6fe9a5ae2
      https://github.com/llvm/llvm-project/commit/a51597f35f91ed5c25a391d5e965bfb6fe9a5ae2
  Author: Nathan Gauër <brioche at google.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/lib/CodeGen/CGBuilder.h
    M clang/lib/CodeGen/CGExprAgg.cpp
    M clang/lib/CodeGen/CGHLSLRuntime.cpp
    M clang/test/CodeGenHLSL/ArrayAssignable.hlsl
    A clang/test/CodeGenHLSL/ArrayAssignable.logicalptr.hlsl
    A clang/test/CodeGenHLSL/resources/cbuffer_struct_passing.hlsl
    A clang/test/CodeGenHLSL/resources/cbuffer_struct_passing.logical.hlsl

  Log Message:
  -----------
  [HLSL] Handle logical pointer for array assign (#193227)

This commits adds SPIR-V testing on an existing test (almost-NFC on DXIL
testing). It also copies it and invokes Clang using the experimental
logical pointer flag.
Adding this flag shows a missing case in the frontend, handled with this
commit.

Due to the difference in index handling between the structured.gep and
legacy one, the Cbuffer load codegen had to be rewritten. It's a bit
more naive, as we get one gep per level, but this will be handled by
optimizations later on.


  Commit: aafba1dbdbee3ddeffca595c1d7550eb766c5178
      https://github.com/llvm/llvm-project/commit/aafba1dbdbee3ddeffca595c1d7550eb766c5178
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M mlir/include/mlir/Dialect/OpenMP/OpenMPEnums.td
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Target/LLVMIR/openmp-target-generic-spmd.mlir

  Log Message:
  -----------
  [MLIR][OpenMP] Remove Generic-SPMD early detection (#150922)

This patch removes logic from MLIR to attempt identifying Generic
kernels that could be executed in SPMD mode.

This optimization is done by the OpenMPOpt pass for Clang and is only
required here to circumvent missing support for the new DeviceRTL APIs
used in MLIR to LLVM IR translation that Clang doesn't currently use
(e.g. `kmpc_distribute_static_loop` ). Removing checks in MLIR avoids
duplicating the logic that should be centralized in the OpenMPOpt pass.

Additionally, offloading kernels currently compiled through the OpenMP
dialect fail to run parallel regions properly when in Generic mode. By
disabling early detection, this issue becomes apparent for a range of
kernels where this was masked by having them run in SPMD mode.


  Commit: 7b62dd1aeec5bcc7c4b8a8344966750b7d95250e
      https://github.com/llvm/llvm-project/commit/7b62dd1aeec5bcc7c4b8a8344966750b7d95250e
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp

  Log Message:
  -----------
  [OpenMP][OMPIRBuilder] Add device shared memory allocation support (#150923)

This patch adds the `__kmpc_alloc_shared` and `__kmpc_free_shared`
DeviceRTL functions to the list of those the OMPIRBuilder is able to
create.


  Commit: 3c39478e8b0b6d0e91a70c5887ea27ac90c2ed8c
      https://github.com/llvm/llvm-project/commit/3c39478e8b0b6d0e91a70c5887ea27ac90c2ed8c
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    A mlir/test/Target/LLVMIR/omptarget-device-shared-memory.mlir

  Log Message:
  -----------
  [MLIR][OpenMP] Support allocations of device shared memory (#150924)

This patch updates the allocation of some reduction and private
variables within target regions to use device shared memory rather than
private memory. This is a prerequisite to produce working Generic
kernels containing parallel regions.

In particular, the following situations result in the usage of device
shared memory (only when compiling for the target device if they are
placed inside of a target region representing a Generic kernel):
- Reduction variables on `teams` constructs.
- Private variables on `teams` and `distribute` constructs that are
reduced or used inside of a `parallel` region.

Currently, there is no support for delayed privatization on `teams`
constructs, so private variables on these constructs won't currently be
affected. When support is added, if it uses the existing
`allocatePrivateVars` and `cleanupPrivateVars` functions, usage of
device shared memory will be introduced automatically.


  Commit: 82f254992bbb822639cbe14d55df3bf5de65fa6a
      https://github.com/llvm/llvm-project/commit/82f254992bbb822639cbe14d55df3bf5de65fa6a
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
    M llvm/include/llvm/Transforms/Utils/CodeExtractor.h
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M llvm/lib/Transforms/IPO/HotColdSplitting.cpp
    M llvm/lib/Transforms/IPO/IROutliner.cpp
    M llvm/lib/Transforms/IPO/PartialInlining.cpp
    M llvm/lib/Transforms/Utils/CodeExtractor.cpp
    M llvm/unittests/Transforms/Utils/CodeExtractorTest.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Target/LLVMIR/omptarget-parallel-llvm.mlir

  Log Message:
  -----------
  [OpenMP][OMPIRBuilder] Use device shared memory for arg structures (#150925)

Argument structures are created when sections of the LLVM IR
corresponding to an OpenMP construct are outlined into their own
function. For this, stack allocations are used.

This patch modifies this behavior when compiling for a target device and
outlining `parallel`-related IR, so that it uses device shared memory
instead of private stack space. This is needed in order for threads to
have access to these arguments.


  Commit: d463a276fcd68b3f0a070e69600fbfcb3aa2fa6e
      https://github.com/llvm/llvm-project/commit/d463a276fcd68b3f0a070e69600fbfcb3aa2fa6e
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M mlir/test/Target/LLVMIR/omptarget-parallel-llvm.mlir

  Log Message:
  -----------
  [OpenMP][OMPIRBuilder] Support parallel in Generic kernels (#150926)

This patch introduces codegen logic to produce a wrapper function
argument for the `__kmpc_parallel_51` DeviceRTL function needed to
handle arguments passed using device shared memory in Generic mode.


  Commit: 333f636c9af90fd77bc6669a74f8bd9e2832640b
      https://github.com/llvm/llvm-project/commit/333f636c9af90fd77bc6669a74f8bd9e2832640b
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
    A offload/test/offloading/fortran/target-generic-loops.f90
    A offload/test/offloading/fortran/target-spmd-loops.f90

  Log Message:
  -----------
  [OpenMPOpt] Make parallel regions reachable from new DeviceRTL loop functions (#150927)

This patch updates the OpenMP optimization pass to know about the new
DeviceRTL functions for loop constructs.

This change marks these functions as potentially containing parallel
regions, which fixes a current bug with the state machine rewrite
optimization. It previously failed to identify parallel regions located
inside of the callbacks passed to these new DeviceRTL functions, causing
the resulting code to skip executing these parallel regions.

As a result, Generic kernels produced by Flang that contain parallel
regions now work properly.

One known related issue not fixed by this patch is that the presence of
calls to these functions will prevent the SPMD-ization of Generic
kernels by OpenMPOpt. Previously, this was due to assuming there was no
parallel region. This is changed by this patch, but instead we now mark
it temporarily as unsupported in an SPMD context. The reason is that,
without additional changes, code intended for the main thread of the
team located outside of the parallel region would not be guarded
properly, resulting in race conditions and generally invalid behavior.


  Commit: b5c755144d665750e5c60849c6612848bf2905d6
      https://github.com/llvm/llvm-project/commit/b5c755144d665750e5c60849c6612848bf2905d6
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
    M llvm/include/llvm/Transforms/Utils/CodeExtractor.h
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M llvm/lib/Transforms/IPO/HotColdSplitting.cpp
    M llvm/lib/Transforms/IPO/IROutliner.cpp
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
    M llvm/lib/Transforms/IPO/PartialInlining.cpp
    M llvm/lib/Transforms/Utils/CodeExtractor.cpp
    M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
    M llvm/unittests/Transforms/Utils/CodeExtractorTest.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Target/LLVMIR/omptarget-parallel-llvm.mlir
    M mlir/test/Target/LLVMIR/omptarget-parallel-wsloop.mlir
    M mlir/test/Target/LLVMIR/omptarget-region-device-llvm.mlir
    M mlir/test/Target/LLVMIR/openmp-target-private-allocatable.mlir

  Log Message:
  -----------
  [OMPIRBuilder] Add support for explicit deallocation points (#154752)

In this patch, some OMPIRBuilder codegen functions and callbacks are
updated to work with arrays of deallocation insertion points. The
purpose of this is to enable the replacement of `alloca`s with other
types of allocations that require explicit deallocations in a way that
makes it possible for `CodeExtractor` instances created during
OMPIRBuilder finalization to also use them.

The OpenMP to LLVM IR MLIR translation pass is updated to properly store
and forward deallocation points together with their matching allocation
point to the OMPIRBuilder.

Currently, only the `DeviceSharedMemCodeExtractor` uses this feature to
get the `CodeExtractor` to use device shared memory for intermediate
allocations when outlining a parallel region inside of a Generic kernel
(code path that is only used by Flang via MLIR, currently). However,
long term this might also be useful to refactor finalization of
variables with destructors, potentially reducing the use of callbacks
and simplifying privatization and reductions.

Instead of a single deallocation point, lists of those are used. This is
to cover cases where there are multiple exit blocks originating from a
single entry. If an allocation needing explicit deallocation is placed
in the entry block of such cases, it would need to be deallocated before
each of the exits.


  Commit: f6012dd7884822a0428384f1e0a90e61e7380b1f
      https://github.com/llvm/llvm-project/commit/f6012dd7884822a0428384f1e0a90e61e7380b1f
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir

  Log Message:
  -----------
  [MLIR][OpenMP] Refactor omp.target_allocmem to allow reuse, NFC (#161861)

This patch moves tablegen definitions that could be used for all kinds
of heap allocations out of `omp.target_allocmem` and into a new
`OpenMP_HeapAllocClause` that can be reused.

Descriptions are updated to follow the format of most other operations
and the custom verifier for `omp.target_allocmem` is removed as it only
made a redundant check on its result type.


  Commit: 568e1ad61abe03da5a8b2d573067895bbdb380e9
      https://github.com/llvm/llvm-project/commit/568e1ad61abe03da5a8b2d573067895bbdb380e9
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M mlir/include/mlir/Dialect/OpenMP/OpenMPClauses.td
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir
    A mlir/test/Target/LLVMIR/omptarget-device-shared-mem.mlir

  Log Message:
  -----------
  [Flang][MLIR][OpenMP] Add explicit shared memory (de-)allocation ops (#161862)

This patch introduces the `omp.alloc_shared_mem` and
`omp.free_shared_mem` operations to represent explicit allocations and
deallocations of shared memory across threads in a team, mirroring the
existing `omp.target_allocmem` and `omp.target_freemem`.

The `omp.alloc_shared_mem` op goes through the same Flang-specific
transformations as `omp.target_allocmem`, so that the size of the buffer
can be properly calculated when translating to LLVM IR.

The corresponding runtime functions produced for these new operations
are `__kmpc_alloc_shared` and `__kmpc_free_shared`, which previously
could only be created for implicit allocations (e.g. privatized and
reduction variables).


  Commit: d6061d297d3c4f462a84bd77f182d191d982ac5d
      https://github.com/llvm/llvm-project/commit/d6061d297d3c4f462a84bd77f182d191d982ac5d
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M flang/include/flang/Optimizer/Support/InitFIR.h
    M flang/lib/Optimizer/Passes/Pipelines.cpp
    M flang/test/Fir/basic-program.fir
    M mlir/docs/Passes.md
    M mlir/include/mlir/Dialect/OpenMP/Transforms/Passes.h
    M mlir/include/mlir/Dialect/OpenMP/Transforms/Passes.td
    M mlir/lib/Dialect/OpenMP/CMakeLists.txt
    A mlir/lib/Dialect/OpenMP/IR/CMakeLists.txt
    M mlir/lib/Dialect/OpenMP/Transforms/CMakeLists.txt
    A mlir/lib/Dialect/OpenMP/Transforms/StackToShared.cpp
    A mlir/test/Dialect/OpenMP/stack-to-shared.mlir

  Log Message:
  -----------
  [Flang][OpenMP] Add pass to replace allocas with device shared memory (#161863)

This patch introduces a new Flang OpenMP MLIR pass, only ran for target
device modules, that identifies `fir.alloca` operations that should use
device shared memory and replaces them with pairs of
`omp.alloc_shared_mem` and `omp.free_shared_mem` operations.

This works in conjunction to the MLIR to LLVM IR translation pass'
handling of privatization, mapping and reductions in the OpenMP dialect
to properly select the right memory space for allocations based on where
they are made and where they are used.

This pass, in particular, handles explicit stack allocations in MLIR,
whereas the aforementioned translation pass takes care of implicit ones
represented by entry block arguments.


  Commit: fad06a418b4f89510a390c215218f1ab8de0ecad
      https://github.com/llvm/llvm-project/commit/fad06a418b4f89510a390c215218f1ab8de0ecad
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M flang/test/Integration/OpenMP/target-use-device-nested.f90
    M flang/test/Integration/OpenMP/threadprivate-target-device.f90
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Target/LLVMIR/omptarget-constant-alloca-raise.mlir
    M mlir/test/Target/LLVMIR/omptarget-parallel-llvm.mlir
    A mlir/test/Target/LLVMIR/openmp-target-private-shared-mem.mlir
    A offload/test/offloading/fortran/target-generic-outlined-loops.f90

  Log Message:
  -----------
  [MLIR][OpenMP][OMPIRBuilder] Improve shared memory checks (#161864)

This patch refines checks to decide whether to use device shared memory
or regular stack allocations. In particular, it adds support for
parallel regions residing on standalone target device functions.

The changes are:
- Shared memory is introduced for `omp.target` implicit allocations,
such as those related to privatization and mapping, as long as they are
shared across threads in a nested parallel region.
- Standalone target device functions are interpreted as being part of a
Generic kernel, since the fact that they are present in the module after
filtering means they must be reachable from a target region.
- Prevent allocations whose only shared uses inside of an `omp.parallel`
region are as part of a `private` clause from being moved to device
shared memory.


  Commit: c94db1af36c2f66d71cd0c492068937eee641e56
      https://github.com/llvm/llvm-project/commit/c94db1af36c2f66d71cd0c492068937eee641e56
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    A mlir/include/mlir/Dialect/OpenMP/Utils/Utils.h
    M mlir/lib/Dialect/OpenMP/CMakeLists.txt
    M mlir/lib/Dialect/OpenMP/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/OpenMP/Transforms/StackToShared.cpp
    A mlir/lib/Dialect/OpenMP/Utils/CMakeLists.txt
    A mlir/lib/Dialect/OpenMP/Utils/Utils.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/CMakeLists.txt
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp

  Log Message:
  -----------
  [MLIR][OpenMP] Unify device shared memory logic, NFCI (#182856)

This patch creates a utils library for the OpenMP dialect with functions
used by MLIR to LLVM IR translation as well as the stack-to-shared pass
to determine which allocations must use local stack memory or device
shared memory.


  Commit: cf30e4b5c2d55e217ade2483c4672f2488da48df
      https://github.com/llvm/llvm-project/commit/cf30e4b5c2d55e217ade2483c4672f2488da48df
  Author: Jack Styles <jack.styles at arm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64Subtarget.h
    A llvm/test/CodeGen/AArch64/aarch64-no-mov-spill-chain.ll
    M llvm/test/CodeGen/AArch64/ragreedy-local-interval-cost.ll

  Log Message:
  -----------
  [AArch64] Enable Spillage Copy Elimination by default (#186093)

In times of high register pressure, the greedy register allocator can
emit large eviction chains that consist of many `mov` instructions. The
Spillage Copy Elimination pass handles this, by finding these chains and
decreasing their impact. Take a mov chain such as the following where
`x8` is used for an 8-byte Folded Reload:
```
mov x7, x6
mov x6, x5
mov x5, x4
mov x4, x3
mov x3, x2
mov x2, x1
mov x1, x30
mov x30, x8
< use x8 >
mov x8, x30
mov x30, x1
mov x1, x2
mov x2, x3
mov x3, x4
mov x4, x5
mov x5, x6
mov x6, x7
```
Becomes:
```
mov x7, x6
mov x6, x8
< use x8 >
mov x8, x6
mov x6, x7
```

This provides performance benefits for long mov chains, where we are no
longer needing to copy these values between registers.

This does introduce compile time regressions, as was originally noted in
the initial review. From my testing, this was around 0.17% on average
using LLVM Test Suite.

Further information:
Original Review: https://reviews.llvm.org/D122118
Compile Time Regression information from original review:
http://llvm-compile-time-tracker.com/compare.php?from=781eabeb40b8e47e3a46b0b927784e63f0aad9ab&to=0af2744a89bf0ed05e83ac1ed9d21d6d74cdfeca&stat=instructions%3Au

Assisted-by: codex (Generation of new test)


  Commit: 889708eed861b4218fda5a085b47f37b6b73b739
      https://github.com/llvm/llvm-project/commit/889708eed861b4218fda5a085b47f37b6b73b739
  Author: Jan Leyonberg <jan_sjodin at yahoo.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenModule.cpp
    M clang/lib/CIR/CodeGen/CIRGenModule.h
    A clang/lib/CIR/CodeGen/CIRGenOpenMPRuntime.cpp
    A clang/lib/CIR/CodeGen/CIRGenOpenMPRuntime.h
    M clang/lib/CIR/CodeGen/CMakeLists.txt
    A clang/test/CIR/CodeGenOpenMP/emit-device-functions.cpp

  Log Message:
  -----------
  [CIR][OpenMP] Enable emission of target functions (#193204)

This PR allows generation of target device functions for OpenMP. It also
handles filtering out host functions that do not contain target regions.

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


  Commit: 8116e869531490f28ecaa3bcaac1fe644b545e0e
      https://github.com/llvm/llvm-project/commit/8116e869531490f28ecaa3bcaac1fe644b545e0e
  Author: CHANDRA GHALE <chandra.nitdgp at gmail.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M flang/lib/Lower/OpenMP/Utils.cpp
    A flang/test/Lower/OpenMP/tile-parallel-do.f90

  Log Message:
  -----------
  [Flang][OpenMP] Fix crash lowering parallel do with nested tile construct (#193955)

This fixes a crash in OpenMP lowering for cases like `!$omp parallel do
with nested !$omp tile sizes(...)` .
The loop-walk logic now correctly steps through intermediate OpenMP
transformation wrappers to find the actual do construct, instead of
assuming it is directly nested.

Fixes :
[https://github.com/llvm/llvm-project/issues/193256](https://github.com/llvm/llvm-project/issues/193256)
sample reproducer :
[https://godbolt.org/z/b7zecYEMT](https://godbolt.org/z/b7zecYEMT)

Co-authored-by: Chandra Ghale <ghale at pe34genoa.hpc.amslabs.hpecorp.net>


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

  Changed paths:
    M llvm/test/CodeGen/X86/vselect-avx.ll

  Log Message:
  -----------
  [X86] vselect-avx.ll - regenerate asm comments (#194353)


  Commit: 902814afe11799e2b90a9879658e1356b3ff6aff
      https://github.com/llvm/llvm-project/commit/902814afe11799e2b90a9879658e1356b3ff6aff
  Author: Raphael Isemann <rise at apple.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M lldb/test/API/lang/objc/modules-auto-import/TestModulesAutoImport.py
    M lldb/test/API/lang/objc/modules-auto-import/main.m

  Log Message:
  -----------
  [lldb][test] Modernize TestModulesAutoImport (#194357)

This replaces all the custom test setup logic with the newer test
utilities. Not technically NFC as the newer checks are more strict.


  Commit: 6ac432bdc8122a945e69b39d7a0368b3947b769d
      https://github.com/llvm/llvm-project/commit/6ac432bdc8122a945e69b39d7a0368b3947b769d
  Author: Sirui Mu <msrlancern at gmail.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M .gitignore

  Log Message:
  -----------
  [llvm][.gitignore] Ignore .agents directory (#194236)

The `.agents` directory is a common convention for storing coding agent
related stuff like rules and skills, recognized by major coding agents
like Claude Code, Codex, GitHub Copilot, OpenCode, etc. Ignore this
directory to avoid accidentally commiting these coding agent related
content to the repo.


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

  Changed paths:
    M llvm/include/llvm/Passes/CodeGenPassBuilder.h
    M llvm/test/CodeGen/X86/gc-empty-basic-blocks.ll
    R llvm/test/CodeGen/X86/gc-empty-basic-blocks.mir

  Log Message:
  -----------
  [NewPM] Wire up gc-empty-basic-blocks into pipeline (#194179)

Same setup as the old pipeline and resolves a testing TODO now that we
have a full pipeline for x86.


  Commit: d48c8411dfe6a611a7b8b2b3e53b2da85270a82e
      https://github.com/llvm/llvm-project/commit/d48c8411dfe6a611a7b8b2b3e53b2da85270a82e
  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/mlir/BUILD.bazel

  Log Message:
  -----------
  [Bazel] Fixes c94db1a (#194359)

This fixes c94db1af36c2f66d71cd0c492068937eee641e56.

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>


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

  Changed paths:
    M llvm/lib/Target/AMDGPU/VOP2Instructions.td
    A llvm/test/CodeGen/AMDGPU/madmk-madak-encoding-size.ll

  Log Message:
  -----------
  AMDGPU: Fix instruction size for madmk/madak (#194361)

This caused the revert of #191461


  Commit: 9b2411da20d78653fdc93972e26700aef2f7dfe9
      https://github.com/llvm/llvm-project/commit/9b2411da20d78653fdc93972e26700aef2f7dfe9
  Author: Andrey Grabezhnoy <andrey.grabezhnoy at intel.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/test/Transforms/InstCombine/and-xor-or.ll
    M llvm/test/Transforms/InstCombine/binop-and-shifts.ll

  Log Message:
  -----------
  [InstCombine] Require one-use intermediate binop in foldBinOpShiftWithShift (#194341)

foldBinOpShiftWithShift rewrites
  binop(shift(X,C) op Mask, shift(Y,C))
to
  binop(shift(X+Y,C), Mask).

Both shifts are matched with m_OneUse, but the enclosing binop that
wraps (shift(X,C), Mask) is not. When that binop has additional users
the rewrite cannot eliminate the originals and only adds new
instructions. The reproducer in the issue shows this: a shared base
with several downstream consumers gets duplicated on each one, so the
fold grows the IR instead of shrinking it.

Wrap the outer m_c_BinOp in m_OneUse so the fold only fires when the
binop can actually be replaced. Mirrors the one-use discipline already
applied to both shifts in the same matcher.

Fixes #194007.


  Commit: 5f0f269d5f835a07d74a2428e7e372c60b4c048f
      https://github.com/llvm/llvm-project/commit/5f0f269d5f835a07d74a2428e7e372c60b4c048f
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M mlir/lib/Dialect/MemRef/Transforms/ElideReinterpretCast.cpp

  Log Message:
  -----------
  [MemRef] Fix -Wunused-function (#194366)

areIndicesInBounds is only used within an assert statement, so mark it
[[maybe_unused]] so that the compiler does not otherwise warn in
non-assertion builds.


  Commit: 8242576869985db73d44ac537208744dceb93503
      https://github.com/llvm/llvm-project/commit/8242576869985db73d44ac537208744dceb93503
  Author: Oleksandr Tarasiuk <oleksandr.tarasiuk at outlook.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Parse/ParseCXXInlineMethods.cpp
    M clang/test/SemaCXX/lambda-unevaluated.cpp

  Log Message:
  -----------
  [Clang] prevent crash in delayed default-argument lambda captures (#176749)

Fixes #176534

---

This patch resolves a crash when parsing delayed default arguments that
contain lambda expressions.

```cpp
struct S {
  void f(int x, int = sizeof([x] { return x; }()));
};
```

When late-parsing default arguments that contain lambdas, `Sema` builds
a `FunctionScopes` stack containing only the lambda scope
(`FunctionScopes.size()` equals 1), however, `tryCaptureVariable`
expects an enclosing function scope outside the lambda scope


https://github.com/llvm/llvm-project/blob/41e231cae38028473dd327e8de5f65792b521ffe/clang/lib/Sema/SemaExpr.cpp#L19473-L19474


https://github.com/llvm/llvm-project/blob/41e231cae38028473dd327e8de5f65792b521ffe/clang/lib/Sema/SemaExpr.cpp#L19518

Scope capture handling logic decrements `FunctionScopesIndex` to align
declaration contexts


https://github.com/llvm/llvm-project/blob/41e231cae38028473dd327e8de5f65792b521ffe/clang/lib/Sema/SemaExpr.cpp#L19696

and later relies on it when traversing and accessing outer scopes


https://github.com/llvm/llvm-project/blob/41e231cae38028473dd327e8de5f65792b521ffe/clang/lib/Sema/SemaExpr.cpp#L19522-L19524

preserving the function scope in the late-parsing path prevents invalid
traversal during lambda capture handling


  Commit: 06ddfcf0ca9cdb1481fff3cff6f73d5c26d45ffe
      https://github.com/llvm/llvm-project/commit/06ddfcf0ca9cdb1481fff3cff6f73d5c26d45ffe
  Author: Alex Rønne Petersen <alex at alexrp.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M libunwind/src/AddressSpace.hpp
    M libunwind/src/DwarfParser.hpp

  Log Message:
  -----------
  [libunwind] fix build errors on x32 and mips n32 (#194310)


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

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

  Log Message:
  -----------
  [libc][docs] Add sys/sem.h POSIX header documentation (#122006) (#194358)

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


  Commit: 4f50fe9298c9587aabf3698a1c79ff83d54fc702
      https://github.com/llvm/llvm-project/commit/4f50fe9298c9587aabf3698a1c79ff83d54fc702
  Author: Joe Nash <joseph.nash at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

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

  Log Message:
  -----------
  [AMDGPU][MC] Permit unneeded VOPD mov operands to be non-zero (#194060)

Use ? instead of 0 in the tablegen definitions for VOPD containing
v_mov. 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: 40a303d94644891829fd5b399a24c59b788a917e
      https://github.com/llvm/llvm-project/commit/40a303d94644891829fd5b399a24c59b788a917e
  Author: Fushj <fsjzzu at 126.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/ExecutionEngine/Interpreter/Execution.cpp
    A llvm/test/ExecutionEngine/Interpreter/test-interp-variable-arguments.ll

  Log Message:
  -----------
  [llvm][lli] fix lli crash when run variable arguments function as a interpret (#173719)

Run `lli` comand with the flag `-force-interpreter=true` to execute LLVM
bitcode, if `lli` run `variable arguments` function in the bitcode, it
will crash.

Fix #173718


  Commit: 0193af47d2b78a58d5019bb1db35be8877975b41
      https://github.com/llvm/llvm-project/commit/0193af47d2b78a58d5019bb1db35be8877975b41
  Author: Kevin Sala Penades <salapenades1 at llnl.gov>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M offload/plugins-nextgen/amdgpu/src/rtl.cpp
    M offload/plugins-nextgen/cuda/src/rtl.cpp
    M offload/plugins-nextgen/level_zero/src/L0Device.cpp

  Log Message:
  -----------
  [offload] Fix use of AsyncInfoWrapper's finalize function (#194098)

The expected use is to forward the error from the asynchronous
operation's issuing (e.g., launchImpl) directly into the
AsyncInfoWrapper::finalize(). The check of the error is already
performed inside that function. No need to forward a dummy success error
code.


  Commit: 74734782b42b640db1c6995e2d88388a5435fbfe
      https://github.com/llvm/llvm-project/commit/74734782b42b640db1c6995e2d88388a5435fbfe
  Author: Aiden Grossman <aidengrossman at google.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/lib/CodeGen/CGHLSLRuntime.cpp

  Log Message:
  -----------
  [Clang][HLSL] Fix -Wunused-variable (#194374)

Inline the variable definition into the assert given it is side effect
free and the variable name does not make the code much more clear.


  Commit: c6de992abfd3ad76345f013b0f4dd5dfef3f0bc5
      https://github.com/llvm/llvm-project/commit/c6de992abfd3ad76345f013b0f4dd5dfef3f0bc5
  Author: Amilendra Kodithuwakku <amilendra.kodithuwakku at arm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/arm_sve.td
    A clang/test/CodeGen/AArch64/sve2p3-intrinsics/acle_sve2p3_addqp.c
    A clang/test/CodeGen/AArch64/sve2p3-intrinsics/acle_sve2p3_addsubp.c
    A clang/test/CodeGen/AArch64/sve2p3-intrinsics/acle_sve2p3_subp.c
    A clang/test/Sema/AArch64/arm_sve_feature_dependent_sve_AND_LP_sve2p3_OR_sme2p3_RP___sme_AND_LP_sve2p3_OR_sme2p3_RP.c
    M llvm/include/llvm/IR/IntrinsicsAArch64.td
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    A llvm/test/CodeGen/AArch64/sve2p3-intrinsics/sve2p3-intrinsics-addqp.ll
    A llvm/test/CodeGen/AArch64/sve2p3-intrinsics/sve2p3-intrinsics-addsubp.ll
    A llvm/test/CodeGen/AArch64/sve2p3-intrinsics/sve2p3-intrinsics-subp.ll

  Log Message:
  -----------
  [Clang][AArch64][SVE2p3][SME2p3] Add intrinsics for v9.7a add/add-and-subtract/subtract pairwise operations (#187527)

Add the following new clang intrinsics based on the ACLE specification
https://github.com/ARM-software/acle/pull/428 (Add alpha support for 9.7
data processing intrinsics)

- ADDQP (Add pairwise within quadword vector segments)
- svint8_t svaddqp_s8(svint8_t, svint8_t) / svint8_t svaddqp(svint8_t,
svint8_t)
- svuint8_t svaddqp_u8(svuint8_t, svuint8_t) / svuint8_t
svaddqp(svuint8_t, svuint8_t)
- svint16_t svaddqp_s16(svint16_t, svint16_t) / svint16_t
svaddqp(svint16_t, svint16_t)
- svuint16_t svaddqp_u16(svuint16_t, svuint16_t) / svuint16_t
svaddqp(svuint16_t, svuint16_t)
- svint32_t svaddqp_s32(svint32_t, svint32_t) / svint32_t
svaddqp(svint32_t, svint32_t)
- svuint32_t svaddqp_u32(svuint32_t, svuint32_t) / svuint32_t
svaddqp(svuint32_t, svuint32_t)
- svint64_t svaddqp_s64(svint64_t, svint64_t) / svint64_t
svaddqp(svint64_t, svint64_t)
- svuint64_t svaddqp_u64(svuint64_t, svuint64_t) / svuint64_t
svaddqp(svuint64_t, svuint64_t)

- ADDSUBP (Add and subtract pairwise)
- svint8_t svaddsubp_s8(svint8_t, svint8_t) / svint8_t
svaddsubp(svint8_t, svint8_t)
- svuint8_t svaddsubp_u8(svuint8_t, svuint8_t) / svuint8_t
svaddsubp(svuint8_t, svuint8_t)
- svint16_t svaddsubp_s16(svint16_t, svint16_t) / svint16_t
svaddsubp(svint16_t, svint16_t)
- svuint16_t svaddsubp_u16(svuint16_t, svuint16_t) / svuint16_t
svaddsubp(svuint16_t, svuint16_t)
- svint32_t svaddsubp_s32(svint32_t, svint32_t) / svint32_t
svaddsubp(svint32_t, svint32_t)
- svuint32_t svaddsubp_u32(svuint32_t, svuint32_t) / svuint32_t
svaddsubp(svuint32_t, svuint32_t)
- svint64_t svaddsubp_s64(svint64_t, svint64_t) / svint64_t
svaddsubp(svint64_t, svint64_t)
- svuint64_t svaddsubp_u64(svuint64_t, svuint64_t) / svuint64_t
svaddsubp(svuint64_t, svuint64_t)

- SUBP (Subtract pairwise)
- svint8_t svsubp_s8(svbool_t, svint8_t, svint8_t) / svint8_t
svsubp(svbool_t, svint8_t, svint8_t)
- svuint8_t svsubp_u8(svbool_t, svuint8_t, svuint8_t) / svuint8_t
svsubp(svbool_t, svuint8_t, svuint8_t)
- svint16_t svsubp_s16(svbool_t, svint16_t, svint16_t) / svint16_t
svsubp(svbool_t, svint16_t, svint16_t)
- svuint16_t svsubp_u16(svbool_t, svuint16_t, svuint16_t) / svuint16_t
svsubp(svbool_t, svuint16_t, svuint16_t)
- svint32_t svsubp_s32(svbool_t, svint32_t, svint32_t) / svint32_t
svsubp(svbool_t, svint32_t, svint32_t)
- svuint32_t svsubp_u32(svbool_t, svuint32_t, svuint32_t) / svuint32_t
svsubp(svbool_t, svuint32_t, svuint32_t)
- svint64_t svsubp_s64(svbool_t, svint64_t, svint64_t) / svint64_t
svsubp(svbool_t, svint64_t, svint64_t)
- svuint64_t svsubp_u64(svbool_t, svuint64_t, svuint64_t) / svuint64_t
svsubp(svbool_t, svuint64_t, svuint64_t)


  Commit: 4e6d3722fca73c97367720180a8d547057fda380
      https://github.com/llvm/llvm-project/commit/4e6d3722fca73c97367720180a8d547057fda380
  Author: Cullen Rhodes <cullen.rhodes at arm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp

  Log Message:
  -----------
  [LiveDebugValues] Use std::sort for register sorting in collectIDsForRegs (#194339)

VarLocBasedLDV::collectIDsForRegs sorts a SmallVector<Register> using
array_pod_sort which is a thin wrapper around qsort. That shows up as a hotspot
in compile-time profiles under __GI___qsort_r.

Switching this to an explicit-comparator llvm::sort call, which takes the
std::sort path instead improves compile-time with no change to code-size.

CTMark geomean:
- stage1-O0-g: -0.41%
- stage1-aarch64-O0-g: -0.58%
- stage2-O0-g: -0.40%

http://llvm-compile-time-tracker.com/compare.php?from=347aa3f6fbcc48cd752d02aa581b74c33d18dd41&to=cca8df56a576682510733c4c1b6fc12556e2dd7c&stat=instructions%3Au


  Commit: 0a58d0ceb530a9caffd7126fe9c4bb98a79de1ac
      https://github.com/llvm/llvm-project/commit/0a58d0ceb530a9caffd7126fe9c4bb98a79de1ac
  Author: Sean Perry <perry at ca.ibm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/test/AST/ByteCode/cxx17.cpp
    M clang/test/SemaCXX/cxx17-compat.cpp

  Log Message:
  -----------
  [SystemZ] z/OS only accept C initialization (#194023)

The TLS support only accept compile constant expressions (both C and
C++) on z/OS. Add #if to skip these tests on z/OS.


  Commit: 97dc0fcbceea0871ab86ecf6d534be42b42bc7d3
      https://github.com/llvm/llvm-project/commit/97dc0fcbceea0871ab86ecf6d534be42b42bc7d3
  Author: Nick Sarnie <nick.sarnie at intel.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/include/llvm/Transforms/IPO/Attributor.h
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    A llvm/test/Transforms/OpenMP/spirv_ctor.ll

  Log Message:
  -----------
  [Attributor] Support SPIR-V address spaces (#192725)

Right now Attributor assumes that if the the target is a GPU is can use
a single set of address space numerical values to determine the local
address space, but that's not true in general, so add SPIR-V support,
which uses different values.

This fixes an instruction incorrectly being marked as dead and optimized
out for an OpenMP SPIR-V offloading example.

---------

Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>


  Commit: 555140f8bfd296948198ac8bd2f07692c132ded6
      https://github.com/llvm/llvm-project/commit/555140f8bfd296948198ac8bd2f07692c132ded6
  Author: sujianIBM <98488060+sujianIBM at users.noreply.github.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/utils/lit/tests/shtest-ulimit-nondarwin.py

  Log Message:
  -----------
  [z/OS] Mark shtest-ulimit-nondarwin.py unsupported on zos. (#194016)

This PR marks llvm/utils/lit/tests/shtest-ulimit-nondarwin.py
unsupported on z/OS.


  Commit: dd383b46106587f85cd4f82a4f67d05ea9ae37bd
      https://github.com/llvm/llvm-project/commit/dd383b46106587f85cd4f82a4f67d05ea9ae37bd
  Author: sujianIBM <98488060+sujianIBM at users.noreply.github.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/utils/lit/lit/TestingConfig.py

  Log Message:
  -----------
  [z/OS] Add passing env vars in lit on z/OS. (#194017)

This PR adds passing environment variables in lit/TestingConfig.py on
z/OS.


  Commit: 314c655470b03a8112b2a0107c99a61076852cca
      https://github.com/llvm/llvm-project/commit/314c655470b03a8112b2a0107c99a61076852cca
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    A lldb/test/API/functionalities/multi-breakpoint/Makefile
    A lldb/test/API/functionalities/multi-breakpoint/TestMultiBreakpoint.py
    A lldb/test/API/functionalities/multi-breakpoint/main.c
    M lldb/tools/debugserver/source/JSON.h
    M lldb/tools/debugserver/source/RNBRemote.cpp
    M lldb/tools/debugserver/source/RNBRemote.h

  Log Message:
  -----------
  [debugserver] Implement MultiBreakpoint (#192914)

This implements the packet as described in
https://github.com/llvm/llvm-project/pull/192910

The following PRs are related to the MultiBreakpoint feature:

* https://github.com/llvm/llvm-project/pull/192910
* https://github.com/llvm/llvm-project/pull/192914
* https://github.com/llvm/llvm-project/pull/192915
* https://github.com/llvm/llvm-project/pull/192919
* https://github.com/llvm/llvm-project/pull/192962
* https://github.com/llvm/llvm-project/pull/192964
* https://github.com/llvm/llvm-project/pull/192971
* https://github.com/llvm/llvm-project/pull/192988


  Commit: 8e0011a2c686c371cf21fa05ff2ae955017e6e1d
      https://github.com/llvm/llvm-project/commit/8e0011a2c686c371cf21fa05ff2ae955017e6e1d
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/test/Transforms/FunctionAttrs/nosync.ll

  Log Message:
  -----------
  [FunctionAttrs] Remove declaration check lines (NFC) (#194384)

These are annoying, because they get dropped by UTC. We're not
inferring attributes on declarations anyway.


  Commit: a94c11640bf228d68cb68be927ad2f8eccc16145
      https://github.com/llvm/llvm-project/commit/a94c11640bf228d68cb68be927ad2f8eccc16145
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/test/Transforms/GlobalOpt/ctor-memset.ll
    M llvm/test/Transforms/GlobalOpt/pr54572.ll

  Log Message:
  -----------
  [GlobalOpt] Regenerate test checks (NFC) (#194385)


  Commit: 5ee1495ab6529ba2ae8d4af98d5c42ab96d3441d
      https://github.com/llvm/llvm-project/commit/5ee1495ab6529ba2ae8d4af98d5c42ab96d3441d
  Author: Oleksandr Tarasiuk <oleksandr.tarasiuk at outlook.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/test/Parser/static_assert.cpp

  Log Message:
  -----------
  [Clang] fix parser recovery for invalid static_assert string messages (#187859)

Fixes #187690

--- 

This PR fixes parser recovery for invalid `static_assert` declarations
with string literal messages. The parser now stops the message lookahead
on `;` and `eof`, so invalid inputs are diagnosed as parse errors.


  Commit: 78eccec0db8a7739151c6de12de0e130c820e20d
      https://github.com/llvm/llvm-project/commit/78eccec0db8a7739151c6de12de0e130c820e20d
  Author: Guray Ozen <guray.ozen at gmail.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-transcendentals.mlir
    M mlir/test/Target/LLVMIR/nvvm/transcendentals.mlir

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

Implement `nvvm.log2` with ftz flag


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

  Changed paths:
    M llvm/lib/Target/AMDGPU/VOP2Instructions.td
    A llvm/test/CodeGen/AMDGPU/v_mac_f16-fpdp-rounding-mode.ll

  Log Message:
  -----------
  AMDGPU: Address fixme for v_mac_f16 rounding mode (#194360)

This should use the f16/f64 rounding mode


  Commit: c2ab7f2130bbd5fa8bb4a13e34454b91d4aa1d8f
      https://github.com/llvm/llvm-project/commit/c2ab7f2130bbd5fa8bb4a13e34454b91d4aa1d8f
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h

  Log Message:
  -----------
  [lldbremote][NFC] Factor out code handling breakpoint packets (#192915)

This commit extracts the code handling breakpoint packets into a helper
function that can be used by a future implementation of the
MultiBreakpointPacket.

It is meant to be purely NFC.

There are two functions handling breakpoint packets (`handle_Z` and
`handle_z`) with a lot of repeated code. This commit did not attempt to
merge the two, as that would make the diff much larger due to subtle
differences in the error message produced by the two. The only
deduplication done is in the code processing a GDBStoppointType, where a
helper struct (`BreakpointKind`) and function
(`std::optional<BreakpointKind> getBreakpointKind(GDBStoppointType
stoppoint_type)`) was created.

The following PRs are related to the MultiBreakpoint feature:

* https://github.com/llvm/llvm-project/pull/192910
* https://github.com/llvm/llvm-project/pull/192914
* https://github.com/llvm/llvm-project/pull/192915
* https://github.com/llvm/llvm-project/pull/192919
* https://github.com/llvm/llvm-project/pull/192962
* https://github.com/llvm/llvm-project/pull/192964
* https://github.com/llvm/llvm-project/pull/192971
* https://github.com/llvm/llvm-project/pull/192988


  Commit: 57754e0965361493bb47ddd9a332519318dc40ff
      https://github.com/llvm/llvm-project/commit/57754e0965361493bb47ddd9a332519318dc40ff
  Author: Jonathan Thackray <jonathan.thackray at arm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/AArch64CodeGenUtils.h
    M clang/include/clang/Basic/arm_neon.td
    M clang/include/clang/Basic/arm_sve.td
    M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
    A clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_mmla-bf16.c
    A clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_mmla-f16.c
    A clang/test/CodeGen/AArch64/v9.7a-neon-mmla-intrinsics.c
    A clang/test/Sema/AArch64/arm_sve_non_streaming_only_sve_AND_sve-b16mm.c
    A clang/test/Sema/AArch64/arm_sve_non_streaming_only_sve_AND_sve2p2_AND_f16mm.c
    M clang/test/Sema/aarch64-neon-target.c
    M clang/test/Sema/aarch64-neon-without-target-feature.cpp
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    A llvm/test/CodeGen/AArch64/neon-matmul-f16.ll
    A llvm/test/CodeGen/AArch64/neon-matmul-f16f32mm.ll
    A llvm/test/CodeGen/AArch64/sve-intrinsics-matmul-bf16.ll
    A llvm/test/CodeGen/AArch64/sve-intrinsics-matmul-f16.ll

  Log Message:
  -----------
  [AArch64][clang][llvm] Add ACLE Armv9.7 matrix multiply-accumulate intrinsics (#193017)

Implement new ACLE matrix multiply-accumulate intrinsics for Armv9.7:

```c
  // 16-bit floating-point matrix multiply-accumulate.
  // Only if __ARM_FEATURE_SVE_B16MM
  // Variant also available for _f16 if (__ARM_FEATURE_SVE2p2 && __ARM_FEATURE_F16MM).
  svbfloat16_t svmmla[_bf16](svbfloat16_t zda, svbfloat16_t zn, svbfloat16_t zm);

  // Half-precision matrix multiply accumulating to single-precision instruction.
  // Requires the +f16f32mm architecture extension.
  float32x4_t vmmlaq_f32_f16(float32x4_t r, float16x8_t a, float16x8_t b);

  // Non-widening half-precision matrix multiply instruction.
  // Requires the +f16mm architecture extension.
  float16x8_t vmmlaq_f16_f16(float16x8_t r, float16x8_t a, float16x8_t b);
```


  Commit: 85935241b74f332a2d8c616510b7ef74ebe6a1ac
      https://github.com/llvm/llvm-project/commit/85935241b74f332a2d8c616510b7ef74ebe6a1ac
  Author: Andre Kuhlenschmidt <andre.kuhlenschmidt at gmail.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M flang/lib/Lower/OpenACC.cpp
    M flang/lib/Semantics/canonicalize-acc.cpp
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/test/Lower/OpenACC/Todo/do-loops-to-acc-loops-todo.f90
    M flang/test/Semantics/OpenACC/acc-canonicalization-validity.f90
    M flang/test/Semantics/OpenACC/acc-loop.f90

  Log Message:
  -----------
  [flang][semantics][openacc] Allow collapse clauses on do concurrent (#192488)

This PR generalizes the semantic checking for collapse clauses to work
on `do concurrent` and fixes two bugs exposed along the way:
- The first was that `collapse (n)` where n < the number of nested loops
was giving an assertion violation.
- The second was do concurrent index variables were causing an assertion
violation because they hadn't been declared before looking them up.

The lowering is implemented as a TODO which will happen in a following
diff.


  Commit: 5e451509b6e26a06b86d665d852a15c7e0a4c8ea
      https://github.com/llvm/llvm-project/commit/5e451509b6e26a06b86d665d852a15c7e0a4c8ea
  Author: Nick Sarnie <nick.sarnie at intel.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M offload/test/offloading/ctor_dtor.cpp

  Log Message:
  -----------
  [offload][lit] Enable ctor_dtor.cpp on Intel GPUs (#194389)

It was fixed with https://github.com/llvm/llvm-project/pull/192725 and
https://github.com/llvm/llvm-project/pull/192730.

Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>


  Commit: c183492e609b57b4181de6c3f15c897f78d13ace
      https://github.com/llvm/llvm-project/commit/c183492e609b57b4181de6c3f15c897f78d13ace
  Author: sstwcw <su3e8a96kzlver at posteo.net>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/lib/Format/UnwrappedLineParser.cpp
    M clang/unittests/Format/FormatTest.cpp
    M clang/unittests/Format/FormatTestComments.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp

  Log Message:
  -----------
  [clang-format] Recognize more braced initializers (#192299)

new

```C++
a = {x * x, x * x};
```

old

```C++
a = {x * x, x *x};
```

Fixes #57442.

The patch makes the program treat a brace following an equal sign a
braced initializer.

The patch changes these tests.

- In UnderstandsSingleLineComments and CommentsInStaticInitializers, the
  comment in the formatted code used to be on a separate line, now it is
  on the same line as the brace.  The new behavior is consistent with
  comment in braced lists that are correctly identified.  Here is the
  code for it from the test LayoutCxx11BraceInitializers and the
  function mustBreakBefore.

  ```C++
  // In braced lists, the first comment is always assumed to belong to the
  // first element. Thus, it can be moved to the next or previous line as
  // appropriate.
  verifyFormat("function({// First element:\n"
               "          1,\n"
               "          // Second element:\n"
               "          2});",
               "function({\n"
               "    // First element:\n"
               "    1,\n"
               "    // Second element:\n"
               "    2});");

  if (Right.is(tok::comment)) {
    return Left.isNoneOf(BK_BracedInit, TT_CtorInitializerColon) &&
           Right.NewlinesBefore > 0 && Right.HasUnescapedNewline;
  }
  ```

- In FormatsBracedListsInColumnLayout, the style is configured to one
  which allows a trailing comment in the first line.


  Commit: 6b81cdb4d99c23106df7232f45aad7b0eff4e43c
      https://github.com/llvm/llvm-project/commit/6b81cdb4d99c23106df7232f45aad7b0eff4e43c
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/X86/identity-reuses-with-poisons.ll

  Log Message:
  -----------
  [SLP]Fix crash in getReorderingData on all-poison reuse-mask slice

When the reuse-shuffle mask is iterated in Sz-sized parts and a part is
entirely PoisonMaskElem, `Val` stays at PoisonMaskElem (-1) and the
subsequent `UsedVals.test(Val)` trips the SmallBitVector OOB assertion.
Bail out of reordering in that case.

Fixes #194315

Reviewers: 

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


  Commit: b629f86f4f7b691fae18353a6ae3babe2ce9e9ec
      https://github.com/llvm/llvm-project/commit/b629f86f4f7b691fae18353a6ae3babe2ce9e9ec
  Author: LumioseSil <gfunni234 at gmail.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.h
    M llvm/test/CodeGen/ARM/vbits.ll
    M llvm/test/CodeGen/Thumb2/mve-vselect-constants.ll

  Log Message:
  -----------
  [ARM] hasAndNot in ARM supports vectors (#193614)

NEON and MVE have vector bic.


  Commit: 4974ae5be557ab12a19748f0deff0713dd34957e
      https://github.com/llvm/llvm-project/commit/4974ae5be557ab12a19748f0deff0713dd34957e
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp

  Log Message:
  -----------
  [lldb-server] Fix constexpr-if-else static assert (#194394)

Some old compilers complained about the `static_assert(false)` pattern.

Fixes https://lab.llvm.org/buildbot/#/builders/163/builds/39139


  Commit: ec59f15927cccd303a5d096856f8ddb07697404e
      https://github.com/llvm/llvm-project/commit/ec59f15927cccd303a5d096856f8ddb07697404e
  Author: Volodymyr Turanskyy <Volodymyr.Turanskyy at arm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/lib/Driver/ToolChains/BareMetal.cpp
    M clang/test/Driver/baremetal.cpp

  Log Message:
  -----------
  [clang][Driver][BareMetal] Add profile library to the command line when needed (#191847)

Now that libclang_rt.profile.a supports bare-metal targets, follow other
drivers and add libclang_rt.profile.a in the BareMetal driver to the
command line automatically when needed, e.g. when
-fprofile-instr-generate is provided.


  Commit: 77a360663d640d1426e6181c17f127d8877b014a
      https://github.com/llvm/llvm-project/commit/77a360663d640d1426e6181c17f127d8877b014a
  Author: Lucas Ramirez <11032120+lucas-rami at users.noreply.github.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

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

  Log Message:
  -----------
  [CodeGen] Fix incorrect index in rematerialization tracking (#194387)

When deleting the last rematerialization of a register, we should delete
the rematerializer's remat tracking map's entry that corresponds to the
index of the *original* register, not the rematerialized register.

The existing typo has no impact on correctness at the moment because
entries with rematerialized register indices are never created (so there
is nothing to erase), and having an empty set in a value does not break
any code invariant; it just wastes memory.

Assisted-by: Claude Code


  Commit: bd47069d8120c3c855a0446ef13c786517ff5c91
      https://github.com/llvm/llvm-project/commit/bd47069d8120c3c855a0446ef13c786517ff5c91
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2026-04-27 (Mon, 27 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:
  -----------
  Reapply "AMDGPU: Implement getInstSizeVerifyMode" (#194026) (#194362)

This reverts commit 72ca372fa7c9029d2b7a77c59a4cc24530e99e43.


  Commit: 6df5ced6c4a6878da98346c8ad69ab11d76b4280
      https://github.com/llvm/llvm-project/commit/6df5ced6c4a6878da98346c8ad69ab11d76b4280
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M mlir/lib/Dialect/OpenMP/Transforms/StackToShared.cpp

  Log Message:
  -----------
  [MLIR][OpenMP] Fix sanitizer issue related to stack-to-shared pass (#194397)

The OpenMP dialect stack-to-shared pass could try to access attributes
from a deleted operation. This updates it to get that information from
the operation created to replace it.


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

  Changed paths:
    M mlir/lib/Dialect/XeGPU/IR/XeGPUDialect.cpp
    M mlir/test/Dialect/XeGPU/propagate-layout-inst-data.mlir

  Log Message:
  -----------
  [MLIR][XeGPU] Fix Layout collapse dims out of bounds (#193661)

Fix a bug in LayoutAttr::collapseDims() implementation.

---------

Co-authored-by: Claude Sonnet 4.5 <noreply at anthropic.com>


  Commit: 8e8113fcb1bf54e7ea92151f8fb4b78fb79d3026
      https://github.com/llvm/llvm-project/commit/8e8113fcb1bf54e7ea92151f8fb4b78fb79d3026
  Author: jay0x <90309873+blazie2004 at users.noreply.github.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M flang/lib/Semantics/check-omp-structure.cpp
    A flang/test/Semantics/OpenMP/workshare06.f90

  Log Message:
  -----------
  [Flang][OpenMP] Allow Fortran BLOCK construct inside WORKSHARE region (#193352)

**Problem**
Flang incorrectly rejects Fortran BLOCK constructs inside OpenMP
WORKSHARE regions. This fixes the semantic check to recursively validate
the contents of BLOCK constructs instead of rejecting them.

The Fortran BLOCK construct (F2008) is a transparent scoping wrapper
that does not affect execution semantics. When a BLOCK appears inside a
WORKSHARE region, the restriction on allowed statements should apply to
the contents of the BLOCK, not the BLOCK construct itself.

**Fix**
The function CheckWorkshareBlockStmts (check-omp-structure.cpp) loops
through each statement inside a WORKSHARE region and checks if it's
allowed.

Before this fix, it only recognized:

```
Assignments, FORALL, WHERE statements
OpenMP constructs (ATOMIC, CRITICAL, PARALLEL)
When it saw a Fortran BLOCK, it didn't recognize it and threw an error.
```

When we see a BLOCK construct, instead of rejecting it, we "look inside"
and check if the statements inside the BLOCK are valid. This is done by
calling the same function recursively on the BLOCK's contents.
 
 
 Issue : [192930](https://github.com/llvm/llvm-project/issues/192930)

---------

Co-authored-by: Jay Satish Kumar Patel <kumarpat at pe31.hpc.amslabs.hpecorp.net>


  Commit: 67deb547101fa909eb8f3fbedabd2f2baa6180b1
      https://github.com/llvm/llvm-project/commit/67deb547101fa909eb8f3fbedabd2f2baa6180b1
  Author: Amilendra Kodithuwakku <amilendra.kodithuwakku at arm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/arm_sve.td
    A clang/test/CodeGen/AArch64/sve2p3-intrinsics/acle_sve2p3_svabal.c
    M clang/test/Sema/AArch64/arm_sve_feature_dependent_sve_AND_LP_sve2p3_OR_sme2p3_RP___sme_AND_LP_sve2p3_OR_sme2p3_RP.c
    A clang/test/Sema/aarch64-sve2p3-intrinsics/acle_sve2p3.cpp
    M llvm/include/llvm/IR/IntrinsicsAArch64.td
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/lib/Target/AArch64/SVEInstrFormats.td
    A llvm/test/CodeGen/AArch64/sve2p3-intrinsics/sve2p3-intrinsics-abal.ll

  Log Message:
  -----------
  [Clang][AArch64][SVE2p3][SME2p3] Add intrinsics for v9.7a Two-way signed/unsigned absolute difference sum and accumulate long ops (#188972)

Add the following new clang intrinsics based on the ACLE specification
https://github.com/ARM-software/acle/pull/428 (Add alpha support for 9.7
data processing intrinsics)

SABAL (Two-way signed absolute difference sum and accumulate long)
- svint16_t svabal[_s16](svint16_t, svint8_t, svint8_t) / svint16_t
svabal[_n_s16](svint16_t, svint8_t, int8_t)
- svint32_t svabal[_s32](svint32_t, svint16_t, svint16_t) / svint32_t
svabal[_n_s32](svint32_t, svint16_t, int16_t)
- svint64_t svabal[_s64](svint64_t, svint32_t, svint32_t) / svint64_t
svabal[_n_s64](svint64_t, svint32_t, int32_t)

UABAL (Two-way unsigned absolute difference sum and accumulate long )
- svuint16_t svabal[_u16](svuint16_t, svuint8_t, svuint8_t) / svuint16_t
svabal[_n_u16](svuint16_t, svuint8_t, uint8_t)
- svuint32_t svabal[_u32](svuint32_t, svuint16_t, svuint16_t) /
svuint32_t svabal[_n_u32](svuint32_t, svuint16_t, uint16_t)
- svuint64_t svabal[_u64](svuint64_t, svuint32_t, svuint32_t) /
svuint64_t svabal[_n_u64](svuint64_t, svuint32_t, uint32_t)


  Commit: 39e73ebff7fcccbfa064b1c73a33d91e44efa54e
      https://github.com/llvm/llvm-project/commit/39e73ebff7fcccbfa064b1c73a33d91e44efa54e
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/AArch64/partial-reduction-sub-fp.ll

  Log Message:
  -----------
  [DAGcombine] Recognize fneg on RHS for partial_reduce_fmla (#193994)

PR #186809 recognized the negation on the fmul() expression, but after
instcombine the fneg is moved to the RHS operand, so with #186809 the
negation would not be recognized by the combine.

https://godbolt.org/z/YfoYshz78


  Commit: ef18c253321fa5c0ca9f2200b9bd1f954a2b6d34
      https://github.com/llvm/llvm-project/commit/ef18c253321fa5c0ca9f2200b9bd1f954a2b6d34
  Author: Jakob Linke <jakob at linke.cx>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/include/clang/AST/ASTFwd.h
    M clang/include/clang/AST/ASTTypeTraits.h
    M clang/include/clang/AST/DynamicRecursiveASTVisitor.h
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/lib/AST/ASTTypeTraits.cpp
    M clang/lib/AST/DynamicRecursiveASTVisitor.cpp
    M clang/unittests/Tooling/CMakeLists.txt
    A clang/unittests/Tooling/RecursiveASTVisitorTests/OffsetOfExpr.cpp

  Log Message:
  -----------
  [Clang][RAV] Visit components of __builtin_offsetof designators (#194122)

`RecursiveASTVisitor` previously only traversed the type operand of an
`OffsetOfExpr,` ignoring the field/identifier/base/array-index
components of the designator. This meant tools built on RAV (clang-tidy,
clangd, indexers, ...) silently missed every field reference inside
`__builtin_offsetof(T, a.b.c)`.

Add a `TraverseOffsetOfNode / VisitOffsetOfNode` pair following the same
pattern used for `ConceptReference`, `ObjCProtocolLoc`, and friends. The
`DEF_TRAVERSE_STMT` for `OffsetOfExpr` now invokes
`TraverseOffsetOfNode` for each component; array index expressions
continue to be reached via the existing children() traversal. Default
visitation is a no-op, so the change is opt-in for consumers and
behavior-preserving otherwise.

Also expose `OffsetOfNode` as a `DynTypedNode` kind via `ASTTypeTraits`
so that downstream machinery (`SelectionTree`, parent maps, matchers)
can reference these nodes uniformly.

The same gap exists for Designator inside `DesignatedInitExpr` and can
follow this recipe in a follow-up.

Related: https://github.com/llvm/llvm-project/pull/192953. The current
PR enables precise component resolves in clangd (support to be added in
a followup).


  Commit: 2e5f8b2e12955bba4ef9e04a678ff079f809fa94
      https://github.com/llvm/llvm-project/commit/2e5f8b2e12955bba4ef9e04a678ff079f809fa94
  Author: Jeff Bailey <jbailey at raspberryginger.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M libc/config/linux/x86_64/headers.txt
    M libc/include/CMakeLists.txt
    A libc/include/sys/ucontext.h

  Log Message:
  -----------
  [libc] Add sys/ucontext.h header (#194329)

POSIX historically provided <sys/ucontext.h> as an alias for
<ucontext.h>. Some software still includes the sys/ path. Added the
header as a simple wrapper that includes <ucontext.h>, gated to x86_64
alongside the existing ucontext support.


  Commit: 395a56301ddc0ad641fb0dbcef7184f72640fe9d
      https://github.com/llvm/llvm-project/commit/395a56301ddc0ad641fb0dbcef7184f72640fe9d
  Author: Kartik Ohlan <kartik7ohlan at gmail.com>
  Date:   2026-04-27 (Mon, 27 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:
  -----------
  [CIR] Vector-Saturating-shift-left intrinsics (#190728)

Part of #185382 

1. Added NEON::BI__builtin_neon_vqshlud_n_s64:
2. Added NEON::BI__builtin_neon_vqshld_n_u64:
3. Added NEON::BI__builtin_neon_vqshld_u_u64:


  Commit: 2a83068537786696d4950ce694e7d34480631f48
      https://github.com/llvm/llvm-project/commit/2a83068537786696d4950ce694e7d34480631f48
  Author: Kai Nacke <kai.peter.nacke at ibm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Target/PowerPC/P10InstrResources.td
    M llvm/lib/Target/PowerPC/PPCBack2BackFusion.def
    M llvm/lib/Target/PowerPC/PPCInstr64Bit.td
    M llvm/lib/Target/PowerPC/PPCInstrInfo.td
    M llvm/lib/Target/PowerPC/PPCMacroFusion.def
    M llvm/lib/Target/PowerPC/PPCRegisterClasses.td
    M llvm/lib/Target/PowerPC/PPCRegisterInfo.td
    M llvm/lib/Target/PowerPC/PPCScheduleP7.td

  Log Message:
  -----------
  [PowerPC] Enable using HwMode for instructions (#191051)

The HwMode is already used for operands representing an effective
address. It can also be used for general purpose registers but this is
not clear from the naming. This change

- introduces the hw-mode dependent register class `GxRC`, and the
associated register operands
- removes register class `ptr_rc_idx_by_hwmode`, and replaces the only
use with `gxrc`
 - uses the `EQV` instruction as an example how to use the new class


  Commit: e33bac0f2c4ccbabe1d58ee82e0985c8e780d606
      https://github.com/llvm/llvm-project/commit/e33bac0f2c4ccbabe1d58ee82e0985c8e780d606
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M lldb/include/lldb/Utility/StringExtractorGDBRemote.h
    M lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
    M lldb/source/Utility/StringExtractorGDBRemote.cpp
    M lldb/test/API/functionalities/multi-breakpoint/TestMultiBreakpoint.py

  Log Message:
  -----------
  [lldbremote] Implement support for MultiBreakpoint packet (#192919)

This is fairly straightforward, thanks to the helper functions created
in the previous commit.

The following PRs are related to the MultiBreakpoint feature:

* https://github.com/llvm/llvm-project/pull/192910
* https://github.com/llvm/llvm-project/pull/192914
* https://github.com/llvm/llvm-project/pull/192915
* https://github.com/llvm/llvm-project/pull/192919
* https://github.com/llvm/llvm-project/pull/192962
* https://github.com/llvm/llvm-project/pull/192964
* https://github.com/llvm/llvm-project/pull/192971
* https://github.com/llvm/llvm-project/pull/192988


  Commit: 4f3bed19b0aaff893ef0f0329eccda9016cd2f3d
      https://github.com/llvm/llvm-project/commit/4f3bed19b0aaff893ef0f0329eccda9016cd2f3d
  Author: Harald van Dijk <hdijk at accesssoftek.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Target/DirectX/DirectXIRPasses/PointerTypeAnalysis.cpp
    A llvm/test/CodeGen/DirectX/global-variable.ll
    A llvm/test/tools/dxil-dis/opaque-pointers-var.ll

  Log Message:
  -----------
  [DirectX] Emit unresolved ptr as i8* (#192086)

We cannot use dxilOpaquePtrReservedName in this test as that is the
wrong type for the null initializer.


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

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRV.h
    M llvm/lib/Target/SPIRV/SPIRVPassRegistry.def
    M llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp
    A llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.h
    M llvm/lib/Target/SPIRV/SPIRVPrepareGlobals.cpp
    A llvm/lib/Target/SPIRV/SPIRVPrepareGlobals.h
    M llvm/lib/Target/SPIRV/SPIRVTargetMachine.cpp
    A llvm/test/CodeGen/SPIRV/passes/SPIRVPrepareFunctions.ll
    M llvm/test/CodeGen/SPIRV/passes/SPIRVPrepareGlobals-predicate-id-string.ll
    A llvm/test/CodeGen/SPIRV/passes/SPIRVPrepareGlobals.ll
    M llvm/test/CodeGen/SPIRV/passes/translate-aggregate-uaddo.ll

  Log Message:
  -----------
  [SPIR-V][NewPM] Register SPIRVPrepareFunctions and SPIRVPrepareGlobals with the new pass manager (#194024)

Rename the legacy pass IDs to spirv-prepare-functions and
spirv-prepare-globals for consistency with the other SPIR-V passes and
add opt-driven lit tests for both passes


  Commit: 0b8f8264d687d75165dffa6f2cd80f715a864b86
      https://github.com/llvm/llvm-project/commit/0b8f8264d687d75165dffa6f2cd80f715a864b86
  Author: Kai Nacke <kai.peter.nacke at ibm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    M llvm/lib/Target/PowerPC/PPCISelLowering.h
    M llvm/lib/Target/PowerPC/PPCInstr64Bit.td
    M llvm/lib/Target/PowerPC/PPCInstrInfo.td

  Log Message:
  -----------
  [PowerPC] Simplify implementation of atomis loads (#191044)

The code for atomic loads is verbose. There are 10 different operations
and 4 memory sizes to support, which means 40 pseudo instructions are
used, with all the details repeated. This PR changes the following:

- Use a loop over the operations and the sizes to create the pseudo
instruction
 - Adds the memory size as last operand to the pseudo instruction
- Updates the C++ code to take advantage of the memory size in the
pseudo instruction


  Commit: e52e9e33fc0c11172ac4b9c22793e269b538404d
      https://github.com/llvm/llvm-project/commit/e52e9e33fc0c11172ac4b9c22793e269b538404d
  Author: Igor Wodiany <igor.wodiany at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M mlir/test/Dialect/SPIRV/IR/types.mlir

  Log Message:
  -----------
  [mlir][spirv] Add CoopMatrix type tests for fp8 and bf16 element types (#193805)


  Commit: 4d20831a6562ecc5e0b87d5785b2911060c3ab41
      https://github.com/llvm/llvm-project/commit/4d20831a6562ecc5e0b87d5785b2911060c3ab41
  Author: Brendan Dahl <brendan.dahl at gmail.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
    M llvm/test/CodeGen/WebAssembly/f16-intrinsics.ll

  Log Message:
  -----------
  [WebAssembly] Support f16x8.demote_f32x4_zero (#193564)

Add support for the f16x8.demote_f32x4_zero instruction. This
instruction converts a v4f32 vector to a v4f16 and pads the result with
zeros to fill the 128-bit register.

This enables efficient lowering of fptrunc operations from v4f32 to
v4f16 when the result is zero-extended or when only the low lanes are
needed. A DAG combine is included to recognize these patterns and fold
them into the new instruction.


  Commit: 35fffe03aefcdc088d3bc0c1410d179ca33b8fd4
      https://github.com/llvm/llvm-project/commit/35fffe03aefcdc088d3bc0c1410d179ca33b8fd4
  Author: Igor Wodiany <igor.wodiany at amd.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
    M mlir/lib/Dialect/SPIRV/IR/SPIRVTypes.cpp
    M mlir/test/Dialect/SPIRV/Transforms/vce-deduction.mlir

  Log Message:
  -----------
  [mlir][spirv] Add missing capabilities for CoopMatrix in TypeExtensionVisitor (#193803)

This adds missing capabilities when CoopMatrix is used with bf16 and
fp8.

Assisted-by: Codex


  Commit: 1b065445a6b81c00d7a816d64708731ad8807f70
      https://github.com/llvm/llvm-project/commit/1b065445a6b81c00d7a816d64708731ad8807f70
  Author: adams381 <adams at nvidia.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/include/clang/CIR/Dialect/IR/CIROps.td
    M clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
    M clang/lib/CIR/Dialect/IR/CIRDialect.cpp
    M clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
    A clang/test/CIR/CodeGenBuiltins/builtin-float.c

  Log Message:
  -----------
  [CIR] Emit frexp, modf, and powi builtins as library calls (#193795)

`__builtin_frexpf`, `__builtin_modf`, `__builtin_powi`, and related
builtins were incorrectly falling through to the `__builtin_isnan`
handler in `emitBuiltinExpr`, which calls `createBoolToInt` /
`createIsFPClass`. This produced a `cir.cast` with an integer result
type when the actual return type is floating-point, failing CIR
verification.

Break out of the switch so these builtins fall through to the
`isLibFunction()` path, which emits them as regular library calls.

Made with [Cursor](https://cursor.com)


  Commit: d071e4b765dfadc1472b97d09f5014c92ab27ead
      https://github.com/llvm/llvm-project/commit/d071e4b765dfadc1472b97d09f5014c92ab27ead
  Author: adams381 <adams at nvidia.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
    A clang/test/CIR/CodeGen/try-no-throwing-calls.cpp

  Log Message:
  -----------
  [CIR] Fix eraseOp assertion in TryOp flattening with unreachable handlers (#193615)

When a try block has catch handlers but no throwing calls, the handler
regions are unreachable and the TryOp is erased. However, ops inside the
handler regions may reference values that were inlined from the try body
into the parent block, causing an assertion in `eraseOp` ("expected that
op has no uses").

This drops all defined value uses from handler regions before erasing
the TryOp.

Made with [Cursor](https://cursor.com)


  Commit: 916cd558c10bf520dd0c1bdd3849fa6163b53795
      https://github.com/llvm/llvm-project/commit/916cd558c10bf520dd0c1bdd3849fa6163b53795
  Author: eiytoq <eiytoq at outlook.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Parse/Parser.h
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/test/CodeGenCXX/mangle-requires.cpp

  Log Message:
  -----------
  [Clang] Avoid an extra `FunctionPrototypeScope` for lambda trailing requires-clauses (#194068)

`ParseTrailingRequiresClause` currently always creates a synthetic
`FunctionPrototypeScope`. This is needed for ordinary function
declarators
whose prototype scope has already ended, but it is wrong for lambda
trailing
requires-clauses because they are parsed while the lambda prototype
scope is
still active.

The extra counted scope gives parameters in nested requires-expressions
an
incorrect function scope depth. Split the synthetic prototype-scope
setup from
the trailing requires-clause parser so the lambda path can parse the
clause in
the existing prototype scope.

Fixes: #123854
Fixes: #100774


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

  Changed paths:
    M offload/plugins-nextgen/common/src/PluginInterface.cpp

  Log Message:
  -----------
  [Offload] Make kernel dynamic memory handling more generic (#194403)

Make sure we do not get unexpected NumThreads and NumBlocks values when
launching non-bare kernels, and generalize the computation of the
dynamic block memory allocation to handle multi-dimensional blocks.

The DynBlockMem fallback is never used in a non-bare context where
`NumBlocks[1]` and `NumBlocks[2]` are not 1 so the code was correct, but
this patch makes sure that assumption is made explicit, and also
future-proofs the code in case we decide to allow multi-dimensional
blocks for fallback dyn block mem in some path.


  Commit: 71d63d61072166d7ba744464db8781389a3474c9
      https://github.com/llvm/llvm-project/commit/71d63d61072166d7ba744464db8781389a3474c9
  Author: Alex Langford <alangford at apple.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M lldb/test/API/functionalities/inline-sourcefile/Makefile

  Log Message:
  -----------
  [lldb][test] Fix Makefile for TestInlineSourceFiles.py (#194078)

The test did not build hidden.o with a custom target triple when
specified. Use CFLAGS from Makefile.rules to fix.


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

  Changed paths:
    M llvm/lib/Target/DirectX/CMakeLists.txt
    M llvm/lib/Target/DirectX/DXILWriter/CMakeLists.txt
    M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
    M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.h
    M llvm/lib/Target/DirectX/DXILWriter/DXILValueEnumerator.cpp
    M llvm/lib/Target/DirectX/DXILWriter/DXILValueEnumerator.h
    M llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
    M llvm/lib/Target/DirectX/DirectXIRPasses/CMakeLists.txt
    A llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.cpp
    A llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.h
    M llvm/unittests/Target/DirectX/CMakeLists.txt

  Log Message:
  -----------
  [DirectX] Add DXILDebugInfo pass (#191254)

The pass is enabled for DXILBitcodeWriter and ValueEnumerator to
transform LLVM IR and provide data required to lower it to DXIL.

There are 3 ways how DXILDebugInfo pass can change lowering to DXIL:

1. Transform LLVM IR directly in DXILDebugInfoPass::run. This works well
when the target IR does not break any invariants of LLVM IR.

2. Add extra metadata for ValueEnumerator to process with MDExtra map.
When ValueEnumerator enumerates a Key of MDExtra, it also follows the
Value and all its operands.

3. Replace a metadata for ValueEnumerator with a another metadata. When
ValueEnumerator enumerates a Key of MDReplace, or when the writer uses
getMetadataID, the corresponding value of MDReplace map is returned
instead.

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


  Commit: 5fb8cb1508eef28f7ee7612e335bb907bcf8ead5
      https://github.com/llvm/llvm-project/commit/5fb8cb1508eef28f7ee7612e335bb907bcf8ead5
  Author: Alex Langford <alangford at apple.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M lldb/test/API/macosx/arm-pointer-metadata-cfa-dwarf-expr/Makefile

  Log Message:
  -----------
  [lldb][test] Fix Makefile for TestArmPointerMetadataCFADwarfExpr.py (#194075)

The makefile did not respect custom target triples. Fixed by using
CFLAGS from Makefile.rules.


  Commit: 0065d2e62be6f5f732bf32ecb1fe7f24a0de86e5
      https://github.com/llvm/llvm-project/commit/0065d2e62be6f5f732bf32ecb1fe7f24a0de86e5
  Author: Alex Langford <alangford at apple.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M lldb/test/API/functionalities/valobj_errors/Makefile

  Log Message:
  -----------
  [lldb][test] Fix Makefile for TestValueObjectErrors.py (#194071)

This test does not respect custom triples. hidden.c is intended to be
built with no debug info, so pass `-g0` after CFLAGS.


  Commit: 1c62578d1a051dd63f5d2594ca0d85eac13d5c3d
      https://github.com/llvm/llvm-project/commit/1c62578d1a051dd63f5d2594ca0d85eac13d5c3d
  Author: Ramkumar Ramachandra <artagnon at tenstorrent.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/test/Transforms/InstCombine/RISCV/riscv-vmv-v-x.ll

  Log Message:
  -----------
  [RISCV] Fix inf-loop on equal num-elts in vmv.v.x fold (#194410)


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

  Changed paths:
    M llvm/test/CodeGen/AArch64/arm64-neon-aba-abd.ll
    M llvm/test/CodeGen/AArch64/neon-saba.ll

  Log Message:
  -----------
  [AArch64] Addition tests for add_like Or of saba. NFC (#194416)


  Commit: b39057a228804e7f920a04e466dc2e97e2e75442
      https://github.com/llvm/llvm-project/commit/b39057a228804e7f920a04e466dc2e97e2e75442
  Author: Raphael Isemann <rise at apple.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    R lldb/test/API/functionalities/dead-strip/cmds.txt
    R lldb/test/API/functionalities/load_unload/cmds.txt
    R lldb/test/API/lang/c/array_types/cmds.txt
    R lldb/test/API/lang/c/global_variables/cmds.txt
    R lldb/test/API/lang/cpp/class_types/cmds.txt
    R lldb/test/API/lang/cpp/namespace/cmds.txt
    R lldb/test/API/lang/cpp/stl/cmds.txt
    R lldb/test/API/macosx/order/cmds.txt

  Log Message:
  -----------
  [lldb][test] Delete obsolete cmds.txt (#194390)

Last time I asked about these files someone mentioned they were once
used to replay a test.

However, I think by now these files are mostly out of sync with their
tests and few people anyway know these files exist in the first place.


  Commit: 8d9299cd7af594767485c5d73b5a103b949b7700
      https://github.com/llvm/llvm-project/commit/8d9299cd7af594767485c5d73b5a103b949b7700
  Author: Joshua Cranmer <joshua.cranmer at intel.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/docs/ReleaseNotes.md
    M llvm/include/llvm/ADT/APFloat.h
    M llvm/include/llvm/AsmParser/LLLexer.h
    M llvm/include/llvm/AsmParser/LLToken.h
    M llvm/lib/AsmParser/LLLexer.cpp
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/CodeGen/MIRParser/MILexer.cpp
    M llvm/lib/Support/APFloat.cpp
    M llvm/test/Assembler/2006-09-28-CrashOnInvalid.ll
    A llvm/test/Assembler/float-literals.ll
    A llvm/test/Assembler/invalid-call-float-literal.ll
    A llvm/test/Assembler/invalid-uselistorder_bb-float-literal.ll
    M llvm/test/CodeGen/MIR/NVPTX/floating-point-invalid-type-error.mir
    M llvm/unittests/AsmParser/AsmParserTest.cpp

  Log Message:
  -----------
  [AsmParser] Revamp how floating-point literals work in LLVM IR. (#190641)

This adds support for the following kinds of formats:
* Hexadecimal literals like 0x1.fp13
* Special values +inf/-inf, +qnan/-qnan
* NaN values with payloads like +nan(0x1)

Additionally, the floating-point hexadecimal format that records the
bitpattern exactly no longer requires the 0xL or 0xK or similar code for
the floating-point type. The current hexadecimal syntax is retained for
the moment, but it is expected to be ripped out after the next release
of LLVM.

These changes were discussed in an RFC at
https://discourse.llvm.org/t/rfc-floating-point-literals-in-llvm-ir/82974.


  Commit: 18053e3c6ac0c57a43d9b5db5d5a7db9675ef364
      https://github.com/llvm/llvm-project/commit/18053e3c6ac0c57a43d9b5db5d5a7db9675ef364
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/X86/non-schedulable-with-multi-used-expanded.ll

  Log Message:
  -----------
  [SLP]Bail out on non-schedulable expanded binop with multi-use operand

In tryScheduleBundle's DoesNotRequireScheduling path, an expanded binop
(shl X, 1 modeled as add X, X) doubles the dependency count of the
duplicated operand. Unlike the regular scheduling path, this branch does
not clear stale operand ScheduleData dependencies, so when that operand
has more uses than this bundle member the schedule's decrement count
exceeds calculateDependencies' increment count and UnscheduledDeps goes
negative, hitting "Expected valid number of unscheduled deps".

Fixes #194303.

Reviewers: 

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


  Commit: f0a46d1002993fa748e4d53565359c787ec3363a
      https://github.com/llvm/llvm-project/commit/f0a46d1002993fa748e4d53565359c787ec3363a
  Author: youngd007 <davidayoung at meta.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

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

  Log Message:
  -----------
  Have LLVM_ENABLE_ZSTD defined as 0 in base select condition (#194413)

Very similar to https://github.com/llvm/llvm-project/pull/184525. When
this define is not present in the default select() condition, there is
an issue building lldb using this build.bazel as a base for a BUCK file.


  Commit: 60dbe3fe4051f30ac12f0de56116faf2c516c313
      https://github.com/llvm/llvm-project/commit/60dbe3fe4051f30ac12f0de56116faf2c516c313
  Author: Sergei Druzhkov <serzhdruzhok at gmail.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M lldb/test/API/macosx/dsym_codesign/TestdSYMCodesign.py

  Log Message:
  -----------
  [lldb] Fix has_lldb_codesign check (#194412)

I met a problem with this test on WSL. WSL has access to Windows's
files. Windows distribution has `security` dir (
`/mnt/c/Windows/security` from WSL point of view). So when we try to run
`security` command we get `PermissionError` instead of
`FileNotFoundError`. It is would not be a problem, but Python firstly
calls decorators for methods (see example below), so we call
`has_lldb_codesign()` not only on Darwin platform. Also I think some
Linux distros might have `security` command, so the current check is not
robust enough.

```python
import unittest

def checker():
    raise Exception("test")

@unittest.skipUnless(False, "")
class Tests(unittest.TestCase):

    @unittest.skipUnless(checker(), ())
    def test():
        pass
```


  Commit: 37c7ada5de27348b6bf46c788f2714f3c859e32e
      https://github.com/llvm/llvm-project/commit/37c7ada5de27348b6bf46c788f2714f3c859e32e
  Author: Eugene Epshteyn <eepshteyn at nvidia.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M flang/test/Lower/polymorphic-temp.f90
    M flang/test/Lower/polymorphic-types.f90
    M flang/test/Lower/procedure-declarations.f90
    M flang/test/Lower/read-write-buffer.f90
    M flang/test/Lower/real-operations-2.f90

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

Tests converted from test/Lower: polymorphic-temp.f90,
polymorphic-types.f90, procedure-declarations.f90,
read-write-buffer.f90, real-operations-2.f90


  Commit: 20ff4a1f5c911be0f84a61010ecf6f71caa867b0
      https://github.com/llvm/llvm-project/commit/20ff4a1f5c911be0f84a61010ecf6f71caa867b0
  Author: AbdallahRashed <63146988+AbdallahRashed at users.noreply.github.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenVTables.cpp
    A clang/test/CIR/CodeGen/vtable-linkage-explicit-instantiation.cpp

  Log Message:
  -----------
  [CIR] Handle explicit instantiation declaration in getVTableLinkage (#193809)

Replace errorNYI for TSK_ExplicitInstantiationDeclaration with the
correct linkage logic: use discardable ODR linkage for MSVC, and for
Itanium choose between AvailableExternallyLinkage (when the vtable can
be speculatively emitted) or ExternalLinkage.

Fixes point 3 of #192330.


  Commit: 11bd02895da137a46fb37cc33df8f66862e53351
      https://github.com/llvm/llvm-project/commit/11bd02895da137a46fb37cc33df8f66862e53351
  Author: Jared Hoberock <jaredhoberock at gmail.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp
    A mlir/test/Conversion/GPUCommon/lower-async-to-gpu-runtime-calls.mlir

  Log Message:
  -----------
  [MLIR][GPU] Fix async.yield gpu.async.token lowering race (#190717)

Root cause of #170833 (flakiness of `Integration/GPU/CUDA/async.mlir` on
the Tesla T4 mlir-nvidia buildbot).

In `gpu-to-llvm`, two patterns matched `async.yield` with the same
benefit: the structural `ConvertYieldOpTypes` from
`populateAsyncStructuralTypeConversionsAndLegality` (which just retypes
operands), and `ConvertAsyncYieldToGpuRuntimeCallPattern` (which also
creates and records an event on the stream backing each
`gpu.async.token` operand). When the IR contained `gpu.launch_func`, the
dialect-conversion framework picked the structural pattern, silently
dropping the event record. The `async.execute` then yielded a stream
pointer where its consumers expected an event, and the host await ended
up calling `cuEventSynchronize` on a stream pointer. That call returns
an error without waiting, so the host raced against the GPU.

This change implements a fix which registers
`ConvertAsyncYieldToGpuRuntimeCallPattern` with pattern benefit 2 so it
wins on yields carrying `gpu.async.token` operands. The structural
rewriter still handles yields without token operands.

Also adds a new test `lower-async-to-gpu-runtime-calls.mlir` to check
the correct IR shape of `async.yield` after a `gpu.launch_func`.

Assisted-by: Claude

Fixes #170833


  Commit: f80b50bb6c5df237a15bdc4578c8b6aaf59fb3b1
      https://github.com/llvm/llvm-project/commit/f80b50bb6c5df237a15bdc4578c8b6aaf59fb3b1
  Author: Balázs Benics <benicsbalazs at gmail.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
    M clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
    M clang/lib/StaticAnalyzer/Core/CheckerContext.cpp

  Log Message:
  -----------
  [analyzer] Fix use-after-free in CheckerContext::getMacroNameOrSpelling (#194174)

This UAF bug was introduced 14 years ago, in 43de767b55c07.
The first use of this API was in
3b754b25bde4914e5ab693e7db9533c3260e926e, roughly around the same era.
It was dormant because the first param of `socket` and friends are
macros, and those didn't trigger this UAF.

I decided to go against adding a test because I figure that would be not
really meaningful.

Fixes #194136


  Commit: 89901f2beaac7be382a8e63fd40b98b6c54c551b
      https://github.com/llvm/llvm-project/commit/89901f2beaac7be382a8e63fd40b98b6c54c551b
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M .github/workflows/issue-subscriber.yml

  Log Message:
  -----------
  workflows/issue-subscriber: Use a GitHub app token (#194073)

This removes one user of the ISSUE_SUBSCRIBER_TOKEN secret, which we
want to eventually remove since secrets are more difficult to maintain.


  Commit: f82e4e95ab0adbe26569060202af64f9ef936a85
      https://github.com/llvm/llvm-project/commit/f82e4e95ab0adbe26569060202af64f9ef936a85
  Author: khaki3 <47756807+khaki3 at users.noreply.github.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
    M flang/lib/Optimizer/Transforms/CUDA/CUFDeviceGlobal.cpp
    M flang/test/Fir/CUDA/cuda-constructor-2.f90
    M flang/test/Fir/CUDA/cuda-device-global.f90

  Log Message:
  -----------
  [flang][cuda] Fix CUFDeviceGlobal duplicate skip and CUFAddConstructor for empty gpu.module (#194290)

**Fix 1:**

```fortran
module m
  real, device :: a(3), b(3), c(3)
contains
  attributes(global) subroutine kernel()
    a(1) = 1.0
  end subroutine
end module
```

When a kernel references global `a`, an earlier pass
(`CUFDeviceFuncTransform`) clones it into the `gpu.module`. When
`CUFDeviceGlobal` later processes all device globals, it finds `a`
already exists, and `break` exits the loop — skipping `b` and `c`
entirely.

Fix: Change `break` to `continue` in `CUFDeviceGlobal.cpp`.


**Fix 2:**

```fortran
module kernels_m
  real, device :: dev_var
contains
  attributes(global) subroutine my_kernel()
  end subroutine
end module

program main
  use kernels_m
end program
```

When a compilation unit USEs a CUDA module but defines no kernels
itself, the empty `gpu.module` is still registered with the CUDA
runtime, causing `cudaErrorNoKernelImageForDevice`.

Fix: Return early from the constructor if the `gpu.module` has no
kernels. Also skip variable registration for globals not in the
`gpu.module`.


  Commit: 4e302b684d885e11de1c9144db2d48c483c6339f
      https://github.com/llvm/llvm-project/commit/4e302b684d885e11de1c9144db2d48c483c6339f
  Author: adams381 <adams at nvidia.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
    A clang/test/CIR/Transforms/flatten-try-catch-cleanup.cir

  Log Message:
  -----------
  [CIR] Remove overly strict end_catch assertion in catch handler flattening (#193796)

The assertion in `flattenCatchHandler` required `end_catch` to be the
last operation before `yield` in catch handlers, with only branches in
between. Complex catch handlers with cleanup code or nested control flow
can have additional operations between `end_catch` and `yield`. The
yield-to-branch replacement does not depend on `end_catch` position.

Made with [Cursor](https://cursor.com)


  Commit: 549a952fd53b14ee28ed898791e1a90be5c0940d
      https://github.com/llvm/llvm-project/commit/549a952fd53b14ee28ed898791e1a90be5c0940d
  Author: Farzon Lotfi <farzonlotfi at microsoft.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/AttrDocs.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/TokenKinds.def
    M clang/include/clang/Sema/SemaHLSL.h
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Parse/ParseTentative.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaHLSL.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    A clang/test/AST/HLSL/matrix_layout_attr.hlsl
    A clang/test/Sema/hlsl_matrix_layout_non_hlsl.cpp
    A clang/test/SemaHLSL/matrix_layout_attr.hlsl

  Log Message:
  -----------
  [HLSL][Matrix] Add Matrix Layout Keywords (#192284)

fixes #192263

HLSL allows per-declaration matrix layout overrides via the row_major
and column_major keywords. Prior to this commit, matrix layout was only
controlled globally via the -fmatrix-memory-layout command-line flag
(LangOptions::DefaultMatrixMemoryLayout). This commit adds the parsing
and semantic analysis infrastructure needed to support per-declaration
layout, matching DXC behavior.


Assisted-by: Claude Opus 4.6


  Commit: 0341a4fec3e4d604d51e444bec2d49c85e268046
      https://github.com/llvm/llvm-project/commit/0341a4fec3e4d604d51e444bec2d49c85e268046
  Author: khaki3 <47756807+khaki3 at users.noreply.github.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M flang/lib/Optimizer/Transforms/CUDA/CUFAllocationConversion.cpp
    M flang/test/Fir/CUDA/cuda-alloc-free.fir

  Log Message:
  -----------
  [flang][cuda] Include constant extents in cuf.alloc size computation (#194288)

Example:
```fortran
real, device :: arr(n, 4, m)
```

For arrays with mixed constant and dynamic extents
(`!fir.array<?x4x?xf32>`), the allocation size only includes the dynamic
extents (`n * m * 4 bytes`), missing the constant extent `4`. This
under-allocates by a factor of 4, causing `cudaErrorIllegalAddress`.

Fix: After multiplying the dynamic extents, also multiply in constant
extents from the type, producing the correct size (`n * m * 4 * 4
bytes`).


  Commit: 0b1d2d1bfee3fb9af0a2bcdc9782c7e71126f166
      https://github.com/llvm/llvm-project/commit/0b1d2d1bfee3fb9af0a2bcdc9782c7e71126f166
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M flang/lib/Optimizer/OpenACC/Support/FIROpenACCUtils.cpp

  Log Message:
  -----------
  [NFC][flang] Reodered checks for concrete ops and ifaces. (#193879)

It is a good idea, in general, to check for concrete operations,
first, and then handle generic interfaces.


  Commit: 5ea9d1045d4cb641d05e5dc6c90b2659a48ed543
      https://github.com/llvm/llvm-project/commit/5ea9d1045d4cb641d05e5dc6c90b2659a48ed543
  Author: Jack Styles <jack.styles at arm.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

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

  Log Message:
  -----------
  [MCP][NFC] Add Cost modelling for EliminateSpillageCopies (#193905)


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

  Changed paths:
    M llvm/unittests/ADT/CMakeLists.txt
    A llvm/unittests/ADT/StableHashingTest.cpp

  Log Message:
  -----------
  [NFC][ADT] Add unit tests for StableHashing (#194286)

>From #105849 the documentation promises that stable hash is stable
across different machines.
To ensure this, we add a test with hardcoded values to prevent
unintentional changes.

Unfortunately, Big/Little endian results are different. We will fix this
in a follow-up patches.


  Commit: 3838f0073092495ce1569100892ce69b4352a6ed
      https://github.com/llvm/llvm-project/commit/3838f0073092495ce1569100892ce69b4352a6ed
  Author: Demetrius Kanios <demetrius at kanios.net>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Target/WebAssembly/GISel/WebAssemblyCallLowering.cpp
    A llvm/test/CodeGen/WebAssembly/GlobalISel/irtranslator/call-basics.ll

  Log Message:
  -----------
  [WebAssembly][GlobalISel] CallLowering `lowerCall` (#193102)

Implements an initial version of `WebAssemblyCallLowering::lowerCall`.
It is pretty basic, only supporting simple direct calls. No indirect
call, swiftcc, tail call, or vararg support yet. But this still covers
the majority of calls.

Split from #157161


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

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/test/CodeGen/AArch64/addp-shuffle.ll
    M llvm/test/CodeGen/AArch64/arm64-addp.ll

  Log Message:
  -----------
  [AArch64] Extend patterns for addp to accept add-like-ors. (#193075)

This extends the existing addp patterns to also work with add-like
disjoint or.


  Commit: 11e7f6c8442658f501606e5694998764030b90df
      https://github.com/llvm/llvm-project/commit/11e7f6c8442658f501606e5694998764030b90df
  Author: Jeremy Kun <jkun at google.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M mlir/docs/Tutorials/MlirOpt.md

  Log Message:
  -----------
  [milr] [docs] add view-op-graph and dump-pass-pipeline as useful CLI options (#194419)

Also fixes a typo and a rendering issue with the TOC


  Commit: fce06e92a6ee4a74d49e0f3f5cb6301782e44ca1
      https://github.com/llvm/llvm-project/commit/fce06e92a6ee4a74d49e0f3f5cb6301782e44ca1
  Author: Ayaan <138162656+def3r at users.noreply.github.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/include/llvm/Support/KnownBits.h
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/Support/KnownBits.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/knownbits-fshl-fshr.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
    M llvm/unittests/Support/KnownBitsTest.cpp

  Log Message:
  -----------
  [GlobalISel] Add `G_FSHL` and `G_FSHR` to computeKnownBits (#191260)

Ported impl from `SelectionDAG::computeKnownBits`.

Tests are based on `AArch64/GlobalISel/knownbits-shl.mir`

Ref: #150515


  Commit: 1fb8c300392566b8d9a2d5eda5f354daf73c291f
      https://github.com/llvm/llvm-project/commit/1fb8c300392566b8d9a2d5eda5f354daf73c291f
  Author: Erich Keane <ekeane at nvidia.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang/lib/CIR/CodeGen/CIRGenExpr.cpp
    M clang/test/CIR/CodeGen/static-local.cpp

  Log Message:
  -----------
  [CIR] Implement 'referenced-by-subobject' static-local lowering (#194070)

This fixes the 'emitDeclRefLValue:static local' NYI, and includes a
test.


  Commit: 133890586eafce8478d596fa422367e45944798a
      https://github.com/llvm/llvm-project/commit/133890586eafce8478d596fa422367e45944798a
  Author: Sunil Shrestha <sunil.shrestha at hpe.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    R flang/test/Lower/OpenMP/Todo/scope-allocate.f90
    R flang/test/Lower/OpenMP/Todo/scope-firstprivate.f90
    R flang/test/Lower/OpenMP/Todo/scope.f90
    A flang/test/Lower/OpenMP/scope.f90
    A flang/test/Lower/OpenMP/target-scope.f90
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    A mlir/test/Target/LLVMIR/openmp-scope.mlir
    M mlir/test/Target/LLVMIR/openmp-todo.mlir

  Log Message:
  -----------
  [Flang][OpenMP] Add support for scope construct (#193098)

Add support for OpenMP scope construct. The private, reduction, and
nowait clauses (introduced in 5.1) are fully supported. Support for the
firstprivate clause (5.2) is also included. The allocate clause (5.2) is
lowered into the omp.scope MLIR op, but MLIR-to-LLVM IR translation is
not yet implemented.

When nowait is combined with reduction, the reduce function argument to
__kmpc_reduce_nowait is passed as null to prevent the runtime from
selecting the tree reduction method for host, which carries a barrier.

Assisted-by: Claude Opus 4.6


  Commit: 0ef6d8906c1b7c6e8b9c47ea3406ac6917f01620
      https://github.com/llvm/llvm-project/commit/0ef6d8906c1b7c6e8b9c47ea3406ac6917f01620
  Author: Jasmine Tang <jjasmine at igalia.com>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h
    A llvm/test/CodeGen/WebAssembly/simd-min-vec-reg-32.ll
    M llvm/test/Transforms/SLPVectorizer/WebAssembly/simd-splat-shuffle-cost.ll

  Log Message:
  -----------
  [WebAssembly] Add getMinVectorRegisterBitWidth overriding (#189465)


  Commit: 36990d81d48ecb41af84a7e0eaa0b20efe0615cf
      https://github.com/llvm/llvm-project/commit/36990d81d48ecb41af84a7e0eaa0b20efe0615cf
  Author: Alex Dutka <adutka at cerfacs.fr>
  Date:   2026-04-27 (Mon, 27 Apr 2026)

  Changed paths:
    M clang-tools-extra/clang-tidy/readability/IdentifierLengthCheck.cpp
    M clang-tools-extra/clang-tidy/readability/IdentifierLengthCheck.h
    M clang-tools-extra/clang-tidy/utils/DeclRefExprUtils.cpp
    M clang-tools-extra/clang-tidy/utils/DeclRefExprUtils.h
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/docs/clang-tidy/checks/readability/identifier-length.rst
    A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-structured-bindings.cpp

  Log Message:
  -----------
  [clang-tidy][readability-identifier-length] add structured bindings support (#193838)

This change extends the `readability-identifier-length` check to structured
binding declarations. Currently, only the names of regular variables,
function parameters, exceptions variables in catch blocks and loop
variables are checked. In other words, `int a = ...` warns but `auto [a]
= ...` does not.

This change enables the check to warn when the length of the names
introduced in structured bindings declarations is too short, following
the same rules as for the other kinds of declarations. Two new options
are introduced:
- `MinimumBindingNameLength` defines the number of characters below
which a warning is issued (the default it set to 2, like for loop
variables and exceptions variables)
- `IgnoredBindingNames` defines the names for which warnings should not
issued (by default, `_` is the only allowed exception)

To implement this feature, a new matcher is registered which matches all
the individual binding names. For example, in `auto [x, y] = ...`, it
matches `x` and `y` separately and the logic for determining if a
warning should be issued is applied independently to each binding name
introduced. Unlike the other matchers which return `VarDecl` nodes, this
new matcher returns `BindingDecl` nodes. The `utils::allDeclRefExpr`
helper function is modified to work for any `ValueDecl` node (the
closest common ancestor of `VarDecl` and `BindingDecl`) in order for the
line count threshold feature to work with this extension.


  Commit: 8071e3bf15f5d57155842d3bc1a6feb924839902
      https://github.com/llvm/llvm-project/commit/8071e3bf15f5d57155842d3bc1a6feb924839902
  Author: Joel E. Denny <jdenny.ornl at gmail.com>
  Date:   2026-04-28 (Tue, 28 Apr 2026)

  Changed paths:
    M .ci/compute_projects.py
    M .ci/compute_projects_test.py
    M .github/actions/build-container/action.yml
    M .github/workflows/bazel-checks.yml
    M .github/workflows/build-ci-container-tooling.yml
    M .github/workflows/build-ci-container-windows.yml
    M .github/workflows/build-ci-container.yml
    M .github/workflows/build-libc-container.yml
    M .github/workflows/build-metrics-container.yml
    M .github/workflows/check-ci.yml
    M .github/workflows/ci-post-commit-analyzer.yml
    M .github/workflows/commit-access-greeter.yml
    M .github/workflows/commit-access-review.yml
    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/docs.yml
    M .github/workflows/email-check.yaml
    M .github/workflows/gha-codeql.yml
    M .github/workflows/hlsl-test-all.yaml
    M .github/workflows/ids-check.yml
    M .github/workflows/issue-release-workflow.yml
    M .github/workflows/issue-subscriber.yml
    M .github/workflows/issue-write.yml
    M .github/workflows/libc-fullbuild-tests.yml
    M .github/workflows/libc-overlay-tests.yml
    M .github/workflows/libc-shared-tests.yml
    M .github/workflows/libclang-abi-tests.yml
    M .github/workflows/libclang-python-tests.yml
    M .github/workflows/libcxx-build-and-test.yaml
    M .github/workflows/libcxx-build-containers.yml
    M .github/workflows/libcxx-check-generated-files.yml
    M .github/workflows/libcxx-run-benchmarks.yml
    M .github/workflows/lldb-pylint-action.yml
    M .github/workflows/llvm-abi-tests.yml
    M .github/workflows/llvm-bugs.yml
    M .github/workflows/merged-prs.yml
    M .github/workflows/mlir-spirv-tests.yml
    M .github/workflows/new-issues.yml
    M .github/workflows/new-prs.yml
    M .github/workflows/pr-code-format.yml
    M .github/workflows/pr-code-lint.yml
    M .github/workflows/pr-subscriber.yml
    M .github/workflows/premerge.yaml
    M .github/workflows/prune-branches.yml
    M .github/workflows/release-asset-audit.yml
    M .github/workflows/release-binaries.yml
    M .github/workflows/release-documentation.yml
    M .github/workflows/release-doxygen.yml
    M .github/workflows/release-llvm-testing-tools.yml
    M .github/workflows/release-sources.yml
    M .github/workflows/release-tasks.yml
    M .github/workflows/scorecard.yml
    M .github/workflows/spirv-tests.yml
    M .github/workflows/sycl-tests.yml
    M .github/workflows/test-unprivileged-download-artifact.yml
    M .github/workflows/upload-release-artifact/action.yml
    M .github/workflows/version-check.yml
    M .github/workflows/zizmor.yml
    M .gitignore
    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/CMOVConversion.cpp
    M bolt/lib/Passes/JTFootprintReduction.cpp
    M bolt/lib/Passes/ThreeWayBranch.cpp
    M bolt/lib/Profile/DataAggregator.cpp
    M bolt/lib/Profile/DataReader.cpp
    M bolt/lib/Rewrite/DWARFRewriter.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp
    M bolt/lib/Target/AArch64/AArch64MCSymbolizer.cpp
    A bolt/test/AArch64/tls-desc-le-relaxation-alternative.test
    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
    M bolt/test/X86/dwarf4-dwp-x86.s
    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/clang-tidy/add_new_check.py
    M clang-tools-extra/clang-tidy/readability/ConvertMemberFunctionsToStaticCheck.cpp
    M clang-tools-extra/clang-tidy/readability/IdentifierLengthCheck.cpp
    M clang-tools-extra/clang-tidy/readability/IdentifierLengthCheck.h
    M clang-tools-extra/clang-tidy/readability/UseAnyOfAllOfCheck.cpp
    A clang-tools-extra/clang-tidy/tool/check_update_docs.py
    M clang-tools-extra/clang-tidy/utils/DeclRefExprUtils.cpp
    M clang-tools-extra/clang-tidy/utils/DeclRefExprUtils.h
    M clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp
    M clang-tools-extra/clangd/CMakeLists.txt
    M clang-tools-extra/clangd/Config.h
    M clang-tools-extra/clangd/FindTarget.cpp
    M clang-tools-extra/clangd/GlobalCompilationDatabase.cpp
    M clang-tools-extra/clangd/ModulesBuilder.cpp
    A clang-tools-extra/clangd/ProjectModules.cpp
    M clang-tools-extra/clangd/ProjectModules.h
    R clang-tools-extra/clangd/ScanningProjectModules.cpp
    R clang-tools-extra/clangd/ScanningProjectModules.h
    M clang-tools-extra/clangd/tool/ClangdMain.cpp
    M clang-tools-extra/clangd/unittests/FindTargetTests.cpp
    M clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
    M clang-tools-extra/clangd/unittests/TestFS.cpp
    M clang-tools-extra/clangd/unittests/URITests.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/docs/clang-tidy/checks/list.rst
    M clang-tools-extra/docs/clang-tidy/checks/readability/identifier-length.rst
    M clang-tools-extra/docs/clang-tidy/checks/readability/use-anyofallof.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-tools-extra/test/clang-tidy/checkers/bugprone/exception-escape-treat-functions-without-specification-as-throwing.cpp
    M clang-tools-extra/test/clang-tidy/checkers/misc/unused-using-decls.cpp
    M clang-tools-extra/test/clang-tidy/checkers/modernize/avoid-c-arrays.cpp
    M clang-tools-extra/test/clang-tidy/checkers/readability/convert-member-functions-to-static.cpp
    A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-line-count-threshold.cpp
    A clang-tools-extra/test/clang-tidy/checkers/readability/identifier-length-structured-bindings.cpp
    M clang-tools-extra/test/clang-tidy/checkers/readability/use-anyofallof-cpp20.cpp
    M clang-tools-extra/test/clang-tidy/checkers/readability/use-anyofallof.cpp
    A clang-tools-extra/test/clang-tidy/infrastructure/update-checks-list.test
    M clang/bindings/python/tests/cindex/test_version.py
    M clang/docs/ClangFormatStyleOptions.rst
    M clang/docs/InternalsManual.rst
    M clang/docs/ReleaseNotes.rst
    M clang/docs/UsersManual.rst
    M clang/include/clang/APINotes/Types.h
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/ASTFwd.h
    M clang/include/clang/AST/ASTNodeTraverser.h
    M clang/include/clang/AST/ASTTypeTraits.h
    M clang/include/clang/AST/DeclTemplate.h
    M clang/include/clang/AST/DynamicRecursiveASTVisitor.h
    M clang/include/clang/AST/HLSLResource.h
    M clang/include/clang/AST/JSONNodeDumper.h
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/include/clang/AST/TextNodeDumper.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/Analysis/Analyses/UnsafeBufferUsage.h
    M clang/include/clang/Basic/AArch64CodeGenUtils.h
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/AttrDocs.td
    M clang/include/clang/Basic/Builtins.td
    M clang/include/clang/Basic/BuiltinsAMDGPU.td
    M clang/include/clang/Basic/BuiltinsPPC.def
    M clang/include/clang/Basic/BuiltinsX86.td
    M clang/include/clang/Basic/CodeGenOptions.def
    M clang/include/clang/Basic/CodeGenOptions.h
    M clang/include/clang/Basic/DeclNodes.td
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/HLSLIntrinsics.td
    M clang/include/clang/Basic/IdentifierTable.h
    M clang/include/clang/Basic/Module.h
    M clang/include/clang/Basic/RISCVVTypes.def
    M clang/include/clang/Basic/TokenKinds.def
    M clang/include/clang/Basic/arm_neon.td
    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/CIR/MissingFeatures.h
    M clang/include/clang/DependencyScanning/DependencyScanningFilesystem.h
    M clang/include/clang/DependencyScanning/DependencyScanningService.h
    M clang/include/clang/DependencyScanning/InProcessModuleCache.h
    M clang/include/clang/Driver/SyclInstallationDetector.h
    M clang/include/clang/Format/Format.h
    M clang/include/clang/Options/Options.td
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/ScalableStaticAnalysisFramework/Analyses/EntityPointerLevel/EntityPointerLevel.h
    A clang/include/clang/ScalableStaticAnalysisFramework/Analyses/EntityPointerLevel/EntityPointerLevelFormat.h
    M clang/include/clang/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.h
    R clang/include/clang/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.h
    M clang/include/clang/ScalableStaticAnalysisFramework/Core/EntityLinker/EntityLinker.h
    M clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/SummaryDataBuilder.h
    M clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/SummaryDataStore.h
    M clang/include/clang/ScalableStaticAnalysisFramework/Core/SummaryData/SummaryDataTraits.h
    M clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummary.h
    M clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisBase.h
    M clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/DerivedAnalysis.h
    M clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/SummaryAnalysis.h
    M clang/include/clang/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/WPASuite.h
    M clang/include/clang/ScalableStaticAnalysisFramework/SSAFBuiltinForceLinker.h
    M clang/include/clang/Sema/DeclSpec.h
    M clang/include/clang/Sema/Initialization.h
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Sema/SemaHLSL.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/include/clang/Serialization/ModuleCache.h
    M clang/include/clang/Serialization/ModuleManager.h
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
    M clang/include/clang/Tooling/CommonOptionsParser.h
    M clang/lib/APINotes/APINotesFormat.h
    M clang/lib/APINotes/APINotesReader.cpp
    M clang/lib/APINotes/APINotesTypes.cpp
    M clang/lib/APINotes/APINotesWriter.cpp
    M clang/lib/APINotes/APINotesYAMLCompiler.cpp
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/ASTTypeTraits.cpp
    M clang/lib/AST/ByteCode/Compiler.cpp
    M clang/lib/AST/ByteCode/Compiler.h
    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/IntegralAP.h
    M clang/lib/AST/ByteCode/Interp.cpp
    M clang/lib/AST/ByteCode/Interp.h
    M clang/lib/AST/ByteCode/InterpBuiltin.cpp
    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/CommentParser.cpp
    M clang/lib/AST/Decl.cpp
    M clang/lib/AST/DeclBase.cpp
    M clang/lib/AST/DeclPrinter.cpp
    M clang/lib/AST/DeclTemplate.cpp
    M clang/lib/AST/DynamicRecursiveASTVisitor.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/AST/HLSLResource.cpp
    M clang/lib/AST/JSONNodeDumper.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/AST/TextNodeDumper.cpp
    M clang/lib/AST/Type.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/Analysis/UnsafeBufferUsage.cpp
    M clang/lib/Basic/IdentifierTable.cpp
    M clang/lib/Basic/Module.cpp
    M clang/lib/Basic/OffloadArch.cpp
    M clang/lib/Basic/Targets/AVR.h
    M clang/lib/Basic/Targets/SPIR.cpp
    M clang/lib/Basic/Targets/SPIR.h
    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/CIRGenBuiltinRISCV.cpp
    M clang/lib/CIR/CodeGen/CIRGenCXX.cpp
    M clang/lib/CIR/CodeGen/CIRGenCXXABI.cpp
    M clang/lib/CIR/CodeGen/CIRGenCall.cpp
    M clang/lib/CIR/CodeGen/CIRGenCleanup.cpp
    M clang/lib/CIR/CodeGen/CIRGenCleanup.h
    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/CIRGenExprCXX.cpp
    M clang/lib/CIR/CodeGen/CIRGenExprComplex.cpp
    M clang/lib/CIR/CodeGen/CIRGenExprConstant.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/CIRGenItaniumCXXABI.cpp
    M clang/lib/CIR/CodeGen/CIRGenModule.cpp
    M clang/lib/CIR/CodeGen/CIRGenModule.h
    A clang/lib/CIR/CodeGen/CIRGenOpenMPRuntime.cpp
    A clang/lib/CIR/CodeGen/CIRGenOpenMPRuntime.h
    M clang/lib/CIR/CodeGen/CIRGenTypes.cpp
    M clang/lib/CIR/CodeGen/CIRGenTypes.h
    M clang/lib/CIR/CodeGen/CIRGenVTables.cpp
    M clang/lib/CIR/CodeGen/CMakeLists.txt
    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/BackendUtil.cpp
    M clang/lib/CodeGen/CGBuilder.h
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CGDebugInfo.cpp
    M clang/lib/CodeGen/CGDecl.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGExprAgg.cpp
    M clang/lib/CodeGen/CGExprComplex.cpp
    M clang/lib/CodeGen/CGExprConstant.cpp
    M clang/lib/CodeGen/CGHLSLBuiltins.cpp
    M clang/lib/CodeGen/CGHLSLRuntime.cpp
    M clang/lib/CodeGen/CGHLSLRuntime.h
    M clang/lib/CodeGen/CGObjC.cpp
    M clang/lib/CodeGen/CGObjCMac.cpp
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/CodeGen/ItaniumCXXABI.cpp
    M clang/lib/CodeGen/MicrosoftCXXABI.cpp
    M clang/lib/CodeGen/ModuleBuilder.cpp
    M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
    M clang/lib/CodeGen/TargetBuiltins/NVPTX.cpp
    M clang/lib/CodeGen/TargetBuiltins/PPC.cpp
    M clang/lib/CodeGen/TargetBuiltins/SystemZ.cpp
    M clang/lib/CodeGen/TargetBuiltins/WebAssembly.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/DependencyScannerImpl.cpp
    M clang/lib/DependencyScanning/DependencyScanningFilesystem.cpp
    M clang/lib/DependencyScanning/InProcessModuleCache.cpp
    M clang/lib/Driver/Driver.cpp
    M clang/lib/Driver/ModulesDriver.cpp
    M clang/lib/Driver/ToolChain.cpp
    M clang/lib/Driver/ToolChains/Arch/X86.cpp
    M clang/lib/Driver/ToolChains/BareMetal.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Driver/ToolChains/Hexagon.h
    M clang/lib/Driver/ToolChains/Linux.cpp
    M clang/lib/Driver/ToolChains/SYCL.cpp
    M clang/lib/Format/ContinuationIndenter.cpp
    M clang/lib/Format/Format.cpp
    M clang/lib/Format/FormatToken.cpp
    M clang/lib/Format/TokenAnnotator.cpp
    M clang/lib/Format/UnwrappedLineParser.cpp
    M clang/lib/Frontend/CompilerInstance.cpp
    M clang/lib/Frontend/InitPreprocessor.cpp
    M clang/lib/Headers/vecintrin.h
    M clang/lib/Lex/ModuleMap.cpp
    M clang/lib/Parse/ParseCXXInlineMethods.cpp
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/lib/Parse/ParseExpr.cpp
    M clang/lib/Parse/ParseExprCXX.cpp
    M clang/lib/Parse/ParseOpenMP.cpp
    M clang/lib/Parse/ParseStmtAsm.cpp
    M clang/lib/Parse/ParseTentative.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/CMakeLists.txt
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/EntityPointerLevel/EntityPointerLevel.cpp
    A clang/lib/ScalableStaticAnalysisFramework/Analyses/SSAFAnalysesCommon.cpp
    A clang/lib/ScalableStaticAnalysisFramework/Analyses/SSAFAnalysesCommon.h
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsage.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageExtractor.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Core/SummaryData/LUSummaryConsumer.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Core/WholeProgramAnalysis/AnalysisDriver.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Plugins/ExamplePlugin/PairsAnalysis.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Plugins/ExamplePlugin/TagsAnalysis.cpp
    M clang/lib/ScalableStaticAnalysisFramework/Plugins/ExamplePlugin/TagsPairsAnalysis.cpp
    M clang/lib/Sema/SemaAMDGPU.cpp
    M clang/lib/Sema/SemaAPINotes.cpp
    M clang/lib/Sema/SemaCoroutine.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaHLSL.cpp
    M clang/lib/Sema/SemaLifetimeSafety.h
    M clang/lib/Sema/SemaModule.cpp
    M clang/lib/Sema/SemaOpenACC.cpp
    M clang/lib/Sema/SemaRISCV.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateDeductionGuide.cpp
    M clang/lib/Sema/SemaTemplateInstantiate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/lib/Serialization/ASTCommon.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/lib/Serialization/ModuleCache.cpp
    M clang/lib/Serialization/ModuleManager.cpp
    M clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/WebKit/PtrTypesSemantics.h
    M clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
    M clang/lib/Support/RISCVVIntrinsicUtils.cpp
    M clang/lib/Tooling/Syntax/BuildTree.cpp
    A clang/test/APINotes/Inputs/Headers/UnsafeBufferUsage.apinotes
    A clang/test/APINotes/Inputs/Headers/UnsafeBufferUsage.h
    M clang/test/APINotes/Inputs/Headers/module.modulemap
    A clang/test/APINotes/unsafe-buffer-usage.cpp
    M clang/test/AST/ByteCode/builtin-functions.cpp
    M clang/test/AST/ByteCode/c.c
    M clang/test/AST/ByteCode/const-eval.c
    M clang/test/AST/ByteCode/cxx17.cpp
    M clang/test/AST/ByteCode/cxx20.cpp
    M clang/test/AST/ByteCode/cxx23.cpp
    M clang/test/AST/ByteCode/functions.cpp
    M clang/test/AST/ByteCode/intap.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
    A clang/test/AST/HLSL/matrix_layout_attr.hlsl
    M clang/test/AST/ast-dump-comment.cpp
    M clang/test/AST/ast-dump-templates-pattern.cpp
    M clang/test/AST/ast-dump-templates.cpp
    A clang/test/AST/ast-print-explicit-instantiation.cpp
    A clang/test/AST/explicit-instantiation-source-info.cpp
    M clang/test/Analysis/Checkers/WebKit/uncounted-lambda-captures-co_await-assertion-failure.cpp
    M clang/test/Analysis/Scalable/UnsafeBufferUsage/tu-summary-serialization.test
    M clang/test/Analysis/more-dtors-cfg-output.cpp
    A 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
    A clang/test/CIR/CodeGen/cast-lvalue-conv.cpp
    M clang/test/CIR/CodeGen/cast.cpp
    M clang/test/CIR/CodeGen/complex.cpp
    M clang/test/CIR/CodeGen/coro-task.cpp
    A clang/test/CIR/CodeGen/cxx-abi-lowering-string-array.cpp
    A clang/test/CIR/CodeGen/delete-destroying.cpp
    M clang/test/CIR/CodeGen/dynamic-cast.cpp
    A clang/test/CIR/CodeGen/fixed-point-literal.c
    A clang/test/CIR/CodeGen/global-ptr-init-negative-offset.c
    A clang/test/CIR/CodeGen/global-var-template-ctor.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
    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
    A clang/test/CIR/CodeGen/paren-list-agg-init.cpp
    M clang/test/CIR/CodeGen/pointers.cpp
    A clang/test/CIR/CodeGen/replace-global-deferred-strings.c
    A clang/test/CIR/CodeGen/restrict-noalias.c
    A clang/test/CIR/CodeGen/self-assign.c
    M clang/test/CIR/CodeGen/static-local.cpp
    A clang/test/CIR/CodeGen/try-no-throwing-calls.cpp
    M clang/test/CIR/CodeGen/union.c
    M clang/test/CIR/CodeGen/vector-ext-element.cpp
    M clang/test/CIR/CodeGen/vla.c
    A clang/test/CIR/CodeGen/vtable-linkage-explicit-instantiation.cpp
    A clang/test/CIR/CodeGenBuiltins/RISCV/riscv-zbb.c
    A clang/test/CIR/CodeGenBuiltins/builtin-bit-clz-ctz-target.cpp
    M clang/test/CIR/CodeGenBuiltins/builtin-constant-p.c
    A clang/test/CIR/CodeGenBuiltins/builtin-float.c
    M clang/test/CIR/CodeGenBuiltins/builtin-new-delete.cpp
    A clang/test/CIR/CodeGenBuiltins/setjmp.c
    A clang/test/CIR/CodeGenCXX/new-array-init.cpp
    M clang/test/CIR/CodeGenHIP/amdgpu-attrs.hip
    A clang/test/CIR/CodeGenHIP/builtins-amdgcn.hip
    M clang/test/CIR/CodeGenOpenACC/combined-copy.c
    A clang/test/CIR/CodeGenOpenCL/as_type.cl
    A clang/test/CIR/CodeGenOpenMP/emit-device-functions.cpp
    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
    A clang/test/CIR/Transforms/flatten-try-catch-cleanup.cir
    M clang/test/CXX/drs/cwg16xx.cpp
    M clang/test/CXX/drs/cwg18xx.cpp
    M clang/test/CXX/drs/cwg25xx.cpp
    M clang/test/ClangScanDeps/modules-full-by-mult-mod-names-diagnostics.c
    M clang/test/ClangScanDeps/modules-pch-common-stale.c
    M clang/test/ClangScanDeps/modules-pch-imports.c
    M clang/test/ClangScanDeps/optimize-vfs-pch.m
    A clang/test/ClangScanDeps/p1689-mf-nested-dir.c
    M clang/test/CodeGen/AArch64/neon-across.c
    M clang/test/CodeGen/AArch64/neon-fcvt-intrinsics.c
    M clang/test/CodeGen/AArch64/neon-intrinsics-constrained.c
    M clang/test/CodeGen/AArch64/neon-intrinsics.c
    M clang/test/CodeGen/AArch64/neon-misc.c
    M clang/test/CodeGen/AArch64/neon/intrinsics.c
    A clang/test/CodeGen/AArch64/neon/vpaddl.c
    A clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_mmla-bf16.c
    A clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_mmla-f16.c
    M clang/test/CodeGen/AArch64/sve-vector-bits-codegen.c
    A clang/test/CodeGen/AArch64/sve2p3-intrinsics/acle_sve2p3_addqp.c
    A clang/test/CodeGen/AArch64/sve2p3-intrinsics/acle_sve2p3_addsubp.c
    A clang/test/CodeGen/AArch64/sve2p3-intrinsics/acle_sve2p3_subp.c
    A clang/test/CodeGen/AArch64/sve2p3-intrinsics/acle_sve2p3_svabal.c
    M clang/test/CodeGen/AArch64/v8.2a-fp16-intrinsics-constrained.c
    M clang/test/CodeGen/AArch64/v8.2a-fp16-intrinsics.c
    M clang/test/CodeGen/AArch64/v8.2a-neon-intrinsics.c
    A clang/test/CodeGen/AArch64/v9.7a-neon-mmla-intrinsics.c
    M clang/test/CodeGen/AMDGPU/amdgpu-atomic-float.c
    M clang/test/CodeGen/Inputs/stdbit.h
    M clang/test/CodeGen/PowerPC/builtins-ppc-dmf.c
    M clang/test/CodeGen/PowerPC/ppc-dmf-mma-builtin-err.c
    A clang/test/CodeGen/RISCV/rvv-builtin-reduce-ops.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
    A clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/non-policy/non-overloaded/vreinterpret.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
    A clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvfofp8min/non-policy/overloaded/vreinterpret.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
    M clang/test/CodeGen/SystemZ/builtins-systemz-i128.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-vector-constrained.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-vector.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-vector2-constrained.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-vector2.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-vector3.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-vector4.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-vector5.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector-constrained.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector-error.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector2-constrained.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector2.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector3.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector4.c
    M clang/test/CodeGen/SystemZ/builtins-systemz-zvector5.c
    M clang/test/CodeGen/X86/avx512bw-builtins.c
    M clang/test/CodeGen/X86/avx512vlbw-builtins.c
    A clang/test/CodeGen/avr/issue-176830.c
    M clang/test/CodeGen/builtin-stdc-bit-functions.c
    A clang/test/CodeGen/strict-bool.c
    M clang/test/CodeGenCUDA/amdgpu-kernel-attrs.cu
    M clang/test/CodeGenCUDA/atomic-options.hip
    M clang/test/CodeGenCXX/mangle-requires.cpp
    M clang/test/CodeGenCXX/no-elide-constructors.cpp
    A clang/test/CodeGenCXX/riscv-mangle-rvv-vectors.cpp
    M clang/test/CodeGenCXX/ubsan-coroutines.cpp
    M clang/test/CodeGenCoroutines/coro-params.cpp
    M clang/test/CodeGenCoroutines/coro-promise-dtor.cpp
    M clang/test/CodeGenHIP/amdgpu-flat-atomic-fadd.hip
    M clang/test/CodeGenHIP/amdgpu-global-atomic-fadd.hip
    A clang/test/CodeGenHIP/sret-lifetime-markers.cpp
    M clang/test/CodeGenHIP/sret-nontrivial-copyable.hip
    M clang/test/CodeGenHIP/store-addr-space.hip
    M clang/test/CodeGenHLSL/ArrayAssignable.hlsl
    A clang/test/CodeGenHLSL/ArrayAssignable.logicalptr.hlsl
    M clang/test/CodeGenHLSL/BasicFeatures/InitLists.hlsl
    R clang/test/CodeGenHLSL/GlobalDestructors.hlsl
    A clang/test/CodeGenHLSL/builtins/AllMemoryBarrier.hlsl
    A clang/test/CodeGenHLSL/builtins/AllMemoryBarrierWithGroupSync.hlsl
    A clang/test/CodeGenHLSL/builtins/BoolSwizzles.hlsl
    A clang/test/CodeGenHLSL/builtins/DeviceMemoryBarrier.hlsl
    A clang/test/CodeGenHLSL/builtins/DeviceMemoryBarrierWithGroupSync.hlsl
    M clang/test/CodeGenHLSL/builtins/ScalarSwizzles.hlsl
    M clang/test/CodeGenHLSL/convergence/global_array.hlsl
    R clang/test/CodeGenHLSL/inline-constructors.hlsl
    A clang/test/CodeGenHLSL/resources/cbuffer_struct_passing.hlsl
    A clang/test/CodeGenHLSL/resources/cbuffer_struct_passing.logical.hlsl
    A clang/test/CodeGenHLSL/resources/resources-in-structs-array.hlsl
    A clang/test/CodeGenHLSL/resources/resources-in-structs-inheritance.hlsl
    A clang/test/CodeGenHLSL/resources/resources-in-structs.hlsl
    A clang/test/CodeGenHLSL/strict-bool.hlsl
    A clang/test/CodeGenObjC/objc2-constant-literals-ptrauth.m
    A clang/test/CodeGenObjC/strict-bool.m
    M clang/test/CodeGenOpenCL/amdgpu-attrs.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx12-err.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn-gfx1250-tensor-load-store.cl
    A clang/test/CodeGenOpenCL/builtins-amdgcn-smfmac-err.cl
    A clang/test/CoverageMapping/consteval.cpp
    M clang/test/DebugInfo/CXX/atexit-stub.cpp
    M clang/test/DebugInfo/CXX/global-ctor-dtor.cpp
    M clang/test/DebugInfo/Generic/codeview-buildinfo.c
    A clang/test/Driver/Inputs/SYCL/libLLVMSYCL.ll
    R clang/test/Driver/Inputs/SYCL/libsycl.ll
    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/baremetal.cpp
    M clang/test/Driver/basic-block-address-map.c
    M clang/test/Driver/cl-x86-flags.c
    M clang/test/Driver/hexagon-toolchain-elf.c
    M clang/test/Driver/link-device-code.test
    M clang/test/Driver/linux-multilib.yaml
    M clang/test/Driver/mingw-multilib.yaml
    M clang/test/Driver/modules-driver-dep-graph.cpp
    M clang/test/Driver/modules-driver-duplicate-named-module.cpp
    A clang/test/Driver/modules-driver-filetype-mismatch.cpp
    M clang/test/Driver/print-supported-extensions-aarch64.c
    M clang/test/Driver/serenity.cpp
    A clang/test/Driver/strict-bool.c
    A clang/test/Driver/sycl-offload-jit-unix.cpp
    M clang/test/Driver/sycl-offload-jit.cpp
    M clang/test/Lexer/cxx-features.cpp
    M clang/test/Misc/languageOptsOpenCL.cl
    M clang/test/Modules/DebugInfoSubmodules.c
    R clang/test/Modules/callable-require-clause-merge.cppm
    M clang/test/Modules/coro-await-elidable.cppm
    A clang/test/Modules/explicit-instantiation-in-module.cppm
    A clang/test/Modules/explicit-instantiation-merge.cppm
    M clang/test/Modules/lsv-debuginfo.cpp
    M clang/test/Modules/polluted-operator.cppm
    M clang/test/OpenMP/amdgcn_sret_ctor.cpp
    M clang/test/PCH/coroutines.cpp
    M clang/test/PCH/pragma-redefine-extname.c
    M clang/test/PCH/pragma-redefine-extname.h
    M clang/test/Parser/cxx20-coroutines.cpp
    M clang/test/Parser/macro-braces-recovery.cpp
    M clang/test/Parser/static_assert.cpp
    A clang/test/Refactor/argument-parsing-error-no-abort.cpp
    A clang/test/Sema/AArch64/arm_sve_feature_dependent_sve_AND_LP_sve2p3_OR_sme2p3_RP___sme_AND_LP_sve2p3_OR_sme2p3_RP.c
    A clang/test/Sema/AArch64/arm_sve_non_streaming_only_sve_AND_sve-b16mm.c
    A clang/test/Sema/AArch64/arm_sve_non_streaming_only_sve_AND_sve2p2_AND_f16mm.c
    M clang/test/Sema/Inputs/lifetime-analysis.h
    M clang/test/Sema/Inputs/stdbit.h
    M clang/test/Sema/aarch64-neon-target.c
    M clang/test/Sema/aarch64-neon-without-target-feature.cpp
    A clang/test/Sema/aarch64-sve2p3-intrinsics/acle_sve2p3.cpp
    M clang/test/Sema/builtin-stdc-bit-functions.c
    A clang/test/Sema/builtins-ppc-crypto.c
    A clang/test/Sema/hlsl_matrix_layout_non_hlsl.cpp
    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
    M clang/test/SemaCUDA/amdgpu-attrs.cu
    M clang/test/SemaCUDA/float128.cu
    M clang/test/SemaCXX/addr-label-in-coroutines.cpp
    M clang/test/SemaCXX/builtins-overflow.cpp
    M clang/test/SemaCXX/co_await-ast.cpp
    M clang/test/SemaCXX/coroutine-alloc-2.cpp
    M clang/test/SemaCXX/coroutine-alloc-3.cpp
    M clang/test/SemaCXX/coroutine-alloc-4.cpp
    M clang/test/SemaCXX/coroutine-allocs.cpp
    M clang/test/SemaCXX/coroutine-builtins.cpp
    M clang/test/SemaCXX/coroutine-dealloc.cpp
    M clang/test/SemaCXX/coroutine-final-suspend-noexcept.cpp
    M clang/test/SemaCXX/coroutine-no-valid-dealloc.cpp
    M clang/test/SemaCXX/coroutine-noreturn.cpp
    M clang/test/SemaCXX/coroutine-promise-ctor.cpp
    M clang/test/SemaCXX/coroutine-rvo.cpp
    M clang/test/SemaCXX/coroutine-traits-undefined-template.cpp
    M clang/test/SemaCXX/coroutine-unevaluate.cpp
    M clang/test/SemaCXX/coroutine-vla.cpp
    A clang/test/SemaCXX/coroutine-win32x86.cpp
    M clang/test/SemaCXX/coroutine_handle-address-return-type.cpp
    M clang/test/SemaCXX/coroutines.cpp
    M clang/test/SemaCXX/cxx17-compat.cpp
    M clang/test/SemaCXX/cxx20-delayed-typo-correction-crashes.cpp
    M clang/test/SemaCXX/cxx2b-deducing-this-coro.cpp
    A clang/test/SemaCXX/gh187664.cpp
    M clang/test/SemaCXX/lambda-unevaluated.cpp
    M clang/test/SemaCXX/thread-safety-coro.cpp
    M clang/test/SemaCXX/warn-throw-out-noexcept-coro.cpp
    M clang/test/SemaCXX/warn-unused-parameters-coroutine.cpp
    M clang/test/SemaCXX/warn-weak-vtables.cpp
    A clang/test/SemaHLSL/BuiltIns/AllMemoryBarrier-errors.hlsl
    A clang/test/SemaHLSL/BuiltIns/AllMemoryBarrierWithGroupSync-errors.hlsl
    A clang/test/SemaHLSL/BuiltIns/DeviceMemoryBarrier-errors.hlsl
    A clang/test/SemaHLSL/BuiltIns/DeviceMemoryBarrierWithGroupSync-errors.hlsl
    M clang/test/SemaHLSL/BuiltIns/asfloat-constexpr.hlsl
    M clang/test/SemaHLSL/BuiltIns/asuint-constexpr.hlsl
    A clang/test/SemaHLSL/Constructors.hlsl
    M clang/test/SemaHLSL/GlobalConstructors.hlsl
    M clang/test/SemaHLSL/Language/InitIncompleteArrays.hlsl
    M clang/test/SemaHLSL/Language/InitListAST.hlsl
    A clang/test/SemaHLSL/Language/Volatile.hlsl
    M clang/test/SemaHLSL/Types/AggregateSplatConstantExpr.hlsl
    M clang/test/SemaHLSL/Types/Arithmetic/half_size.hlsl
    M clang/test/SemaHLSL/Types/Arithmetic/literal_suffixes.hlsl
    M clang/test/SemaHLSL/Types/Arithmetic/literal_suffixes_202x.hlsl
    M clang/test/SemaHLSL/Types/Arithmetic/literal_suffixes_no_16bit.hlsl
    M clang/test/SemaHLSL/Types/BuiltinVector/BooleanVectorConstantExpr.hlsl
    M clang/test/SemaHLSL/Types/BuiltinVector/TruncationConstantExpr.hlsl
    M clang/test/SemaHLSL/Types/ElementwiseCastConstantExpr.hlsl
    M clang/test/SemaHLSL/Types/InitListConstantExpr.hlsl
    M clang/test/SemaHLSL/Types/Traits/IsIntangibleType.hlsl
    M clang/test/SemaHLSL/Types/Traits/IsIntangibleTypeErrors.hlsl
    M clang/test/SemaHLSL/Types/Traits/IsTypedResourceElementCompatible.hlsl
    M clang/test/SemaHLSL/Types/Traits/ScalarizedLayoutCompatible.hlsl
    M clang/test/SemaHLSL/Types/Traits/ScalarizedLayoutCompatibleErrors.hlsl
    M clang/test/SemaHLSL/Types/typedefs.hlsl
    M clang/test/SemaHLSL/group_shared.hlsl
    A clang/test/SemaHLSL/matrix_layout_attr.hlsl
    M clang/test/SemaOpenACC/compute-construct-private-clause.cpp
    M clang/test/SemaOpenCL/amdgpu-attrs.cl
    A clang/test/SemaOpenCL/amdgpu-num-sgpr-vgpr-deprecated.cl
    M clang/test/SemaOpenCL/builtins-amdgcn-error-gfx1250-param.cl
    A clang/test/SemaOpenCL/zero-length-array.cl
    M clang/test/SemaTemplate/concepts-out-of-line-def.cpp
    A clang/test/SemaTemplate/explicit-instantiation-diag-location.cpp
    A clang/test/Tooling/argument-parsing-error-no-abort.cpp
    M clang/test/lit.cfg.py
    M clang/tools/c-index-test/CMakeLists.txt
    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/clang-ssaf-linker/SSAFLinker.cpp
    M clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
    M clang/tools/driver/cc1as_main.cpp
    M clang/tools/libclang/CIndex.cpp
    M clang/unittests/DependencyScanning/DependencyScanningFilesystemTest.cpp
    M clang/unittests/Format/AlignBracketsTest.cpp
    M clang/unittests/Format/AlignmentTest.cpp
    M clang/unittests/Format/ConfigParseTest.cpp
    M clang/unittests/Format/FormatTest.cpp
    M clang/unittests/Format/FormatTestComments.cpp
    M clang/unittests/Format/FormatTestObjC.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/Analyses/CallGraph/CallGraphExtractorTest.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/EntityLinkerTest.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/Registries/MockSerializationFormat.h
    M clang/unittests/ScalableStaticAnalysisFramework/Registries/SummaryExtractorRegistryTest.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/TUSummaryBuilderTest.cpp
    M clang/unittests/ScalableStaticAnalysisFramework/WholeProgramAnalysis/AnalysisDriverTest.cpp
    M clang/unittests/Tooling/CMakeLists.txt
    A clang/unittests/Tooling/RecursiveASTVisitorTests/OffsetOfExpr.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 cmake/Modules/GetToolchainDirs.cmake
    M compiler-rt/CMakeLists.txt
    M compiler-rt/cmake/Modules/AddCompilerRT.cmake
    M compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
    M compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
    M compiler-rt/cmake/Modules/CompilerRTUtils.cmake
    M compiler-rt/cmake/builtin-config-ix.cmake
    A compiler-rt/cmake/caches/SPIRV64.cmake
    M compiler-rt/cmake/config-ix.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/CMakeLists.txt
    M compiler-rt/lib/builtins/clear_cache.c
    M compiler-rt/lib/builtins/fp_compare_impl.inc
    M compiler-rt/lib/builtins/int_lib.h
    M compiler-rt/lib/builtins/int_types.h
    M compiler-rt/lib/profile/CMakeLists.txt
    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/scudo/standalone/secondary.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/fuzzer/lit.cfg.py
    M compiler-rt/test/fuzzer/lit.site.cfg.py.in
    M compiler-rt/test/profile/instrprof-tmpdir.c
    M compiler-rt/test/sanitizer_common/TestCases/Linux/pthread_join.cpp
    M compiler-rt/test/sanitizer_common/TestCases/Posix/getpw_getgr.cpp
    M cross-project-tests/CMakeLists.txt
    M flang-rt/cmake/modules/AddFlangRT.cmake
    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/docs/MeetingNotes/2026/2026-04-08.md
    A flang/docs/MeetingNotes/2026/2026-04-22.md
    M flang/docs/Overview.md
    M flang/examples/FeatureList/FeatureList.cpp
    M flang/include/flang/Common/format.h
    M flang/include/flang/Evaluate/expression.h
    M flang/include/flang/Lower/OpenMP.h
    M flang/include/flang/Lower/OpenMP/Clauses.h
    M flang/include/flang/Lower/PFTBuilder.h
    M flang/include/flang/Lower/Support/ReductionProcessor.h
    M flang/include/flang/Optimizer/Dialect/FIROps.td
    M flang/include/flang/Optimizer/OpenACC/Support/FIROpenACCOpsInterfaces.h
    M flang/include/flang/Optimizer/Passes/Pipelines.h
    M flang/include/flang/Optimizer/Support/InitFIR.h
    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/include/flang/Semantics/type.h
    M flang/include/flang/Support/Fortran-features.h
    M flang/include/flang/Support/LangOptions.def
    M flang/lib/Evaluate/check-expression.cpp
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/FrontendTool/CMakeLists.txt
    M flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/ConvertCall.cpp
    M flang/lib/Lower/ConvertExprToHLFIR.cpp
    M flang/lib/Lower/CustomIntrinsicCall.cpp
    M flang/lib/Lower/OpenACC.cpp
    M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
    M flang/lib/Lower/OpenMP/DataSharingProcessor.cpp
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M flang/lib/Lower/OpenMP/Utils.cpp
    M flang/lib/Lower/PFTBuilder.cpp
    M flang/lib/Lower/Support/PrivateReductionUtils.cpp
    M flang/lib/Lower/Support/ReductionProcessor.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/CodeGen/CodeGen.cpp
    M flang/lib/Optimizer/OpenACC/Support/FIROpenACCOpsInterfaces.cpp
    M flang/lib/Optimizer/OpenACC/Support/FIROpenACCUtils.cpp
    M flang/lib/Optimizer/OpenACC/Support/RegisterOpenACCExtensions.cpp
    M flang/lib/Optimizer/Passes/CMakeLists.txt
    M flang/lib/Optimizer/Passes/Pipelines.cpp
    M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
    M flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
    M flang/lib/Optimizer/Transforms/CUDA/CUFAllocationConversion.cpp
    M flang/lib/Optimizer/Transforms/CUDA/CUFDeviceFuncTransform.cpp
    M flang/lib/Optimizer/Transforms/CUDA/CUFDeviceGlobal.cpp
    M flang/lib/Optimizer/Transforms/CUDA/CUFGPUToLLVMConversion.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/openmp-utils.cpp
    M flang/lib/Parser/prescan.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-acc.cpp
    M flang/lib/Semantics/canonicalize-directives.cpp
    M flang/lib/Semantics/canonicalize-omp.cpp
    M flang/lib/Semantics/check-deallocate.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/type.cpp
    M flang/lib/Semantics/unparse-with-symbols.cpp
    M flang/lib/Support/Fortran-features.cpp
    M flang/module/__fortran_builtins.f90
    M flang/module/cudadevice.f90
    M flang/test/Driver/do_concurrent_to_omp_cli.f90
    M flang/test/Driver/escaped-backslash.f90
    A flang/test/Driver/mmlir-print-ir.f90
    M flang/test/Fir/CUDA/cuda-alloc-free.fir
    M flang/test/Fir/CUDA/cuda-constructor-2.f90
    M flang/test/Fir/CUDA/cuda-device-global.f90
    M flang/test/Fir/CUDA/cuda-gpu-launch-func.mlir
    M flang/test/Fir/OpenACC/offload-livein-value-canonicalization.fir
    M flang/test/Fir/basic-program.fir
    A flang/test/Fir/fake_use-codegen.fir
    M flang/test/Fir/fir-ops.fir
    A flang/test/Fir/print-ir-pass.fir
    M flang/test/Integration/OpenMP/target-use-device-nested.f90
    M flang/test/Integration/OpenMP/threadprivate-target-device.f90
    M flang/test/Lower/HLFIR/conditional-expr.f90
    A flang/test/Lower/HLFIR/elemental-character-min-max-optional-todo.f90
    M flang/test/Lower/HLFIR/elemental-character-min-max.f90
    A flang/test/Lower/Intrinsics/c_devptr_eq_ne.f90
    A flang/test/Lower/Intrinsics/transfer-unsigned.f90
    M flang/test/Lower/OpenACC/Todo/do-loops-to-acc-loops-todo.f90
    M flang/test/Lower/OpenACC/acc-host-data-cuda-device.f90
    M flang/test/Lower/OpenMP/Todo/omp-default-clause-inner-loop.f90
    R flang/test/Lower/OpenMP/Todo/scope-allocate.f90
    R flang/test/Lower/OpenMP/Todo/scope-firstprivate.f90
    R flang/test/Lower/OpenMP/Todo/scope.f90
    A flang/test/Lower/OpenMP/declare-reduction-finalizer.f90
    M flang/test/Lower/OpenMP/declare-reduction-intrinsic-op.f90
    M flang/test/Lower/OpenMP/omp-declare-reduction-derivedtype.f90
    A flang/test/Lower/OpenMP/scope.f90
    M flang/test/Lower/OpenMP/sections.f90
    M flang/test/Lower/OpenMP/target-map-complex.f90
    A flang/test/Lower/OpenMP/target-scope.f90
    A flang/test/Lower/OpenMP/tile-parallel-do.f90
    M flang/test/Lower/c-interoperability.f90
    M flang/test/Lower/call-copy-in-out.f90
    M flang/test/Lower/constant-logical-transfer.f90
    A flang/test/Lower/debug-use-stmt-module-multiple.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/pointer-initial-target-2.f90
    M flang/test/Lower/pointer-initial-target.f90
    M flang/test/Lower/pointer-references.f90
    M flang/test/Lower/pointer-results-as-arguments.f90
    M flang/test/Lower/pointer-runtime.f90
    M flang/test/Lower/polymorphic-temp.f90
    M flang/test/Lower/polymorphic-types.f90
    M flang/test/Lower/pre-fir-tree03.f90
    A flang/test/Lower/proc_pointer_hidden_by_generic.f90
    M flang/test/Lower/procedure-declarations.f90
    M flang/test/Lower/read-write-buffer.f90
    M flang/test/Lower/real-operations-2.f90
    M flang/test/Lower/reallocate-lhs.f90
    A flang/test/Lower/simd-directive.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
    A 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
    A 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/Parser/simd-directive.f90
    M flang/test/Semantics/OpenACC/acc-canonicalization-validity.f90
    M flang/test/Semantics/OpenACC/acc-loop.f90
    M flang/test/Semantics/OpenACC/bug1583.f90
    A flang/test/Semantics/OpenMP/branching-program-unit.f90
    M flang/test/Semantics/OpenMP/clause-validity01.f90
    A flang/test/Semantics/OpenMP/cray-pointer-default-none.f90
    M flang/test/Semantics/OpenMP/cray-pointer-usage.f90
    M flang/test/Semantics/OpenMP/deprecation.f90
    M flang/test/Semantics/OpenMP/parallel-master-goto.f90
    M flang/test/Semantics/OpenMP/simd-only.f90
    M flang/test/Semantics/OpenMP/taskgroup01.f90
    A flang/test/Semantics/OpenMP/workshare06.f90
    A flang/test/Semantics/conditional-arg.f90
    M flang/test/Semantics/conditional-expr.f90
    A flang/test/Semantics/deallocate08.f90
    A flang/test/Semantics/inlinealways-directive01.f90
    A flang/test/Semantics/io19.f90
    A flang/test/Semantics/no-realloc-lhs-poly.f90
    A flang/test/Semantics/simd-directive01.f90
    A flang/test/Transforms/OpenACC/acc-compute-region-licm.fir
    A flang/test/Transforms/debug-fake-use.fir
    A flang/test/Transforms/debug-module-use-imports.fir
    M flang/tools/fir-opt/CMakeLists.txt
    M flang/tools/fir-opt/fir-opt.cpp
    M flang/unittests/Semantics/OpenMPUtils.cpp
    A libc/Maintainers.md
    R libc/Maintainers.rst
    M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
    M libc/cmake/modules/LLVMLibCTestRules.cmake
    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/config/linux/x86_64/headers.txt
    M libc/docs/CMakeLists.txt
    A libc/docs/Maintainers.md
    R libc/docs/Maintainers.rst
    M libc/docs/dev/undefined_behavior.rst
    M libc/docs/full_host_build.rst
    M libc/docs/headers/index.rst
    M libc/hdr/types/CMakeLists.txt
    A libc/hdr/types/struct_cmsghdr.h
    A libc/hdr/types/struct_sockaddr_storage.h
    M libc/include/CMakeLists.txt
    M libc/include/elf.yaml
    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
    M libc/include/llvm-libc-types/cnd_t.h
    A libc/include/llvm-libc-types/pthread_cond_t.h
    A libc/include/llvm-libc-types/struct_cmsghdr.h
    M libc/include/llvm-libc-types/struct_dl_phdr_info.h
    M libc/include/llvm-libc-types/struct_sockaddr.h
    A libc/include/llvm-libc-types/struct_sockaddr_storage.h
    M libc/include/llvm-libc-types/struct_sockaddr_un.h
    M libc/include/pthread.yaml
    M libc/include/sys/socket.yaml
    M libc/include/sys/types.yaml
    A libc/include/sys/ucontext.h
    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/shared/rpc.h
    M libc/shared/rpc_server.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/OSUtil/linux/syscall_wrappers/CMakeLists.txt
    A libc/src/__support/OSUtil/linux/syscall_wrappers/accept4.h
    A libc/src/__support/OSUtil/linux/syscall_wrappers/shutdown.h
    M libc/src/__support/math/CMakeLists.txt
    M libc/src/__support/math/cosf.h
    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
    M libc/src/__support/math/floor.h
    M libc/src/__support/math/floorbf16.h
    M libc/src/__support/math/floorf.h
    M libc/src/__support/math/floorf128.h
    M libc/src/__support/math/floorf16.h
    M libc/src/__support/math/floorl.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/powf.h
    A libc/src/__support/math/powf_small_tables.h
    M libc/src/__support/math_extras.h
    M libc/src/__support/memory_size.h
    M libc/src/__support/threads/CMakeLists.txt
    M libc/src/__support/threads/CndVar.h
    M libc/src/__support/threads/linux/CMakeLists.txt
    R libc/src/__support/threads/linux/CndVar.cpp
    M libc/src/__support/threads/linux/barrier.cpp
    M libc/src/__support/threads/mutex.h
    M libc/src/__support/threads/raw_mutex.h
    M libc/src/__support/threads/raw_rwlock.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/sys/socket/CMakeLists.txt
    A libc/src/sys/socket/accept4.h
    M libc/src/sys/socket/linux/CMakeLists.txt
    A libc/src/sys/socket/linux/accept4.cpp
    A libc/src/sys/socket/linux/shutdown.cpp
    A libc/src/sys/socket/shutdown.h
    M libc/src/threads/linux/CMakeLists.txt
    M libc/src/threads/linux/cnd_destroy.cpp
    M libc/src/threads/linux/cnd_init.cpp
    M libc/src/threads/linux/cnd_wait.cpp
    M libc/src/wchar/CMakeLists.txt
    A libc/src/wchar/wcscoll.cpp
    A libc/src/wchar/wcscoll.h
    A libc/src/wchar/wcsxfrm.cpp
    A libc/src/wchar/wcsxfrm.h
    M libc/test/CMakeLists.txt
    M libc/test/include/CMakeLists.txt
    M libc/test/integration/CMakeLists.txt
    M libc/test/integration/src/__support/threads/CMakeLists.txt
    A libc/test/integration/src/__support/threads/cndvar_test.cpp
    M libc/test/integration/src/pthread/CMakeLists.txt
    A libc/test/integration/src/pthread/pthread_cond_test.cpp
    M libc/test/integration/src/threads/CMakeLists.txt
    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/connect_accept_test.cpp
    M libc/test/src/sys/socket/linux/sendmsg_recvmsg_test.cpp
    A libc/test/src/sys/socket/linux/shutdown_test.cpp
    A libc/test/src/sys/socket/linux/sockaddr_storage_helper.cpp
    A libc/test/src/sys/socket/linux/sockaddr_storage_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/test/src/wchar/wcsxfrm_test.cpp
    A libc/utils/docgen/dlfcn.yaml
    A libc/utils/docgen/poll.yaml
    A libc/utils/docgen/sys/select.yaml
    A libc/utils/docgen/sys/sem.yaml
    A libc/utils/docgen/sys/uio.yaml
    M libc/utils/libctest/format.py
    M libclc/CMakeLists.txt
    M libclc/cmake/modules/CMakeDetermineCLCCompiler.cmake
    M libclc/test/CMakeLists.txt
    A libcxx/cmake/caches/Generic-llvm-libc.cmake
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/ReleaseNotes/23.rst
    M libcxx/docs/Status/Cxx23Papers.csv
    M libcxx/docs/Status/Cxx2cIssues.csv
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__algorithm/ranges_fold.h
    M libcxx/include/__assert
    M libcxx/include/__config
    A libcxx/include/__configuration/diagnostic_suppression.h
    A libcxx/include/__configuration/namespace.h
    M libcxx/include/__format/escaped_output_table.h
    M libcxx/include/__mbstate_t.h
    A libcxx/include/__ranges/enumerate_view.h
    A libcxx/include/__ranges/stride_view.h
    A libcxx/include/__utility/constant_wrapper.h
    M libcxx/include/algorithm
    M libcxx/include/limits
    M libcxx/include/module.modulemap.in
    M libcxx/include/ranges
    M libcxx/include/span
    M libcxx/include/utility
    M libcxx/include/version
    M libcxx/modules/std/algorithm.inc
    M libcxx/modules/std/ranges.inc
    M libcxx/src/CMakeLists.txt
    M libcxx/src/any.cpp
    M libcxx/src/atomic.cpp
    M libcxx/src/chrono.cpp
    R libcxx/src/include/apple_availability.h
    M libcxx/test/benchmarks/algorithms/nonmodifying/fold.bench.cpp
    A libcxx/test/configs/llvm-libc++-llvm-libc.cfg.in
    M libcxx/test/libcxx/algorithms/nodiscard.verify.cpp
    M libcxx/test/libcxx/fuzzing/random.pass.cpp
    M libcxx/test/libcxx/language.support/support.dynamic/assert.nothrow_new_not_overridden_fno_exceptions.pass.cpp
    M libcxx/test/libcxx/language.support/support.dynamic/new_dont_return_nullptr.pass.cpp
    M libcxx/test/libcxx/numerics/c.math/constexpr-cxx23-clang.pass.cpp
    A libcxx/test/libcxx/ranges/range.adaptors/range.enumerate/nodiscard.verify.cpp
    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
    A libcxx/test/libcxx/utilities/const.wrap.class/nodiscard.verify.cpp
    M libcxx/test/selftest/dsl/dsl.sh.py
    R libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/left_folds.pass.cpp
    A libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/ranges.fold_left.pass.cpp
    A libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/ranges.fold_left_first.pass.cpp
    M libcxx/test/std/atomics/atomics.types.generic/cas_non_power_of_2.pass.cpp
    M libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_is_lock_free.pass.cpp
    M libcxx/test/std/containers/container.adaptors/container.adaptors.format/format.functions.format.pass.cpp
    M libcxx/test/std/containers/container.adaptors/container.adaptors.format/format.functions.vformat.pass.cpp
    M libcxx/test/std/containers/views/views.span/span.cons/array.pass.cpp
    M libcxx/test/std/containers/views/views.span/span.cons/deduct.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/depr/depr.c.headers/math_h.pass.cpp
    M libcxx/test/std/depr/depr.c.headers/signal_h.compile.pass.cpp
    M libcxx/test/std/depr/depr.c.headers/stdio_h.compile.pass.cpp
    M libcxx/test/std/depr/depr.c.headers/stdlib_h.pass.cpp
    M libcxx/test/std/depr/depr.c.headers/uchar_h.compile.pass.cpp
    M libcxx/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp
    M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp
    M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp
    M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp
    M libcxx/test/std/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/span.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    M libcxx/test/std/language.support/support.runtime/csignal.pass.cpp
    M libcxx/test/std/language.support/support.runtime/cstdlib.pass.cpp
    M libcxx/test/std/library/description/conventions/customization.point.object/cpo.compile.pass.cpp
    M libcxx/test/std/library/description/conventions/customization.point.object/niebloid.compile.pass.cpp
    M libcxx/test/std/numerics/c.math/cmath.pass.cpp
    M libcxx/test/std/numerics/c.math/hermite.pass.cpp
    M libcxx/test/std/numerics/complex.number/cmplx.over/pow.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.member.ops/divide_equal_complex.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.ops/complex_divide_complex.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.ops/scalar_divide_complex.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/acos.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/acosh.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/asin.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/asinh.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/atan.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/atanh.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/cos.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/cosh.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/exp.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/log.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/log10.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/pow_complex_complex.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/pow_complex_scalar.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/pow_scalar_complex.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/sin.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/sinh.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/sqrt.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/tan.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.transcendentals/tanh.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.value.ops/abs.pass.cpp
    M libcxx/test/std/numerics/complex.number/complex.value.ops/polar.pass.cpp
    M libcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/cosh_valarray.pass.cpp
    M libcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/sinh_valarray.pass.cpp
    M libcxx/test/std/numerics/numarray/valarray.nonmembers/valarray.transcend/tanh_valarray.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/assign.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/copy.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/ctor_int_double.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/ctor_param.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/eq.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/eval.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/eval_param.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/get_param.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/max.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/min.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/param_assign.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/param_copy.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/param_ctor.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/param_eq.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/set_param.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.weibull/eval.pass.cpp
    M libcxx/test/std/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.weibull/eval_param.pass.cpp
    M libcxx/test/std/ranges/iterator_robust_against_adl.compile.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/adaptor.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/base.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/begin.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/ctad.compile.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/ctor.base.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/ctor.default.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/enable_borrowed_range.compile.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/end.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/arithmetic.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/base.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/compare.three_way.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/ctor.convert.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/ctor.default.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/deref.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/equal.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/index.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/iter_move.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/subscript.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/iterator/types.compile.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel/base.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel/ctor.convert.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel/ctor.default.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel/equal.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/sentinel/minus.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/size.pass.cpp
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/types.h
    A libcxx/test/std/ranges/range.adaptors/range.enumerate/types_iterators.h
    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/strings/c.strings/cuchar.compile.pass.cpp
    M libcxx/test/std/time/time.hash/time.hash_enabled.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/adl.compile.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/assign.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/binary_ops.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/call.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/comma.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/comp.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/convert.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/ctad.compile.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/cw.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/cw_fixed.array.ctor.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/cw_fixed.ctor.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/general.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/helpers.h
    A libcxx/test/std/utilities/const.wrap.class/mem_ptr.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/pseudo_mutators.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/subscript.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/types.compile.pass.cpp
    A libcxx/test/std/utilities/const.wrap.class/unary_ops.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtmap/format.functions.format.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtmap/format.functions.vformat.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtset/format.functions.format.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtset/format.functions.vformat.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtstr/format.functions.format.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtstr/format.functions.vformat.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtstr/format.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.fmtstr/parse.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.formatter/format.functions.format.pass.cpp
    M libcxx/test/std/utilities/format/format.range/format.range.formatter/format.functions.vformat.pass.cpp
    M libcxx/test/support/test_range.h
    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/images/libcxx_runners.txt
    M libcxx/utils/ci/run-buildbot
    M libcxx/utils/generate_escaped_output_table.py
    M libcxx/utils/generate_feature_test_macro_components.py
    M libcxx/utils/libcxx/test/config.py
    M libcxx/utils/libcxx/test/features/platform.py
    M libcxxabi/src/cxa_personality.cpp
    M libcxxabi/src/demangle/ItaniumDemangle.h
    M libcxxabi/test/DemangleTestCases.inc
    A libcxxabi/test/configs/llvm-libc++abi-llvm-libc.cfg.in
    M libsycl/CMakeLists.txt
    M libsycl/include/sycl/__impl/usm_functions.hpp
    M libsycl/src/CMakeLists.txt
    M libsycl/test/lit.cfg.py
    M libsycl/tools/sycl-ls/CMakeLists.txt
    M libunwind/src/AddressSpace.hpp
    M libunwind/src/CompactUnwinder.hpp
    M libunwind/src/DwarfParser.hpp
    M libunwind/src/UnwindRegistersRestore.S
    M libunwind/src/UnwindRegistersSave.S
    M libunwind/test/CMakeLists.txt
    M libunwind/test/aarch64_za_unwind.pass.cpp
    M libunwind/test/configs/llvm-libunwind-merged.cfg.in
    M libunwind/test/configs/llvm-libunwind-shared.cfg.in
    M libunwind/test/configs/llvm-libunwind-static.cfg.in
    M lld/ELF/Config.h
    M lld/ELF/Driver.cpp
    M lld/ELF/InputFiles.cpp
    M lld/ELF/InputFiles.h
    M lld/ELF/ScriptLexer.cpp
    M lld/ELF/ScriptLexer.h
    M lld/ELF/ScriptParser.cpp
    M lld/MachO/InputFiles.cpp
    M lld/MinGW/Driver.cpp
    M lld/MinGW/Options.td
    M lld/test/ELF/fill-trap-ppc.s
    M lld/test/ELF/fill-trap.s
    A lld/test/ELF/linkerscript/header-alloc.test
    R lld/test/ELF/linkerscript/header-phdr2.s
    A lld/test/ELF/linkerscript/include-mid-construct.s
    M lld/test/ELF/linkerscript/memory-include.test
    M lld/test/ELF/linkerscript/output-section-include.test
    M lld/test/ELF/linkerscript/section-include.test
    R lld/test/ELF/linkerscript/sizeofheaders.s
    A lld/test/MachO/catalyst-arm64e-reexport.s
    M lld/test/MinGW/driver.test
    M lld/test/wasm/pic-static.s
    A lld/test/wasm/tls-base-non-shared-memory.s
    M lld/wasm/Writer.cpp
    M lldb/cmake/modules/FindCursesAndPanel.cmake
    M lldb/docs/index.rst
    M lldb/docs/resources/lldbgdbremote.md
    M lldb/docs/use/aarch64-linux.md
    M lldb/docs/use/links.rst
    M lldb/examples/darwin/heap_find/heap.py
    M lldb/examples/python/diagnose_nsstring.py
    M lldb/examples/python/diagnose_unwind.py
    M lldb/examples/python/jump.py
    M lldb/examples/python/lldbtk.py
    M lldb/examples/python/memory.py
    M lldb/examples/python/sources.py
    M lldb/examples/python/stacks.py
    M lldb/examples/python/types.py
    M lldb/include/lldb/API/SBExpressionOptions.h
    M lldb/include/lldb/Core/EmulateInstruction.h
    M lldb/include/lldb/DataFormatters/TypeSynthetic.h
    M lldb/include/lldb/Symbol/Function.h
    M lldb/include/lldb/Symbol/Symtab.h
    M lldb/include/lldb/Target/ABI.h
    M lldb/include/lldb/Target/BorrowedStackFrame.h
    M lldb/include/lldb/Target/ExecutionContextScope.h
    M lldb/include/lldb/Target/MemoryRegionInfo.h
    M lldb/include/lldb/Target/Process.h
    M lldb/include/lldb/Target/StackFrame.h
    M lldb/include/lldb/Target/Target.h
    M lldb/include/lldb/Target/Thread.h
    M lldb/include/lldb/Utility/DataExtractor.h
    M lldb/include/lldb/Utility/StringExtractorGDBRemote.h
    M lldb/include/lldb/ValueObject/DILEval.h
    M lldb/include/lldb/ValueObject/DILParser.h
    M lldb/include/lldb/ValueObject/ValueObject.h
    M lldb/include/lldb/ValueObject/ValueObjectConstResult.h
    M lldb/packages/Python/lldbsuite/test/decorators.py
    M lldb/packages/Python/lldbsuite/test/lldbplatformutil.py
    M lldb/packages/Python/lldbsuite/test/lldbtest.py
    M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
    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/API/SBFrame.cpp
    M lldb/source/API/SBValue.cpp
    M lldb/source/Commands/CommandObjectBreakpoint.cpp
    M lldb/source/Commands/CommandObjectBreakpointCommand.cpp
    M lldb/source/Commands/CommandObjectCommands.cpp
    M lldb/source/Commands/CommandObjectDWIMPrint.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/Commands/CommandObjectMultiword.cpp
    M lldb/source/Commands/CommandObjectPlatform.cpp
    M lldb/source/Commands/CommandObjectProcess.cpp
    M lldb/source/Commands/CommandObjectRegister.cpp
    M lldb/source/Commands/CommandObjectSource.cpp
    M lldb/source/Commands/CommandObjectTarget.cpp
    M lldb/source/Commands/CommandObjectThread.cpp
    M lldb/source/Commands/CommandObjectThreadUtil.cpp
    M lldb/source/Commands/CommandObjectTrace.cpp
    M lldb/source/Commands/CommandObjectType.cpp
    M lldb/source/Commands/CommandObjectWatchpoint.cpp
    M lldb/source/Commands/CommandObjectWatchpointCommand.cpp
    M lldb/source/Core/EmulateInstruction.cpp
    M lldb/source/Core/IOHandlerCursesGUI.cpp
    M lldb/source/DataFormatters/FormatterBytecode.cpp
    M lldb/source/DataFormatters/TypeSynthetic.cpp
    M lldb/source/Expression/IRMemoryMap.cpp
    M lldb/source/Expression/UserExpression.cpp
    M lldb/source/Interpreter/CommandInterpreter.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/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.h
    M lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp
    M lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp
    M lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp
    M lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
    M lldb/source/Plugins/Language/CPlusPlus/GenericBitset.cpp
    M lldb/source/Plugins/Language/CPlusPlus/GenericInitializerList.cpp
    M lldb/source/Plugins/Language/CPlusPlus/GenericList.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp
    M lldb/source/Plugins/Language/CPlusPlus/LibStdcppSpan.cpp
    M lldb/source/Plugins/Language/CPlusPlus/MsvcStlDeque.cpp
    M lldb/source/Plugins/Language/CPlusPlus/MsvcStlSpan.cpp
    M lldb/source/Plugins/Language/CPlusPlus/MsvcStlVector.cpp
    M lldb/source/Plugins/Language/ObjC/NSArray.cpp
    M lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
    M lldb/source/Plugins/Language/ObjC/NSError.cpp
    M lldb/source/Plugins/Language/ObjC/NSException.cpp
    M lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp
    M lldb/source/Plugins/Language/ObjC/NSSet.cpp
    M lldb/source/Plugins/Language/ObjC/NSString.cpp
    M lldb/source/Plugins/LanguageRuntime/CPlusPlus/CommandObjectCPlusPlus.cpp
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
    M lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp
    M lldb/source/Plugins/Platform/WebAssembly/PlatformWasm.cpp
    M lldb/source/Plugins/Platform/Windows/PlatformWindows.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/GDBRemoteCommunicationServerLLGS.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/source/Plugins/Process/scripted/ScriptedFrame.cpp
    M lldb/source/Plugins/Process/scripted/ScriptedFrame.h
    M lldb/source/Plugins/Process/scripted/ScriptedThread.cpp
    M lldb/source/Plugins/Process/wasm/ProcessWasm.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFDataExtractor.h
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
    M lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStore.cpp
    M lldb/source/Plugins/SymbolLocator/SymStore/SymbolLocatorSymStoreProperties.td
    M lldb/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.cpp
    M lldb/source/Plugins/Trace/intel-pt/TraceIntelPTBundleSaver.cpp
    M lldb/source/Plugins/TraceExporter/ctf/CommandObjectThreadTraceExportCTF.cpp
    M lldb/source/Symbol/Function.cpp
    M lldb/source/Symbol/Symtab.cpp
    M lldb/source/Symbol/UnwindPlan.cpp
    M lldb/source/Symbol/Variable.cpp
    M lldb/source/Target/AssertFrameRecognizer.cpp
    M lldb/source/Target/BorrowedStackFrame.cpp
    M lldb/source/Target/MemoryRegionInfo.cpp
    M lldb/source/Target/Process.cpp
    M lldb/source/Target/SectionLoadList.cpp
    M lldb/source/Target/StackFrame.cpp
    M lldb/source/Target/StopInfo.cpp
    M lldb/source/Target/Target.cpp
    M lldb/source/Target/TargetProperties.td
    M lldb/source/Target/Thread.cpp
    M lldb/source/Target/ThreadList.cpp
    M lldb/source/Target/ThreadPlanCallFunction.cpp
    M lldb/source/Utility/StringExtractorGDBRemote.cpp
    M lldb/source/ValueObject/DILEval.cpp
    M lldb/source/ValueObject/DILParser.cpp
    M lldb/source/ValueObject/ValueObject.cpp
    M lldb/source/ValueObject/ValueObjectConstResult.cpp
    M lldb/source/ValueObject/ValueObjectConstResultImpl.cpp
    M lldb/source/ValueObject/ValueObjectSynthetic.cpp
    M lldb/test/API/api/multiple-debuggers/TestMultipleDebuggers.py
    M lldb/test/API/api/multiple-targets/TestMultipleTargets.py
    M lldb/test/API/api/multithreaded/TestMultithreaded.py
    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/dwim-print/TestDWIMPrint.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/issue_11588/Test11588.py
    M lldb/test/API/commands/expression/no-deadlock/TestExprDoesntBlock.py
    M lldb/test/API/commands/expression/ptrauth/TestPtrAuthExpressions.py
    M lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
    M lldb/test/API/commands/gui/expand-threads-tree/TestGuiExpandThreadsTree.py
    M lldb/test/API/commands/gui/spawn-threads/TestGuiSpawnThreads.py
    M lldb/test/API/commands/log/invalid-args/TestInvalidArgsLog.py
    M lldb/test/API/commands/process/attach-resume/TestAttachResume.py
    M lldb/test/API/commands/process/detach-resumes/TestDetachResumes.py
    M lldb/test/API/commands/process/signal/TestProcessSignal.py
    M lldb/test/API/commands/register/aarch64_sme_z_registers/za_dynamic_resize/TestZAThreadedDynamic.py
    M lldb/test/API/commands/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.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/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py
    M lldb/test/API/commands/watchpoints/hello_watchlocation/TestWatchLocation.py
    M lldb/test/API/commands/watchpoints/multiple_threads/TestWatchpointMultipleThreads.py
    M lldb/test/API/commands/watchpoints/watchpoint_set_command/TestWatchLocationWithWatchSet.py
    A lldb/test/API/functionalities/always-run-threads/Makefile
    A lldb/test/API/functionalities/always-run-threads/TestAlwaysRunThreadNames.py
    A lldb/test/API/functionalities/always-run-threads/main.cpp
    M lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py
    M lldb/test/API/functionalities/breakpoint/breakpoint_command_auto_continue/TestBreakpointCommandAutoContinue.py
    M lldb/test/API/functionalities/breakpoint/breakpoint_on_lambda_capture/TestBreakOnLambdaCapture.py
    M lldb/test/API/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/TestHWBreakMultiThread.py
    M lldb/test/API/functionalities/breakpoint/same_cu_name/Makefile
    M lldb/test/API/functionalities/breakpoint/two_hits_one_actual/TestTwoHitsOneActual.py
    M lldb/test/API/functionalities/data-formatter/bytecode-synthetic/TestBytecodeSynthetic.py
    M lldb/test/API/functionalities/data-formatter/callback-matching/TestDataFormatterCallbackMatching.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSBundle.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-python-synth/ftsp.py
    M lldb/test/API/functionalities/data-formatter/type-synth-wants-deref/provider.py
    R lldb/test/API/functionalities/dead-strip/cmds.txt
    M lldb/test/API/functionalities/fork/concurrent_vfork/TestConcurrentVFork.py
    M lldb/test/API/functionalities/gdb_remote_client/TestGDBServerTargetXML.py
    M lldb/test/API/functionalities/inline-sourcefile/Makefile
    R lldb/test/API/functionalities/load_unload/cmds.txt
    A lldb/test/API/functionalities/multi-breakpoint/Makefile
    A lldb/test/API/functionalities/multi-breakpoint/TestMultiBreakpoint.py
    A lldb/test/API/functionalities/multi-breakpoint/main.c
    M lldb/test/API/functionalities/plugins/python_os_plugin/os_plugin_in_dsym/Makefile
    M lldb/test/API/functionalities/plugins/python_os_plugin/os_plugin_in_dsym/TestOSIndSYM.py
    M lldb/test/API/functionalities/plugins/python_os_plugin/stepping_plugin_threads/TestOSPluginStepping.py
    M lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump.py
    M lldb/test/API/functionalities/process_save_core_minidump/TestProcessSaveCoreMinidump64b.py
    M lldb/test/API/functionalities/scripted_frame_provider/TestScriptedFrameProvider.py
    M lldb/test/API/functionalities/scripted_frame_provider/test_frame_providers.py
    M lldb/test/API/functionalities/scripted_process/TestScriptedProcess.py
    M lldb/test/API/functionalities/single-thread-step/TestSingleThreadStepTimeout.py
    M lldb/test/API/functionalities/statusline/TestStatusline.py
    M lldb/test/API/functionalities/target-new-solib-notifications/TestModuleLoadedNotifys.py
    M lldb/test/API/functionalities/thread/backtrace_limit/Makefile
    M lldb/test/API/functionalities/thread/break_after_join/TestBreakAfterJoin.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBatchedBreakpointStepOver.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointDelayBreakpointOneSignal.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointOneDelayBreakpointThreads.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentBreakpointsDelayedBreakpointOneWatchpoint.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithSignal.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpoint.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpointBreakpointSignal.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelaySignalBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelaySignalWatch.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayWatchBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayedCrashWithBreakpointSignal.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentDelayedCrashWithBreakpointWatchpoint.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyBreakpoints.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyCrash.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManySignals.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyWatchpoints.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentNWatchNBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalDelayBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalDelayWatch.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalNWatchNBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalWatch.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentSignalWatchBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointThreads.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneDelaySignal.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneSignal.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoBreakpointsOneWatchpoint.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointThreads.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneBreakpoint.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneDelayBreakpoint.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentTwoWatchpointsOneSignal.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchBreak.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchBreakDelay.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchpointDelayWatchpointOneBreakpoint.py
    M lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentWatchpointWithDelayWatchpointThreads.py
    M lldb/test/API/functionalities/thread/concurrent_events/exit/TestConcurrentThreadExit.py
    M lldb/test/API/functionalities/thread/create_after_attach/TestCreateAfterAttach.py
    M lldb/test/API/functionalities/thread/create_during_step/TestCreateDuringStep.py
    M lldb/test/API/functionalities/thread/exit_during_break/TestExitDuringBreak.py
    M lldb/test/API/functionalities/thread/exit_during_expression/TestExitDuringExpression.py
    M lldb/test/API/functionalities/thread/exit_during_step/TestExitDuringStep.py
    M lldb/test/API/functionalities/thread/ignore_suspended/TestIgnoreSuspendedThread.py
    M lldb/test/API/functionalities/thread/jump/Makefile
    M lldb/test/API/functionalities/thread/main_thread_exit/TestMainThreadExit.py
    M lldb/test/API/functionalities/thread/multi_break/TestMultipleBreakpoints.py
    M lldb/test/API/functionalities/thread/num_threads/TestNumThreads.py
    M lldb/test/API/functionalities/thread/state_after_expression/TestStateAfterExpression.py
    M lldb/test/API/functionalities/thread/step_out/TestThreadStepOut.py
    M lldb/test/API/functionalities/thread/thread_exit/TestThreadExit.py
    M lldb/test/API/functionalities/thread/thread_specific_break/TestThreadSpecificBreakpoint.py
    M lldb/test/API/functionalities/thread/thread_specific_break_plus_condition/TestThreadSpecificBpPlusCondition.py
    M lldb/test/API/functionalities/valobj_errors/Makefile
    R lldb/test/API/lang/c/array_types/cmds.txt
    R lldb/test/API/lang/c/global_variables/cmds.txt
    M lldb/test/API/lang/c/step_over_no_deadlock/TestStepOverDoesntBlock.py
    M lldb/test/API/lang/c/tls_globals/TestTlsGlobals.py
    R lldb/test/API/lang/cpp/class_types/cmds.txt
    R lldb/test/API/lang/cpp/namespace/cmds.txt
    R lldb/test/API/lang/cpp/stl/cmds.txt
    A lldb/test/API/lang/objc/module-import-log/Makefile
    A lldb/test/API/lang/objc/module-import-log/TestClangModuleImportLog.py
    A lldb/test/API/lang/objc/module-import-log/main.m
    M lldb/test/API/lang/objc/modules-auto-import/TestModulesAutoImport.py
    M lldb/test/API/lang/objc/modules-auto-import/main.m
    M lldb/test/API/linux/aarch64/permission_overlay/TestAArch64LinuxPOE.py
    M lldb/test/API/linux/aarch64/permission_overlay/main.c
    M lldb/test/API/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py
    M lldb/test/API/macosx/arm-pointer-metadata-cfa-dwarf-expr/Makefile
    M lldb/test/API/macosx/dsym_codesign/TestdSYMCodesign.py
    M lldb/test/API/macosx/extended-backtrace-api/TestExtendedBacktraceAPI.py
    R lldb/test/API/macosx/order/cmds.txt
    M lldb/test/API/macosx/queues/TestQueues.py
    M lldb/test/API/python_api/formatters/synth.py
    M lldb/test/API/python_api/lldbutil/iter/TestLLDBIterator.py
    M lldb/test/API/python_api/lldbutil/iter/TestRegistersIterator.py
    M lldb/test/API/python_api/lldbutil/process/Makefile
    M lldb/test/API/python_api/module_section/Makefile
    M lldb/test/API/python_api/run_locker/TestRunLocker.py
    M lldb/test/API/python_api/watchpoint/watchlocation/TestSetWatchlocation.py
    M lldb/test/API/python_api/watchpoint/watchlocation/TestTargetWatchAddress.py
    M lldb/test/API/symstore/TestSymStore.py
    M lldb/test/API/tools/lldb-dap/databreakpoint/TestDAP_setDataBreakpoints.py
    M lldb/test/API/tools/lldb-dap/locations/TestDAP_locations.py
    M lldb/test/API/tools/lldb-dap/locations/main.cpp
    M lldb/test/API/tools/lldb-dap/save-core/Makefile
    M lldb/test/API/tools/lldb-dap/step/Makefile
    M lldb/test/API/tools/lldb-dap/stepInTargets/Makefile
    M lldb/test/API/tools/lldb-dap/threads/TestDAP_threads.py
    M lldb/test/API/tools/lldb-server/TestGdbRemoteThreadsInStopReply.py
    M lldb/test/API/tools/lldb-server/vCont-threads/TestPartialResume.py
    M lldb/test/API/tools/lldb-server/vCont-threads/TestSignal.py
    M lldb/test/API/windows/conpty/TestConPTY.py
    M lldb/test/CMakeLists.txt
    M lldb/test/Shell/Commands/list-header.test
    M lldb/test/Shell/Minidump/disassemble-no-module.yaml
    M lldb/test/Shell/ScriptInterpreter/Python/io.test
    M lldb/tools/debugserver/source/DNB.cpp
    M lldb/tools/debugserver/source/DNB.h
    M lldb/tools/debugserver/source/JSON.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/debugserver/source/RNBRemote.h
    M lldb/tools/driver/Driver.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/LocationsRequestHandler.cpp
    M lldb/tools/lldb-dap/Handler/RequestHandler.cpp
    M lldb/tools/lldb-dap/JSONUtils.cpp
    M lldb/tools/lldb-dap/ProtocolUtils.h
    M lldb/tools/lldb-dap/Watchpoint.cpp
    M lldb/unittests/Expression/CMakeLists.txt
    A lldb/unittests/Expression/IRMemoryMapTest.cpp
    M lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
    M lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
    M lldb/unittests/Symbol/PostfixExpressionTest.cpp
    M lldb/unittests/SymbolFile/DWARF/DWARFUnitTest.cpp
    M lldb/unittests/SymbolFile/NativePDB/PdbFPOProgramToDWARFExpressionTests.cpp
    M lldb/utils/TableGen/CMakeLists.txt
    M llvm/docs/AMDGPUUsage.rst
    M llvm/docs/Atomics.rst
    M llvm/docs/CommandGuide/dsymutil.rst
    M llvm/docs/CommandGuide/llvm-profgen.rst
    M llvm/docs/LFI.rst
    M llvm/docs/LangRef.rst
    M llvm/docs/NVPTXUsage.rst
    M llvm/docs/ReleaseNotes.md
    M llvm/docs/SPIRVUsage.rst
    A llvm/include/llvm/ABI/TargetInfo.h
    M llvm/include/llvm/ABI/Types.h
    M llvm/include/llvm/ADT/APFloat.h
    M llvm/include/llvm/ADT/DenseMap.h
    M llvm/include/llvm/ADT/FoldingSet.h
    M llvm/include/llvm/ADT/Hashing.h
    M llvm/include/llvm/ADT/STLExtras.h
    M llvm/include/llvm/ADT/StableHashing.h
    M llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
    M llvm/include/llvm/Analysis/ScalarEvolutionPatternMatch.h
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
    M llvm/include/llvm/Analysis/VecFuncs.def
    M llvm/include/llvm/Analysis/VectorUtils.h
    M llvm/include/llvm/AsmParser/LLLexer.h
    M llvm/include/llvm/AsmParser/LLToken.h
    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
    M llvm/include/llvm/CodeGen/MachineBlockHashInfo.h
    A llvm/include/llvm/CodeGen/MachineIDFSSAUpdater.h
    A llvm/include/llvm/CodeGen/MachineStripDebug.h
    M llvm/include/llvm/CodeGen/Passes.h
    M llvm/include/llvm/CodeGen/SelectionDAG.h
    M llvm/include/llvm/CodeGen/TargetInstrInfo.h
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/include/llvm/CodeGen/TargetRegisterInfo.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/DebugInfo/DWARF/DWARFContext.h
    M llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h
    M llvm/include/llvm/DebugInfo/DWARF/LowLevel/DWARFCFIProgram.h
    M llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h
    M llvm/include/llvm/DebugInfo/PDB/Native/SymbolCache.h
    M llvm/include/llvm/Demangle/ItaniumDemangle.h
    M llvm/include/llvm/ExecutionEngine/Orc/WaitingOnGraph.h
    M llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
    M llvm/include/llvm/HTTP/HTTPClient.h
    M llvm/include/llvm/IR/ConstantRange.h
    M llvm/include/llvm/IR/IRBuilder.h
    M llvm/include/llvm/IR/Intrinsics.h
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/include/llvm/IR/IntrinsicsAArch64.td
    M llvm/include/llvm/IR/IntrinsicsAMDGPU.td
    M llvm/include/llvm/IR/IntrinsicsDirectX.td
    M llvm/include/llvm/IR/IntrinsicsNVVM.td
    M llvm/include/llvm/IR/IntrinsicsSPIRV.td
    M llvm/include/llvm/IR/PatternMatch.h
    M llvm/include/llvm/IR/RuntimeLibcalls.td
    M llvm/include/llvm/IR/TrackingMDRef.h
    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/MCPseudoProbe.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/Passes/OptimizationLevel.h
    M llvm/include/llvm/Support/KnownBits.h
    M llvm/include/llvm/Support/Path.h
    M llvm/include/llvm/Support/PatternMatchHelpers.h
    M llvm/include/llvm/Target/GlobalISel/Combine.td
    M llvm/include/llvm/Target/RegisterTargetPassConfigCallback.h
    M llvm/include/llvm/Target/TargetMachine.h
    M llvm/include/llvm/TargetParser/Triple.h
    M llvm/include/llvm/Testing/Demangle/DemangleTestCases.inc
    M llvm/include/llvm/Transforms/IPO/Attributor.h
    M llvm/include/llvm/Transforms/Utils/CodeExtractor.h
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/include/llvm/Transforms/Utils/UnrollLoop.h
    M llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.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/DependenceAnalysis.cpp
    M llvm/lib/Analysis/IVDescriptors.cpp
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/Analysis/VectorUtils.cpp
    M llvm/lib/AsmParser/LLLexer.cpp
    M llvm/lib/AsmParser/LLParser.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/AsmPrinter/DwarfUnit.cpp
    M llvm/lib/CodeGen/CMakeLists.txt
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/lib/CodeGen/CodeGenTargetMachineImpl.cpp
    M llvm/lib/CodeGen/DeadMachineInstructionElim.cpp
    M llvm/lib/CodeGen/ExpandIRInsts.cpp
    M llvm/lib/CodeGen/ExpandReductions.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/GISelValueTracking.cpp
    M llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp
    M llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/CodeGen/GlobalISel/Utils.cpp
    M llvm/lib/CodeGen/InlineSpiller.cpp
    M llvm/lib/CodeGen/KCFI.cpp
    M llvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp
    M llvm/lib/CodeGen/LiveRangeEdit.cpp
    M llvm/lib/CodeGen/MIRParser/MILexer.cpp
    M llvm/lib/CodeGen/MIRPrinter.cpp
    M llvm/lib/CodeGen/MachineBlockHashInfo.cpp
    M llvm/lib/CodeGen/MachineCopyPropagation.cpp
    A llvm/lib/CodeGen/MachineIDFSSAUpdater.cpp
    M llvm/lib/CodeGen/MachineOutliner.cpp
    M llvm/lib/CodeGen/MachineStripDebug.cpp
    M llvm/lib/CodeGen/MachineVerifier.cpp
    M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
    M llvm/lib/CodeGen/Rematerializer.cpp
    M llvm/lib/CodeGen/ScheduleDAG.cpp
    M llvm/lib/CodeGen/SelectOptimize.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/LegalizeTypesGeneric.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.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/CodeGen/TargetRegisterInfo.cpp
    M llvm/lib/CodeGen/WindowScheduler.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/BTF/BTFParser.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
    M llvm/lib/DebugInfo/GSYM/ObjectFileTransformer.cpp
    M llvm/lib/DebugInfo/LogicalView/Readers/LVBinaryReader.cpp
    M llvm/lib/DebugInfo/LogicalView/Readers/LVDWARFReader.cpp
    M llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp
    M llvm/lib/DebugInfo/PDB/Native/SymbolCache.cpp
    M llvm/lib/DebugInfo/Symbolize/Symbolize.cpp
    M llvm/lib/Demangle/Demangle.cpp
    M llvm/lib/ExecutionEngine/Interpreter/Execution.cpp
    M llvm/lib/ExecutionEngine/Orc/TargetProcess/JITLoaderPerf.cpp
    M llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
    M llvm/lib/Frontend/Atomic/Atomic.cpp
    M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
    M llvm/lib/HTTP/CMakeLists.txt
    M llvm/lib/HTTP/HTTPClient.cpp
    M llvm/lib/IR/ConstantRange.cpp
    M llvm/lib/IR/Constants.cpp
    M llvm/lib/IR/Instruction.cpp
    M llvm/lib/IR/Intrinsics.cpp
    M llvm/lib/IR/ModuleSummaryIndex.cpp
    M llvm/lib/IR/Verifier.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/MCDwarf.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/OffloadBundle.cpp
    M llvm/lib/Object/WindowsResource.cpp
    M llvm/lib/Passes/OptimizationLevel.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Support/APFloat.cpp
    M llvm/lib/Support/FoldingSet.cpp
    M llvm/lib/Support/KnownBits.cpp
    M llvm/lib/Support/Path.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/AArch64PointerAuth.cpp
    M llvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp
    M llvm/lib/Target/AArch64/AArch64Subtarget.h
    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/GISel/AArch64LegalizerInfo.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/SVEInstrFormats.td
    M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp
    M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
    M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h
    M llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstructions.td
    M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUMCResourceInfo.h
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalize.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.h
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h
    M llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURewriteAGPRCopyMFMA.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
    M llvm/lib/Target/AMDGPU/GCNSchedStrategy.h
    M llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
    M llvm/lib/Target/AMDGPU/GCNSubtarget.h
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCExpr.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.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/SIRegisterInfo.cpp
    M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
    M llvm/lib/Target/AMDGPU/VOP2Instructions.td
    M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
    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/ARMISelLowering.h
    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/CMakeLists.txt
    M llvm/lib/Target/DirectX/DXIL.td
    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/DXILResourceAccess.cpp
    M llvm/lib/Target/DirectX/DXILWriter/CMakeLists.txt
    M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
    M llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.h
    M llvm/lib/Target/DirectX/DXILWriter/DXILValueEnumerator.cpp
    M llvm/lib/Target/DirectX/DXILWriter/DXILValueEnumerator.h
    M llvm/lib/Target/DirectX/DXILWriter/DXILWriterPass.cpp
    M llvm/lib/Target/DirectX/DirectXIRPasses/CMakeLists.txt
    A llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.cpp
    A llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.h
    M llvm/lib/Target/DirectX/DirectXIRPasses/PointerTypeAnalysis.cpp
    M llvm/lib/Target/DirectX/DirectXTargetTransformInfo.cpp
    M llvm/lib/Target/DirectX/DirectXTargetTransformInfo.h
    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/HexagonELFObjectWriter.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/MipsDelaySlotFiller.cpp
    M llvm/lib/Target/Mips/MipsISelLowering.cpp
    M llvm/lib/Target/Mips/MipsInstrInfo.cpp
    M llvm/lib/Target/Mips/MipsInstrInfo.td
    M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp
    M llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp
    M llvm/lib/Target/NVPTX/NVPTX.h
    M llvm/lib/Target/NVPTX/NVPTX.td
    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/NVPTX/NVPTXInstrInfo.td
    M llvm/lib/Target/NVPTX/NVPTXIntrinsics.td
    M llvm/lib/Target/NVPTX/NVPTXSubtarget.h
    M llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.h
    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/P10InstrResources.td
    M llvm/lib/Target/PowerPC/PPCBack2BackFusion.def
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    M llvm/lib/Target/PowerPC/PPCISelLowering.h
    M llvm/lib/Target/PowerPC/PPCInstr64Bit.td
    M llvm/lib/Target/PowerPC/PPCInstrFuture.td
    M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
    M llvm/lib/Target/PowerPC/PPCInstrInfo.td
    M llvm/lib/Target/PowerPC/PPCMacroFusion.def
    M llvm/lib/Target/PowerPC/PPCOperands.td
    M llvm/lib/Target/PowerPC/PPCRegisterClasses.td
    M llvm/lib/Target/PowerPC/PPCRegisterInfo.td
    M llvm/lib/Target/PowerPC/PPCScheduleP7.td
    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/GISel/RISCVInstructionSelector.cpp
    M llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.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/MCTargetDesc/RISCVTargetStreamer.h
    M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
    M llvm/lib/Target/RISCV/RISCVCallingConv.cpp
    M llvm/lib/Target/RISCV/RISCVCodeGenPrepare.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.h
    M llvm/lib/Target/RISCV/RISCVInstrInfoP.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZvfofp8min.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZvzip.td
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.h
    M llvm/lib/Target/RISCV/RISCVSubtarget.cpp
    M llvm/lib/Target/RISCV/RISCVSubtarget.h
    M llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
    M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
    M llvm/lib/Target/RISCV/RISCVVSETVLIInfoAnalysis.h
    M llvm/lib/Target/SPIRV/CMakeLists.txt
    M llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVMCAsmInfo.cpp
    M llvm/lib/Target/SPIRV/SPIRV.h
    M llvm/lib/Target/SPIRV/SPIRVAsmPrinter.cpp
    M llvm/lib/Target/SPIRV/SPIRVBuiltins.cpp
    M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    R llvm/lib/Target/SPIRV/SPIRVEmitNonSemanticDI.cpp
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.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/SPIRVLegalizeZeroSizeArrays.cpp
    M llvm/lib/Target/SPIRV/SPIRVMergeRegionExitTargets.cpp
    A llvm/lib/Target/SPIRV/SPIRVMergeRegionExitTargets.h
    M llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
    A llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.cpp
    A llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
    M llvm/lib/Target/SPIRV/SPIRVPassRegistry.def
    M llvm/lib/Target/SPIRV/SPIRVPostLegalizer.cpp
    M llvm/lib/Target/SPIRV/SPIRVPreLegalizer.cpp
    M llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.cpp
    A llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.h
    M llvm/lib/Target/SPIRV/SPIRVPrepareGlobals.cpp
    A llvm/lib/Target/SPIRV/SPIRVPrepareGlobals.h
    M llvm/lib/Target/SPIRV/SPIRVPushConstantAccess.cpp
    M llvm/lib/Target/SPIRV/SPIRVRegularizer.cpp
    A llvm/lib/Target/SPIRV/SPIRVRegularizer.h
    M llvm/lib/Target/SPIRV/SPIRVSymbolicOperands.td
    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/SPIRV/SPIRVUtils.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.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/SystemZ/SystemZInstrInfo.h
    M llvm/lib/Target/SystemZ/SystemZTDC.cpp
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
    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/GISel/WebAssemblyCallLowering.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/WebAssemblyISelLowering.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
    M llvm/lib/Target/WebAssembly/WebAssemblyLateEHPrepare.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h
    M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
    M llvm/lib/Target/X86/CMakeLists.txt
    M llvm/lib/Target/X86/GISel/X86InstructionSelector.cpp
    M llvm/lib/Target/X86/GISel/X86RegisterBankInfo.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/X86.h
    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
    A llvm/lib/Target/X86/X86InsertVZeroUpper.cpp
    M llvm/lib/Target/X86/X86InstrAVX512.td
    M llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86InstrInfo.h
    M llvm/lib/Target/X86/X86MCInstLower.cpp
    M llvm/lib/Target/X86/X86PassRegistry.def
    M llvm/lib/Target/X86/X86TargetMachine.cpp
    R llvm/lib/Target/X86/X86VZeroUpper.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/TargetParser/RISCVISAInfo.cpp
    M llvm/lib/TargetParser/Triple.cpp
    M llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/lib/Transforms/IPO/ConstantMerge.cpp
    M llvm/lib/Transforms/IPO/FunctionImport.cpp
    M llvm/lib/Transforms/IPO/HotColdSplitting.cpp
    M llvm/lib/Transforms/IPO/IROutliner.cpp
    M llvm/lib/Transforms/IPO/Inliner.cpp
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
    M llvm/lib/Transforms/IPO/PartialInlining.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineInternal.h
    M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
    M llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/lib/Transforms/Instrumentation/MemProfUse.cpp
    M llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/TypeSanitizer.cpp
    M llvm/lib/Transforms/Scalar/ExpandMemCmp.cpp
    M llvm/lib/Transforms/Scalar/GVN.cpp
    M llvm/lib/Transforms/Scalar/JumpTableToSwitch.cpp
    M llvm/lib/Transforms/Scalar/LICM.cpp
    M llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
    M llvm/lib/Transforms/Scalar/MergeICmps.cpp
    M llvm/lib/Transforms/Scalar/NaryReassociate.cpp
    M llvm/lib/Transforms/Scalar/Scalarizer.cpp
    M llvm/lib/Transforms/Utils/CodeExtractor.cpp
    M llvm/lib/Transforms/Utils/FunctionImportUtils.cpp
    M llvm/lib/Transforms/Utils/LoopUnroll.cpp
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/lib/Transforms/Utils/LowerVectorIntrinsics.cpp
    M llvm/lib/Transforms/Utils/ProfileVerify.cpp
    M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
    M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
    M llvm/lib/Transforms/Vectorize/CMakeLists.txt
    M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
    A llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
    M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
    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/Analysis/CostModel/SystemZ/bitcast.ll
    M llvm/test/Analysis/CostModel/SystemZ/cmp-mem.ll
    M llvm/test/Analysis/CostModel/SystemZ/divrem-pow2.ll
    M llvm/test/Analysis/CostModel/SystemZ/divrem-reg.ll
    M llvm/test/Analysis/CostModel/SystemZ/int-operands-extcost.ll
    M llvm/test/Analysis/CostModel/SystemZ/logicalop.ll
    M llvm/test/Analysis/CostModel/SystemZ/reduce-and.ll
    M llvm/test/Analysis/CostModel/SystemZ/reduce-or.ll
    M llvm/test/Analysis/CostModel/SystemZ/struct-cost-crash.ll
    M llvm/test/Analysis/CostModel/SystemZ/vector-reductions.ll
    R llvm/test/Analysis/DependenceAnalysis/monotonicity-cast.ll
    R llvm/test/Analysis/DependenceAnalysis/monotonicity-delinearize.ll
    R llvm/test/Analysis/DependenceAnalysis/monotonicity-invariant.ll
    R llvm/test/Analysis/DependenceAnalysis/monotonicity-loop-guard.ll
    R llvm/test/Analysis/DependenceAnalysis/monotonicity-no-wrap-flags.ll
    R llvm/test/Analysis/DependenceAnalysis/non-monotonic.ll
    M llvm/test/Analysis/FunctionPropertiesAnalysis/pipeline.ll
    M llvm/test/Analysis/InstCount/pipeline.ll
    M llvm/test/Analysis/UniformityAnalysis/AMDGPU/intrinsics.ll
    M llvm/test/Assembler/2006-09-28-CrashOnInvalid.ll
    A llvm/test/Assembler/float-literals.ll
    A llvm/test/Assembler/fpmath.ll
    A llvm/test/Assembler/invalid-call-float-literal.ll
    A llvm/test/Assembler/invalid-uselistorder_bb-float-literal.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
    A llvm/test/CodeGen/AArch64/GlobalISel/knownbits-fshl-fshr.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/localizer-arm64-tti.ll
    A llvm/test/CodeGen/AArch64/aarch64-no-mov-spill-chain.ll
    M llvm/test/CodeGen/AArch64/aarch64-sys-intrinsic.ll
    M llvm/test/CodeGen/AArch64/aarch64-tbz.ll
    A llvm/test/CodeGen/AArch64/aarch64_be-shuffle-vector.ll
    M llvm/test/CodeGen/AArch64/addp-shuffle.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-addp.ll
    M llvm/test/CodeGen/AArch64/arm64-neon-aba-abd.ll
    M llvm/test/CodeGen/AArch64/arm64-vhadd.ll
    M llvm/test/CodeGen/AArch64/arm64-vmul.ll
    M llvm/test/CodeGen/AArch64/bf16-instructions.ll
    M llvm/test/CodeGen/AArch64/bf16-v4-instructions.ll
    M llvm/test/CodeGen/AArch64/bf16-v8-instructions.ll
    M llvm/test/CodeGen/AArch64/bswap-known-bits.ll
    M llvm/test/CodeGen/AArch64/complex-deinterleaving-reductions-predicated-scalable.ll
    M llvm/test/CodeGen/AArch64/cpa-globalisel.ll
    M llvm/test/CodeGen/AArch64/dag-ReplaceAllUsesOfValuesWith.ll
    M llvm/test/CodeGen/AArch64/faddp.ll
    R llvm/test/CodeGen/AArch64/fix-shuffle-vector-be-rev.ll
    M llvm/test/CodeGen/AArch64/fixed-vector-deinterleave.ll
    A llvm/test/CodeGen/AArch64/hadd-combine-scalar.ll
    M llvm/test/CodeGen/AArch64/hadd-combine.ll
    M llvm/test/CodeGen/AArch64/insertextract.ll
    M llvm/test/CodeGen/AArch64/ldst-opt.ll
    M llvm/test/CodeGen/AArch64/misched-fusion-cmp-bcc.ll
    A llvm/test/CodeGen/AArch64/neon-matmul-f16.ll
    A llvm/test/CodeGen/AArch64/neon-matmul-f16f32mm.ll
    M llvm/test/CodeGen/AArch64/neon-rshrn.ll
    M llvm/test/CodeGen/AArch64/neon-saba.ll
    A llvm/test/CodeGen/AArch64/partial-reduction-sub-fp.ll
    A llvm/test/CodeGen/AArch64/partial-reduction-sub.ll
    M llvm/test/CodeGen/AArch64/pcsections.ll
    M llvm/test/CodeGen/AArch64/pr161013.ll
    M llvm/test/CodeGen/AArch64/ragreedy-local-interval-cost.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-insert-element.ll
    A llvm/test/CodeGen/AArch64/sve-intrinsics-matmul-bf16.ll
    A llvm/test/CodeGen/AArch64/sve-intrinsics-matmul-f16.ll
    A llvm/test/CodeGen/AArch64/sve-masked-ldst-alias-analysis.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-masked-load.ll
    A llvm/test/CodeGen/AArch64/sve-zext.ll
    A llvm/test/CodeGen/AArch64/sve2p3-intrinsics/sve2p3-intrinsics-abal.ll
    A llvm/test/CodeGen/AArch64/sve2p3-intrinsics/sve2p3-intrinsics-addqp.ll
    A llvm/test/CodeGen/AArch64/sve2p3-intrinsics/sve2p3-intrinsics-addsubp.ll
    A llvm/test/CodeGen/AArch64/sve2p3-intrinsics/sve2p3-intrinsics-subp.ll
    M llvm/test/CodeGen/AArch64/trunc.ll
    A llvm/test/CodeGen/AArch64/uaddlp.ll
    M llvm/test/CodeGen/AArch64/veclib-llvm.pow.ll
    R llvm/test/CodeGen/AArch64/xtn.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/GlobalISel/fdiv.f64.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ssubo.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ssubsat.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.abs.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.ballot.i32.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.ballot.i64.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.intersect_ray.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-abs.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ballot.i64.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.mfma.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/subo.ll
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.128bit.ll
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.256bit.ll
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.64bit.ll
    M llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.96bit.ll
    M llvm/test/CodeGen/AMDGPU/buffer-fat-pointers-memcpy.ll
    M llvm/test/CodeGen/AMDGPU/calling-conventions.ll
    A llvm/test/CodeGen/AMDGPU/eliminate-frame-index-scalar-scc-clobber.mir
    M llvm/test/CodeGen/AMDGPU/fdiv.f64.ll
    M llvm/test/CodeGen/AMDGPU/flat-scratch-svs.ll
    M llvm/test/CodeGen/AMDGPU/fmed3.ll
    M llvm/test/CodeGen/AMDGPU/fneg-combines.new.ll
    M llvm/test/CodeGen/AMDGPU/fptoi.i128.ll
    M llvm/test/CodeGen/AMDGPU/idot2.ll
    M llvm/test/CodeGen/AMDGPU/idot4s.ll
    M llvm/test/CodeGen/AMDGPU/idot4u.ll
    M llvm/test/CodeGen/AMDGPU/idot8s.ll
    M llvm/test/CodeGen/AMDGPU/idot8u.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.bvh8_intersect_ray.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.sat.pk.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.atomic.async.barrier.arrive.b64.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.ds.atomic.barrier.arrive.rtn.b64.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.dual_intersect_ray.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.flat.prefetch.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.load.tr-w64.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.global.prefetch.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.iglp.opt.exp.large.mir
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.iglp.opt.exp.small.mir
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.intersect_ray.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.load.tr.gfx1250.w32.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.bf16.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.i8.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rcp.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.unreachable.ll
    M llvm/test/CodeGen/AMDGPU/load-constant-i1.ll
    M llvm/test/CodeGen/AMDGPU/load-constant-i16.ll
    M llvm/test/CodeGen/AMDGPU/load-constant-i8.ll
    M llvm/test/CodeGen/AMDGPU/load-global-i16.ll
    M llvm/test/CodeGen/AMDGPU/load-global-i8.ll
    M llvm/test/CodeGen/AMDGPU/load-local-i16.ll
    M llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-lastuse-metadata.ll
    M llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-nontemporal-metadata.ll
    M llvm/test/CodeGen/AMDGPU/lower-module-lds-link-time-classify.ll
    M llvm/test/CodeGen/AMDGPU/lower-module-lds-link-time-global-scope.ll
    M llvm/test/CodeGen/AMDGPU/lower-module-lds-link-time-internal-func.ll
    M llvm/test/CodeGen/AMDGPU/lower-module-lds-link-time-internal-multi-user.ll
    M llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats-attr.mir
    M llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats-debug.mir
    A llvm/test/CodeGen/AMDGPU/madmk-madak-encoding-size.ll
    M llvm/test/CodeGen/AMDGPU/maximumnum.ll
    M llvm/test/CodeGen/AMDGPU/minimumnum.ll
    R llvm/test/CodeGen/AMDGPU/misched-remat-revert.ll
    M llvm/test/CodeGen/AMDGPU/move-to-valu-lshl_add.ll
    A llvm/test/CodeGen/AMDGPU/object-linking-local-resources.ll
    A llvm/test/CodeGen/AMDGPU/packed-dependencies.mir
    M llvm/test/CodeGen/AMDGPU/promote-alloca-vector-dynamic-idx-bitcasts-llc.ll
    A llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr-spill-multi-store-mir.mir
    A llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr-spill-multi-store.ll
    M llvm/test/CodeGen/AMDGPU/rsq.f64.ll
    M llvm/test/CodeGen/AMDGPU/sched-image-sample-post-RA.mir
    A llvm/test/CodeGen/AMDGPU/sched-ldsdma-mask.mir
    M llvm/test/CodeGen/AMDGPU/sched.barrier.inverted.mask.ll
    M llvm/test/CodeGen/AMDGPU/sched_mfma_rewrite_copies.mir
    M llvm/test/CodeGen/AMDGPU/sched_mfma_rewrite_cost.mir
    M llvm/test/CodeGen/AMDGPU/sched_mfma_rewrite_diff_types.mir
    M llvm/test/CodeGen/AMDGPU/schedule-physregdeps.mir
    M llvm/test/CodeGen/AMDGPU/shufflevector.v3i64.v2i64.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v3i64.v3i64.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v3i64.v4i64.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v3p0.v2p0.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v3p0.v3p0.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v3p0.v4p0.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4i64.v2i64.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4i64.v3i64.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4i64.v4i64.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4p0.v2p0.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4p0.v3p0.ll
    M llvm/test/CodeGen/AMDGPU/shufflevector.v4p0.v4p0.ll
    M llvm/test/CodeGen/AMDGPU/si-i1-copies.mir
    M llvm/test/CodeGen/AMDGPU/si-lower-i1-copies-order-of-phi-incomings.mir
    M llvm/test/CodeGen/AMDGPU/sra.ll
    A llvm/test/CodeGen/AMDGPU/srl-bitcast-bv.ll
    M llvm/test/CodeGen/AMDGPU/ssubo.ll
    M llvm/test/CodeGen/AMDGPU/ssubsat.ll
    A llvm/test/CodeGen/AMDGPU/v_mac_f16-fpdp-rounding-mode.ll
    M llvm/test/CodeGen/AMDGPU/vgpr-spill.mir
    A llvm/test/CodeGen/AMDGPU/wqm-propagate-for-execz-side-effect.mir
    M llvm/test/CodeGen/ARM/combine-vmovdrr.ll
    M llvm/test/CodeGen/ARM/pr122670-regression.ll
    M llvm/test/CodeGen/ARM/vbits.ll
    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
    A llvm/test/CodeGen/DirectX/ResourceAccess/load_texture.ll
    A llvm/test/CodeGen/DirectX/TextureLoad.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
    A llvm/test/CodeGen/DirectX/all_memory_barrier.ll
    A llvm/test/CodeGen/DirectX/all_memory_barrier_with_group_sync.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
    A llvm/test/CodeGen/DirectX/device_memory_barrier.ll
    A llvm/test/CodeGen/DirectX/device_memory_barrier_with_group_sync.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
    A llvm/test/CodeGen/DirectX/global-variable.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
    M llvm/test/CodeGen/Hexagon/glob-align-volatile.ll
    M llvm/test/CodeGen/Hexagon/isel-fold-shl-zext.ll
    A llvm/test/CodeGen/Hexagon/safestack.ll
    A llvm/test/CodeGen/Hexagon/win-sched-implicit-def.mir
    M llvm/test/CodeGen/LoongArch/lasx/ir-instruction/extractelement.ll
    A llvm/test/CodeGen/LoongArch/lasx/ir-instruction/fpext.ll
    M llvm/test/CodeGen/LoongArch/lasx/ir-instruction/insertelement.ll
    M llvm/test/CodeGen/LoongArch/lasx/ir-instruction/shuffle-as-xvextrins.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
    M llvm/test/CodeGen/LoongArch/lsx/ir-instruction/extractelement.ll
    A llvm/test/CodeGen/LoongArch/lsx/ir-instruction/fpext.ll
    M llvm/test/CodeGen/LoongArch/lsx/ir-instruction/insertelement.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/MIR/NVPTX/floating-point-invalid-type-error.mir
    A llvm/test/CodeGen/Mips/fence.ll
    M llvm/test/CodeGen/Mips/gprestore.ll
    M llvm/test/CodeGen/Mips/llvm-ir/load.ll
    M llvm/test/CodeGen/Mips/llvm-ir/select-dbl.ll
    A llvm/test/CodeGen/Mips/mips1-load-in-delay-slot.ll
    M llvm/test/CodeGen/Mips/msa/basic_operations.ll
    M llvm/test/CodeGen/Mips/unalignedload.ll
    A llvm/test/CodeGen/NVPTX/convert_fp4x2_to_bf16x2.ll
    A llvm/test/CodeGen/NVPTX/convert_fp6x2_to_bf16x2.ll
    A llvm/test/CodeGen/NVPTX/convert_fp8x2_to_bf16x2.ll
    M llvm/test/CodeGen/NVPTX/f32x2-convert-i32x2.ll
    M llvm/test/CodeGen/NVPTX/fp-contract-f32x2.ll
    M llvm/test/CodeGen/NVPTX/i16x2-instructions.ll
    M llvm/test/CodeGen/NVPTX/i32x2-instructions.ll
    A llvm/test/CodeGen/NVPTX/srl-bitcast-bv.ll
    A llvm/test/CodeGen/NVPTX/unknown-intrinsic.ll
    M llvm/test/CodeGen/PowerPC/aix-vec_insert_elt.ll
    M llvm/test/CodeGen/PowerPC/aix32-p8-scalar_vector_conversions.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/PowerPC/mmaplus-crypto.ll
    M llvm/test/CodeGen/PowerPC/testComparesieqsc.ll
    M llvm/test/CodeGen/PowerPC/testComparesieqsi.ll
    M llvm/test/CodeGen/PowerPC/testComparesieqss.ll
    M llvm/test/CodeGen/PowerPC/testComparesiequc.ll
    M llvm/test/CodeGen/PowerPC/testComparesiequi.ll
    M llvm/test/CodeGen/PowerPC/testComparesiequs.ll
    M llvm/test/CodeGen/PowerPC/testComparesileuc.ll
    M llvm/test/CodeGen/PowerPC/testComparesileui.ll
    M llvm/test/CodeGen/PowerPC/testComparesileus.ll
    M llvm/test/CodeGen/PowerPC/testCompareslleqsc.ll
    M llvm/test/CodeGen/PowerPC/testCompareslleqsi.ll
    M llvm/test/CodeGen/PowerPC/testCompareslleqss.ll
    M llvm/test/CodeGen/PowerPC/testComparesllequc.ll
    M llvm/test/CodeGen/PowerPC/testComparesllequi.ll
    M llvm/test/CodeGen/PowerPC/testComparesllequs.ll
    M llvm/test/CodeGen/PowerPC/testComparesllleuc.ll
    M llvm/test/CodeGen/PowerPC/testComparesllleui.ll
    M llvm/test/CodeGen/PowerPC/testComparesllleus.ll
    M llvm/test/CodeGen/PowerPC/vec_insert_elt.ll
    A llvm/test/CodeGen/RISCV/GlobalISel/irtranslator-inline-asm.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-addo-subo-rv32.mir
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-addo-subo-rv64.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-memcpy-inline.mir
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-sat-rv32.mir
    M llvm/test/CodeGen/RISCV/GlobalISel/legalizer/legalize-sat-rv64.mir
    A llvm/test/CodeGen/RISCV/GlobalISel/memcpy-inline.ll
    A llvm/test/CodeGen/RISCV/GlobalISel/rvv/variant-cc.ll
    M llvm/test/CodeGen/RISCV/abds.ll
    M llvm/test/CodeGen/RISCV/abdu-neg.ll
    M llvm/test/CodeGen/RISCV/arith-with-overflow.ll
    M llvm/test/CodeGen/RISCV/bitint-fp-conv-200.ll
    A llvm/test/CodeGen/RISCV/bswap-known-bits.ll
    M llvm/test/CodeGen/RISCV/combine-is_fpclass.ll
    M llvm/test/CodeGen/RISCV/iabs.ll
    M llvm/test/CodeGen/RISCV/idiv_large.ll
    A llvm/test/CodeGen/RISCV/mul-to-shl-nsw.ll
    M llvm/test/CodeGen/RISCV/rv32p.ll
    M llvm/test/CodeGen/RISCV/rv64p.ll
    M llvm/test/CodeGen/RISCV/rvp-ext-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/abs-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/ctlz-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/dont-sink-splat-operands.ll
    A llvm/test/CodeGen/RISCV/rvv/fcanonicalize-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-abs-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-compressstore-int.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-expandload-int.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-extract.ll
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fcanonicalize-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-setcc.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp2i.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fptrunc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fshr-fshl-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-i2fp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert-subvector-shuffle.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-inttoptr-ptrtoint.ll
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-lmul-max.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-marith-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-peephole-vmerge-vops.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-int.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-setcc-fp-vp.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-vand-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfclass-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmul-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfnmsac-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfptoi-constrained-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfsqrt-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfwadd.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfwmacc.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfwmul.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfwsub.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vitofp-constrained-sdnode.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-vor-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/fixed-vectors-vxor-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fold-vp-fadd-and-vp-fmul.ll
    M llvm/test/CodeGen/RISCV/rvv/fold-vp-fsub-and-vp-fmul.ll
    M llvm/test/CodeGen/RISCV/rvv/fshr-fshl-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/incorrect-extract-subvector-combine.ll
    M llvm/test/CodeGen/RISCV/rvv/marith-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/pass-fast-math-flags-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll
    M llvm/test/CodeGen/RISCV/rvv/setcc-fp-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-i1.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/vand-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/vfadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfclass-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfma-vp-combine.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/vfmul-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/vfptoi-constrained-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vfptoi-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vfptrunc-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfsqrt-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwadd-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwadd-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwmacc-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwmul-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwsub-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vitofp-constrained-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vitofp-sdnode.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/vor-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-inttoptr-ptrtoint.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-splice.ll
    M llvm/test/CodeGen/RISCV/rvv/vp-vaaddu.ll
    M llvm/test/CodeGen/RISCV/rvv/vreductions-fp-sdnode.ll
    M llvm/test/CodeGen/RISCV/rvv/vreductions-int.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/RISCV/rvv/vxor-vp.ll
    M llvm/test/CodeGen/RISCV/ssub_sat.ll
    M llvm/test/CodeGen/RISCV/ssub_sat_plus.ll
    M llvm/test/CodeGen/RISCV/xaluo.ll
    M llvm/test/CodeGen/RISCV/xqcia.ll
    A llvm/test/CodeGen/SPIRV/amdgcnspirv-atomic-metadata-decoration.ll
    A llvm/test/CodeGen/SPIRV/atomicrmw-storage-class-semantics.ll
    M llvm/test/CodeGen/SPIRV/atomicrmw-uinc-udec-wrap.ll
    M llvm/test/CodeGen/SPIRV/atomicrmw.ll
    M llvm/test/CodeGen/SPIRV/ctor-dtor-lowering-ir.ll
    M llvm/test/CodeGen/SPIRV/debug-info/debug-compilation-unit.ll
    A llvm/test/CodeGen/SPIRV/debug-info/debug-optype-void-emission.ll
    A llvm/test/CodeGen/SPIRV/debug-info/debug-source-language-glsl.ll
    A llvm/test/CodeGen/SPIRV/debug-info/debug-source-language-unknown.ll
    M llvm/test/CodeGen/SPIRV/debug-info/debug-type-basic.ll
    M llvm/test/CodeGen/SPIRV/debug-info/debug-type-pointer.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_add/atomicrmw_faddfsub_double.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_add/atomicrmw_faddfsub_float.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_add/atomicrmw_faddfsub_half.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_min_max/atomicrmw_fminfmax_double.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_min_max/atomicrmw_fminfmax_float.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_min_max/atomicrmw_fminfmax_half.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomic_bfloat16_load_store_xchg.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomic_int16_arithmetic.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomic_int16_load_store_xchg_cmpxchg.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomicrmw_faddfsub_bfloat16.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomicrmw_fminfmax_bfloat16.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_inline_assembly/inline_asm.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_memory_access_aliasing/alias-load-store-atomic.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_NV_shader_atomic_fp16_vector/atomicrmw_faddfsub_vec_float16.ll
    M llvm/test/CodeGen/SPIRV/extensions/SPV_NV_shader_atomic_fp16_vector/atomicrmw_fminfmax_vec_float16.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/all_memory_barrier.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/all_memory_barrier_with_group_sync.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/device_memory_barrier.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/device_memory_barrier_with_group_sync.ll
    A llvm/test/CodeGen/SPIRV/hlsl-intrinsics/gep-i8-ptr-param-struct.ll
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/group_memory_barrier.ll
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/group_memory_barrier_with_group_sync.ll
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/log10.ll
    M llvm/test/CodeGen/SPIRV/hlsl-intrinsics/reversebits.ll
    A llvm/test/CodeGen/SPIRV/hlsl-resources/ImageFormatR11fG11fB10f.ll
    A llvm/test/CodeGen/SPIRV/hlsl-resources/ImageFormatRg32f.ll
    A llvm/test/CodeGen/SPIRV/hlsl-resources/ImageFormatRg32i.ll
    A llvm/test/CodeGen/SPIRV/hlsl-resources/ImageFormatRg32ui.ll
    A llvm/test/CodeGen/SPIRV/hlsl-resources/ImageFormatRgba32f.ll
    A llvm/test/CodeGen/SPIRV/hlsl-resources/ImageFormatRgba32ui.ll
    M llvm/test/CodeGen/SPIRV/image_dim.ll
    M llvm/test/CodeGen/SPIRV/instructions/atomic-ptr.ll
    M llvm/test/CodeGen/SPIRV/instructions/scalar-integer-arithmetic.ll
    M llvm/test/CodeGen/SPIRV/instructions/vector-integer-arithmetic.ll
    A llvm/test/CodeGen/SPIRV/legalize-zero-size-arrays-appending.ll
    A llvm/test/CodeGen/SPIRV/linkage/weak-linkage.ll
    M llvm/test/CodeGen/SPIRV/llc-pipeline.ll
    M llvm/test/CodeGen/SPIRV/llvm-intrinsics/exp10-glsl.ll
    M llvm/test/CodeGen/SPIRV/llvm-intrinsics/signed_arithmetic_overflow.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/SPIRVPrepareFunctions.ll
    M llvm/test/CodeGen/SPIRV/passes/SPIRVPrepareGlobals-predicate-id-string.ll
    A llvm/test/CodeGen/SPIRV/passes/SPIRVPrepareGlobals.ll
    A llvm/test/CodeGen/SPIRV/passes/SPIRVRegularizer-i1-icmp.ll
    M llvm/test/CodeGen/SPIRV/passes/translate-aggregate-uaddo.ll
    A llvm/test/CodeGen/SPIRV/pointers/getelementptr-byte-addressing-array.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/pointers/struct-i8-dynamic-index.ll
    M llvm/test/CodeGen/SPIRV/scoped_atomicrmw.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/SPIRV/vk-pushconstant-gep-constant-expr.ll
    A llvm/test/CodeGen/SystemZ/tdc-08.ll
    A llvm/test/CodeGen/Thumb2/mve-extbuildvec.ll
    A llvm/test/CodeGen/Thumb2/mve-no-fp.ll
    M llvm/test/CodeGen/Thumb2/mve-saturating-arith.ll
    M llvm/test/CodeGen/Thumb2/mve-vselect-constants.ll
    A llvm/test/CodeGen/WebAssembly/GlobalISel/irtranslator/call-basics.ll
    M llvm/test/CodeGen/WebAssembly/f16-intrinsics.ll
    M llvm/test/CodeGen/WebAssembly/simd-bitmask.ll
    A llvm/test/CodeGen/WebAssembly/simd-min-vec-reg-32.ll
    A llvm/test/CodeGen/WebAssembly/simd-pr190773.ll
    M llvm/test/CodeGen/WebAssembly/strided-int-mac.ll
    M llvm/test/CodeGen/X86/GlobalISel/GV.ll
    R llvm/test/CodeGen/X86/GlobalISel/fadd-scalar.ll
    R llvm/test/CodeGen/X86/GlobalISel/fdiv-scalar.ll
    R llvm/test/CodeGen/X86/GlobalISel/fmul-scalar.ll
    R llvm/test/CodeGen/X86/GlobalISel/fsub-scalar.ll
    A llvm/test/CodeGen/X86/GlobalISel/regbankselect-dbg-value-physreg-crash.mir
    M llvm/test/CodeGen/X86/apx/ccmp.ll
    M llvm/test/CodeGen/X86/apx/ctest.ll
    A llvm/test/CodeGen/X86/apx/foldmemory.mir
    M llvm/test/CodeGen/X86/avx-vinsertf128.ll
    M llvm/test/CodeGen/X86/basic-block-address-map-function-sections.ll
    M llvm/test/CodeGen/X86/basic-block-address-map.ll
    A llvm/test/CodeGen/X86/bfloat-int-cvt.ll
    M llvm/test/CodeGen/X86/bit-manip-i256.ll
    M llvm/test/CodeGen/X86/bit-manip-i512.ll
    M llvm/test/CodeGen/X86/bitcnt-big-integer.ll
    M llvm/test/CodeGen/X86/bmi-select-distrib.ll
    M llvm/test/CodeGen/X86/combine-bswap.ll
    A llvm/test/CodeGen/X86/combine-reductions.ll
    M llvm/test/CodeGen/X86/dag-topological-sort.ll
    M llvm/test/CodeGen/X86/expand-vp-int-intrinsics.ll
    M llvm/test/CodeGen/X86/freeze-binary.ll
    M llvm/test/CodeGen/X86/gc-empty-basic-blocks.ll
    R llvm/test/CodeGen/X86/gc-empty-basic-blocks.mir
    A llvm/test/CodeGen/X86/indirect-br-gep-unmerge-flags.ll
    M llvm/test/CodeGen/X86/insertelement-var-index.ll
    A llvm/test/CodeGen/X86/isel-fadd-vector.ll
    A llvm/test/CodeGen/X86/isel-fadd.ll
    A llvm/test/CodeGen/X86/isel-fdiv-vector.ll
    A llvm/test/CodeGen/X86/isel-fdiv.ll
    A llvm/test/CodeGen/X86/isel-fmul-vector.ll
    A llvm/test/CodeGen/X86/isel-fmul.ll
    A llvm/test/CodeGen/X86/isel-fsub-vector.ll
    A llvm/test/CodeGen/X86/isel-fsub.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/known-pow2.ll
    M llvm/test/CodeGen/X86/llc-pipeline-npm.ll
    A 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

  Log Message:
  -----------
  Merge branch 'main' into fix-blockfreq-unroll-unconditional-latches--fast


Compare: https://github.com/llvm/llvm-project/compare/f69a10ecd323...8071e3bf15f5

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