LLVM/project 54d06fb — clang/lib/StaticAnalyzer/Checkers/WebKit RawPtrRefLocalVarsChecker.cpp, clang/test/Analysis/Checkers/WebKit uncounted-local-vars.cpp

[alpha.webkit.UncountedLocalVarsChecker] Don't skip the else branch of an if statement with a condition variable and a trivial then branch (#227262)

Previously, when an `if` statement had a condition variable and a
trivial then branch, `TraverseIfStmt` skipped the entire statement. That
is correct for the condition variable, which is null in the else branch,
but it also skipped the else branch, which caused a missing warning for
any raw pointer/reference local variable declared there. This still
exempts the condition variable but traverses the else branch when it is
not trivial.
DeltaFile
+31-0clang/test/Analysis/Checkers/WebKit/uncounted-local-vars.cpp
+8-5clang/lib/StaticAnalyzer/Checkers/WebKit/RawPtrRefLocalVarsChecker.cpp
+39-52 files

LLVM/project f7bb27d — llvm/test/CodeGen/AMDGPU hsa-metadata-hidden-args-v5.ll

[AMDGPU][NFC] Use CHECK-NEXT for hidden_dynamic_lds_size in hsa-metadata-hidden-args-v5.ll
DeltaFile
+1-2llvm/test/CodeGen/AMDGPU/hsa-metadata-hidden-args-v5.ll
+1-21 files

LLVM/project f87fd43 — lldb/include/lldb/Interpreter/Interfaces ScriptedHookInterface.h, lldb/source/Target Target.cpp

[lldb/Interpreter] Report scripted hook failures via Debugger::ReportError (#227508)

This patch addresses post-merge feedback on #225292.

`ReportScriptedHookError` formatted the error through a
`CommandReturnObject` whose immediate streams pointed at the hook's
output stream. Since no command is involved, this patch reports the
failure with `Debugger::ReportError` instead, which is the diagnostic
channel other scripted extensions already use when they have no caller
to return an error to.

This patch also makes the default `HandleModuleLoaded` and
`HandleModuleUnloaded` implementations in `ScriptedHookInterface` return
`llvm::errc::not_supported` rather than success, since they are only
invoked when the scripted class implements the corresponding method.

The scripted stop hook tests now assert on the diagnostic event rather
than on the debugger's output.

Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
DeltaFile
+11-17lldb/source/Target/Target.cpp
+10-12lldb/test/API/functionalities/scripted_extensions/TestScriptedExtensionsDiagnostics.py
+4-2lldb/include/lldb/Interpreter/Interfaces/ScriptedHookInterface.h
+25-313 files

LLVM/project 23dd1f3 — llvm/lib/Target/RISCV/AsmParser RISCVAsmParser.cpp

[RISC-V][MC] Validate instructions prior to emission in AsmParser

This ensures that broken AsmParser pseudo expansions trigger an error.
Noticed this while adding Y extension support where expanding pseudos
generated instructions that were failing predicates and/or using the
wrong register class, but since the encoded .o bit pattern as well as
the assembly output are the same for mode-dependent instructions, this
was not immediately obvious and only shows up with --show-inst.
Verify predicates and operand register classes prior to emission when
-riscv-verify-mcinst is enabled (which defaults to true under
EXPENSIVE_CHECKS).

Ideally we would do this in a target-independent way, but for now this
only checks RISC-V outputs.
DeltaFile
+44-0llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+44-01 files

LLVM/project b50b6e1 — llvm/lib/Target/RISCV RISCVInstrInfoY.td, llvm/test/CodeGen/RISCV/rvy rvy-invalid-operands.mir

[RISC-V][MC][RVY] Update base RVY to v0.9.10 specification

Update the experimental 'Y' extension version to 0.9.10 (0p910) and sync
the base RVY instruction encodings and mnemonics with the v0.9.10 draft
specification (https://github.com/riscv/riscv-cheri/releases/tag/v0.9.10-ar20260929):

* Replace `SRLIY` and the `yhir` alias with a dedicated 2-operand `YHIR`
  instruction (`funct7 = 0b1111010`, `funct5 = 0b00111`), and remove the
  now-unused `uimm7_eq_xlen` operand support.
* Drop `PACKY` in favor of `YHIW` (`rd = YGPR`, `rs1 = GPR`, `rs2 = GPR`).
* Rename `YSUNSEAL` to `YUNSEALS` and add `YSEALE` (`funct7 = 0b0010111`,
  `rs1 = x0`).

This commit was created with the help of AI tools
DeltaFile
+24-39llvm/test/MC/RISCV/rvy/rvy-basic.s
+13-37llvm/lib/Target/RISCV/RISCVInstrInfoY.td
+21-21llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
+12-12llvm/test/MC/RISCV/rvy-invalid-attributes.s
+2-20llvm/test/CodeGen/RISCV/rvy/rvy-invalid-operands.mir
+7-7llvm/test/MC/RISCV/rvy-build-attributes.s
+79-1368 files not shown
+84-17514 files

LLVM/project 2982b53 — lldb/include/lldb/Target ThreadPlanStack.h, lldb/source/Target Process.cpp ThreadPlanStack.cpp

[lldb] Fix unbounded recursion on an empty thread list (#227396)

ThreadPlanStackMap::Update runs inside UpdateThreadListIfNeeded, but
looked up threads with FindThreadByID, which refreshes the list again.
UpdateThreadListIfNeeded always refreshes an empty list, so a stop that
reports no threads recursed until the stack overflowed.

Look threads up without refreshing. PruneThreadPlans relied on that
lookup to refresh the list, so have it refresh the list itself.

PS: I ran into this when stepping through a Wasm module running under
the WebAssembly Micro Runtime (WAMR). The new test case mimics that
interaction.

rdar://157254463
DeltaFile
+59-0lldb/test/API/functionalities/gdb_remote_client/TestEmptyThreadList.py
+4-1lldb/source/Target/ThreadPlanStack.cpp
+3-1lldb/include/lldb/Target/ThreadPlanStack.h
+2-1lldb/source/Target/Process.cpp
+68-34 files

LLVM/project 675d1bd —

[compiler-rt] Fix failing HSA test after #226551 (#227552)

Summary:
Internal symbolization fails this test due to RTLD_NEXT.
DeltaFile
+0-00 files

LLVM/project 474a93b — compiler-rt/test/ubsan/TestCases/Misc/Posix hsa-load-order.cpp

[compiler-rt] Fix failing HSA test after #226551 (#227552)

Summary:
Internal symbolization fails this test due to RTLD_NEXT.
DeltaFile
+4-0compiler-rt/test/ubsan/TestCases/Misc/Posix/hsa-load-order.cpp
+4-01 files

LLVM/project 3587185 — llvm/lib/CodeGen/SelectionDAG InstrEmitter.cpp, llvm/test/CodeGen/X86 inline-asm-default-clobbers.ll

[SelectionDAG] Keep inline asm clobbers live when read by a glued CopyFromReg (#227203)

PR #227026 marks every clobber def dead, but a flag output such as X86
`={@ccz}` is lowered to a glued `CopyFromReg $eflags` whose only
definition is the `~{flags}` clobber. With EXPENSIVE_CHECKS the verifier
reports "Using an undefined physical register" for the SETcc that reads
EFLAGS (bittest-intrin.ll, inline-asm-flag-output.ll, pr40737.ll).

Don't set the dead flag on a clobber that overlaps a physical register
read by a glued CopyFromReg.

Aided by Opus 5.5
DeltaFile
+18-1llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
+12-1llvm/test/CodeGen/X86/inline-asm-default-clobbers.ll
+30-22 files

LLVM/project d01219d — clang/lib/Basic DiagnosticIDs.cpp, clang/lib/Sema SemaChecking.cpp

[Sema] Return RecoveryExpr for ARC atomic ownership error (#224849)

`BuiltinAtomicOverloaded` returned a bare `ExprError()` on the ARC
ownership check and made CodeGen hit `llvm_unreachable`.
so return a `RecoveryExpr` instead so bad data can't reach codegen.

Fixes #222528.
DeltaFile
+11-0clang/test/CodeGenObjCXX/objc-atomic-ownership-recovery.mm
+2-1clang/lib/Basic/DiagnosticIDs.cpp
+1-0clang/lib/Sema/SemaChecking.cpp
+14-13 files

LLVM/project 1502b67 —

Fix typo in comment for ConstantInt get method (#227493)

Originally found this typo from docs generated by Doxygen.
DeltaFile
+0-00 files

LLVM/project 0b735ae — clang/test/CodeGen/RISCV rvp-intrinsics.c, cross-project-tests/intrinsic-header-tests riscv_packed_simd.c

Merge branch 'main' into users/aokblast/cir/type_deduction_lhs_fpbuiltinop
DeltaFile
+674-6llvm/test/Analysis/CostModel/RISCV/shuffle-interleave.ll
+460-0clang/test/CodeGen/RISCV/rvp-intrinsics.c
+156-0cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c
+131-0llvm/test/Analysis/CostModel/RISCV/shuffle-transpose.ll
+34-49llvm/test/CodeGen/Mips/msa/f16-llvm-ir.ll
+80-0llvm/test/Transforms/InstCombine/sdiv-canonicalize.ll
+1,535-551,052 files not shown
+3,874-1,9191,058 files

LLVM/project 6281eb5 — .github/workflows libcxx-pr-benchmark.yml libcxx-benchmark-libstdcxx.yml, libcxx/utils/ci/lnt machines.json README.md

[libc++] Run Linux benchmarks on the premerge k8s runner set (#227547)

The Linux benchmarking machine was still using the
llvm-premerge-libcxx-runners runner set, which doesn't exist anymore.
Moving to K8s also requires specifying the Docker image to use in
machines.json.

As a drive-by, drop the manual Python installation since a suitable
version of Python should already exist in the image.
DeltaFile
+4-6.github/workflows/libcxx-pr-benchmark.yml
+4-6.github/workflows/libcxx-benchmark-libstdcxx.yml
+4-6.github/workflows/libcxx-benchmark-commit.yml
+4-0libcxx/utils/ci/lnt/README.md
+2-1libcxx/utils/ci/lnt/machines.json
+18-195 files

LLVM/project e199f2b — bolt/lib/Core HashUtilities.cpp

[BOLT][Core] avoid string temporaries in block hashing. (#213510)
DeltaFile
+11-12bolt/lib/Core/HashUtilities.cpp
+11-121 files

LLVM/project c4825a0 — llvm/lib/Target/RISCV RISCVTargetTransformInfo.cpp RISCVISelLowering.cpp, llvm/test/Analysis/CostModel/RISCV shuffle-transpose.ll

[RISCV] Model Zvzip VPAIR shuffle costs (#227177)

Model pair-even and pair-odd shuffle costs using vpaire.vv and
vpairo.vv when the Zvzip extension is available.

Add a new file `RISCVVectorUtils.h` to share shuffle-mask
helpers between ISel lowering and TTI. Also move `isPairEven`
and `isPairOdd` into the new file and reuse them in TTI.

This is the second PR split out from #224991.

Assisted-by: TRAE CLI (GPT-5)
DeltaFile
+131-0llvm/test/Analysis/CostModel/RISCV/shuffle-transpose.ll
+72-0llvm/lib/Target/RISCV/RISCVVectorUtils.h
+1-48llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+9-0llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+213-484 files

LLVM/project ad9d34e — llvm/test/tools/llvm-cas plugin-validation-crash.test plugin-validation.test, llvm/tools/libCASPluginTest libCASPluginTest.exports libCASPluginTest.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+0-887llvm/tools/libCASPluginTest/libCASPluginTest.cpp
+887-0llvm/unittests/CAS/CASPluginTest/CASPluginTest.cpp
+22-21llvm/test/tools/llvm-cas/plugin-validation.test
+0-37llvm/tools/libCASPluginTest/libCASPluginTest.exports
+37-0llvm/unittests/CAS/CASPluginTest/CASPluginTest.exports
+13-12llvm/test/tools/llvm-cas/plugin-validation-crash.test
+959-9577 files not shown
+996-1,00813 files

LLVM/project aa79775 — utils/bazel/llvm-project-overlay/libc BUILD.bazel

[bazel][libc] Fix 667cfbec38942e08bd67fa51cc05e63686dd01b9 (#227544)
DeltaFile
+14-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+14-01 files

LLVM/project 6ff5cc9 — clang/lib/Headers riscv_packed_simd.h, clang/test/CodeGen/RISCV rvp-intrinsics.c

[RISCV][P-ext] Support Packed Widening Unzip (#227211)
DeltaFile
+460-0clang/test/CodeGen/RISCV/rvp-intrinsics.c
+156-0cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c
+58-0clang/lib/Headers/riscv_packed_simd.h
+674-03 files

LLVM/project 935c0d5 — offload/plugins-nextgen/common/include PluginInterface.h

[Offload] Fix dangling memory references / leaks (#227411)

Summary:
Two small tweaks. First, the allocator creates memory for the type via
placement new, but does not deallocate it with the destructor. This is
UB and is fixed by explicitly callling the type's destructor. Second,
the plugins were only 'released', which was likely just being confused
with `reset`. Release returns the pointer, essentially giving up
ownership, but we never take the pointer so it just dangles. The correct
spelling is 'reset'.
DeltaFile
+5-1offload/plugins-nextgen/common/include/PluginInterface.h
+5-11 files

LLVM/project 77a1817 — llvm/lib/CodeGen TwoAddressInstructionPass.cpp, llvm/test/CodeGen/X86 twoaddr-unfold-load-eflags-liveintervals.mir

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+55-0llvm/test/CodeGen/X86/twoaddr-unfold-load-eflags-liveintervals.mir
+8-0llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
+63-02 files

LLVM/project 1f84168 — llvm/test lit.cfg.py, llvm/tools/llc/lib llcdriver.cpp

[Plugins] Load pass plugins after parsing the command line (#226773)

opt and llc load -load-pass-plugin plugins from a cl::opt callback while
parsing argv, so that the options a plugin registers are recognized
later on the command line. cl::callback is to be removed to enable
migration to a TableGen-based option representation

(https://discourse.llvm.org/t/rfc-declare-library-command-line-options-in-tablegen-one-struct-per-library/91877/5).

Load plugins after cl::ParseCommandLineOptions. A loaded plugin's
options are no longer accepted as ordinary options; pass them with
-plugin-arg=<plugin>,<arg> instead. Prefix each Polly option in Polly
tests with -plugin-arg=Polly, and each IRTransforms example option with
-plugin-arg=SimplifyCFG,.

LLM-aided
DeltaFile
+14-19llvm/test/lit.cfg.py
+9-9polly/test/CodeGen/OpenMP/single_loop.ll
+8-8polly/test/ScopInfo/multidim_single_and_multidim_array.ll
+7-8llvm/tools/opt/optdriver.cpp
+7-8llvm/tools/llc/lib/llcdriver.cpp
+6-6polly/test/CodeGen/openmp_limit_threads.ll
+51-58984 files not shown
+1,312-1,309990 files

LLVM/project 721b8cd — llvm/lib/Target/RISCV RISCVTargetTransformInfo.h RISCVTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/RISCV shuffle-interleave.ll

[RISCV] Model interleave2 and deinterleave2 costs with Zvzip (#225752)

This PR extends the RISC-V TTI cost model to recognize
`llvm.vector.interleave2` and `llvm.vector.deinterleave2` when the Zvzip
extension is available.

The cost is computed based on the operand that holds the interleaved
data: the destination operand of `vzip.vv`, and the source operand of
`unzipe.v` or `unzipo.v`.

This is the first PR split out from #224991.

Assisted-By: Trae CLI (GPT-5)
DeltaFile
+674-6llvm/test/Analysis/CostModel/RISCV/shuffle-interleave.ll
+68-0llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+8-0llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
+750-63 files

LLVM/project b7458ff — llvm/lib/Target/Mips MipsISelLowering.cpp, llvm/test/CodeGen/Mips fp-intrinsics.ll fcmp.ll

[Mips] Add lowerConstantFP to optimize some floating load instrs to mtc1+mthc1 (#196226)

Fix #180873.
DeltaFile
+34-49llvm/test/CodeGen/Mips/msa/f16-llvm-ir.ll
+53-23llvm/test/CodeGen/Mips/o32_cc.ll
+43-27llvm/test/CodeGen/Mips/fcmp.ll
+40-0llvm/lib/Target/Mips/MipsISelLowering.cpp
+14-20llvm/test/CodeGen/Mips/cconv/vector.ll
+8-2llvm/test/CodeGen/Mips/fp-intrinsics.ll
+192-1211 files not shown
+193-1217 files

LLVM/project 1eb155e — llvm/lib/Transforms/InstCombine InstCombineMulDivRem.cpp, llvm/test/Transforms/InstCombine div.ll sdiv-canonicalize.ll

[InstCombine] Fold `-X / -Y` to `X / Y` when it cannot overflow (#224025)

Fold:
```
  (-X) / (-Y) -> X / Y
```
Do not combine when X may be INT_MIN and Y may be -1, as the result
could introduce signed division overflow.

For AMDGPU example:
https://godbolt.org/z/6jj6E8T5T
DeltaFile
+80-0llvm/test/Transforms/InstCombine/sdiv-canonicalize.ll
+14-1llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
+4-4llvm/test/Transforms/InstCombine/div.ll
+98-53 files

LLVM/project 1a023fb — mlir/lib/Transforms/Utils GreedyPatternRewriteDriver.cpp

Track IR insertion
DeltaFile
+122-20mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
+122-201 files

LLVM/project 8b90c3e — lld/ELF/Arch AArch64.cpp, lld/test/ELF aarch64-tls-le.s aarch64-tls-le-12.s

[lld][AArch64] Support R_AARCH64_TLSLE_ADD_TPREL_LO12 (#227173)

AArch64 local-exec TLS code sequences compiled with -mtls-size=12 use
the non-NC R_AARCH64_TLSLE_ADD_TPREL_LO12 relocation (emitted for 'add
xN, xN, :tprel_lo12:sym'), but lld only handles the _NC variant, so
linking such objects fails with 'unknown relocation'.

Add the relocation to the TLS LE group in scanSectionImpl (R_TPREL, same
group as the other TLSLE relocations, so it is also rejected for
-shared) and resolve it like the _NC variant, but with an unsigned
12-bit range check as the non-NC form requires the full offset to fit
into the imm12 field.
DeltaFile
+34-0lld/test/ELF/aarch64-tls-le-12.s
+15-3lld/test/ELF/aarch64-tls-le.s
+5-0lld/ELF/Arch/AArch64.cpp
+54-33 files

LLVM/project df0ef8e — clang/lib/AST ItaniumMangle.cpp

fixup! [Clang] Do not assume existing substition for template specialization
DeltaFile
+54-58clang/lib/AST/ItaniumMangle.cpp
+54-581 files

LLVM/project 4daebae — clang/lib/Sema SemaHLSL.cpp, clang/test/SemaHLSL matrix_layout_attr.hlsl

[Clang][HLSL] Reject matrix layout modifiers on array typedefs (#227364)

Fixes #226251

Require row_major and column_major modifiers to apply directly to a
matrix type rather than accepting an array typedef whose element type is
a matrix.

This preserves valid declarations of arrays of annotated matrix elements
while rejecting attempts to apply a layout modifier to the array type
itself.
DeltaFile
+4-7clang/lib/Sema/SemaHLSL.cpp
+8-0clang/test/SemaHLSL/matrix_layout_attr.hlsl
+12-72 files

LLVM/project 33cbf68 — llvm/runtimes CMakeLists.txt

[runtimes] Add llvm-dis to compiler-rt test dependency (#227212)

A recent commit 9a0c255ce1ef introduced dependency on llvm-dis to
compiler-rt test instrprof-thinlto-indirect-call-promotion.cpp. This
caused error "llvm-dis: command not found" in CI testing. Fix by adding
llvm-dis to the dependency list for compiler-rt test.
DeltaFile
+12-7llvm/runtimes/CMakeLists.txt
+12-71 files

LLVM/project 9f54efd — orc-rt/test/regression/languages/c/addressing global-function-pointer-in-data-cross-obj.test static-function-tail-call.c, orc-rt/test/regression/languages/c/addressing/cross-object global-array-element-pointer-in-data.test global-function-tail-call.test

[orc-rt] Flatten C addressing regression tests. NFC. (#227529)

Move the tests out of same-object/ and cross-object/ subdirectories into
addressing/, and mark tests of references to entities in other objects
with a -cross-obj suffix. This keeps the variants of a construct
together, e.g. global-function-call.c next to
global-function-call-cross-obj.test, so gaps in coverage are easier to
spot.
DeltaFile
+0-32orc-rt/test/regression/languages/c/addressing/cross-object/global-function-tail-call.test
+32-0orc-rt/test/regression/languages/c/addressing/global-function-tail-call-cross-obj.test
+0-28orc-rt/test/regression/languages/c/addressing/same-object/static-function-tail-call.c
+0-28orc-rt/test/regression/languages/c/addressing/cross-object/global-array-element-pointer-in-data.test
+28-0orc-rt/test/regression/languages/c/addressing/global-function-pointer-in-data-cross-obj.test
+28-0orc-rt/test/regression/languages/c/addressing/static-function-tail-call.c
+88-8824 files not shown
+373-37330 files