LLVM/project fce6ce5 — lld/MachO Driver.cpp, lld/docs ReleaseNotes.md

[lld][MachO] -objc_category_merging implies --check-category-conflicts
DeltaFile
+6-3lld/MachO/Driver.cpp
+7-1lld/test/MachO/objc-category-conflicts.s
+2-0lld/docs/ReleaseNotes.md
+15-43 files

LLVM/project ab112ea — llvm/lib/Transforms/Utils SimplifyLibCalls.cpp, llvm/test/Transforms/InstCombine memset-returned.ll

[InstCombine] Fix invalid returned attribute on memset (#235490)

This pr fixes the problem in InstCombine where the memset with returned
attribute changes into llvm intrinsc memset call which is invalid
because the original memset function returns a pointer and its first
marked argument is returned atrribute however the problem is llvm.memset
returns void .when atrributes are merged from old to new call ,returned
attribute still attached to pinter arguement .
This results in Invalid LLVM error and causes to report incompatible
arguement .
Changes made :
Updated mergeAttributesAndFlags in SimplifyLibCalls.cpp to remove the
returned parameter attribute when the new call returns void.
Added a regression test in memset-returned.ll to verify that InstCombine
simplifies the memset call without preserving the invalid attribute.

---------

Co-authored-by: jayadevthamatam <jayadevthamatam at gmail.com>
DeltaFile
+21-0llvm/test/Transforms/InstCombine/memset-returned.ll
+4-0llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
+25-02 files

LLVM/project 21b58bf — libcxxabi/src cxa_guard_impl.h

[libcxxabi] fix -Wunused-private-field (#241575)

-Wunused-private-field will soon be able to flag fields in instantiated
class templates. Land this in preparation.

The lone new instance is only defined when BUILDING_CXA_GUARD is
defined.

Link: #237374
DeltaFile
+1-1libcxxabi/src/cxa_guard_impl.h
+1-11 files

LLVM/project 70882fe — clang/include/clang/Basic HLSLIntrinsics.td, clang/test/CodeGenHLSL/builtins mad_mat.hlsl

[Matrix] Implement matrix support for the `mad` intrinsic (#239357)

Closes #184510.
 
This PR implements the matrix api for `mad` and adds matrix codegen
tests and matrix sema tests. Matrix backend tests were not added because
no DirectX or SPIRV backend changes were made.
 
Assisted-by: Claude Opus 5.5
DeltaFile
+58-0clang/test/CodeGenHLSL/builtins/mad_mat.hlsl
+31-0clang/test/SemaHLSL/BuiltIns/mad_mat-errors.hlsl
+0-1clang/include/clang/Basic/HLSLIntrinsics.td
+89-13 files

LLVM/project 8fefb2a — llvm/unittests/Transforms/Vectorize/SandboxVectorizer SchedulerTest.cpp

[SandboxVec][Scheduler] Fix IR in unit test (#241656)

The unittest forms a scheduling bundle of stores S0 and S1. But there
used to be a dependency S0->S1, which is not allowed in a bundle. This
patch removes the dependency by changing the store address pointers.
DeltaFile
+3-3llvm/unittests/Transforms/Vectorize/SandboxVectorizer/SchedulerTest.cpp
+3-31 files

LLVM/project e8e8a72 — mlir/include/mlir/Dialect/LLVMIR NVVMOps.td, mlir/lib/Dialect/LLVMIR/IR NVVMDialect.cpp

[MLIR][NVVM] Add support for .s8.s4 types in nvvm.ldmatrix (#241153)

This patch adds support for the `.s8.s4` types for the `ldmatrix` instruction with the `.m8n16` shape, introduced in PTX ISA 9.4. The source data is a sequence of signed 4-bit elements that are expanded to signed 8-bit values during the load.

PTX ISA Reference: https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#warp-level-matrix-instructions-ldmatrix

Assisted by: Claude (Opus 5.5)
DeltaFile
+49-1mlir/test/Target/LLVMIR/nvvmir-invalid.mlir
+12-1mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
+9-0mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp
+4-3mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
+7-0mlir/test/Target/LLVMIR/nvvmir.mlir
+81-55 files

LLVM/project 1f75b9c — llvm/test/TableGen AsmMatcherCoerceFromRegClass.td, llvm/utils/TableGen AsmMatcherEmitter.cpp

[nspr] initial commit
DeltaFile
+56-7llvm/utils/TableGen/AsmMatcherEmitter.cpp
+39-9llvm/test/TableGen/AsmMatcherCoerceFromRegClass.td
+95-162 files

LLVM/project 225f51a — llvm/test/TableGen AsmMatcherCoerceFromRegClass.td, llvm/utils/TableGen AsmMatcherEmitter.cpp

[nspr] initial commit
DeltaFile
+43-8llvm/utils/TableGen/AsmMatcherEmitter.cpp
+26-0llvm/test/TableGen/AsmMatcherCoerceFromRegClass.td
+69-82 files

LLVM/project 7bc4f4f — llvm/test/TableGen AsmMatcherCoerceFromRegClass.td, llvm/utils/TableGen AsmMatcherEmitter.cpp

improve comments, update commit message
DeltaFile
+26-7llvm/test/TableGen/AsmMatcherCoerceFromRegClass.td
+11-4llvm/utils/TableGen/AsmMatcherEmitter.cpp
+37-112 files

LLVM/project 7e66f83 — flang/lib/Lower ConvertExprToHLFIR.cpp, flang/lib/Optimizer/Builder HLFIRTools.cpp

[flang] Track character temporary lifetimes for safe stack placement

Dynamic character expression buffers could grow the stack on every
iteration of an unstructured loop because their lifetimes were hidden
from allocation placement. Emit hlfir.destroy for them, add an explicit
cleanup region to hlfir.yield_element, and preserve both through array
constructor lowering, elemental inlining, WHERE lowering and
bufferization, which now allocates these buffers with fir.allocmem.
When such an allocation cannot be hoisted out of the loop, reclaim its
stack space with one stacksave/stackrestore pair per block. Allocation
placement then keeps these temporaries on the stack in every mode,
including offload regions (except under -fdynamic-heap-array).
DeltaFile
+136-102flang/lib/Lower/ConvertExprToHLFIR.cpp
+142-0flang/test/Transforms/character-expression-storage.f90
+132-0flang/test/HLFIR/inline-elemental-cleanup-cfg.fir
+83-31flang/lib/Optimizer/Builder/HLFIRTools.cpp
+105-0flang/test/Transforms/stack-arrays-block-lifetime.fir
+86-0flang/test/Transforms/character-temporary-placement.fir
+684-13353 files not shown
+1,588-46959 files

LLVM/project 3207d81 — flang/lib/Optimizer/HLFIR/IR HLFIROps.cpp, flang/lib/Optimizer/Transforms StackArrays.cpp

[flang] Address review comments on character temporary lifetimes

- stack-arrays: accept blocks with properly nested stacksave/stackrestore
  pairs, such as the ones around calls with a runtime-length result, as
  long as the allocations made inside a pair are freed before its end.
  These allocations then reuse that pair.
  Document that the block scope makes the peak stack the sum of the
  promoted allocations.
- Only create a cleanup region from the current statement context scope,
  so that array constructors do not get empty cleanup regions that block
  elemental inlining.
- Always allocate kind conversion buffers on the heap and let allocation
  placement move them to the stack, so that constant-length ones are
  hoisted out of loops.
- Canonicalize away the hlfir.concat, hlfir.char_trim, hlfir.set_length
  and hlfir.char_extremum results whose only uses are hlfir.destroy, such
  as the SET_LENGTH bypassed by structure constructor lowering.
- Do not let hlfir.associate take over the storage of an hlfir.no_reassoc
  operand that has other uses.
- Use %flang_fc1 in the new Fortran tests.
DeltaFile
+105-0flang/test/Transforms/stack-arrays-block-lifetime.fir
+63-21flang/lib/Optimizer/Transforms/StackArrays.cpp
+63-0flang/test/HLFIR/destroy-canonicalize.fir
+32-1flang/test/Lower/HLFIR/character-expression-cleanup.f90
+25-0flang/test/HLFIR/associate-codegen.fir
+23-0flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp
+311-2211 files not shown
+362-4917 files

LLVM/project 79ce8c7 — llvm/lib/Target/AMDGPU GCNSubtarget.h, llvm/test/CodeGen/AMDGPU regalloc-spill-wmma-scale.ll mad-mix-lo-bf16.ll

[AMDGPU] Disable local reassignment for GPUs with many registers (#239760)

Local reassignment during register allocation eviction is very expensive
when there are a large number of registers. For kernels with large
register pressure, compile-time time can exceed 10 minutes.

This PR disables local reassignment for GPUs with a large number of
VGPRs.

Creating this PR while waiting for performance results.
DeltaFile
+32-26llvm/test/CodeGen/AMDGPU/float-to-arbitrary-fp-widen.ll
+28-18llvm/test/CodeGen/AMDGPU/GlobalISel/load-constant.96.ll
+18-15llvm/test/CodeGen/AMDGPU/reassoc-mul-add-1-to-mad.ll
+6-6llvm/test/CodeGen/AMDGPU/mad-mix-lo-bf16.ll
+6-0llvm/lib/Target/AMDGPU/GCNSubtarget.h
+1-1llvm/test/CodeGen/AMDGPU/regalloc-spill-wmma-scale.ll
+91-666 files

LLVM/project bda37de — clang/tools/clang-linker-wrapper ClangLinkerWrapper.cpp, llvm/include/llvm/MC MCTargetOptionsCommandFlags.h

[Support] Pass tool options to parseCommandLineOptions (#240009)

Add a `parseCommandLineOptions` overload that takes the libraries a tool
opts in to. Replace the global state `RegisterMCToolOptions` with
`mc::getToolOptions` and `codegen::getToolOptions`, which tools pass
where they parse, including lld's `-mllvm`, gold's `-plugin-opt`, and
libLTO's debug options.

`RegisterCodeGenFlags` no longer registers the MC options.

clang-linker-wrapper does not pass the MC options, so it now rejects
them in `-mllvm` and `--offload-opt`, which it forwards to the device
and host link steps. Its wrapper module uses the module's own context
instead of the user's `-mllvm`, as discussed on #233513.

`LibraryOptionsContext` records the library that parsed each argument,
so `assign`, which runs on each ThinLTO backend thread, replays without
looking up the registry.

LLM-aided
DeltaFile
+86-42llvm/lib/Support/CommandLine.cpp
+23-0llvm/unittests/Option/LibraryOptionsTest.cpp
+9-13clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
+17-5llvm/include/llvm/Support/CommandLine.h
+5-5llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
+7-2llvm/include/llvm/Support/LibraryOptionsContext.h
+147-6731 files not shown
+236-10537 files

LLVM/project 6330698 — lldb/include/lldb/Target ThreadPlanStepOut.h LanguageRuntime.h, lldb/source/Target LanguageRuntime.cpp ThreadPlanStepOut.cpp

address the comments
DeltaFile
+8-19lldb/source/Target/ThreadPlanStepOut.cpp
+25-0lldb/source/Target/LanguageRuntime.cpp
+18-6lldb/include/lldb/Target/LanguageRuntime.h
+0-3lldb/include/lldb/Target/ThreadPlanStepOut.h
+51-284 files

LLVM/project bd85f36 — libc/docs conf.py CMakeLists.txt, libc/docs/_static status.css

[libc][docs] Generate implementation status dashboard (#241945)

The top-level headers/index.md page currently renders a plain static
list of header names without indicating overall C23 or POSIX.1-2024
coverage or per-header completion across the library.

Replace static headers/index.md with docgen.py --index (invoked by the
CMake libc-docgen-index target) to generate top-level C23, POSIX.1-2024,
and symbol-category completeness cards alongside colour-coded progress
rows for every catalogued header, while hiding top-of-page source links
on the aggregated index page in conf.py.

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+133-19libc/utils/docgen/docgen.py
+0-94libc/docs/headers/index.md
+25-0libc/docs/_static/status.css
+23-1libc/utils/docgen/docgen_test.py
+6-1libc/docs/CMakeLists.txt
+3-0libc/docs/conf.py
+190-1156 files

LLVM/project 8be9c4b — llvm/lib/Target/X86 X86InstrSSE.td X86ISelLowering.cpp, llvm/test/CodeGen/X86 bfloat-broadcast.ll

[X86] Fix bf16 VBROADCAST lowering and selection without AVX512BW+VLX

Broadcasts of bf16 vectors only have isel patterns with AVX512BW+VLX,
so AVX2 targets without them (e.g. znver3) fail with "Cannot select".

Add v8bf16/v16bf16 VPBROADCASTW patterns for AVX2, mirroring the f16
ones. In combineTargetShuffle, only apply the broadcast(bitcast(src))
and vbroadcast(bitcast(vbroadcast(src))) folds if the new broadcast type
is legal, since v16bf16 can be illegal when v8bf16 is legal.

Assisted-by: Antigravity
DeltaFile
+86-39llvm/test/CodeGen/X86/bfloat-broadcast.ll
+10-6llvm/lib/Target/X86/X86ISelLowering.cpp
+11-0llvm/lib/Target/X86/X86InstrSSE.td
+107-453 files

LLVM/project 85e0f43 — llvm/test/CodeGen/X86 bfloat-broadcast.ll

[X86] Add bf16 broadcast tests (NFC) (#240804)

Add tests for bf16 vector splats that end up as X86ISD::VBROADCAST or
X86ISD::VBROADCAST_LOAD of a bf16 vector type:
- values live across basic blocks
- volatile loads
- loads whose other uses are simplified away after legalization
- broadcasts of v8bf16 values that are bitcast to vXi16/vXi32

Only the default target (SSE2) and -mattr=+avx512bw,+avx512vl are tested
for now. AVX2 targets without AVX512BW+VLX crash on all of these: they
fail to select the bf16 broadcast, or form an illegal v16bf16 broadcast
after type legalization. The follow-up fix adds RUN lines for them.

Assisted-by: Antigravity
DeltaFile
+356-0llvm/test/CodeGen/X86/bfloat-broadcast.ll
+356-01 files

NetBSD/pkgsrc yPpTGTG — multimedia/mpv distinfo Makefile, multimedia/mpv/patches patch-video_out_mac_view.swift

   mpv: Fix possible build issue on macOS

   Backport pull request <https://github.com/mpv-player/mpv/pull/18818> in order to
   fix the build on macOS when Vulkan is disabled, tracked via upstream issue
   <https://github.com/mpv-player/mpv/issues/18817>.

   PKGREVISION++

   Pointed out by arcathrax in private email.
VersionDeltaFile
1.1+18-0multimedia/mpv/patches/patch-video_out_mac_view.swift
1.195+2-2multimedia/mpv/Makefile
1.87+2-1multimedia/mpv/distinfo
+22-33 files

LLVM/project a0f5153 — llvm/lib/Transforms/IPO FunctionImport.cpp, llvm/test/ThinLTO/X86 cache-import-order.ll

[ThinLTO] Import source modules in module hash order (#241455)

The ThinLTO cache key orders the import list by module hash and leaves
out the module paths, but FunctionImporter imports from the source
modules in path order. The IRMover appends imported globals and named
metadata such as llvm.linker.options in import order, so linking the
same bitcode under different file names could produce the same cache
key with different objects, e.g. a different LC_LINKER_OPTION order.

Import from the source modules in module hash order to match the key.
DeltaFile
+67-0llvm/test/ThinLTO/X86/cache-import-order.ll
+11-1llvm/lib/Transforms/IPO/FunctionImport.cpp
+78-12 files

LLVM/project c2a93ed — flang/test/Fir/OpenMP bounds-generation-for-char-arrays.f90, mlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp

[Flang][OpenMP] Lower non-contiguous array section target updates (#235006)

Emit non-contiguous runtime descriptors for multidimensional Fortran
sections, preserving source strides and scalar-subscript shape.
Normalise
character bounds and strides to code units and preserve descriptor
storage for deferred target-update tasks.

Requires https://github.com/llvm/llvm-project/pull/240503.

Fixes:
- https://amd-hub.atlassian.net/browse/LCOMPILER-2880
- https://amd-hub.atlassian.net/browse/LCOMPILER-2784

Co-authored-by: Codex <codex at openai.com>
DeltaFile
+237-0mlir/test/Target/LLVMIR/omptarget-update-non-contiguous.mlir
+138-0offload/test/offloading/fortran/target-update-noncontiguous.f90
+119-13mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+120-7flang/test/Fir/OpenMP/bounds-generation-for-char-arrays.f90
+97-0mlir/test/Target/LLVMIR/omptarget-update-nowait-non-contiguous.mlir
+77-0offload/test/offloading/fortran/target-update-noncontiguous-nowait.f90
+788-2011 files not shown
+1,162-4217 files

OpenBSD/ports sDHyWHL — graphics/vtk distinfo Makefile

   graphics/vtk: update to 9.7.2

   ok sthen@
VersionDeltaFile
1.20+2-3graphics/vtk/Makefile
1.9+2-2graphics/vtk/distinfo
+4-52 files

LLVM/project 4b5da12 — llvm/lib/Transforms/Scalar ConstraintElimination.cpp, llvm/test/Transforms/ConstraintElimination add-nsw.ll sadd-with-overflow.ll

[ConstraintElim] A signed sum of operands with opposite signs cannot wrap (#235159)

If one operand is known non-negative and the other non-positive, the
signed sum is between them, so it cannot overflow.
    
https://alive2.llvm.org/ce/z/ZF5Yqr
DeltaFile
+62-0llvm/test/Transforms/ConstraintElimination/sadd-with-overflow.ll
+25-9llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+3-6llvm/test/Transforms/ConstraintElimination/add-nsw.ll
+90-153 files

NetBSD/pkgsrc-wip b3899da — stirmake TODO

stirmake: Mention in TODO Ubuntu testing too

I have tested the package on Ubuntu 26.04 LTS. Make a note of it.

Testing still needed: MacOS, MINIX3.
DeltaFile
+2-1stirmake/TODO
+2-11 files

LLVM/project 91e95ac — llvm/lib/Transforms/Scalar ConstraintElimination.cpp, llvm/test/Transforms/ConstraintElimination sadd-with-overflow.ll minmax.ll

[ConstraintElim] Split signed min/max across their operands when checking a compare

The existing constraint systems only record the bounds that hold for both
operands of a min/max (smax(a, b) >= a and >= b, smin(a, b) <= a and <= b). The
other direction is a disjunction, which cannot be recorded as a fact. When a
compare of signed decompositions involves a min/max result, split it into its
operands: the decomposition is monotonic in that result, so it is the max or min
of its values on each side, and the relation holds for all or for either side
respectively.

https://alive2.llvm.org/ce/z/zsGkJ-
DeltaFile
+366-3llvm/test/Transforms/ConstraintElimination/minmax.ll
+111-0llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+4-8llvm/test/Transforms/ConstraintElimination/sadd-with-overflow.ll
+481-113 files

LLVM/project 2a5e9c6 — llvm/lib/Transforms/Scalar ConstraintElimination.cpp, llvm/test/Transforms/ConstraintElimination ssub-with-overflow.ll sadd-with-overflow.ll

[ConstraintElim] Prove sadd/ssub.with.overflow cannot overflow from the exact sum

Decompose the operands and show that the sum lies in the range of the type. This
handles patterns like A + (B - A), as well as sums involving signed min/max
results, which are split across their respective operands using monotonicity
(for example start + smax(end - start - 1, 0) <= end).

https://alive2.llvm.org/ce/z/ze8LCk
DeltaFile
+571-0llvm/test/Transforms/ConstraintElimination/sadd-with-overflow.ll
+159-3llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+100-0llvm/test/Transforms/ConstraintElimination/ssub-with-overflow.ll
+830-33 files

LLVM/project e48418f — llvm/lib/Transforms/Scalar ConstraintElimination.cpp

apply Antonio's suggestion
DeltaFile
+2-2llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+2-21 files

LLVM/project eafa68e — llvm/test/tools/llubi nnan_noundef.ll fast_math_flags.ll, llvm/tools/llubi/lib Interpreter.cpp

[llubi] Handle fast math flags on call instructions (#239458)

Otherwise we end up directly propagating the values when we otherwise
should be rewriting to poison.

Fixes #235737
DeltaFile
+36-0llvm/test/tools/llubi/fast_math_flags.ll
+19-0llvm/test/tools/llubi/nnan_noundef.ll
+4-0llvm/tools/llubi/lib/Interpreter.cpp
+59-03 files

LLVM/project 2763969 — clang/test/OffloadTools/clang-linker-wrapper linker-wrapper.c linker-wrapper-verbose.c, clang/tools/clang-linker-wrapper ClangLinkerWrapper.cpp

[offload] Add OpenACC Offload Kind (#239432)

Add the new OFK_OpenACC to the OffloadKind enum to represent device code
generated by OpenACC compilation. The __tgt_acc_register_lib function
will be implemented by the offload/libacctarget runtime.

Assisted-by: Claude

---------

Co-authored-by: Yury Plyakhin <yury.plyakhin at intel.com>
DeltaFile
+36-24clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-image.c
+39-18llvm/lib/Frontend/Offloading/OffloadWrapper.cpp
+27-10llvm/test/tools/llvm-offload-wrapper/offload-wrapper.ll
+16-7clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
+23-0clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper-verbose.c
+14-0clang/test/OffloadTools/clang-linker-wrapper/linker-wrapper.c
+155-599 files not shown
+206-7015 files

LLVM/project c737b06 — mlir/include/mlir/Dialect/Tosa/IR TosaOpBase.td, mlir/test/Dialect/Tosa tosa-attach-target.mlir

[mlir][tosa] Fix empty profiles and extensions in #tosa.target_env (#241574)

- Make `profiles` and `extensions` optional array parameters and update
the assembly format to parse `[]` when either list is empty.
- Add a round-trip test for `--tosa-attach-target` with the default
options.

Fixes #236938
DeltaFile
+4-4mlir/include/mlir/Dialect/Tosa/IR/TosaOpBase.td
+1-0mlir/test/Dialect/Tosa/tosa-attach-target.mlir
+5-42 files

LLVM/project 27e0210 — llvm/lib/Transforms/IPO FunctionAttrs.cpp

FunctionAttrs: Skip computing initializes if an exit is reachable without writes

inferInitializes computes the ranges initialized by every block in post
order when the argument is written outside the entry block. These are
empty for the entry block if a path from it reaches an exit without
passing through a block that writes the argument, which is the case for
most arguments. Check for such a path first. NFC.

Exact instructions (callgrind) of opt -passes='default<O3>':
  sqlite3             -0.13%
  consumer-typeset    -0.50% (z08.c)
  SPASS               -0.07% (cnf.c)
The CTMark build changes by O3 -0.01%, ThinLTO -0.02% (sqlite3 -0.05%,
-0.06%).

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+30-0llvm/lib/Transforms/IPO/FunctionAttrs.cpp
+30-01 files