LLVM/project 62888fd — llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 sjlj-shadow-stack-dead-eflags.ll

Reapply "X86: Mark the dead EFLAGS clobbers in the SjLj expansions (#227271)" (#231476) (#231522)

This reverts commit 0e802c072a9f7f7845d83e57fd1baea9f5b1cad3.
DeltaFile
+113-0llvm/test/CodeGen/X86/sjlj-shadow-stack-dead-eflags.ll
+10-5llvm/lib/Target/X86/X86ISelLowering.cpp
+123-52 files

LLVM/project c58c9cb — llvm/test/CodeGen/AMDGPU/GlobalISel ashr.ll lshr.ll

[AMDGPU][GISel] Match constrained shifts across regbank copies (#212097)

The constrained shift PatFrags already drop an (and amt, mask) that
covers the low log2(bitwidth) bits of a shift amount, but GlobalISel
never matched them after RegBankLegalize. G_CONSTANT stays in the SGPR
bank, so a VGPR G_AND reads the mask through a COPY, and an SGPR G_AND
feeding a VGPR shift has a COPY on the amount. GIM_CheckOpcode rejected
the rule before isUnneededShiftMask ran.

Set GIIgnoreCopies on the existing csh_mask_* and cshl_/csrl_/csra_
PatFrags so the matcher looks through those copies without changing the
pattern shape. isUnneededShiftMask uses
getIConstantVRegValWithLookThrough to read the SGPR constant. GISelFlags
do not affect SelectionDAG.

Co-authored by Cursor
DeltaFile
+2,872-3,442llvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll
+2,649-3,150llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
+316-0llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-shift-amount-mask.mir
+15-33llvm/test/CodeGen/AMDGPU/GlobalISel/lshr.ll
+48-0llvm/test/CodeGen/AMDGPU/GlobalISel/regbanklegalize-fadd-v2-fneg-lo.ll
+14-32llvm/test/CodeGen/AMDGPU/GlobalISel/ashr.ll
+5,914-6,6575 files not shown
+5,955-6,71211 files

LLVM/project f0277c5 — llvm/lib/Target/AMDGPU SIInstrInfo.td

[AMDGPU] Correct the SDTypeProfile for AMDGPUISD::PC_ADD_REL_OFFSET. (#231369)

The operands are two i32s rather than an iPTR. See the code in
buildPCRelGlobalAddress.

Found by adding is SDTCisSameAs to SDNodeInfo::verifyNode
DeltaFile
+1-1llvm/lib/Target/AMDGPU/SIInstrInfo.td
+1-11 files

LLVM/project 7e13b26 — offload/libompaccsupport device.cpp Mapping.cpp, offload/libomptarget omptarget.cpp private.h

[Offload][OpenMP] Report source location of data transfers and synchr… (#223730)

…onization

This PR improves `LIBOMPTARGET_INFO` diagnostics so data-transfer and
synchronization messages carry a source location, and so
runtime-internal transfers show a meaningful name instead of `unknown`.

### Changes
- Thread the region's source location (`ident_t *Loc`) through the
submit/retrieve/copy-info paths and append `, at <file>:<line>:<col>` to
"Copying data…" messages (emitting nothing when no location is
available, avoiding `unknown:0:0`).
- Emit a new `Waiting for asynchronous operations to complete` message,
with source location, before the runtime synchronizes.
- Add an optional name for runtime-internal transfers so they report
`DeviceEnvironment` / `IndirectCallTable` instead of `unknown`.

### Effect

    [47 lines not shown]
DeltaFile
+50-0offload/test/offloading/info_nowait.c
+21-10offload/libompaccsupport/Mapping.cpp
+11-6offload/libompaccsupport/device.cpp
+17-0offload/libomptarget/private.h
+6-5offload/libomptarget/omptarget.cpp
+7-3offload/test/offloading/info.c
+112-245 files not shown
+128-3111 files

LLVM/project 8707b62 — mlir/test/Interfaces/DataLayoutInterfaces query.mlir

[mlir] Check alloc_size for every type in query.mlir

Assisted-by: Cursor / Claude Opus 5.5
DeltaFile
+30-0mlir/test/Interfaces/DataLayoutInterfaces/query.mlir
+30-01 files

LLVM/project 73dd189 — clang/lib/CIR/CodeGen CIRGenModule.h CIRGenModule.cpp, clang/test/CIR/CodeGenSYCL unique-stable-name.cpp

[CIR][SYCL] Implement SYCLUniqueStableNameExpr codegen (#231209)

Adds `SYCLUniqueStableNameExpr` support in CIR.
DeltaFile
+145-0clang/test/CIR/CodeGenSYCL/unique-stable-name.cpp
+19-5clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
+13-0clang/lib/CIR/CodeGen/CIRGenModule.cpp
+5-0clang/lib/CIR/CodeGen/CIRGenModule.h
+182-54 files

FreeBSD/src 74d2a0b — sys/netpfil/pf pf_nl.h pf_nl.c

pf: Parse the GETSTATES state id as 64 bits

The GETSTATES dump sends PF_ST_ID as a u64, but the request parser
reads it as a u32 and rejects an id taken from the dump with EINVAL.
Nothing in base sends PF_ST_ID.  Parse and document it as a u64.

Reviewed by:            kp
Fixes:                  2cef62886dc7 ("pf: convert state retrieval to netlink")
MFC after:              1 week
Sponsored by:           Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D60543
DeltaFile
+2-2sys/netpfil/pf/pf_nl.c
+1-1sys/netpfil/pf/pf_nl.h
+3-32 files

LLVM/project bcd3e6f — clang/include/clang/CIR/Dialect/IR CIRAttrs.td

[CIR] Address reviewer feedback

Assisted-by: Cursor / claude-opus-5.5
DeltaFile
+18-21clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+18-211 files

LLVM/project 5ed3550 — llvm/lib/Transforms/IPO FunctionAttrs.cpp, llvm/test/Transforms/FunctionAttrs arg_returned.ll nocapture.ll

FunctionAttrs: Check all uses when inferring captures for argument SCCs

When merging the capture components of an SCC of arguments, only the
first use of each argument was considered, because of a misplaced break.
If an argument was passed to another argument in the SCC first and to a
capturing argument outside of it later, it was incorrectly inferred to
not be captured.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+48-0llvm/test/Transforms/FunctionAttrs/nocapture.ll
+2-2llvm/test/Transforms/FunctionAttrs/arg_returned.ll
+0-1llvm/lib/Transforms/IPO/FunctionAttrs.cpp
+50-33 files

NetBSD/pkgsrc cTjcEpa — doc CHANGES-2026

   doc: Updated mail/exim to 4.100.1nb3
VersionDeltaFile
1.6960+2-1doc/CHANGES-2026
+2-11 files

NetBSD/pkgsrc vieXo6d — mail/exim distinfo Makefile, mail/exim/patches patch-src_miscmods_dmarc__common.c

   mail/exim: Fix syntax error of data file generated by native dmarc support

   * Bump PKGREVISION.
VersionDeltaFile
1.1+24-0mail/exim/patches/patch-src_miscmods_dmarc__common.c
1.227+2-2mail/exim/Makefile
1.100+2-1mail/exim/distinfo
+28-33 files

FreeBSD/ports 1f1896c — math/octave-forge-drafting distinfo Makefile

math/octave-forge-drafting: Update to 0.2.2.
DeltaFile
+5-3math/octave-forge-drafting/Makefile
+3-3math/octave-forge-drafting/distinfo
+8-62 files

FreeBSD/src 9664345 — lib/libpfctl libpfctl.h libpfctl.c

libpfctl: Return max_win and mss of state peers

The kernel sends PF_STP_MAX_WIN and PF_STP_MSS for both peers of a
state, but struct pfctl_state_peer has no fields for them and libpfctl
dropped them.  Add the fields and parse the attributes.

Reviewed by:            kp
Sponsored by:           Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D60544
DeltaFile
+2-0lib/libpfctl/libpfctl.h
+2-0lib/libpfctl/libpfctl.c
+4-02 files

LLVM/project 6b4cd99 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/AArch64 loop-accumulator-reduction.ll

[SLP]Discard non-associative loop accumulator

A two-value reduction is unordered by commutativity alone; the
accumulator reassociates it across loop iterations. The costing
also double-credited the loop-carried root.

Fixes #231212

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/231529
DeltaFile
+16-16llvm/test/Transforms/SLPVectorizer/AArch64/loop-accumulator-reduction.ll
+21-7llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+8-12llvm/test/Transforms/SLPVectorizer/X86/loop-accumulator-no-reassoc.ll
+45-353 files

LLVM/project 04ce25b — llvm/lib/Target/AMDGPU SIPeepholeSDWA.cpp, llvm/test/CodeGen/AMDGPU sdwa-peephole-instr-combine-sel-dst.mir sdwa-peephole-instr-combine-sel-src.mir

[AMDGPU] Fix SDWA selection combining (#218512)

Fix miscompile when the combined SDWA instruction computes a different
value than the two instructions it replaces

- Stop merging dst_sel, because two dst_sel cannot be merged into one
- Stop merging equal high src_sel, because the operand already shifted
its field down to the low bits
- Use the operand sext only when the instruction reads the whole dword,
otherwise keep the instruction sext
DeltaFile
+87-0llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr-combine-sel-src.mir
+35-40llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
+10-8llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr-combine-sel-dst.mir
+132-483 files

LLVM/project 02f9f41 — llvm/test/Transforms/SLPVectorizer/X86 loop-accumulator-no-reassoc.ll

[SLP][NFC]Add test with incorrect flags propagations, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/231526
DeltaFile
+80-0llvm/test/Transforms/SLPVectorizer/X86/loop-accumulator-no-reassoc.ll
+80-01 files

LLVM/project d0a5603 — llvm/include/llvm/Support KnownFPClass.h, llvm/lib/Support KnownFPClass.cpp

[KnownFPClass] Remove propagateDenormal and propagateCanonicalizingSrc (#229898)

Removes `propagateDenormal` and `propagateCanonicalizingSrc` since there
are no remaining in-tree uses for these functions, and because there are
no unit tests for these functions.

https://github.com/llvm/llvm-project/pull/225904 removes the last
remaining in-tree uses for
`propagateDenormal` and `propagateCanonicalizingSrc`, which was only
used to handle the special case of `ldexp(x, 0) --> x`.

It may be worth exploring re-adding these functions back in the future,
as they are non-trivial to implement.

Also removed references to `propagateCanonicalizingSrc` in the
documentation for `KnownFPClass::canonicalize`.
DeltaFile
+0-37llvm/lib/Support/KnownFPClass.cpp
+1-19llvm/include/llvm/Support/KnownFPClass.h
+1-562 files

LLVM/project d231352 — libc/cmake/modules LLVMLibCObjectRules.cmake

[libc] Make entrypoint object linting incremental (#231311)

The entrypoint lint rules used add_custom_target directly, forcing all
lint targets to re-run every time libc-lint was invoked.

Switch to add_custom_command with a stamp file so targets are only
re-linted when their sources or dependencies change.

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+12-8libc/cmake/modules/LLVMLibCObjectRules.cmake
+12-81 files

LLVM/project 0ffa235 — llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/NVPTX insertelt-dynamic.ll

[DAGCombiner] `visitANY_EXTEND` - fold `(aext (freeze (load x)))` -> `(aext (truncate (freeze (extload x))))` (#218454)

Adds the fold `aext (freeze (load x))` (no multiple uses of `load x`
supported with `freeze`):

1. `freeze (extload x )` when one use of `freeze (load x)`
2. `freeze (extload x )` & when multiple uses of `freeze (load x)` are
there, the `freeze (load x)` is replaced with `truncate (freeze (extload
x ))`

while keeping the existing behaviour where `aext (load x)` is folded to:

1. `extload x` when one use of `load x`
2. `extload x` & when multiple uses of `load x` are there, the `load x`
is replaced with `truncate (extload x )`
DeltaFile
+484-602llvm/test/CodeGen/X86/vector-compress.ll
+34-63llvm/test/CodeGen/X86/var-permute-128.ll
+43-53llvm/test/CodeGen/NVPTX/insertelt-dynamic.ll
+37-37llvm/test/CodeGen/X86/midpoint-int.ll
+36-26llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+25-25llvm/test/CodeGen/X86/shift-i512.ll
+659-8066 files not shown
+685-83212 files

LLVM/project c2236e7 — llvm/test/CodeGen/AMDGPU memory-legalizer-single-wave-workgroup-lds-dma-async.ll memory-legalizer-single-wave-workgroup-lds-dma.ll

[NFC][AMDGPU] Pre-commit tests for workgroup to wavefront demotion
DeltaFile
+3,158-0llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-memops.ll
+181-0llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-lds-dma.ll
+49-0llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-lds-dma-async.ll
+3,388-03 files

LLVM/project a7e7b6c — llvm/test/CodeGen/AMDGPU memory-legalizer-single-wave-workgroup-lds-dma-async.ll memory-legalizer-single-wave-workgroup-lds-dma.ll

Remove `amdgpu_kernel` on tests

Needed to add a bit of extra plumbing on some tests so that they still
test the same thing
DeltaFile
+2,021-1,601llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-memops.ll
+96-123llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-lds-dma.ll
+15-25llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-lds-dma-async.ll
+2,132-1,7493 files

LLVM/project 4f738bb — llvm/test/CodeGen/AMDGPU memory-legalizer-single-wave-workgroup-lds-dma-async.ll memory-legalizer-single-wave-workgroup-lds-dma.ll

Add `nounwind` and run tests to the end
DeltaFile
+2,874-3,784llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-memops.ll
+216-154llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-lds-dma.ll
+48-30llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-lds-dma-async.ll
+3,138-3,9683 files

LLVM/project abe9dad — llvm/test/CodeGen/AMDGPU memory-legalizer-single-wave-workgroup-memops.ll

Add more monotonic tests
DeltaFile
+828-0llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-memops.ll
+828-01 files

LLVM/project b7c1796 — llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 vector-shuffle-combining-avx2.ll

[X86] combineX86ShufflesRecursively - bail on any illegal type or if the type is larger than the root (#231505)

MVT now supports various non-pow2 types, so we can't just check for
isSimple() and assert on the sizes anymore - check for legality instead.

Fixes #231453
DeltaFile
+18-0llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll
+6-5llvm/lib/Target/X86/X86ISelLowering.cpp
+24-52 files

LLVM/project f4c7eb7 — llvm/lib/Transforms/Utils SimplifyLibCalls.cpp, llvm/test/Transforms/InstCombine float-shrink-compare.ll sqrt.ll

[SimplifyLibCalls] Fold more FP libcalls to intrinsics. (#227697)

Previously SimplifyLibCalls would only replace a subset of libcalls with
intrinsics.

It looks like a number of intrinsics are currently not handled, but that
looks unintentional unless I am missing something.

This patch adds a number of missing intrinsics to be converted.

This should ensure middle-end passes only have to deal with the
intrinsic versions.

Should mostly be NFC end-to-end:
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/1505.

PR: https://github.com/llvm/llvm-project/pull/227697
DeltaFile
+483-0llvm/test/Transforms/InstCombine/X86/fp-libcall-to-intrinsic.ll
+25-3llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
+5-5llvm/test/Transforms/InstCombine/sqrt.ll
+1-1llvm/test/Transforms/InstCombine/float-shrink-compare.ll
+514-94 files

LLVM/project 80ac744 — libc/cmake/modules LLVMLibCCompileOptionRules.cmake LLVMLibCTestRules.cmake

[libc][cmake] Cache compile options from config and arch to speed up configuration. (#225438)

Caching the results of `_get_compile_options_from_config`,
`_get_compile_options_from_arch`, and `_get_common_compile_options`
reduces redundant option computation during the CMake configuration
stage across hundreds of entrypoint objects. Also adds an early return
in `_get_compile_options_from_flags` when no flags are supplied.
DeltaFile
+43-9libc/cmake/modules/LLVMLibCTestRules.cmake
+15-6libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
+58-152 files

FreeBSD/src b43c4d8 — sys/dev/bnxt/bnxt_en bnxt.h bnxt_mpc.c

if_bnxt: fix powerpc build of the MPC ring code

powerpc has no 16-bit acquire/release atomics, so the
atomic_load_acq_16() and atomic_store_rel_16() calls on the MPC TX
ring indices fail to build there. Make the producer and consumer
indices 32 bits wide and use the 32-bit primitives.

Reviewed by:    gallatin, chandrakanth.patil_broadcom.com
Sponsored by:   Broadcom Inc
MFC after:      1 week
Fixes: 088a42c0ff76 ("if_bnxt: add MPC (Mid-Path Channel) ring infrastructure")
Differential Revision: https://reviews.freebsd.org/D60698
DeltaFile
+7-8sys/dev/bnxt/bnxt_en/bnxt_mpc.c
+2-2sys/dev/bnxt/bnxt_en/bnxt.h
+9-102 files

LLVM/project e5f8dce — llvm/docs ReleaseNotes.md, llvm/lib/CodeGen/SelectionDAG ScheduleDAGFast.cpp ScheduleDAGRRList.cpp

[SelectionDAG] Don't unfold a load in the pre-RA schedulers if the unfolded load already exists (#226652)

Fixes #204079

When the pre-RA scheduler has to duplicate a flags-producing instruction
with a folded load (a `CMP32mi` here) to break an EFLAGS interference,
it first tries to unfold it into a plain load and a register operation.
`X86InstrInfo::unfoldMemoryOperand` builds that load with
`getMachineNode`, which CSEs it with a load of the same address that is
already in the DAG, and `TryUnfoldSU` then redirects the chain uses of
the folded node to that existing load. Its chain result already had
users, so one of the redirected `TokenFactor`s became a duplicate of
another one and `ReplaceAllUsesOfValueWith` deleted it, while the
scheduler still had an SUnit pointing at it. The emitter later ran into
the freed node, hence the `<<Deleted Node!>>` in the report.
`ScheduleDAGFast` carries the same code and crashes the same way with
`-pre-RA-sched=fast`.

Both schedulers now give up on unfolding when the unfolded load already

    [7 lines not shown]
DeltaFile
+119-0llvm/test/CodeGen/X86/pr204079.ll
+32-56llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
+55-0llvm/test/CodeGen/X86/sched-unfold-existing-load.ll
+18-29llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
+5-2llvm/test/CodeGen/X86/pr37916.ll
+5-0llvm/docs/ReleaseNotes.md
+234-876 files

LLVM/project 10b7dcc — llvm/test/Bitcode compatibility.ll, llvm/test/CodeGen/WebAssembly lower-em-sjlj.ll lower-em-ehsjlj.ll

IR: Add wasm_emscripten_invokecc calling convention keyword

WASM_EmscriptenInvoke had no textual IR spelling and was printed as
cc99. Tests using cc99 as an arbitrary custom convention now use cc1000.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+5-5llvm/test/Transforms/DeadStoreElimination/noop-stores.ll
+3-3llvm/test/Transforms/LowerGuardIntrinsic/with-calling-conv.ll
+3-3llvm/test/CodeGen/WebAssembly/lower-em-exceptions.ll
+2-2llvm/test/CodeGen/WebAssembly/lower-em-sjlj.ll
+2-2llvm/test/CodeGen/WebAssembly/lower-em-ehsjlj.ll
+4-0llvm/test/Bitcode/compatibility.ll
+19-156 files not shown
+30-1712 files

LLVM/project 9ebbef5 — llvm/lib/Target/X86 X86ISelLowering.cpp X86InstrAVX512.td, llvm/test/CodeGen/X86 avx512fp16-novl.ll

[X86][FP16] Widen v8f16/v16f16 compares to 512 bits without VLX (#231437)

With AVX512FP16 but without AVX512VL, v8f16/v16f16 compares are
scalarized: one VUCOMISH and SETcc per element, then the mask is rebuilt
with VPINSRB/VPMOVZXBQ/VPTESTMQ. This also makes the FP logic conversion
in convertIntLogicToFPLogic a loss for scalar f16 compares, which it
combines as v8f16 compares.

Mark v8f16/v16f16 SETCC as Custom whenever AVX512FP16 is available, and
select the resulting CMPM nodes without VLX by widening them to a
512-bit VCMPPH, as is already done for f32 and f64. Strict compares are
left alone, since widening them could raise exceptions for the upper
elements.

The first commit precommits tests in `avx512fp16-novl.ll` (register,
masked and broadcast forms, and a pair of scalar compares); the existing
`select` test also improves.

Split out of #226222, so that its f16 FP logic conversion no longer

    [2 lines not shown]
DeltaFile
+121-34llvm/test/CodeGen/X86/avx512fp16-novl.ll
+5-0llvm/lib/Target/X86/X86InstrAVX512.td
+4-0llvm/lib/Target/X86/X86ISelLowering.cpp
+130-343 files