LLVM/project 44254de — llvm/lib/Target/AMDGPU SIInstrInfo.h SIInsertHardClauses.cpp, llvm/test/CodeGen/AMDGPU hard-clauses-cluster-dwords.mir

[AMDGPU] Don't apply the memory cluster budget to hard clause formation (#229445)

SIInsertHardClauses reused shouldClusterMemOps() to check whether two
memory operations share a base, and tried to neutralise its
register-pressure budget (MaxMemoryClusterDWords) by passing a fake
2-dword cluster. With "amdgpu-max-memory-cluster-dwords" set below 2 no
clause could form at all. That budget only bounds pre-RA register
pressure and is irrelevant after register allocation.

Add SIInstrInfo::memOpsHaveSameBase() and use it from both places. No
change with the default budget.
DeltaFile
+87-0llvm/test/CodeGen/AMDGPU/hard-clauses-cluster-dwords.mir
+21-12llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+4-9llvm/lib/Target/AMDGPU/SIInsertHardClauses.cpp
+9-0llvm/lib/Target/AMDGPU/SIInstrInfo.h
+121-214 files

FreeBSD/ports cc89c98 — databases/py-dbt-semantic-interfaces Makefile

databases/py-dbt-semantic-interfaces: fix build by relaxing upper limit on dependency

Reported by:    fallout
Approved by:    portmgr (unbreak; blanket)
DeltaFile
+1-1databases/py-dbt-semantic-interfaces/Makefile
+1-11 files

LLVM/project bc8218b — clang/test/CIR/CodeGen mllvm-library-options.c, llvm/include/llvm/MC MCTargetOptions.h

[Option] Make OptionsStruct per-context by default (#232170)

Make perContext the default, and opt out the ported libraries that still
read Global with perContext = false. X86Options, X86MCOptions, and
RISCVOptions become per-context.

A TargetMachine and the MC layer have no LLVMContext. Add
MCTargetOptions::LibraryOptions, which llc, opt, and clang set to the
compiled module's LLVMContext. X86TargetMachine, RISCVTargetMachine, and
X86's MCAsmInfo, MCAsmBackend, and MCTargetAsmParser read their options
through LibraryOptionsContext::get, which returns the global values when
it is unset, as in llvm-mc and clang -cc1as.

Aided by Opus 5.5
DeltaFile
+32-36llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
+4-14clang/test/CIR/CodeGen/mllvm-library-options.c
+6-5llvm/lib/CodeGen/CommandFlags.cpp
+5-5llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
+8-0llvm/include/llvm/MC/MCTargetOptions.h
+7-0llvm/lib/Target/X86/MCTargetDesc/X86MCOptions.h
+62-6030 files not shown
+120-8736 files

LLVM/project 4d9e6d7 — clang/lib/CIR/Dialect/IR CIRDialect.cpp, clang/unittests/CIR ControlFlowTest.cpp

[CIR] Fix cir.try successor regions

`TryOp::getSuccessorRegions` listed the try region and every handler as
entries from the parent, so a handler could run without the try body. Now
the parent enters the try region, a `cir.resume` ending the try region
unwinds into the handlers, and every other exit leaves the op. This matches
`CIRTryOpFlattening`, which branches such resumes to the handler dispatch
block. A `cir.try` with no handlers has nowhere to unwind to, so a
`cir.resume` in its body leaves the op.

The interface only describes exits through a region terminator. A throw from
a call inside the try body is not one, so it gets no edge, and a handler
reached only that way has no predecessor. The catch-all unit test therefore
runs `verifyControlFlowInterfaceConsistency` with `requireAllReachable` set
to false, which replaces its TODO.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+127-13clang/unittests/CIR/ControlFlowTest.cpp
+20-8clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+147-212 files

LLVM/project f905f79 — llvm/lib/CodeGen EarlyIfConversion.cpp, llvm/test/CodeGen/AArch64 early-ifcvt-remarks.mir early-ifcvt-likely-predictable.mir

[EarlyIfConversion] Limit critical-path growth for strongly biased branches (#228709)

Early if-conversion now gives a branch no critical-path extension budget
when its colder edge is below a configurable threshold (1% by default),
while other branches keep their existing budget. This prevents a 
conversion of heavily biased branches which are likely to be predictable.

On a 3.2 MB bundle of `zstd` source files, this improves decompression
throughput on Apple M1 Pro by 11.6% at level 1 and 14.4% at level 3 when
the decoder uses likelihood hints.

Assisted-by: OpenAI Codex
DeltaFile
+69-70llvm/test/CodeGen/AArch64/fcvt-i256.ll
+81-3llvm/test/CodeGen/AArch64/early-ifcvt-likely-predictable.mir
+47-14llvm/lib/CodeGen/EarlyIfConversion.cpp
+36-4llvm/test/CodeGen/AArch64/early-ifcvt-remarks.mir
+233-914 files

LLVM/project 34443b4 — clang/lib/CIR/Dialect/IR CIRDialect.cpp, clang/unittests/CIR ControlFlowTest.cpp

[CIR] Fix cir.try successor regions

`TryOp::getSuccessorRegions` listed the try region and every handler as
entries from the parent, so a handler could run without the try body. Now
the parent enters the try region, a `cir.resume` ending the try region
unwinds into the handlers, and every other exit leaves the op. This matches
`CIRTryOpFlattening`, which branches such resumes to the handler dispatch
block. A `cir.try` with no handlers has nowhere to unwind to, so a
`cir.resume` in its body leaves the op.

The interface only describes exits through a region terminator. A throw from
a call inside the try body is not one, so it gets no edge, and a handler
reached only that way has no predecessor. The catch-all unit test therefore
runs `verifyControlFlowInterfaceConsistency` with `requireAllReachable` set
to false, which replaces its TODO.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+127-13clang/unittests/CIR/ControlFlowTest.cpp
+20-8clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+147-212 files

LLVM/project cdd2222 — llvm/docs/TableGen BackGuide.md, llvm/include/llvm/TableGen Record.h

TableGen: Store classes and defs in a StringMap

Classes and defs were kept in a std::map ordered by name, which makes
every lookup a series of string comparisons over names that often share
long prefixes. Store them in a StringMap instead, and have getClasses()
and getDefs() return a list sorted by name, built when first needed
after records are added.

Gigainstructions executed by llvm-tblgen --null-backend

             before   after
  AMDGPU.td   18.17   16.98   -6.6%
  X86.td       6.15    5.84   -5.1%
  AArch64.td   3.32    3.00   -9.7%
  RISCV.td     8.26    7.44   -9.9%

Including the backends, all tablegen runs in a build of all targets and
clang execute 3.1% fewer instructions in total, and none are slower.
Peak memory parsing AMDGPU.td drops from 835 MB to 830 MB.

    [2 lines not shown]
DeltaFile
+36-10llvm/lib/TableGen/Record.cpp
+14-12llvm/include/llvm/TableGen/Record.h
+8-8mlir/lib/Tools/mlir-tblgen/MlirTblgenMain.cpp
+8-8llvm/utils/TableGen/CTagsEmitter.cpp
+5-7mlir/tools/mlir-tblgen/OpGenHelpers.cpp
+3-8llvm/docs/TableGen/BackGuide.md
+74-535 files not shown
+86-6911 files

LLVM/project b4effb2 — llvm/include/llvm/TableGen Record.h, llvm/lib/TableGen Record.cpp

TableGen: Cache resolved class instantiations (#231091)

The same class instantiation is often referenced many times in one
record, and each reference was resolved from scratch along with
everything nested in its arguments. Cache the results in MapResolver and
RecordResolver, and share them with any TrackUnresolvedResolver wrapping
those. The cache records whether a result has unresolved references, so
a cache hit is reported to the enclosing trackers.

Gigainstructions executed by llvm-tblgen --null-backend

             before   after
  AMDGPU.td   71.46   17.78  -75.1%
  X86.td       6.04    6.09   +0.9%
  AArch64.td   3.27    3.31   +1.4%
  RISCV.td     8.12    8.21   +1.1%

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+90-3llvm/include/llvm/TableGen/Record.h
+16-4llvm/lib/TableGen/Record.cpp
+106-72 files

LLVM/project 0cc6596 — llvm/lib/Target/LoongArch LoongArchAvoidStoreForwardingBlocks.cpp

Use structured bindings in LoongArchAvoidSFB
DeltaFile
+5-7llvm/lib/Target/LoongArch/LoongArchAvoidStoreForwardingBlocks.cpp
+5-71 files

FreeNAS/freenas 0729658 — src/middlewared/middlewared/common/license __init__.py, src/middlewared/middlewared/plugins failover.py

Address review findings in license apply rework

This commit fixes the issues found while reviewing the license apply rework: KMIP now resolves its push/pull direction through the entitlement check so a daemon blip never pulls keys and the integration tests exercise the real path, the KMIP tests expect escrow references to be kept when the server is unreachable, HA delegate steps are isolated from each other, the remote client cannot be started twice on a first HA license, and the apply/journal replay paths no longer race the upload lock.

An admin's explicit upload on the active node is now authoritative. It is propagated through a private endpoint which skips the stale/test license refusals on the standby and a marker keeps the reconnect push from reverting it until the peer has accepted it. TNC and reconnect deliveries keep those refusals.
DeltaFile
+117-84src/middlewared/middlewared/plugins/truenas/license.py
+32-32src/middlewared/middlewared/pytest/unit/plugins/truenas/test_license_upload.py
+25-22tests/api2/test_kmip.py
+13-25src/middlewared/middlewared/plugins/failover.py
+8-8src/middlewared/middlewared/common/license/__init__.py
+3-4src/middlewared/middlewared/pytest/unit/plugins/failover/test_push_license_if_newer.py
+198-17514 files not shown
+225-19120 files

LLVM/project 5f24abf — clang/lib/CIR/Dialect/Transforms CXXABILowering.cpp, clang/test/CIR/CodeGenCUDA shadow-var-undef.cu

[CIR] Lower undef and poison initializers of any type in CXXABILowering (#230901)

CUDA host shadows of device arrays, pointers and member pointers crashed
the pass
DeltaFile
+35-0clang/test/CIR/CodeGenCUDA/shadow-var-undef.cu
+6-8clang/lib/CIR/Dialect/Transforms/CXXABILowering.cpp
+8-0clang/test/CIR/Transforms/cxx-abi-lowering-attrs.cir
+49-83 files

LLVM/project fc8ebf4 — llvm/lib/Target/AMDGPU AMDGPU.td, llvm/lib/Target/ARM ARMPredicates.td

Targets: Use none_of instead of not in AssemblerPredicate conditions (#232033)

Negate features in AssemblerPredicate conditions using the new none_of
instead of not.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>

---

<sub>Stack created with <a
href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a
href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub>

---------

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+63-58llvm/lib/Target/AMDGPU/AMDGPU.td
+15-15llvm/lib/Target/Mips/MipsInstrInfo.td
+5-5llvm/lib/Target/ARM/ARMPredicates.td
+3-3llvm/lib/Target/X86/X86InstrPredicates.td
+3-3llvm/lib/Target/RISCV/RISCVFeatures.td
+3-3llvm/lib/Target/Mips/MipsInstrFPU.td
+92-877 files not shown
+100-9413 files

LLVM/project 53575ed — llvm/include/llvm/Target TargetSubtarget.td, llvm/test/TableGen AsmPredicateCombining.td

TableGen: Add none_of for negating features in AssemblerPredicate (#232021)

AssemblerPredicates are currently specified with "all_of", "any_of",
and then "not" as the odd one out. The use of these operators relies
on the "forward declaration" of not, which is not a language feature
tablegen has. This "not" operator isn't actually the same empty record
as all_of/any_of, and is in fact usually supplied by the PatFrag to
match xor -1 in from TargetSelectionDAG.td. The predicate parser just
special cases the name.

Introduce none_of to go with the other predicate operators, which is
more consistent and expressive. This will help cleanup some tablegen
include dependencies, like avoiding redeclaring not in every target's
TargetParser generation.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+24-0llvm/test/TableGen/AsmPredicateCombining.td
+18-1llvm/utils/TableGen/Basic/PredicateExpanderDag.cpp
+7-6llvm/utils/TableGen/Basic/PredicateExpanderDag.h
+6-5llvm/include/llvm/Target/TargetSubtarget.td
+6-3llvm/utils/TableGen/Common/SubtargetFeatureInfo.cpp
+6-3llvm/utils/TableGen/AsmWriterEmitter.cpp
+67-181 files not shown
+68-197 files

LLVM/project 96f8aa5 — llvm/test/CodeGen/LoongArch/lsx/ir-instruction uitofp.ll sitofp.ll

update after rebase
DeltaFile
+28-30llvm/test/CodeGen/LoongArch/lsx/ir-instruction/sitofp.ll
+20-22llvm/test/CodeGen/LoongArch/lsx/ir-instruction/uitofp.ll
+48-522 files

LLVM/project 9abbf8e — clang/lib/CIR/Dialect/Transforms FlattenCFG.cpp

[CIR][NFC] Use CleanupKindAttr predicates in FlattenCFG (#221234)

`flattenCleanup` still checks the cleanup kind by comparing the raw enum
against `Normal`, `EH` and `All`. `CleanupKindAttr::isNormal()` and
`isEH()` mean exactly that, and the rest of `FlattenCFG` already calls
`isEH()` since #224829.

Assisted-by: Claude Code (Claude Opus 5.5).
DeltaFile
+3-5clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
+3-51 files

FreeBSD/ports 0a68c99 — audio/neuralrack-lv2 pkg-plist Makefile, audio/neuralrack-lv2/files patch-NeuralRack_makefile

audio/neuralrack-lv2: fix packaging on non-amd64

Name the VST3 bundle directory after the compiler target instead of
uname -m, which is the platform (powerpc, arm64) on FreeBSD, and make
pkg-plist follow ARCH.

(cherry picked from commit 6e11c236419afce9175df1daa5b2fb9518f69622)
DeltaFile
+16-3audio/neuralrack-lv2/files/patch-NeuralRack_makefile
+1-1audio/neuralrack-lv2/pkg-plist
+2-0audio/neuralrack-lv2/Makefile
+19-43 files

LLVM/project 58f260b — llvm/test/CodeGen/LoongArch/lasx rotl-rotr.ll, llvm/test/CodeGen/LoongArch/lsx rotl-rotr.ll

update tests
DeltaFile
+2-6llvm/test/CodeGen/LoongArch/lasx/rotl-rotr.ll
+2-4llvm/test/CodeGen/LoongArch/lsx/rotl-rotr.ll
+4-102 files

LLVM/project f3c21eb — llvm/test/CodeGen/LoongArch/lasx scalar-to-vector.ll build-vector.ll, llvm/test/CodeGen/LoongArch/lasx/ir-instruction insertelement.ll

update tests
DeltaFile
+10-40llvm/test/CodeGen/LoongArch/lasx/build-vector.ll
+7-19llvm/test/CodeGen/LoongArch/lsx/build-vector.ll
+4-6llvm/test/CodeGen/LoongArch/lasx/ir-instruction/insertelement.ll
+4-4llvm/test/CodeGen/LoongArch/lsx/scalar-to-vector.ll
+4-4llvm/test/CodeGen/LoongArch/lasx/scalar-to-vector.ll
+29-735 files

LLVM/project e315fbd — llvm/lib/Target/LoongArch LoongArchISelLowering.cpp

[LoongArch] Legalize BUILD_VECTOR into a broadcast when all non-undef elements are identical

When a BUILD_VECTOR consists of the same element (ignoring undefs),
it is better emitting a broadcast instead of multiple insertions.

Some floating-point cases suffer performance regressions, those
specific cases are excluded in this commit. Including when:

- only one element is non-undef,
- only two elements are non-undef, and one of them must at index 0,
- for v8f32 vector type, specially exclude the cases when the only
two non-undefs are at index (1,2)/(1,3)/(2,3).
DeltaFile
+31-5llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+31-51 files

LLVM/project 16b2fbe — clang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/Dialect/IR CIRDialect.cpp

[CIR] Fix cir.cleanup.scope successor regions (#221222)

`CleanupScopeOp::getSuccessorRegions` listed the body and the cleanup
region as entries from the parent, so the cleanup could run without the
body and no edge led from the body to the cleanup. Now the parent enters
the body, a body exit enters the cleanup region if the cleanup kind
covers that exit, and the cleanup region exits to the parent.
`cir.resume` runs EH cleanups, and `cir.yield` and `cir.co_return` run
normal ones. Take this scope, where `<kind>` is `normal`, `eh` or `all`:

```mlir
cir.cleanup.scope {
  cir.brcond %cond ^normal, ^unwind
^normal:
  cir.yield
^unwind:
  %tok = cir.eh.initiate cleanup : !cir.eh_token
  cir.resume %tok : !cir.eh_token
} cleanup <kind> {

    [31 lines not shown]
DeltaFile
+162-37clang/unittests/CIR/ControlFlowTest.cpp
+22-5clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+4-5clang/include/clang/CIR/Dialect/IR/CIROps.td
+188-473 files

OpenBSD/ports WEdKYSv — sysutils/exoscale-cli Makefile distinfo

   Update to exoscale-cli-1.103.2.
VersionDeltaFile
1.162+2-2sysutils/exoscale-cli/distinfo
1.165+1-1sysutils/exoscale-cli/Makefile
+3-32 files

LLVM/project 8dd6c8f — llvm/test/CodeGen/LoongArch/lasx build-vector.ll, llvm/test/CodeGen/LoongArch/lsx build-vector.ll

[LoongArch][NFC] Add tests for build_vector containing same elements except for undefs
DeltaFile
+231-18llvm/test/CodeGen/LoongArch/lasx/build-vector.ll
+149-18llvm/test/CodeGen/LoongArch/lsx/build-vector.ll
+380-362 files

OpenBSD/ports cK6GqMn — print/py-pypdf Makefile distinfo

   Update to py3-pypdf-6.20.1.
VersionDeltaFile
1.84+2-2print/py-pypdf/distinfo
1.90+1-1print/py-pypdf/Makefile
+3-32 files

LLVM/project ebff490 — llvm/include/llvm/Option LibraryOptions.td, llvm/lib/Target/AArch64 AArch64Options.td

[Option] Add AliasOf for library options (#232174)

An AliasOf keeps an old spelling of a renamed library option, e.g. for
the CodeGenPrepare options that #228838 renamed:

```
def : AliasOf<"cgpp-huge-func", "cgp-huge-func">;
def : AliasOf<"disable-cgp-branch-opts", "cgp-branch-opts=false">;
```

It names its target by spelling, so adding or removing an alias leaves
the target's row as is. Both boolean and non-boolean targets are
supported.

This feature replaces Alias<>, whose only user was
-aarch64-stack-hazard-size.

LLM-aided
DeltaFile
+32-11llvm/utils/TableGen/Basic/OptionParserEmitter.cpp
+17-4llvm/unittests/Option/LibraryOptionsTest.cpp
+21-0llvm/test/TableGen/opt-parser-alias-of.td
+9-0llvm/include/llvm/Option/LibraryOptions.td
+2-3llvm/lib/Target/AArch64/AArch64Options.td
+4-0llvm/unittests/Option/LibraryOpts.td
+85-181 files not shown
+87-197 files

LLVM/project 5ea8abe — llvm/utils/TableGen/Common CodeGenRegisters.h CodeGenRegisters.cpp

TableGen: Avoid linear search for register class names (#232108)

Inferring register classes checked whether a name was already used by
walking the list of all register classes. AMDGPU has thousands of
register classes, so this was a large part of building the register
bank. Keep a set of the names instead.

The 8 AMDGPU tablegen runs that build the register bank each execute
8% to 12% fewer cycles.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+3-6llvm/utils/TableGen/Common/CodeGenRegisters.cpp
+2-0llvm/utils/TableGen/Common/CodeGenRegisters.h
+5-62 files

HardenedBSD/src 91b283d — sys/dev/iwm if_iwm_pcie_trans.h if_iwm_pcie_trans.c

Merge remote-tracking branch 'rad/hardened/current/master' into hardened/current/pledge
DeltaFile
+101-19sys/dev/iwm/if_iwm_phy_ctxt.c
+87-21sys/dev/iwm/if_iwm.c
+22-6sys/dev/iwm/if_iwm_sta.c
+18-0sys/dev/iwm/if_iwm_util.h
+7-6sys/dev/iwm/if_iwm_pcie_trans.c
+3-3sys/dev/iwm/if_iwm_pcie_trans.h
+238-554 files not shown
+248-5810 files

HardenedBSD/src 606ecfe — sys/fs/nfsserver nfs_nfsdsocket.c

Merge remote-tracking branch 'rad/hardened/15-stable/main' into hardened/15-stable/pledge
DeltaFile
+7-0sys/fs/nfsserver/nfs_nfsdsocket.c
+7-01 files

HardenedBSD/src db34b21 — sys/dev/iwm if_iwm_pcie_trans.h if_iwm_pcie_trans.c

Merge branch 'freebsd/current/main' into hardened/current/master
DeltaFile
+101-19sys/dev/iwm/if_iwm_phy_ctxt.c
+87-21sys/dev/iwm/if_iwm.c
+22-6sys/dev/iwm/if_iwm_sta.c
+18-0sys/dev/iwm/if_iwm_util.h
+7-6sys/dev/iwm/if_iwm_pcie_trans.c
+3-3sys/dev/iwm/if_iwm_pcie_trans.h
+238-554 files not shown
+248-5810 files

HardenedBSD/src 5b15afe — sys/fs/nfsserver nfs_nfsdsocket.c

Merge branch 'freebsd/15-stable/main' into hardened/15-stable/main
DeltaFile
+7-0sys/fs/nfsserver/nfs_nfsdsocket.c
+7-01 files

HardenedBSD/ports 7de14d4 — audio/maolan Makefile Makefile.crates, audio/maolan/files patch-cargo-crates_i24-2.3.5_src_repr.rs

Merge branch 'freebsd/main' into hardenedbsd/main
DeltaFile
+653-483audio/maolan/distinfo
+325-240audio/maolan/Makefile.crates
+125-8security/vuxml/vuln/2026.xml
+17-17misc/ollama/distinfo
+0-29audio/maolan/files/patch-cargo-crates_i24-2.3.5_src_repr.rs
+11-11audio/maolan/Makefile
+1,131-78812 files not shown
+1,182-82818 files