LLVM/project d944c39llvm/lib/Target/RISCV RISCVISelDAGToDAG.cpp, llvm/test/CodeGen/RISCV lpad-setjmp-regmask.ll

[RISCV] Preserve call-preserved reg mask for LPAD-aligned calls (#210868)

RISCVISelDAGToDAG's lowering of RISCVISD::LPAD_CALL / LPAD_CALL_INDIRECT
to PseudoCALLLpadAlign / PseudoCALLIndirectLpadAlign (introduced in
#177515) only copied the callee, lpad label, chain, and glue operands,
dropping the argument-register and register-mask operands in between.

Without the register-mask operand, the register allocator treats these
calls as clobbering nothing but ra, so values live across the call are
not spilled/reloaded even though the callee is free to clobber
caller-saved registers. This caused a miscompile where a pointer held
live across a call to getcontext() (a returns_twice function) was
corrupted after the call returned, leading to a SIGSEGV in
llvm-test-suite's siod test.

Fix the operand copy to include the argument-register and register-mask
operands, matching the pseudo-instruction operands of a regular
PseudoCALL/PseudoCALLIndirect.


    [2 lines not shown]
DeltaFile
+35-0llvm/test/CodeGen/RISCV/lpad-setjmp-regmask.ll
+13-3llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
+48-32 files

LLVM/project 01e4c77clang/lib/Sema DeclSpec.cpp, clang/test/SemaCXX auto-cxx98.cpp

[clang] Emit diagnostic for typedef+auto missed case in C++98/C23 (#210141)

CheckTypeSpec() converted 'auto' to a storage-class specifier without
checking whether 'typedef' was already set. [dcl.stc]p1 unconditionally
forbids typedef alongside any storage-class specifier regardless of C++
version.

This change add the check for tydef in the code handling auto.

(cherry picked from commit 34436db53d3e4ad36e86019109fb5ceee9bb4d8c)
DeltaFile
+26-10clang/lib/Sema/DeclSpec.cpp
+9-1clang/test/SemaCXX/auto-cxx98.cpp
+35-112 files

LLVM/project b24ef7epolly/test/IstAstInfo AstGenComputeOut.ll

[Polly][test] Add missing REQUIRES line (#210578)

The test was added by #201859. It's test uses --debug-only which
requires an LLVM_ENABLE_ASSERTIONS-build

(cherry picked from commit 5cae63bd0d31118a15481fc7e5b063a73492d77d)
DeltaFile
+2-0polly/test/IstAstInfo/AstGenComputeOut.ll
+2-01 files

LLVM/project 2acc07fpolly/include/polly DependenceInfo.h, polly/lib/Analysis DependenceInfo.cpp

[Polly] Guard ISL ast gen compute out (#201859)

Bounds the maximum ISL operations allowed for ISL AST Generation.

Fixes: https://github.com/llvm/llvm-project/issues/201801
(cherry picked from commit 790882669323c7255cb761755bb2d37d3b344452)
DeltaFile
+130-0polly/test/IstAstInfo/AstGenComputeOut.ll
+34-27polly/lib/Analysis/DependenceInfo.cpp
+35-13polly/lib/CodeGen/IslAst.cpp
+7-5polly/include/polly/DependenceInfo.h
+206-454 files

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

[mlir][vector] Update CastAway{Extract|Insert}StridedSliceLeadingOneDim (#210902)

Update both:
  * CastAwayExtractStridedSliceLeadingOneDim
  * CastAwayInsertStridedSliceLeadingOneDim

to use vector.shape_cast, rather than vector.extract and
vector.broadcast, 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
+15-16mlir/test/Dialect/Vector/vector-dropleadunitdim-transforms.mlir
+8-8mlir/lib/Dialect/Vector/Transforms/VectorDropLeadUnitDim.cpp
+23-242 files

LLVM/project b9f17ddllvm/lib/Target/WebAssembly WebAssemblyAsmPrinter.cpp WebAssemblyCodeGenPassBuilder.cpp

[WebAssembly] Port AsmPrinter

Lots of boilerplate, but this is standard and there's probably not much
we can do to improve the situation until we have deleted the LegacyPM.

Reviewers: dschuff, sbc100, aheejin

Pull Request: https://github.com/llvm/llvm-project/pull/210448
DeltaFile
+36-0llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
+30-1llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+22-0llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h
+88-13 files

LLVM/project fb41ae4flang/lib/Lower ConvertExpr.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-load-global.mir legalize-load-local.mir

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+9,398-9,218llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir
+6,993-6,921llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-local.mir
+13,068-0llvm/test/CodeGen/RISCV/GlobalISel/atomicrmw-max-min-umax-umin.ll
+5,803-5,808llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir
+0-7,750flang/lib/Lower/ConvertExpr.cpp
+3,842-3,722llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-constant.mir
+39,104-33,4193,612 files not shown
+277,787-175,5663,618 files

LLVM/project c281136llvm/lib/Target/WebAssembly WebAssemblyMCLowerPrePass.cpp WebAssembly.h

[WebAssembly] Port WebAssemblyMCLowerPrePass

Standard NewPM pass porting.

Reviewers: sbc100, dschuff, aheejin

Pull Request: https://github.com/llvm/llvm-project/pull/210440
DeltaFile
+41-18llvm/lib/Target/WebAssembly/WebAssemblyMCLowerPrePass.cpp
+9-2llvm/lib/Target/WebAssembly/WebAssembly.h
+6-0llvm/lib/Target/WebAssembly/WebAssemblyPassRegistry.def
+2-2llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+2-1llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+60-235 files

LLVM/project 735ec82clang/docs UsersManual.md, flang/lib/Lower ConvertExpr.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+13,068-0llvm/test/CodeGen/RISCV/GlobalISel/atomicrmw-max-min-umax-umin.ll
+0-7,750flang/lib/Lower/ConvertExpr.cpp
+2,165-2,290clang/docs/UsersManual.md
+2,559-652llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.atomic.dim.a16.ll
+1,270-764llvm/test/CodeGen/AMDGPU/load-constant-i1.ll
+0-1,992llvm/test/CodeGen/X86/expand-false-deps.ll
+19,062-13,4482,153 files not shown
+95,450-48,3602,159 files

FreeNAS/freenas 2085356src/middlewared/middlewared/plugins/cloud_sync lock.py

Simplify cloud_sync SyncRWLock internals

I noticed some changes to this code in a previous PR that has
since been merged and realized we're being inefficient when
it comes to the locking primitives. SyncRWLock kept a separate
threading.Lock and wrapped it in a Condition, but a Condition
can own its lock directly. The extra attribute is gone and
every critical section now enters the Condition itself.
Behavior is identical since the lock is never acquired reentrantly.

Also removes FsLockManager._choose_lock, dead code superseded by
_choose_sync_lock.

No public API changes. The only consumers use the manager's lock()
context managers, which are unchanged.
DeltaFile
+5-13src/middlewared/middlewared/plugins/cloud_sync/lock.py
+5-131 files

LLVM/project ea99db7llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPUtils.cpp SLPUtils.h

[SLP]Combine fma and fmuladd into a single vector fma node

fmuladd permits the fused form and fma requires it, so a mixed bundle is
vectorized as one vector fma, with fma as the representative to avoid
weakening the fma lanes; an all-fmuladd bundle still stays fmuladd.

Reviewers: bababuck, RKSimon, hiraditya

Pull Request: https://github.com/llvm/llvm-project/pull/211291
DeltaFile
+31-6llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+10-20llvm/test/Transforms/SLPVectorizer/X86/fma-fmuladd-mix.ll
+9-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+8-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
+58-264 files

LLVM/project 8d8ba28llvm/lib/Target/AMDGPU MIMGInstructions.td, llvm/test/CodeGen/AMDGPU llvm.amdgcn.image.atomic.flt.ll

[AMDGPU] Add image_atomic_{min,max}_num_flt support to gfx13

GFX13 uses the num_flt suffix as the default assembler name for the 32-bit
FP image atomic min/max instructions. Keep flt as a backward-compatible
alias. GFX12 is unchanged (flt default, num_flt alias).
DeltaFile
+54-0llvm/test/MC/AMDGPU/gfx13_asm_vimage.s
+31-9llvm/lib/Target/AMDGPU/MIMGInstructions.td
+26-14llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.atomic.flt.ll
+6-0llvm/test/MC/AMDGPU/gfx13_asm_vimage_alias.s
+117-234 files

LLVM/project aab7e0bmlir/include/mlir/Dialect/Tosa/IR TosaTypesBase.td, mlir/test/Conversion/TosaToLinalg tosa-to-linalg-pipeline.mlir

[mlir][tosa] Combine unranked/ranked tensor types into single type (#209737)

This commit refactors the defined TOSA types to combine unranked and
ranked tensor types into a single type `TosaTensorOf`. This helps
simplify the type definitions and allows all tensor types to support
both unranked and ranked tensors.
DeltaFile
+40-68mlir/include/mlir/Dialect/Tosa/IR/TosaTypesBase.td
+20-20mlir/test/Dialect/Tosa/invalid.mlir
+5-5mlir/test/Dialect/Tosa/verifier.mlir
+1-1mlir/test/Conversion/TosaToLinalg/tosa-to-linalg-pipeline.mlir
+66-944 files

LLVM/project be86221libcxx/include/__algorithm any_of.h

[libc++] Implement any_of in terms of find_if (#207274)

This way, any optimizations in find_if will be picked up by any_of.

Closes #129310
DeltaFile
+9-7libcxx/include/__algorithm/any_of.h
+9-71 files

FreeNAS/freenas 3549e2dsrc/middlewared/middlewared/plugins/pool_ pool.py

NAS-141916 / 26.0.0-RC.1 / work-around a firmware crash on a NVMe SED capable drive that (by yocalebo) (#19390)

we sell. The gist is of the problem is that we were running TCG
initialization commands to the disks in parallel with certain NVMe
register/acquire commands. Because the new SED library is considerably
faster (just issuing commands via kernel interface) this exposed the
crash (i.e. its a race). The OEM is being notified but in the meantime
we'll work around the issue by initializing the SED drives first, and
then reload/start fenced.

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

Co-authored-by: Caleb St. John <30729806+yocalebo at users.noreply.github.com>
DeltaFile
+9-2src/middlewared/middlewared/plugins/pool_/pool.py
+9-21 files

FreeNAS/freenas 6656a26src/middlewared/middlewared/plugins/pool_ pool.py

NAS-141916 / 26.0.0-BETA.3 / work-around a firmware crash on a NVMe SED capable drive that (by yocalebo) (#19389)

we sell. The gist is of the problem is that we were running TCG
initialization commands to the disks in parallel with certain NVMe
register/acquire commands. Because the new SED library is considerably
faster (just issuing commands via kernel interface) this exposed the
crash (i.e. its a race). The OEM is being notified but in the meantime
we'll work around the issue by initializing the SED drives first, and
then reload/start fenced.

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

Co-authored-by: Caleb St. John <30729806+yocalebo at users.noreply.github.com>
DeltaFile
+9-2src/middlewared/middlewared/plugins/pool_/pool.py
+9-21 files

NetBSD/pkgsrc LZUdywAwww/firefox Makefile distinfo, www/firefox/patches patch-mozglue_misc_Now.cpp

   www/firefox: Fix segfault during audio playback

   * Bump PKGREVISION.
VersionDeltaFile
1.1+27-0www/firefox/patches/patch-mozglue_misc_Now.cpp
1.667+2-1www/firefox/Makefile
1.587+2-1www/firefox/distinfo
+31-23 files

LLVM/project b142e77llvm/lib/Target/AMDGPU AMDGPURegBankCombiner.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel clamp-minmax-const-combine.ll regbankcombiner-clamp-minmax-const.mir

[AMDGPU][GlobalISel] Don't combine uniform fmin/max into clamp/fmed3 (#211456)

Uniform fmin/fmax/fmed3 makes the reg-bank combiner produce a
clamp/fmed3 with an sgpr-banked destination. As these clamp/fmed3 only
have VALU selection patterns, the sgpr bank cannot be selected. Only
combine when the destination is vgpr-banked.
DeltaFile
+92-0llvm/test/CodeGen/AMDGPU/GlobalISel/clamp-minmax-const-combine.ll
+64-0llvm/test/CodeGen/AMDGPU/GlobalISel/regbankcombiner-clamp-minmax-const.mir
+12-0llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp
+168-03 files

LLVM/project 6245690llvm/lib/Target/PowerPC PPCISelLowering.cpp, llvm/test/CodeGen/PowerPC fp-classify-nan.ll

[PowerPC] improve performance on the isNan and !isNan function  in case of -ffp-model=strict (#204170)

For the IR representation:

isnan(x) → %0 = tail call noundef i1 @llvm.is.fpclass.f64(double %x, i32
3)
!isnan(x) → %0 = tail call noundef i1 @llvm.is.fpclass.f64(double %x,
i32 1020)

Under `-ffp-model=strict`, the generic
TargetLowering::expandIS_FPCLASS() is used to lower these when
Subtarget.hasP9Vector() && Subtarget.useCRBits() is false. However,
PowerPC has more optimal assembly sequences for isnan(x) and !isnan(x)
on POWER7/8 and generic PPC targets.
We implement a custom lowering for isnan(x) and !isnan(x) under
`-ffp-model=strict`, using `fcmpu `for POWER7/8 and generic PPC targets,
and` xscmpudp` for targets where VSX is available.
DeltaFile
+126-0llvm/test/CodeGen/PowerPC/fp-classify-nan.ll
+66-6llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+192-62 files

FreeNAS/freenas 017eba6.github/workflows lint.yml ruff.yml

Backport ruff changes
DeltaFile
+1-1.github/workflows/lint.yml
+1-1.github/workflows/ruff.yml
+2-22 files

FreeNAS/freenas 76f661dsrc/middlewared/middlewared/plugins/pool_ pool.py

NAS-141916 / 27.0.0-BETA.1 / work-around a firmware crash on a NVMe SED capable drive that (#19388)

we sell. The gist is of the problem is that we were running TCG
initialization commands to the disks in parallel with certain NVMe
register/acquire commands. Because the new SED library is considerably
faster (just issuing commands via kernel interface) this exposed the
crash (i.e. its a race). The OEM is being notified but in the meantime
we'll work around the issue by initializing the SED drives first, and
then reload/start fenced.
DeltaFile
+9-2src/middlewared/middlewared/plugins/pool_/pool.py
+9-21 files

LLVM/project d1d3891libunwind/test aarch64_za_unwind.pass.cpp

[libunwind] XFAIL the za unwind test on Apple targets older than OS 27.0 (#211379)

When linking against the system unwinder on macOS < 27, the test
fails on platforms that support SME.
DeltaFile
+4-0libunwind/test/aarch64_za_unwind.pass.cpp
+4-01 files

OpenBSD/ports yLsBuV1databases/redis/main Makefile, databases/redis/main/patches patch-deps_xxhash_xxhash_h patch-tests_modules_Makefile

   redis/main port changes:

   - use cc instead of ld to link modules for tests; when ld is run directly
   this fails on at least i386 and clang+lld sparc64 with "undefined hidden
   symbol: __guard_local". ("ld -o commandfilter.so commandfilter.xo -shared"
   vs "cc -o commandfilter.so commandfilter.xo -shared")

   - add STRICT_ALIGNMENT patch for the internal copy of xxHash

   above ok tb@

   - drop pkg/MESSAGE referring to test problems, I'm not sure what was
   happening before (many tests were failing) but they seem in pretty good
   shape at least on i386/amd64 when I run them now. a few failures but
   don't seem particularly serious..
VersionDeltaFile
1.1+17-0databases/redis/main/patches/patch-deps_xxhash_xxhash_h
1.1+14-0databases/redis/main/patches/patch-tests_modules_Makefile
1.3+1-3databases/redis/main/Makefile
1.2+0-0databases/redis/main/pkg/MESSAGE
+32-34 files

LLVM/project 882a138libcxx/test/tools/clang_tidy_checks robust_against_operator_ampersand.cpp

[libc++] Remove workaround for Clang < 20 in clang-tidy plugin (#211314)

The clang-tidy plugin is now always built with Clang >= 20, so the
workaround can be removed.
DeltaFile
+0-8libcxx/test/tools/clang_tidy_checks/robust_against_operator_ampersand.cpp
+0-81 files

LLVM/project a72f10dllvm/docs ReleaseNotes.md

[docs] Add BOLT release notes
DeltaFile
+14-0llvm/docs/ReleaseNotes.md
+14-01 files

FreeNAS/freenas 32c80b5src/middlewared/middlewared/plugins/pool_ pool.py

work-around a firmware crash on a NVMe SED capable drive that
we sell. The gist is of the problem is that we were running
TCG initialization commands to the disks in parallel with certain
NVMe register/acquire commands. Because the new SED library is
considerably faster (just issuing commands via kernel interface)
this exposed the crash (i.e. its a race). The OEM is being
notified but in the meantime we'll work around the issue by
initializing the SED drives first, and then reload/start fenced.
DeltaFile
+9-2src/middlewared/middlewared/plugins/pool_/pool.py
+9-21 files

OpenBSD/ports iUkCewWmisc/open62541 Makefile distinfo

   use DIST_TUPLE rather than hand-rolling, ok bluhm
VersionDeltaFile
1.39+7-7misc/open62541/Makefile
1.17+4-4misc/open62541/distinfo
+11-112 files

OpenBSD/ports hGqixrimisc/open62541/patches patch-tests_CMakeLists_txt

   adjust include order when building tests, so that internal headers are
   pulled in before system headers. fixes build of flavoured version if
   unflavoured is installed, as found in bulk builds when pulled in via
   p5-OPCUA-Open62541.  ok bluhm
VersionDeltaFile
1.7+19-21misc/open62541/patches/patch-tests_CMakeLists_txt
+19-211 files

LLVM/project dbee31aflang/lib/Lower/OpenMP OpenMP.cpp

format
DeltaFile
+6-2flang/lib/Lower/OpenMP/OpenMP.cpp
+6-21 files

LLVM/project 70b6743llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AArch64 ctpop.ll

[AArch64] Add a ctpop cost with CSSC (#211189)

FEAT_CSSC adds a CNT instruction that can perform ctpop. This adds a
specific cost for it to prevent us from using the neon cost.
DeltaFile
+15-10llvm/test/Analysis/CostModel/AArch64/ctpop.ll
+8-2llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+23-122 files