LLVM/project 50bf4f7 — llvm/lib/Remarks YAMLRemarkParser.cpp YAMLRemarkParser.h, llvm/unittests/Remarks YAMLRemarksParsingTest.cpp

[Remarks] Fix use-after-free of block scalar values in the YAML remark parser (#228072)

`YAMLRemarkParser::parseStr` returned `BlockScalarNode::getValue()` as is. That value lives in the YAML document's node allocator, and `next()` advances the document iterator before returning the remark, which frees it. So every argument written as a block scalar (`|`), such as LowerMatrixIntrinsics remarks, pointed at freed memory by the time the caller saw it. This affects the C API, `RemarkLinker`, MLIR remark import, `llvm-remarkutil` and `llvm-opt-report`.

Copy block scalar values into an allocator owned by the parser. The new test reads a block value after parsing the next remark. Under ASan it fails without the fix with a heap-use-after-free in `YAMLRemarkParser::next()`.

Assisted-by: Claude Code (Claude Fable 5.1).
DeltaFile
+37-0llvm/unittests/Remarks/YAMLRemarksParsingTest.cpp
+3-1llvm/lib/Remarks/YAMLRemarkParser.cpp
+4-0llvm/lib/Remarks/YAMLRemarkParser.h
+44-13 files

LLVM/project 03e7771 — llvm/lib/Target/SystemZ SystemZInstrInfo.cpp, llvm/test/CodeGen/SystemZ twoaddr-risbg-cc-liveintervals.mir

SystemZ: Don't convert AND to RISBG if CC is live

The RISBG-type replacements either don't define CC or set it with
different semantics, so the conversion dropped or clobbered a CC value
that was still used.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+59-0llvm/test/CodeGen/SystemZ/twoaddr-risbg-cc-liveintervals.mir
+2-0llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
+61-02 files

LLVM/project 7472588 — llvm/lib/Target/SystemZ SystemZInstrInfo.cpp, llvm/test/CodeGen/SystemZ twoaddr-risbg-cc-liveintervals.mir

SystemZ: Remove stale CC live range when converting AND to RISBG

convertToThreeAddress replaces an AND immediate with a dead CC def with RISBMux
neither of which defines CC. If the liveness was precomputed for the physreg,
the dead def was still incorrectly tracked in the LiveInterval.

Fixes #229045

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+90-0llvm/test/CodeGen/SystemZ/twoaddr-risbg-cc-liveintervals.mir
+5-2llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
+95-22 files

LLVM/project cb191fc — llvm/include/llvm/Analysis InstSimplifyFolder.h InstructionSimplify.h, llvm/include/llvm/IR PatternMatch.h

[InstSimplify] Simplify `bitinsert` and `bitextract`

DeltaFile
+89-0llvm/lib/Analysis/InstructionSimplify.cpp
+18-43llvm/test/Transforms/InstSimplify/bitinsert-bitextract.ll
+15-0llvm/include/llvm/IR/PatternMatch.h
+8-0llvm/include/llvm/Analysis/InstructionSimplify.h
+2-4llvm/include/llvm/Analysis/InstSimplifyFolder.h
+132-475 files

LLVM/project f7b9690 — llvm/lib/Analysis ConstantFolding.cpp, llvm/test/Transforms/InstSimplify load.ll

[ConstantFolding] Fold loads from `ConstantByte` initializers

DeltaFile
+9-18llvm/test/Transforms/InstSimplify/load.ll
+7-1llvm/lib/Analysis/ConstantFolding.cpp
+16-192 files

LLVM/project 6b214e5 — llvm/test/Transforms/InstSimplify load.ll

[ConstantFolding] Pre-commit tests for loads from `ConstantByte`

DeltaFile
+94-0llvm/test/Transforms/InstSimplify/load.ll
+94-01 files

LLVM/project bb9f79c — llvm/include/llvm/Analysis TargetFolder.h, llvm/include/llvm/IR ConstantFolder.h ConstantFold.h

[ConstantFolding] Fold `bitinsert` and `bitextract`

DeltaFile
+28-56llvm/test/Transforms/InstSimplify/ConstProp/bitinsert-bitextract.ll
+72-0llvm/lib/IR/ConstantFold.cpp
+13-0llvm/include/llvm/IR/ConstantFold.h
+9-2llvm/include/llvm/IR/ConstantFolder.h
+9-0llvm/include/llvm/Analysis/TargetFolder.h
+5-0llvm/lib/Analysis/ConstantFolding.cpp
+136-586 files

LLVM/project 1f65eb6 — llvm/test/Transforms/InstSimplify bitinsert-bitextract.ll

[InstSimplify] Pre-commit tests for `bitinsert` and `bitextract`

DeltaFile
+338-0llvm/test/Transforms/InstSimplify/bitinsert-bitextract.ll
+338-01 files

LLVM/project c92f1d5 — llvm/test/Transforms/InstSimplify/ConstProp bitinsert-bitextract.ll

[ConstantFolding] Pre-commit tests for `bitinsert`/`bitextract` folding

DeltaFile
+380-0llvm/test/Transforms/InstSimplify/ConstProp/bitinsert-bitextract.ll
+380-01 files

OpenBSD/src LAgAUjF — sys/dev/pci if_mwxreg.h if_mwx.c

   First bits of scan code for the MT7925 chip.

   Only 2GHz is currently scanned and then it is stuck on the auth frame.
   Diff is already large enough.
   Most bits from a diff by mlarkin@
VersionDeltaFile
1.39+1,268-110sys/dev/pci/if_mwx.c
1.23+173-4sys/dev/pci/if_mwxreg.h
+1,441-1142 files

OPNSense/tools 9b77d77 — config/26.7 base.plist.amd64

config: rebase for upcoming 26.7.6
DeltaFile
+3-0config/26.7/base.plist.amd64
+3-01 files

LLVM/project 08b92f6 — llvm/lib/Target/ARM ARMFastISel.cpp ARMISelLowering.cpp, llvm/test/CodeGen/ARM fast-isel-ext-dead-cpsr.ll

ARM: Stop setting kill flags on virtual registers before FinalizeISel

There is no point in maintaining kill flags before register allocation
anymore.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+116-100llvm/test/CodeGen/Thumb2/mve-tp-loop.mir
+31-31llvm/lib/Target/ARM/ARMISelLowering.cpp
+4-5llvm/lib/Target/ARM/ARMFastISel.cpp
+1-1llvm/test/CodeGen/ARM/fast-isel-ext-dead-cpsr.ll
+1-1llvm/test/CodeGen/ARM/Windows/chkstk-dead-lr.ll
+153-1385 files

LLVM/project 4ab5e4e — clang/include/clang/Basic BuiltinsAMDGPU.td, clang/test/SemaOpenCL builtins-amdgcn-error-gfx1250-strict.cl

Revert "Revert "[AMDGPU] Disable V_WMMA_F{16|32}_16X16X128_[BF]P8_[BF]P8 on gfx1250-strict"" (#229044)

Reverts llvm/llvm-project#228932

apologies, this was not the problematic commit, restoring
DeltaFile
+18-12llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+24-0llvm/test/MC/AMDGPU/gfx1250-strict_err.s
+8-8clang/include/clang/Basic/BuiltinsAMDGPU.td
+8-5llvm/include/llvm/IR/IntrinsicsAMDGPU.td
+11-1clang/test/SemaOpenCL/builtins-amdgcn-error-gfx1250-strict.cl
+7-1llvm/lib/Target/AMDGPU/AMDGPU.td
+76-276 files

LLVM/project 2e93401 — llvm/lib/Analysis ConstantFolding.cpp, llvm/test/Transforms/InstSimplify load.ll

[ConstantFolding] Fold loads from `ConstantByte` initializers
DeltaFile
+9-18llvm/test/Transforms/InstSimplify/load.ll
+7-1llvm/lib/Analysis/ConstantFolding.cpp
+16-192 files

LLVM/project 9e5dd12 — llvm/include/llvm/Analysis InstSimplifyFolder.h InstructionSimplify.h, llvm/include/llvm/IR PatternMatch.h

[InstSimplify] Simplify `bitinsert` and `bitextract`
DeltaFile
+89-0llvm/lib/Analysis/InstructionSimplify.cpp
+18-43llvm/test/Transforms/InstSimplify/bitinsert-bitextract.ll
+15-0llvm/include/llvm/IR/PatternMatch.h
+8-0llvm/include/llvm/Analysis/InstructionSimplify.h
+2-4llvm/include/llvm/Analysis/InstSimplifyFolder.h
+132-475 files

NetBSD/pkgsrc-wip f32b777 — forgejo distinfo, forgejo/patches patch-vendor_github.com_sourcegraph_zoekt_index_indexfile.go

forgejo: add illumos build fix
DeltaFile
+5-4forgejo/patches/patch-vendor_github.com_sourcegraph_zoekt_index_indexfile.go
+1-1forgejo/distinfo
+6-52 files

LLVM/project 62f2210 — llvm/lib/Transforms/Vectorize VectorCombine.cpp

[VectorCombine] Remove dump() uses (NFC) (#229041)
DeltaFile
+0-1llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+0-11 files

LLVM/project da5a388 — llvm/lib/Target/PowerPC PPCInstrInfo.cpp, llvm/test/CodeGen/PowerPC convert-rr-to-ri-instrs.mir convert-rr-to-ri-instrs-out-of-range.mir

PowerPC: Promote 32-bit ops to 64-bit in place for EXTSW elimination

promoteInstr32To64ForElimEXTSW rebuilt a 32-bit instruction as its 64-bit
counterpart (e.g. SRAWI -> SRAWI8) with BuildMI, which adds the opcode's
implicit defs, and then copied over the original operands, which already
carry them. This produced duplicate, inconsistent defs:

  %8:g8rc = SRAWI8 killed %7, 8, implicit-def $carry, implicit-def dead $carry

The 32-bit and 64-bit opcodes have the same operand layout, so mutate the
original instruction with setDesc instead. This keeps the original implicit
defs with their dead flags, and also preserves the memoperands and MI flags
that rebuilding dropped. The preserved memoperand on a promoted LHA8 allows
the scheduler to reorder it with spills in aix-cc-abi.ll.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+5-16llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
+6-6llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs-out-of-range.mir
+6-6llvm/test/CodeGen/PowerPC/aix-cc-abi.ll
+2-3llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs.mir
+19-314 files

LLVM/project 2e20133 — llvm/lib/IR Instructions.cpp, llvm/test/Transforms/GVN pr207532.ll

[IR] Fold `bitcast` pairs through bytes with `ptrtoaddr`
DeltaFile
+20-4llvm/lib/IR/Instructions.cpp
+5-10llvm/test/Transforms/InstCombine/byte-cast-pairs.ll
+1-1llvm/test/Transforms/InstSimplify/byte-cast-pairs.ll
+1-1llvm/test/Transforms/GVN/pr207532.ll
+27-164 files

LLVM/project 8e0a797 — llvm/test/Transforms/InstCombine byte-cast-pairs.ll, llvm/test/Transforms/InstSimplify byte-cast-pairs.ll

[IR] Pre-commit tests for folding `bitcast` pairs through bytes with `ptrtoaddr`
DeltaFile
+97-6llvm/test/Transforms/InstCombine/byte-cast-pairs.ll
+2-2llvm/test/Transforms/InstSimplify/byte-cast-pairs.ll
+99-82 files

LLVM/project a984ffd — llvm/test/CodeGen/X86 mul-constant-i16.ll mul-constant-i8.ll

[X86] mul-constant-i* tests - cleanup common check prefixes (#229040)
DeltaFile
+728-824llvm/test/CodeGen/X86/mul-constant-i32.ll
+585-680llvm/test/CodeGen/X86/mul-constant-i64.ll
+610-99llvm/test/CodeGen/X86/mul-constant-i8.ll
+345-116llvm/test/CodeGen/X86/mul-constant-i16.ll
+2,268-1,7194 files

LLVM/project 9f4fca2 — llvm/lib/IR Instructions.cpp, llvm/test/Transforms/GVN pr207532.ll

[IR] Don't fold `bitcast` pairs through bytes into invalid casts
DeltaFile
+139-0llvm/test/Transforms/InstCombine/byte-cast-pairs.ll
+26-0llvm/test/Transforms/InstSimplify/byte-cast-pairs.ll
+23-1llvm/lib/IR/Instructions.cpp
+18-0llvm/test/Transforms/GVN/pr207532.ll
+206-14 files

LLVM/project 91a949b — llvm/lib/Target/SPIRV SPIRVSymbolicOperands.td SPIRVCallLowering.cpp, llvm/test/CodeGen/SPIRV/transcoding DecorationMaxByteOffset.ll DecorationMaxByteOffset-shader.ll

[SPIRV] Only emit MaxByteOffset decoration for SPIR-V 1.1 or later (#228973)

The MaxByteOffset decoration was introduced in SPIR-V 1.1. 
Guard the MaxByteOffset decoration emission in lowerFormalArguments with
version check, matching SPIRV-LLVM-Translator behavior.
DeltaFile
+22-0llvm/test/CodeGen/SPIRV/transcoding/DecorationMaxByteOffset-shader.ll
+9-0llvm/test/CodeGen/SPIRV/transcoding/DecorationMaxByteOffset.ll
+2-2llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
+1-1llvm/lib/Target/SPIRV/SPIRVSymbolicOperands.td
+34-34 files

LLVM/project 147a2db — clang/include/clang/Analysis/Analyses/LifetimeSafety LifetimeSafety.h, clang/lib/Analysis/LifetimeSafety Checker.cpp LoanPropagation.cpp

[LifetimeSafety] Report the alias chain for returned stack memory (#226395)

reportUseAfterReturn did not receive the aliasing chain, so a returned
dangling value was reported without saying which calls or variables
carried the borrow, unlike use-after-scope. Build the chain from the
escaping origin with a new buildOriginFlowChain overload for escape
facts. Like the UseFact overload, it drops the casts that just load the
returned variable, which would otherwise repeat the "returned here"
note.

Assisted by: Opus 5.5

---------

Co-authored-by: Gabor Horvath <gaborh at apple.com>
DeltaFile
+83-46clang/test/Sema/LifetimeSafety/safety.cpp
+42-11clang/test/Sema/LifetimeSafety/nocfg.cpp
+19-4clang/lib/Analysis/LifetimeSafety/LoanPropagation.cpp
+5-3clang/lib/Analysis/LifetimeSafety/Checker.cpp
+4-3clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeSafety.h
+4-2clang/test/Sema/LifetimeSafety/explicit-object-param-no-crash.cpp
+157-693 files not shown
+169-719 files

LLVM/project 005fc01 — mlir/lib/Dialect/ArmSME/Transforms TileAllocation.cpp, mlir/test/Dialect/ArmSME tile-allocation-liveness.mlir basic-tile-allocation.mlir

[mlir][ArmSME] Skip tile allocation for functions with no SME tile ops (#227153)

Functions with a non-empty body but no ArmSME tile ops still ran the
full pipeline (i.e., preprocessing, liveness analysis, and operation
numbering) before discovering there was nothing to allocate.

This PR adds `hasArmSMETileOps`, which checks whether the function
contains any `ArmSMETileOpInterface` op, and bails out early when none
are found (a value not produced/consumed by such an op never gets a tile
ID, so allocation would be a no-op).

**Note**: `overlapping_branches` in `tile-allocation-liveness.mlir` was
updated to use `arm_sme.get_tile` instead of bare function-argument tile
values, and no longer expects an error. `arm_sme.get_tile` has no
operands, so it's trivially cloneable. The allocator resolves the
tile-ID conflict by cloning it into whichever branch needs it, instead
of erroring. The "move required" diagnostic is still covered, in the new
`tile-allocation-move-required.mlir`, using `arm_sme.load_tile_slice`
(which has operands and so can't be cloned for free).

    [3 lines not shown]
DeltaFile
+24-0mlir/test/Dialect/ArmSME/basic-tile-allocation.mlir
+24-0mlir/test/Dialect/ArmSME/tile-allocation-move-required.mlir
+12-3mlir/lib/Dialect/ArmSME/Transforms/TileAllocation.cpp
+9-5mlir/test/Dialect/ArmSME/tile-allocation-liveness.mlir
+69-84 files

LLVM/project c7d0051 — orc-rt CMakeLists.txt, orc-rt/include CMakeLists.txt

[orc-rt] Add ORC_RT_TARGET_POSIX, use it to select POSIX sources (#229048)

The list of systems that get the shared POSIX implementation (Apple and
Linux) was repeated wherever POSIX-only headers, sources or tests were
selected. Compute it once, as ORC_RT_TARGET_POSIX, and test that
instead, so that the list can't drift between the copies.

lib/bedrock now composes its system sources the way its comment
describes: the POSIX list is added for any POSIX target, and each OS
adds only its own list on top.

No change to the set of files built or installed.

Assisted-by: Claude
DeltaFile
+6-4orc-rt/lib/bedrock/CMakeLists.txt
+10-0orc-rt/CMakeLists.txt
+2-2orc-rt/test/unit/CMakeLists.txt
+1-1orc-rt/include/CMakeLists.txt
+19-74 files

FreeBSD/ports f850d00 — x11-toolkits/mygui Makefile

x11-toolkits/mygui: limit portcout to current port version, consumers not ready for newer releases yet
DeltaFile
+2-0x11-toolkits/mygui/Makefile
+2-01 files

LLVM/project a76156f — llvm/lib/Target/AArch64 AArch64InstrInfo.td AArch64ISelDAGToDAG.cpp, llvm/test/CodeGen/AArch64 lslfast.ll arm64-shifted-sext.ll

[AArch64] Add sext(shl x, imm)/sext(sra x, imm) selection patterns (#226065)

Currently there are no selection patterns for code where the result of a
constant shift is sign-extended, even though these can be selected to a
single sbfiz/sbfx instruction. For example, at the moment, 2
instructions are generated for the following C function:
```C
  int64_t shl_ext(int8_t x) { return x * 2; }
```

Co-authored-by: Hari Limaye <hari.limaye at arm.com>
DeltaFile
+140-0llvm/test/CodeGen/AArch64/arm64-shifted-sext.ll
+0-30llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
+27-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+2-2llvm/test/CodeGen/AArch64/lslfast.ll
+169-324 files

OPNSense/ports b2a90dd — opnsense/ndp-proxy-go/files ndp-proxy-go.in

opnsense/ndp-proxy-go: Fix rc script, downstream interfaces are now optional
DeltaFile
+1-6opnsense/ndp-proxy-go/files/ndp-proxy-go.in
+1-61 files

LLVM/project 5a6e17f — llvm/lib/Transforms/Utils SimplifyCFG.cpp, llvm/test/Transforms/SimplifyCFG speculate-store-metadata.ll

[SimplifyCFG] Preserve AA metadata when speculating stores (#227034)

When speculating a store instruction, we currently conservatively drop
all UB-implying metadata and attributes, inhibiting alias-analysis after
this transformation has been performed.

This patch improves this by computing the intersection of the
alias-analysis metadata from the speculated store and the previous store
which enabled it.

Assisted-by: Codex
DeltaFile
+120-0llvm/test/Transforms/SimplifyCFG/speculate-store-metadata.ll
+19-7llvm/lib/Transforms/Utils/SimplifyCFG.cpp
+139-72 files