LLVM/project 27bb4d2mlir/lib/Dialect/Vector/Transforms VectorDropLeadUnitDim.cpp, mlir/test/Dialect/Vector vector-dropleadunitdim-transforms.mlir

[mlir][vector] Update `CastAwayTransfer{Read|Write}LeadingOneDim` (#219499)

Updates `CastAwayTransfer{Read|Write}LeadingOneDim` to use
`vector.shape_cast`, rather than `vector.extract`, as the canonical form
for stripping unit dimensions.

This change was originally implemented by @krzysz00 in #196206, but was
subsequently reverted in #199546. This PR intentionally restores only a
subset of #196206, making it easier to identify and triage any potential
regressions.

Co-authored-by: Krzysztof Drewniak <Krzysztof.Drewniak at amd.com>
DeltaFile
+25-37mlir/lib/Dialect/Vector/Transforms/VectorDropLeadUnitDim.cpp
+6-6mlir/test/Dialect/Vector/vector-dropleadunitdim-transforms.mlir
+31-432 files

LLVM/project c4babfbllvm/docs ReleaseNotes.md

[Docs] Document persistent metadata printing (#220967)

Document how persistent metadata IDs affect intermediate and standalone
textual output. Final assembly output remains canonically renumbered.

Follow-up to #220390.
DeltaFile
+20-0llvm/docs/ReleaseNotes.md
+20-01 files

LLVM/project 08a32ballvm/lib/Target/RISCV/GISel RISCVInstructionSelector.cpp, llvm/test/CodeGen/RISCV/GlobalISel load-store.ll

[RISCV][GlobalISel] Fold large constant offsets in selectAddrRegImm (#219161)

Fold ADDI adjustment (AddiPair) for offsets in [-4096, 4094] and split
larger constants into materialized Hi + Lo12 offset, matching SDAG. Add
isWorthFoldingAdd to guard the split and extract the shared ADDI
renderer into renderAddiPair.

Assisted-by: Claude
DeltaFile
+641-0llvm/test/CodeGen/RISCV/GlobalISel/load-store.ll
+97-53llvm/lib/Target/RISCV/GISel/RISCVInstructionSelector.cpp
+738-532 files

FreeNAS/freenas 11c6030tests/api2 test_auth_sessions.py test_auth_me.py

NAS-143123 / 26.0.0 / `auth` tests (by themylogin) (#19650)

File | Before | After
-- | -- | --
plugins/auth.py | 42% | 82%
plugins/auth_/2fa.py | 44% | 81%
plugins/auth_/authenticate.py | 57% | 95%
plugins/auth_/login_ex_impl.py | 29% | 75%


Original PR: https://github.com/truenas/middleware/pull/19613

Co-authored-by: themylogin <themylogin at gmail.com>
DeltaFile
+160-0tests/api2/test_auth_login_ex.py
+94-0tests/api2/test_auth_token.py
+86-0tests/api2/test_auth_authenticate.py
+45-0tests/api2/test_auth_twofactor_internal.py
+21-8tests/api2/test_auth_me.py
+26-0tests/api2/test_auth_sessions.py
+432-82 files not shown
+457-98 files

LLVM/project f20b6e5lldb/include/lldb/Target Process.h, lldb/source/Target Process.cpp

[lldb] Remove return value from RemoveBreakpointOpcodesFromBuffer (#221979)

It was never set to anything and the one caller ignored it.
DeltaFile
+23-25lldb/source/Target/Process.cpp
+2-2lldb/include/lldb/Target/Process.h
+25-272 files

LLVM/project 651d01eclang/lib/AST StmtPrinter.cpp, clang/unittests/AST TypePrinterTest.cpp

[clang][AST] Fix infinite recursion when printing fully qualified template parameters (#219044)

This fixes an infinite recursion crash that was introduced in #206041.

When printing a `DeclRefExpr` using
`PrintingPolicy::FullyQualifiedName`, we were previously trying to print
the fully qualified name of all decls. However, when the decl is a
template parameter, its `DeclContext` is the template specialization
itself. If a template specialization's arguments depend on that same
template parameter (e.g., `template<int Count> struct
View<int[Count]>`), attempting to print the qualified name forces Clang
to recursively evaluate the enclosing context. This led to unbounded
recursion (`View<int[Count]>::Count` ->
`View<int[View<int[Count]>::Count]>::Count` and so on). Since template
parameters are inherently scoped to their template declarations and do
not require a fully qualified name, this patch resolves the issue by
skipping `printQualifiedName` if the decl is a template parameter
(`!VD->isTemplateParameter()`).

Fixes #218076.
DeltaFile
+18-0clang/unittests/AST/TypePrinterTest.cpp
+2-1clang/lib/AST/StmtPrinter.cpp
+20-12 files

LLVM/project a3b12f0llvm/lib/Analysis MemoryDependenceAnalysis.cpp, llvm/test/Transforms/GVN pr46054-md-nonlocaldefcache-cleanup.ll

[MemDep] Remove cached non-local defs referencing deleted instructions (#219929)

MemoryDependenceResults::removeInstruction() removed entries from
NonLocalDefsCache when the removed non-pointer instruction was itself a
cache key, but did not remove entries where that instruction was the cached
dependency result.

This could leave a stale instruction reachable through NonLocalDefsCache
after GVN erased it. A later non-local load query could then consume the
dangling dependency and crash in GVN::analyzeLoadAvailability().

Use ReverseNonLocalDefsCache to remove forward cache entries whose
dependency result references the removed instruction, keeping both maps
consistent.

Related removal paths now use the existing reverse-map helper, with
consistency assertions to catch future map divergence.

Fixes #219885.

    [6 lines not shown]
DeltaFile
+19-6llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
+23-0llvm/test/Transforms/GVN/pr46054-md-nonlocaldefcache-cleanup.ll
+42-62 files

LLVM/project 3741dacllvm/include/llvm/Target/GlobalISel Combine.td, llvm/test/CodeGen/AMDGPU workitem-intrinsic-opts.ll llvm.amdgcn.intersect_ray.ll

[GlobalISel] Migrate various generic wip_match_opcode combines to MIR-pattern. (#220213)

This patch converts a batch of GlobalISel combine rules from
hand-written C++ matchers to declarative MIR patterns preserving the
behavior. It also along with adds two functional changes (a
rule-ordering fix and an out-of-bounds bug fix) are described below.

- `select_same_val` → `select_same_val_trivial` +
`select_same_val_equiv` group
- `select_constant_cmp` → `_false` / `_true` / `_general` group
- `simplify_add_to_sub`, `add_p2i_to_ptradd` → `GICombinePatFrag`s
- `commute_shift` → `commute_shift_frags` (C++ residue reduced to
`isDesirableToCommuteWithShift`)
- `combine_i2p_to_p2i`, `ptr_add_zero`, `sext_trunc_sext_load` →
patterns.
- funnel-shift / rotate / `ashr_lshr` / `constant_fold_fma` /
`constant_fold_cast_op` / `combine_minmax_nan` → pattern fragments



    [7 lines not shown]
DeltaFile
+194-110llvm/include/llvm/Target/GlobalISel/Combine.td
+75-144llvm/test/CodeGen/AMDGPU/llvm.amdgcn.intersect_ray.ll
+81-81llvm/test/CodeGen/AMDGPU/GlobalISel/ashr.ll
+78-78llvm/test/CodeGen/AMDGPU/GlobalISel/lshr.ll
+74-74llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
+84-41llvm/test/CodeGen/AMDGPU/workitem-intrinsic-opts.ll
+586-52828 files not shown
+1,076-1,02534 files

LLVM/project a943ffellvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp, llvm/test/MC/AMDGPU misaligned-vgpr-tuples-err.s

[AMDGPU] Route no-modifier reg-or-inline AsmParser operands through HwMode predicate

Convert the reg-or-inline operands with no modifiers (MFMA VGPR/AGPR
sources, VCSrc, v_pk_mov_b32, VOP scalar f64) from the fixed-class
isRegOrInlineNoMods to the HwMode-aware isRegOrInlineNoModsByHwMode, so an
odd-aligned tuple is rejected at the offending operand column instead of by
the validateVGPRAlign catch-all.

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+53-46llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+7-7llvm/test/MC/AMDGPU/misaligned-vgpr-tuples-err.s
+60-532 files

LLVM/project 5c471f0llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp

[AMDGPU] Factor the AsmParser match-specificity comparison into a helper, NFC

Extract the "keep the most specific match status" comparison in
matchAndEmitInstruction into an atLeastAsSpecific() lambda ranking
Match_MnemonicFail < Match_InvalidOperand < Match_MissingFeature. No
functional change.
DeltaFile
+15-7llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+15-71 files

LLVM/project 0efcaa1llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp, llvm/lib/Target/AMDGPU/Utils AMDGPUBaseInfo.h AMDGPUBaseInfo.cpp

[AMDGPU] Make custom AsmParser matchers alignment aware

Currently custom matchers accept registers belonging to unaligned classes,
leaving the alignment check and its diagnostic to validateVGPRAlign. The problem
is that validateVGPRAlign does not account for the operand register class, which
may have a different alignment requirement on mixed-alignment targets.

The fix is to make a custom matcher resolve the operand's _AlignTarget class via
HwMode and use that resolved class to accept a register. However, doing so alone
would reject a misaligned register with a generic "invalid operand for
instruction" diagnostic, so extra infrastructure conveys the alignment diagnostic
instead: on a class miss, diagnoseRegAlign re-checks the register against the same
class with alignment relaxed (getUnalignedEquivalentRC, new in AMDGPUBaseInfo);
if it fits, the only problem is alignment, so it records
OperandMatchError::VGPRAlignMismatch on the operand. matchAndEmitInstruction
selects that reason and prints the alignment error, now at the offending operand
column instead of column 1.

This commit converts the input-mods and DP-ALU DPP matchers. The no-modifier

    [4 lines not shown]
DeltaFile
+87-18llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+87-0llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+6-6llvm/test/MC/AMDGPU/gfx1250_asm_vopd_errs.s
+5-0llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+1-1llvm/test/MC/AMDGPU/misaligned-vgpr-tuples-err.s
+186-255 files

LLVM/project 439676dllvm/test/MC/AMDGPU misaligned-vgpr-tuples-err.s gfx1250_asm_vopd_errs.s

[AMDGPU] Add AsmParser tests for misaligned VGPR tuples in custom-predicate operands

MFMA VGPR sources, DP-ALU DPP, v_pk_mov_b32 and VOPD3 f64 take VGPR tuple
operands validated by custom AsmParser predicates. Odd-aligned tuples are
currently only caught late by validateVGPRAlign, so the error points at the
whole instruction (column 1). A follow-up moves the diagnostic to the
offending operand.
DeltaFile
+20-0llvm/test/MC/AMDGPU/gfx1250_asm_vopd_errs.s
+18-0llvm/test/MC/AMDGPU/misaligned-vgpr-tuples-err.s
+38-02 files

LLVM/project 8b2c415offload/include device.h, offload/liboffload exports

[offload][omp] Use olMemRegister for memory locking
DeltaFile
+0-80offload/plugins-nextgen/common/src/PluginInterface.cpp
+63-6offload/libompaccsupport/device.cpp
+0-43offload/plugins-nextgen/common/include/PluginInterface.h
+9-9offload/libomptarget/omptarget.cpp
+15-0offload/include/device.h
+0-4offload/liboffload/exports
+87-1426 files

LLVM/project f735df3offload/include Program.h, offload/libompaccsupport PluginManager.cpp device.cpp

[offload][omp] Load and resolve device binaries through liboffload

Migrate DeviceTy::loadBinary and global/kernel symbol resolution off
GenericPluginTy::load_binary/get_global/get_function onto liboffload's
Program/Symbol API, encapsulated in a new ProgramTy abstraction that wraps
an ol_program_handle_t. Kernel symbol resolution still needs the plugin's
opaque GenericKernelTy* handle for the legacy launch path, obtained via a
temporary __ol_tgt_GetKernelFromSymbol helper rather than new public
liboffload API surface. Removes the now-dead __tgt_device_binary type and
the corresponding GenericPluginTy methods and exports entries.
DeltaFile
+0-73offload/plugins-nextgen/common/src/PluginInterface.cpp
+69-0offload/libompaccsupport/Program.cpp
+43-22offload/libompaccsupport/device.cpp
+47-0offload/include/Program.h
+20-10offload/libompaccsupport/PluginManager.cpp
+0-12offload/plugins-nextgen/common/include/PluginInterface.h
+179-1175 files not shown
+194-12611 files

LLVM/project 991c626llvm/cmake/modules HandleLLVMOptions.cmake

Set correct stack reserve when built by Clang on Windows (#221263)

Currently it's handled correctly for MSVC's LINK and MinGW (i.e.
distributed builds of LLVM work correctly), but not lld-link, causing
such builds to crash in certain scenarios.
DeltaFile
+1-1llvm/cmake/modules/HandleLLVMOptions.cmake
+1-11 files

NetBSD/pkgsrc-wip b533805chromium Makefile distinfo

chromium: update to 152.0.7977.82
DeltaFile
+16-34chromium/COMMIT_MSG
+7-7chromium/distinfo
+2-2chromium/Makefile
+25-433 files

LLVM/project 6aede1coffload/liboffload exports, offload/plugins-nextgen/common/include PluginInterface.h

Remove number_of_devices
DeltaFile
+0-3offload/plugins-nextgen/common/include/PluginInterface.h
+0-2offload/plugins-nextgen/common/src/PluginInterface.cpp
+0-1offload/liboffload/exports
+0-63 files

NetBSD/pkgsrc-wip d013c08garage Makefile cargo-depends.mk, garage/patches patch-src_rpc_Cargo.toml

Update www/garage to v.2.4.0
DeltaFile
+1,557-889garage/distinfo
+558-335garage/cargo-depends.mk
+0-18garage/patches/patch-src_rpc_Cargo.toml
+1-1garage/Makefile
+2,116-1,2434 files

LLVM/project 6c8467dclang/include/clang/CIR/Dialect/IR CIRCUDAAttrs.td CIRTypes.td

[CIR] Use the modern enum case classes (#220935)

The `I32EnumAttrCase` family carries an `Attr` half, and an
`IntegerAttr`
predicate with it, that a CIR enum has no use for now that the enums
derive
from `EnumInfo`. Upstream says of those forms that they "are not needed
when
using the newer `EnumCase` form".

Rename all of them to `I32EnumCase`, `I32BitEnumCaseNone`,
`I32BitEnumCaseBit` and `BitEnumCaseGroup`. The group class drops its
width
prefix because the modern spelling takes the width from its cases.
DeltaFile
+140-140clang/include/clang/CIR/Dialect/IR/CIROps.td
+43-43clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+8-8clang/include/clang/CIR/Dialect/IR/CIREnumAttr.td
+4-4clang/include/clang/CIR/Dialect/IR/CIRTypes.td
+3-3clang/include/clang/CIR/Dialect/IR/CIRCUDAAttrs.td
+198-1985 files

LLVM/project 01c7101offload/include device.h, offload/liboffload exports

[offload][omp] Use olMemRegister for memory locking
DeltaFile
+0-80offload/plugins-nextgen/common/src/PluginInterface.cpp
+63-6offload/libompaccsupport/device.cpp
+0-43offload/plugins-nextgen/common/include/PluginInterface.h
+9-9offload/libomptarget/omptarget.cpp
+15-0offload/include/device.h
+0-4offload/liboffload/exports
+87-1426 files

LLVM/project 2aa1dd5llvm/lib/CodeGen/SelectionDAG LegalizeVectorTypes.cpp, llvm/test/CodeGen/X86 vector-compress.ll

[LLVM][SelectionDAG] Fix incorrect splitting of VECTOR_COMPRESS when passthrough operand is not undef. (#215772)

When splitting VECTOR_COMPRESS the original mask is used for the final
step when inactive elements are set to their passthrough value. This is
incorrect because only the inactive lanes of the result should be set to
their passthrough value.
DeltaFile
+174-112llvm/test/CodeGen/X86/vector-compress.ll
+16-2llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+190-1142 files

LLVM/project c40a02blldb/include/lldb/Breakpoint StopPointSiteList.h, lldb/source/Target Process.cpp

[lldb] Small changes to StopPointSiteList::FindInRange (#221975)

1. Make the return value indicate an empty list or not. (I would return
a list, but you cannot copy this list and I don't want to make a larger
change right now)
2. Remove a redundant write at one of the call sites.
DeltaFile
+4-1lldb/include/lldb/Breakpoint/StopPointSiteList.h
+0-4lldb/source/Target/Process.cpp
+4-52 files

NetBSD/pkgsrc-wip 39ad5f9mesa PLIST

mesa: try to fix PLIST conditionals
DeltaFile
+4-1mesa/PLIST
+4-11 files

LLVM/project 3aa448aclang/lib/StaticAnalyzer/Checkers SmartPtrModeling.cpp CallAndMessageChecker.cpp

[analyzer][NFC] Index parameter lookups by argument position
DeltaFile
+26-5clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp
+4-5clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
+4-0clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp
+34-103 files

LLVM/project 5e3af02llvm/lib/Target/AMDGPU AMDGPULegalizerInfo.cpp AMDGPUAttributor.cpp, llvm/test/Bitcode amdgcn-addrspacecast-nonnull.ll

AMDGPU: Remove llvm.amdgcn.addrspacecast.nonnull (#220928)

The intrinsic is fully replaced by the nonnull flag on addrspacecast,
so remove it.

Old bitcode/IR is autoupgraded, though this is very conservative. This
intrinsic was only inserted by the backend, and hopefully nobody was
directly emitting it.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+0-68llvm/test/CodeGen/AMDGPU/llvm.amdgcn.addrspacecast.nonnull.ll
+42-0llvm/test/Bitcode/amdgcn-addrspacecast-nonnull.ll
+5-36llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+1-26llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp
+12-12llvm/test/CodeGen/AMDGPU/attributor-flatscratchinit-undefined-behavior.ll
+5-13llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+65-15510 files not shown
+98-19416 files

LLVM/project 51eedacclang/test/CodeGenCUDA fp-contract.cu, llvm/lib/Target/AMDGPU AMDGPUCodeGenPrepare.cpp

AMDGPU: Set the addrspacecast nonnull flag instead of the intrinsic (#220927)

AMDGPUCodeGenPrepare proved the source of certain flat<->local/private
addrspacecasts non-null and rewrote them to
llvm.amdgcn.addrspacecast.nonnull. Now that the flag is honored in
codegen, set it in place on the existing instruction instead.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+15-10llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
+12-12llvm/test/CodeGen/AMDGPU/codegen-prepare-addrspacecast-non-null.ll
+1-0clang/test/CodeGenCUDA/fp-contract.cu
+28-223 files

LLVM/project 6940519libc/shared rpc.h

[libc] Simplify RPC lock handling to be scalar on the GPU (#221805)

Summary:
This interface was originally written in a complicated way as a
pessimistic bet against NVIDIA's independent thread scheduling. The idea
was that it would work regardless of which set actually executed the
function. The problem is that this forces the operation to be an
expensive vector operation.

This should be safe, we already have other safeguards against ITS in the
main loop. When this function is called, we know that the index and lane
mask are convergent in the set. ITS says the true threads executing this
could be greater than returned. But in this case the 'locked' value
would not be shuffled in, it would not see that it got the lock, and
loop again in a different mask set.

The complicated thing about ITS is mostly that any lanes that share a PC
will report convergent, but that should not bite us here as we already
guard against that before calling this.
DeltaFile
+17-52libc/shared/rpc.h
+17-521 files

LLVM/project e502af4llvm/lib/Target/AMDGPU SILowerSGPRSpills.cpp SIRegisterInfo.cpp, llvm/test/CodeGen/AMDGPU eliminate-frame-index-select.ll bug-undef-spilled-agpr.mir

[AMDGPU] Use the reserved EXEC copy register for emergency SGPR spills
DeltaFile
+92-0llvm/test/CodeGen/AMDGPU/sgpr-spill-to-vmem-scc-clobber-reserved-exec-copy.mir
+71-2llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
+10-8llvm/test/CodeGen/AMDGPU/bug-undef-spilled-agpr.mir
+14-4llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+7-3llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
+4-2llvm/test/CodeGen/AMDGPU/eliminate-frame-index-select.ll
+198-192 files not shown
+206-218 files

FreeBSD/src 18a5549lib/msun/amd64 Makefile.inc s_fma_avx.S, lib/msun/src s_fmaf.c s_fma.c

lib/msun amd64: use AVX FMA instructions for fma(3) and fmaf(3) when available

Utilize the ARCHLEVEL framework from libc/amd64/string to provide the
way for runtime selection of the implementation, if wanted.

Reviewed by:    fuz, kfv
Discussed with: kargl
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59462
DeltaFile
+24-0lib/msun/amd64/s_fma_avx.S
+24-0lib/msun/amd64/s_fmaf_avx.S
+10-1lib/msun/src/s_fmaf.c
+10-1lib/msun/src/s_fma.c
+8-1lib/msun/amd64/Makefile.inc
+76-35 files

FreeBSD/src b45fd24lib/msun Makefile

lib/msun: move the calculation of LIBC_SRCTOP earlier

which makes the variable available for machine/Makefile.inc usage.

Reviewed by:    fuz, kfv
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D59462
DeltaFile
+5-4lib/msun/Makefile
+5-41 files