LLVM/project 97a5889clang/docs ReleaseNotes.md, clang/lib/Sema SemaAccess.cpp

[Clang][Sema] Don't delay the access check when computing implicit deletion (#210254)

Sema::isMemberAccessibleForDeletion treats AR_delayed as unreachable,
but CheckAccess returns AR_delayed whenever it runs inside an enclosing
delayed-diagnostics scope. That happens when deletion checking runs
synchronously while parsing a later declaration -- e.g. while explaining
why a defaulted operator<=> is deleted for an expression in that
declaration's initializer. The caller cannot consume a delayed
diagnostic, so letting CheckAccess delay always hits
llvm_unreachable("cannot delay =delete computation") and crashes.

Force an immediate answer by wrapping the CheckAccess call in
DelayedDiagnostics.pushUndelayed()/popUndelayed() via llvm::scope_exit,
mirroring the existing Sema::CheckEnableIf pattern in SemaOverload.cpp.

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

Co-authored-by: Claude-Sonnet
DeltaFile
+14-0clang/test/SemaCXX/cxx20-default-compare.cpp
+10-0clang/lib/Sema/SemaAccess.cpp
+4-0clang/docs/ReleaseNotes.md
+28-03 files

LLVM/project 9d38605llvm/lib/Target/AArch64 AArch64Subtarget.h, llvm/test/CodeGen/AArch64 aarch64-no-mov-spill-chain.ll ragreedy-local-interval-cost.ll

Revert "[AArch64] Enable Spillage Copy Elimination by default (#186093)"

This reverts commit cf30e4b5c2d55e217ade2483c4672f2488da48df.
DeltaFile
+0-403llvm/test/CodeGen/AArch64/aarch64-no-mov-spill-chain.ll
+31-21llvm/test/CodeGen/AArch64/ragreedy-local-interval-cost.ll
+0-1llvm/lib/Target/AArch64/AArch64Subtarget.h
+31-4253 files

LLVM/project 8b690a0mlir/test/Conversion/VectorToLLVM vector-to-llvm-interface.mlir, mlir/test/Dialect/Vector vector-mem-transforms.mlir invalid.mlir

[mlir][vector] Make CompressstoreOp + ExpandloadOp support scalable vectors (#210288)

Extends `vector.compressstore` + `vector.expandload` to support scalable
vectors and updates relevant tests.

An e2e test for `vector.compressstore` is added. For
`vector.expandload`, we need to wait for QEMU support:
https://github.com/llvm/llvm-project/issues/210942.
DeltaFile
+214-0mlir/test/Integration/Dialect/Vector/CPU/ArmSVE/compress.mlir
+41-12mlir/test/Conversion/VectorToLLVM/vector-to-llvm-interface.mlir
+50-0mlir/test/Dialect/Vector/vector-mem-transforms.mlir
+14-15mlir/test/Dialect/Vector/invalid.mlir
+24-0mlir/test/Dialect/Vector/vector-dropleadunitdim-transforms.mlir
+20-0mlir/test/Dialect/Vector/ops.mlir
+363-272 files not shown
+371-338 files

LLVM/project bb22aa8llvm/lib/IR Constants.cpp

[IR] Slightly optimize getElementAsInteger() (#211550)

This regressed with the introduction of the byte type, because
getElementPointer() calls getElementByteSize() calls
getPrimitiveSizeInBits(), but the switch used getScalarTypeInBits(),
which means we need to do two separate calls for the element size. Use
getElementByteSize() in both places so these can be CSEd.
DeltaFile
+10-10llvm/lib/IR/Constants.cpp
+10-101 files

LLVM/project dcbf875mlir/lib/Dialect/SparseTensor/Transforms SparseVectorization.cpp, mlir/test/Dialect/SparseTensor sparse_vector_coo.mlir

[mlir][sparse] Avoid vectorizing non-contiguous COO coordinate loads (#211004)

`SparseVectorization` assumes direct loop accesses (`a[lo:hi]`) are
contiguous and vectorizes them with `vector.maskedload/maskedstore`.
This is false for `sparse_tensor.coordinates` of a level inside a
trailing AoS COO region, whose buffer is interleaved with other levels:
a silent miscompile.

The true stride is already known from the tensor's encoding, even though
the memref type is still dynamic at this point. Use it to fall back to a
scalar loop when the stride is provably non-unit.

---------

Signed-off-by: Federico Bruzzone <federico.bruzzone.i at gmail.com>
DeltaFile
+105-0mlir/test/Dialect/SparseTensor/sparse_vector_coo.mlir
+50-0mlir/lib/Dialect/SparseTensor/Transforms/SparseVectorization.cpp
+155-02 files

LLVM/project 63a847allvm/test/Transforms/LoopVectorize/AArch64 interleave-with-gaps.ll reduction-recurrence-costs-sve.ll

Revert "[LV] Allow scalable epilogue VFs matching the MainLoop VF (#208686)"

This reverts commit 308393ede14cc8533d1be122b5df88bf9ba4173b.
DeltaFile
+53-61llvm/test/Transforms/LoopVectorize/AArch64/interleave-with-gaps.ll
+38-38llvm/test/Transforms/LoopVectorize/AArch64/reduction-recurrence-costs-sve.ll
+27-27llvm/test/Transforms/LoopVectorize/AArch64/sve-epilog-vect.ll
+17-24llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse.ll
+19-14llvm/test/Transforms/LoopVectorize/AArch64/load-cast-context.ll
+13-13llvm/test/Transforms/LoopVectorize/AArch64/induction-costs-sve.ll
+167-1772 files not shown
+185-1928 files

LLVM/project d2823bfclang/include/clang/StaticAnalyzer/Core/PathSensitive SMTConv.h, clang/test/Analysis/z3 z3-crosscheck.c

[analyzer][z3] Fix crash in Z3 SMTConv when casting atomic int (#211489)

CPP-7675

(cherry picked from commit f953ed4ec657bef2b92b798faa2872b75f1f4e81)
DeltaFile
+8-0clang/test/Analysis/z3/z3-crosscheck.c
+2-2clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConv.h
+10-22 files

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

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

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

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

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

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

LLVM/project 9440472clang/test/Driver/flang multiple-inputs-mixed.f90 runtimes.f90

Revert "[NFC][clang][Driver] Add tests for --driver-mode=flang"

Reverts llvm/llvm-project#207658 due to buildbot failure
DeltaFile
+0-22clang/test/Driver/flang/multiple-inputs-mixed.f90
+0-8clang/test/Driver/flang/runtimes.f90
+0-302 files

LLVM/project bd3546elldb/packages/Python/lldbsuite/test/tools/lldb_dap testcase.py, lldb/test/API/tools/lldb-dap/attach TestDAP_attach.py TestDAP_attachByPortNum.py

[lldb-dap] Migrate DAP attach tests. (#210814)

Address some issues with the previous tests.

- Always wait for the continued event after sending a continue request.
since the continue response is just an acknowlegement that we send a
continue packet.

- Retry reading stdin if it has an error when the debugger attaches.

- Update and enable the attachByPortNum test, this may now run on NetBSD
and Windows. will try to enable in a different PR.
DeltaFile
+100-95lldb/test/API/tools/lldb-dap/attach/TestDAP_attach.py
+73-106lldb/test/API/tools/lldb-dap/attach/TestDAP_attachByPortNum.py
+79-73lldb/test/API/tools/lldb-dap/attach-commands/TestDAP_attachCommands.py
+27-1lldb/packages/Python/lldbsuite/test/tools/lldb_dap/testcase.py
+8-17lldb/test/API/tools/lldb-dap/attach-commands/main.c
+15-4lldb/test/API/tools/lldb-dap/attach/main.c
+302-2962 files not shown
+326-3018 files

LLVM/project 728522blldb/test/API/tools/lldb-dap/step TestDAP_step.py, lldb/test/API/tools/lldb-dap/stepInTargets TestDAP_stepInTargets.py

[lldb-dap] Miragte the DAP step and stop hooks tests (#209936)

Migrated Tests:

- TestDAP_step.py
- TestDAP_stepInTargets.py
- TestDAP_stop_hooks.py
DeltaFile
+74-82lldb/test/API/tools/lldb-dap/step/TestDAP_step.py
+41-75lldb/test/API/tools/lldb-dap/stepInTargets/TestDAP_stepInTargets.py
+11-9lldb/test/API/tools/lldb-dap/stop-hooks/TestDAP_stop_hooks.py
+126-1663 files