LLVM/project 67cf7e1llvm/test/CodeGen/AArch64 arm64-abi_align.ll, llvm/test/CodeGen/Hexagon/vect vect-xor.ll vect-v4i16.ll

llvm: Remove phantom fp-contract-model attributes from tests

This attribute has never been consumed by upstream llvm,
or emitted by upstream clang. I can only guess this existed in
at least one downstream fork.
DeltaFile
+4-4llvm/test/CodeGen/AArch64/arm64-abi_align.ll
+2-2llvm/test/Transforms/SimplifyCFG/volatile-phioper.ll
+1-1llvm/test/Transforms/LoopVectorize/vectorize-once.ll
+1-1llvm/test/Transforms/LoopVectorize/dbg.value.ll
+1-1llvm/test/CodeGen/Hexagon/vect/vect-xor.ll
+1-1llvm/test/CodeGen/Hexagon/vect/vect-v4i16.ll
+10-102 files not shown
+12-128 files

LLVM/project fc884a4llvm/test/CodeGen/AMDGPU prevent-fmul-hoist-ir.ll fdot2.ll, llvm/test/CodeGen/AMDGPU/GlobalISel combine-fma-add-ext-fma.ll combine-fma-add-fma-mul.ll

AMDGPU: Rename stale CONTRACT check prefixes in fp-contract tests (#221709)

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+434-434llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-fma-mul.ll
+23-23llvm/test/CodeGen/AMDGPU/fdot2.ll
+1-5llvm/test/CodeGen/AMDGPU/prevent-fmul-hoist-ir.ll
+1-3llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-ext-fma.ll
+459-4654 files

LLVM/project c04eb83llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

[VPlan] Remove (X && Y) | (X && !Y) -> X combine. NFC

We have smaller combines that can take care of this now that we process recipes in a worklist
DeltaFile
+1-8llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+1-81 files

LLVM/project 30b0c42llvm/lib/Transforms/Vectorize LoopVectorizationPlanner.h VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize/RISCV tail-folding-complex-mask.ll

[VPlan] Append recipes created via builder to worklist

The previous PR appended the top most created recipe to the worklist, and this PR extends it to any other nested recipes that were created, similar to InstCombine.

This removes the header mask in a good few more places on RISC-V as measured on SPEC CPU 2017, e.g. for the following loop:

```c
long f(const int *p, const int *q, long n) {
  long a = 0, b = 0;
  for (long i = 0;; i++) {
    if (p[i] && q[i]) { a += i; b += i; }
    if (i + 1 == n) break;
  }
  return a + b;
}
```

Before:


    [49 lines not shown]
DeltaFile
+26-7llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+11-4llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
+5-7llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-complex-mask.ll
+42-183 files

LLVM/project b90353cllvm/test/Transforms/LoopVectorize/RISCV tail-folding-complex-mask.ll

Precommit test
DeltaFile
+163-0llvm/test/Transforms/LoopVectorize/RISCV/tail-folding-complex-mask.ll
+163-01 files

LLVM/project 2459a58llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

No need to dyn_cast to singledef recipe anymore
DeltaFile
+1-3llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+1-31 files

FreeBSD/ports 3290ec7lang/io Makefile, lang/io-devel Makefile

lang/io{,-devel}: Return to pool and mark deprecated

PR:             298293
Approved by:    gahr (maintainer)

(cherry picked from commit 1da879c2914924c9b998694add15ca83a6498c9e)
DeltaFile
+5-2lang/io-devel/Makefile
+4-2lang/io/Makefile
+9-42 files

FreeBSD/ports 1da879clang/io Makefile, lang/io-devel Makefile

lang/io{,-devel}: Return to pool and mark deprecated

PR:             298293
Approved by:    gahr (maintainer)
DeltaFile
+5-2lang/io-devel/Makefile
+4-2lang/io/Makefile
+9-42 files

LLVM/project 478f9dallvm/lib/CodeGen/SelectionDAG LegalizeVectorOps.cpp, llvm/test/CodeGen/AArch64 fp-veclib-expansion.ll

[SelectionDAG] Widen vector math libcalls when no routine is available (#218948)

`tryExpandVecMathCall` currently only checks for a vector math routine
matching the node's exact vector type, unrolling when none is found.
This is suboptimal, and can lead to crashes for scalable types (which
cannot be unrolled).

This PR implements widening to first check if a routine with a wider vec
type exists before falling back to unrolling.

Example:
```
; llc -mtriple=aarch64 -mattr=+sve -vector-library=sleefgnuabi crash.ll
define <vscale x 2 x float> @frem_nxv2f32(<vscale x 2 x float> %a, <vscale x 2 x float> %b) {
  %res = frem <vscale x 2 x float> %a, %b
  ret <vscale x 2 x float> %res
}
```


    [2 lines not shown]
DeltaFile
+190-18llvm/test/CodeGen/AArch64/fp-veclib-expansion.ll
+56-32llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
+246-502 files

LLVM/project 754662ellvm/lib/Transforms/Vectorize VPlanTransforms.cpp

Unindent loop
DeltaFile
+14-13llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+14-131 files

LLVM/project 3e9725fllvm/test/Transforms/LoopVectorize blend-i1.ll

Make then branch non-dead
DeltaFile
+10-6llvm/test/Transforms/LoopVectorize/blend-i1.ll
+10-61 files

LLVM/project 2e0d2c2llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

Switch to SmallVector with space on stack

SmallVector allows for much larger small sizes than SetVector, so use 256 to match InstructionWorklist.
We don't need to worry about duplicate worklist entries until we add users to the worklist.
DeltaFile
+4-4llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+4-41 files

LLVM/project 1f91dffllvm/lib/Transforms/Vectorize VPlanTransforms.cpp

Address review comments

- Limit to double initial worklist size
- Use VPSingleDefRecipe type
DeltaFile
+11-6llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+11-61 files

LLVM/project 87190a3llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

Use make_pointer_range
DeltaFile
+1-2llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+1-21 files

LLVM/project 456318bllvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize iv_outside_user.ll blend-i1.ll

[VPlan] Process simplifyRecipes in a worklist

This brings simplifyRecipes further in line with InstCombine, and asides from unlocking more simplifications it also helps avoid spurious test churn whenever passes are moved around simplifyRecipes.

For now just push the new recipe onto the worklist, not its users.
This uses a post order traversal so we maintain the same simplification order as before.

I've gone through and checked every simplification we do is a canonicalisation that converges, and I checked on llvm-test-suite + SPEC CPU 2017 in various configurations that we don't hit any cycles.
DeltaFile
+23-14llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+4-8llvm/test/Transforms/LoopVectorize/dont-fold-tail-for-divisible-TC.ll
+2-3llvm/test/Transforms/LoopVectorize/blend-i1.ll
+1-2llvm/test/Transforms/LoopVectorize/iv_outside_user.ll
+30-274 files

LLVM/project 9f5548dllvm/lib/Target/SPIRV SPIRVNonSemanticDebugHandler.h

[SPIRV] Preserve DebugGlobalVariable emission order. (#221759)

Iterate GlobalVariableDebugInfoMap with MapVector so OpString and
DebugGlobalVariable follow insertion order.

The following tests had non-deterministic output, although didn't fail
due to the use of CHECK-DAG:

- llvm/test/CodeGen/SPIRV/debug-info/debug-global-variable-multi-gve.ll
- llvm/test/CodeGen/SPIRV/debug-info/debug-lexical-block-namespace.ll
- llvm/test/CodeGen/SPIRV/debug-info/debug-type-pointer.ll
DeltaFile
+1-1llvm/lib/Target/SPIRV/SPIRVNonSemanticDebugHandler.h
+1-11 files

LLVM/project 44100afllvm/test/Transforms/LoopVectorize blend-i1.ll

Precommit test
DeltaFile
+58-0llvm/test/Transforms/LoopVectorize/blend-i1.ll
+58-01 files

LLVM/project 7f291c2llvm/lib/Transforms/Vectorize LoopVectorize.cpp VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize vplan-print-before-after.ll

[VPlan] Split simplifyRecipes into simplifyRecipes and combineRecipes

Bringing it in line with InstSimplify and InstCombine, split up simplifyRecipe into a function that modifies and creates recipes (combineRecipe), and one that is analysis-only (simplifyRecipe).

This allows us to avoid adding simplficiation only folds to the worklist in #213899.

The funclet.ll test no longer erases the constant-folded intrinsic call because vputils::isDeadRecipe returns false.
DeltaFile
+231-216llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+9-6llvm/test/Transforms/LoopVectorize/X86/funclet.ll
+5-5llvm/test/Transforms/LoopVectorize/VPlan/vplan-print-before-after-all.ll
+4-4llvm/test/Transforms/LoopVectorize/vplan-print-before-after.ll
+4-4llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+1-1llvm/test/Transforms/LoopVectorize/VPlan/constant-fold.ll
+254-2361 files not shown
+255-2377 files

LLVM/project bd5c005utils/bazel/llvm-project-overlay/llvm BUILD.bazel

[Bazel] Fixes e910926 (#221908)

This fixes e91092685eab2ab0348ea06df2c3446001b480d4.

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=e91092685eab2ab0348ea06df2c3446001b480d4

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+1-0utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+1-01 files

LLVM/project 5886c70clang/include/clang/AST ASTContext.h TypeBase.h, clang/lib/AST StmtProfile.cpp Type.cpp

[clang] Unique more ASTContext type pools in a UniquingSet. NFC (#221898)

Similar to #221850.

Eight pools key on a small tuple of types, integers and pointers, yet
each get*Type() serializes that into a FoldingSetNodeID and hashes it
out of line before probing. Switch to UniquingSet.

These getters re-probe after building the canonical type. A token is a
hash (#218190), not a bucket, so nothing invalidates it. Drop unneeded
assertions.
DeltaFile
+22-62clang/include/clang/AST/TypeBase.h
+20-52clang/lib/AST/ASTContext.cpp
+0-28clang/lib/AST/Type.cpp
+9-9clang/include/clang/AST/ASTContext.h
+6-3clang/lib/AST/StmtProfile.cpp
+57-1545 files

LLVM/project 296d808llvm/lib/Target/AMDGPU AMDGPUPassRegistry.def AMDGPUTargetMachine.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel regbankcombiner-smed3.mir regbankcombiner-clamp-fmed3-const.mir

[AMDGPU][GIsel][NPM] Port "AMDGPURegBankCombiner" to NPM (#217323)

Assisted-by: Opus-4.8
DeltaFile
+82-40llvm/lib/Target/AMDGPU/AMDGPURegBankCombiner.cpp
+13-2llvm/lib/Target/AMDGPU/AMDGPU.h
+3-3llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+1-2llvm/lib/Target/AMDGPU/AMDGPUPassRegistry.def
+2-0llvm/test/CodeGen/AMDGPU/GlobalISel/regbankcombiner-smed3.mir
+2-0llvm/test/CodeGen/AMDGPU/GlobalISel/regbankcombiner-clamp-fmed3-const.mir
+103-471 files not shown
+104-477 files

LLVM/project 6ef0664llvm/lib/CodeGen/GlobalISel CombinerHelper.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel combine-fma-sub-neg-mul.ll combine-fma-add-mul.ll

GlobalISel: Drop AllowFPOpFusion from CombinerHelper FMA formation

Only rely on the contract flags.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+538-274llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-sub-mul.ll
+43-590llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-mul.ll
+219-88llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-sub-neg-mul.ll
+3-2llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
+803-9544 files

NetBSD/pkgsrc bSmVPAJdoc CHANGES-2026

   Updated finance/py-eth-typing, finance/py-eth-hash
VersionDeltaFile
1.5927+3-1doc/CHANGES-2026
+3-11 files

NetBSD/pkgsrc zUL3XNFfinance/py-eth-hash Makefile distinfo

   py-eth-hash: updated to 0.8.0

   0.8.0
   No significant changes.

   0.8.0-beta.1

   Breaking Changes

   Drop support for Python 3.8 and 3.9

   Features

   Add support for Python 3.14
VersionDeltaFile
1.15+4-4finance/py-eth-hash/distinfo
1.18+2-3finance/py-eth-hash/Makefile
+6-72 files

NetBSD/xsrc XAYNEc3external/mit/xf86-video-mach64/dist/src atipreinit.c

   default to refclk =  29.498MHz on Rage XL
VersionDeltaFile
1.11+0-2external/mit/xf86-video-mach64/dist/src/atipreinit.c
+0-21 files

LLVM/project 5ac7613llvm/test/CodeGen/AMDGPU prevent-fmul-hoist-ir.ll fdot2.ll, llvm/test/CodeGen/AMDGPU/GlobalISel combine-fma-add-ext-fma.ll combine-fma-add-fma-mul.ll

AMDGPU: Rename stale CONTRACT check prefixes in fp-contract tests

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+434-434llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-fma-mul.ll
+23-23llvm/test/CodeGen/AMDGPU/fdot2.ll
+1-5llvm/test/CodeGen/AMDGPU/prevent-fmul-hoist-ir.ll
+1-3llvm/test/CodeGen/AMDGPU/GlobalISel/combine-fma-add-ext-fma.ll
+459-4654 files

LLVM/project 2b90243llvm/lib/Target/AMDGPU GCNHazardRecognizer.cpp, llvm/test/CodeGen/AMDGPU mai-hazards-gfx90a.mir mai-hazards-gfx942.mir

review
DeltaFile
+128-0llvm/test/CodeGen/AMDGPU/mai-hazards-gfx942.mir
+11-7llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
+9-0llvm/test/CodeGen/AMDGPU/mai-hazards-gfx90a.mir
+148-73 files

NetBSD/pkgsrc DFh7hRDfinance/py-eth-typing Makefile distinfo

   py-eth-typing: updated to 6.0.0

   eth-typing v6.0.0 (2026-03-25)

   Features

   Add Osaka, Bogota, and Amsterdam to ForkName enum
VersionDeltaFile
1.18+4-4finance/py-eth-typing/distinfo
1.22+2-2finance/py-eth-typing/Makefile
+6-62 files

NetBSD/pkgsrc HEz8wdwgraphics/tesseract buildlink3.mk

   tesseract: add missing include
VersionDeltaFile
1.9+2-1graphics/tesseract/buildlink3.mk
+2-11 files

LLVM/project 3f0f235clang CMakeLists.txt, llvm CMakeLists.txt

[CIR][CMake] Configure MLIR as a dependency-only project

ClangIR requires MLIR, but enabling CIR currently requires users to list MLIR
explicitly in LLVM_ENABLE_PROJECTS. That also attaches all MLIR build, install,
unit-test, and lit targets to the corresponding LLVM aggregates.

When Clang is selected and CLANG_ENABLE_CIR is enabled, append MLIR to the
effective LLVM_ENABLE_PROJECTS list. The common project setup compares that
list with the cached user selection, so an explicit MLIR selection retains its
normal behavior while an implicit selection is configured with EXCLUDE_FROM_ALL.

This makes MLIR targets available for CIR dependency resolution without adding
MLIR's aggregate targets. Keep the existing standalone ClangIR restriction and
do not configure MLIR when CIR is disabled.

Validation:
- Configured Clang with CIR and implicit MLIR test support.
- Configured Clang and MLIR explicitly with CIR and tests enabled.
- Configured Clang without CIR and verified that MLIR remains disabled.

    [4 lines not shown]
DeltaFile
+6-0llvm/CMakeLists.txt
+2-2clang/CMakeLists.txt
+8-22 files