LLVM/project d0b8c40 — llvm/include/llvm/IR GlobalValue.h, llvm/lib/IR Globals.cpp

Add Global Value isComdatLeader()
DeltaFile
+6-0llvm/lib/IR/Globals.cpp
+1-2llvm/lib/Transforms/IPO/GlobalOpt.cpp
+1-0llvm/include/llvm/IR/GlobalValue.h
+8-23 files

LLVM/project 34cfe17 — clang/lib/CodeGen CGDebugInfo.cpp, clang/test/CodeGen debug-info-line0-lexical-block.c

[DebugInfo] Fill Column 0 if Line is not found

It is possible that user specified line 0 as the start of the line in
C language (using `# 0`). However, it is rejected by the Lexer as we
have no line but still carries column information. As a result, we
fill column to 0 if we cannot find line.

Assisted-by: Claude # Test
DeltaFile
+15-0clang/test/CodeGen/debug-info-line0-lexical-block.c
+5-2clang/lib/CodeGen/CGDebugInfo.cpp
+20-22 files

LLVM/project 9beec1b — flang/lib/Lower PFTBuilder.cpp, flang/test/Lower/OpenACC acc-unstructured-combined-construct.f90 acc-directive-loop-bounds.f90

[flang] Let a directive keep the loop it owns when its body branches

A loop whose branching is confined to its body keeps its structured form,
but the construct holding it stayed unstructured. A directive does not
merely contain such a loop, it owns it, and its lowering reads the
construct's own classification to decide whether the loop op carries its
bounds. The directive was left with a bounds-free loop that nothing could
partition, and the loop it owns became a second one nested inside.

Reclassify a directive construct once the loops it holds no longer need it
to stay unstructured, and fold the body of the loop it takes over into a
region, which the DO lowering can no longer do for it.

A construct whose branching leaves it is untouched, as is one holding a
branch of its own.
DeltaFile
+8-124flang/test/Lower/OpenACC/Todo/acc-unstructured-loop-construct.f90
+120-0flang/test/Lower/OpenACC/acc-unstructured-loop-construct.f90
+66-0flang/test/Lower/OpenACC/acc-directive-loop-bounds.f90
+40-0flang/test/Lower/OpenACC/acc-unstructured-combined-construct.f90
+33-4flang/lib/Lower/PFTBuilder.cpp
+34-0flang/test/Lower/OpenMP/wsloop-directive-loop-bounds.f90
+301-1284 files not shown
+332-16810 files

LLVM/project 5fc571f — flang/lib/Lower Bridge.cpp

[flang][NFC] Split the OpenACC construct lowering into two lanes

genFIR(OpenACCConstruct) decided twice, in three places, whether the
construct it lowers is structured, and reassigned the evaluation it works
from halfway through: before the descent that evaluation is the construct,
after it the loop the directive absorbs. Everything downstream had to know
which one it was holding.

Give each form its own function and leave genFIR to choose between them.
One lane allocates the exit selector, lowers the evaluations the construct
holds, and emits the jump table; the other reads the collapse clauses,
descends to the absorbed depth, and lowers what is inside it. The prologue
and epilogue are short enough to state in both rather than share.
DeltaFile
+149-101flang/lib/Lower/Bridge.cpp
+149-1011 files

FreeBSD/src a179e72 — sys/ufs/ufs ufs_lookup.c ufs_vnops.c

ufs: report a mismatched ".." in ufs_dirrewrite()

When ufs_rename() moves a directory to a new parent and ufs_dirrewrite()
fails to rewrite its ".." entry, it reports "bad dir ... rename: missing
.. entry" whatever the error.  ufs_dirrewrite() never finds a missing
"..", though: it fails with EIDRM when the ".." entry names another inode
than the expected one, and otherwise only when the directory block cannot
be read or written.  The latter happens for every directory rename in
flight when the device goes away under a forcibly unmounted file system,
and the log then fills with reports of directories that are intact on
disk.

Report the EIDRM case with ufs_dirbad() in ufs_dirrewrite() itself, so
that all of its callers get the same diagnostic, and drop the report
from ufs_rename().  Errors from the lower layers are not reported, as
usual for an I/O initiator.

Reviewed by:    kib
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D60137
DeltaFile
+1-3sys/ufs/ufs/ufs_vnops.c
+2-0sys/ufs/ufs/ufs_lookup.c
+3-32 files

LLVM/project e6e5ade — llvm/test/tools/llvm-objdump/ELF/RISCV mapping-sym-isa-disassembly.s mapping-sym-isa-mattr-conflict.s, llvm/tools/llvm-objdump llvm-objdump.cpp

[llvm-objdump][RISC-V] Do not leak file-level features into $x<ISA> regions (#227513)

Previously, RISCVISATargetCache::get initialized per-region features from
Base.SubtargetInfo->getFeatureString(), which already included the
file-level Tag_RISCV_arch and --mattr flags. Because RISCVISAInfo::toFeatures()
only emits "+ext" for extensions present in the "$x<ISA>" mapping symbol
(and never "-ext"), any extension enabled in Tag_RISCV_arch or via a
conflicting --mattr remained enabled even in regions whose "$x<ISA>"
mapping symbol disabled it.

Start from an empty SubtargetFeatures instead and populate it from the
parsed "$x<ISA>" mapping symbol (plus non-conflicting --mattr flags).

This commit was created with the help of AI tools

Pull-Request: https://github.com/llvm/llvm-project/pull/227513
DeltaFile
+12-15llvm/tools/llvm-objdump/llvm-objdump.cpp
+10-0llvm/test/tools/llvm-objdump/ELF/RISCV/mapping-sym-isa-mattr-conflict.s
+2-2llvm/test/tools/llvm-objdump/ELF/RISCV/mapping-sym-isa-disassembly.s
+24-173 files

LLVM/project dc88771 — libc/src/sys/random CMakeLists.txt getentropy.h, libc/src/sys/random/linux CMakeLists.txt getentropy.cpp

[libc] Implement getentropy in sys/random (#226501)

Implement the standard POSIX.1-2024 function `getentropy` in
`<sys/random.h>`, bringing `<sys/random.h>` to 100% completion.

Fixes #226458
DeltaFile
+75-0libc/test/src/sys/random/linux/getentropy_test.cpp
+49-0libc/src/sys/random/linux/getentropy.cpp
+26-0libc/src/sys/random/getentropy.h
+15-0libc/src/sys/random/linux/CMakeLists.txt
+14-0libc/test/src/sys/random/linux/CMakeLists.txt
+7-0libc/src/sys/random/CMakeLists.txt
+186-05 files not shown
+191-111 files

LLVM/project 7c7d56f — llvm/lib/Target/RISCV RISCVInstrFormats.td RISCVInstrInfoZclsd.td, llvm/test/MC/RISCV xqcilo-pseudos-invalid.s rvi-pseudos-invalid.s

add support for the other pseudos too
DeltaFile
+47-1llvm/test/MC/RISCV/rvi-pseudos-invalid.s
+32-0llvm/test/MC/RISCV/xqcilo-pseudos-invalid.s
+14-1llvm/lib/Target/RISCV/RISCVInstrInfoZilsd.td
+0-13llvm/lib/Target/RISCV/RISCVInstrInfoZclsd.td
+3-3llvm/lib/Target/RISCV/RISCVInstrFormats.td
+3-0llvm/test/MC/RISCV/corev/XCVelw-invalid.s
+99-181 files not shown
+101-187 files

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

OpenBSD/src n0jC4ZF — share/man/man4 qwz.4 qwx.4

   differentiate the two qualcomm wifi drivers by well-understood names
   Wi-Fi 6 and Wi-Fi 7, even if it looks a bit like puke
   discussed with kettenis
VersionDeltaFile
1.11+3-3share/man/man4/qwx.4
1.3+2-2share/man/man4/qwz.4
+5-52 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

OpenBSD/src v29Sly0 — usr.sbin/rpki-client output-rtrx.c

   handle EINPROGRESS and carry errno through.
   OK deraadt@
VersionDeltaFile
1.4+20-5usr.sbin/rpki-client/output-rtrx.c
+20-51 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