LLVM/project a533db6 — llvm/utils/TableGen CallingConvEmitter.cpp

TableGen: Only build the register bank in CallingConvEmitter when needed

CallingConvEmitter built the register bank to find registers named by
strings, which only CCAssignToRegTuple uses. No target does, but
building the register bank is most of the work for targets with many
registers. Build it when the first register name is looked up instead.

All 16 CallingConv tablegen runs in an LLVM build with all targets:

            Gigainstructions  Gigacycles      CPU seconds
  Before    73.5              43.4            15.1
  After     47.1 (-35.9%)     27.7 (-36.2%)   10.2 (-32.2%)

For AMDGPU alone, the run executes 63% fewer cycles.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+8-4llvm/utils/TableGen/CallingConvEmitter.cpp
+8-41 files

LLVM/project 1c994e7 — llvm/include/llvm/TargetParser CMakeLists.txt, llvm/lib/Target/RISCV RISCVFeatures.td RISCVRegisterInfo.td

RISCV: Use minimal tablegen inputs for TargetParser (#239104)

Generate RISCVTargetParserDef.inc from a reduced td file which
includes only the features, profiles and processors, instead of all of
RISCV.td. The processors reference scheduling models, which are
defined with the scheduling information for the instructions, so the
new file defines empty placeholder models instead, as was done for
AArch64 in #231954.

RISCV was the last TargetParser input that parsed the full target, and
took 1.74 of the 1.78 seconds spent in the TargetParser tablegen jobs.

llvm-min-tblgen -gen-riscv-target-def, mean of 5 runs

Gigainstructions Seconds Peak RSS .td deps
  RISCV.td                   7.47              1.74     407 MB    139
  RISCVTargetParserDef.td    0.04              0.01       7 MB      9

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

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+44-0llvm/lib/Target/RISCV/RISCVTargetParserDef.td
+0-3llvm/lib/Target/RISCV/RISCVFeatures.td
+3-0llvm/lib/Target/RISCV/RISCVRegisterInfo.td
+1-1utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+1-1llvm/utils/gn/secondary/llvm/include/llvm/TargetParser/BUILD.gn
+1-1llvm/include/llvm/TargetParser/CMakeLists.txt
+50-66 files

LLVM/project b7bc61f — llvm/lib/Target/RISCV RISCVFeatures.td RISCVMacroFusionXQCI.td

RISCV: Define macro fusion features separately from predicates (#239103)

Move the fusion tuning features to RISCVFeatures.td with the other
tuning features, and attach the predicates with SimpleFusionFor and
FusionFor. The features no longer depend on the instruction definitions.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+125-161llvm/lib/Target/RISCV/RISCVMacroFusion.td
+60-72llvm/lib/Target/RISCV/RISCVMacroFusionXQCI.td
+104-0llvm/lib/Target/RISCV/RISCVFeatures.td
+289-2333 files

LLVM/project 88bd907 — llvm/include/llvm/Target TargetMacroFusion.td, llvm/test/TableGen MacroFusionDuplicate.td MacroFusionFor.td

TableGen: Allow macro fusion predicates for a separate subtarget feature (#239102)

Fusion defines a subtarget feature and its fusion predicates in a single
record. The predicates reference instructions, so the feature can't be
defined without the instruction definitions. Add FusionFor and
SimpleFusionFor to attach fusion predicates to a SubtargetFeature
defined elsewhere.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+73-0llvm/test/TableGen/MacroFusionFor.td
+49-19llvm/include/llvm/Target/TargetMacroFusion.td
+30-0llvm/test/TableGen/MacroFusionDuplicate.td
+15-14llvm/utils/TableGen/MacroFusionPredicatorEmitter.cpp
+19-1llvm/utils/TableGen/Common/CodeGenTarget.cpp
+6-1llvm/utils/TableGen/Common/CodeGenTarget.h
+192-351 files not shown
+193-367 files

FreeBSD/ports b742594 — comms/wsjtx Makefile pkg-plist, comms/wsjtx/files patch-CMake_Modules_FindUsb.cmake hamlib.patch

comms/wsjtx: Update to 3.0.1

                        Release: WSJT-X 3.0.0-rc1
                          September 15, 2025
                      -------------------------

WSJT-X 3.0.0 introduces a number of new features and capabilities.
Release Candidates give advanced users an opportunity to exercise
new features and provide feedback to developers. If you use this
Release Candidate 1, please send related comments or questions to
one of our user forums.

The following features will be already familiar to those using one of
the WSJT-X Improved 2.8.0 i+ editions, but new to users of WSJT-X
2.7.0 and all earlier versions:

 - Single-click Band Buttons can be enabled from the View menu.

 - Filters can be used to suppress the display of various categories

    [86 lines not shown]
DeltaFile
+0-220comms/wsjtx/files/wsjtx.patch
+102-7comms/wsjtx/files/patch-CMakeLists.txt
+0-74comms/wsjtx/files/hamlib.patch
+35-29comms/wsjtx/pkg-plist
+23-25comms/wsjtx/Makefile
+23-0comms/wsjtx/files/patch-CMake_Modules_FindUsb.cmake
+183-3551 files not shown
+186-3587 files

LLVM/project dfc43d3 — flang/include/flang/Lower SymbolMap.h, flang/lib/Lower SymbolMap.cpp

[flang] Fix references to a LOCAL variable of an enclosing DO CONCURRENT (#238647)

A `REDUCE` locality-spec on a nested `DO CONCURRENT` that names a
variable with `LOCAL` or `LOCAL_INIT` locality in the enclosing `DO
CONCURRENT` crashes lowering:

```fortran
subroutine s(n, nz, work)
  integer :: n, nz, work(nz), j, k, tmp
  do concurrent (k=1:nz) local(tmp)
    tmp = 0
    do concurrent (j=1:n) reduce(max:tmp)
      tmp = max(tmp, j)
    end do
    work(k) = tmp
  end do
end subroutine
```


    [67 lines not shown]
DeltaFile
+180-0flang/test/Lower/do_concurrent_nested_locality.f90
+70-0flang/test/Semantics/symbol09.f90
+19-2flang/include/flang/Lower/SymbolMap.h
+12-3flang/lib/Lower/Support/Utils.cpp
+6-6flang/lib/Lower/SymbolMap.cpp
+6-0flang/lib/Semantics/resolve-names.cpp
+293-116 files

FreeBSD/src 843cb77 — sys/dev/etherswitch/e6000sw e6000sw.c

e6000sw: Write the value, not the register, in Clause 45 writes

e6000sw_write_xmdio() loaded the Clause 45 register address into the
SMI PHY data register a second time, where the value to write belongs,
so every Clause 45 write stored the register address.

Its only caller, e6000sw_serdes_power(), runs at attach for ports 9 and
10 of the 88E6190 and 88E6190X to power one SERDES interface up and the
other down.  It wrote 0x2000 to the SGMII control register and 0x1000
to the 10GBASE-R PCS control register instead, so neither interface was
powered down and the rest of each register was overwritten.

Fixes:          9aba06377d26 ("Add support for the Marvell 88E6190 11 ports switch.")
Sponsored by:   Rubicon Communications, LLC ("Netgate")
DeltaFile
+1-1sys/dev/etherswitch/e6000sw/e6000sw.c
+1-11 files

LLVM/project 56a7efd —

Fix Bazel build for fa8c673 (#239300)

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

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+0-00 files

FreeBSD/ports 03ab62e — lang/elixir-devel Makefile distinfo

lang/elixir-devel: Update to 1.20.5

- ChangeLog https://github.com/elixir-lang/elixir/releases/tag/v1.20.5
- set CPE_VENDOR for NVD matching

Security:       CVE-2026-97209
Security:       CVE-2026-109821
Security:       CVE-2026-115274
Sponsored by:   SkunkWerks, GmbH
DeltaFile
+5-5lang/elixir-devel/distinfo
+3-2lang/elixir-devel/Makefile
+8-72 files

FreeBSD/ports 8d578ca — security/vuxml/vuln 2026.xml

security/vuxml: Document Elixir vulnerabilities

- add CVE-2026-109821 for URI.parse port limits
- add CVE-2026-115274 for JSON integer decoding beyond float64 range
- mark elixir before 1.18.6 and 1.19.7, and elixir-devel before 1.20.5
- add CVE-2026-97209 for mix deps.partition config, elixir-devel only

Sponsored by:   SkunkWerks, GmbH
DeltaFile
+67-0security/vuxml/vuln/2026.xml
+67-01 files

FreeBSD/ports 981c6d8 — lang/crystal Makefile distinfo, lang/crystal/files patch-lib_markd_src_markd_rule.cr patch-src_prelude.cr

lang/crystal: Update to 1.22.2

Announcement:   https://crystal-lang.org/2026/10/12/1.22.0-released/
ChangeLog:      https://github.com/crystal-lang/crystal/blob/master/doc/changelogs/v1.22.md
Sponsored by:   SkunkWerks, GmbH
DeltaFile
+23-2lang/crystal/pkg-plist
+18-0lang/crystal/files/patch-src_prelude.cr
+13-0lang/crystal/files/patch-lib_markd_src_markd_rule.cr
+3-3lang/crystal/distinfo
+1-1lang/crystal/Makefile
+58-65 files

FreeBSD/ports ba92e9a — security/vuxml/vuln 2026.xml

security/vuxml: Add uptime-kuma vuln
DeltaFile
+28-0security/vuxml/vuln/2026.xml
+28-01 files

FreeBSD/ports b039268 — lang/elixir Makefile distinfo

lang/elixir: Update to 1.19.7

- ChangeLog https://github.com/elixir-lang/elixir/releases/tag/v1.19.7
- set CPE_VENDOR for NVD matching

Security:       CVE-2026-109821
Security:       CVE-2026-115274
Sponsored by:   SkunkWerks, GmbH
DeltaFile
+5-5lang/elixir/distinfo
+3-2lang/elixir/Makefile
+8-72 files

FreeBSD/ports 354d0a6 — net/lavinmq Makefile distinfo

net/lavinmq: Update to 2.10.4

- https://github.com/cloudamqp/lavinmq/blob/v2.10.4/CHANGELOG.md
DeltaFile
+3-3net/lavinmq/distinfo
+1-1net/lavinmq/Makefile
+4-42 files

FreeBSD/ports 7ac70a4 — x11-fonts Makefile, x11-fonts/rubik pkg-plist distinfo

x11-fonts/rubik: Add Rubik font family

- add sans-serif font family with slightly rounded corners
- distribute the variable Roman and Italic fonts from the googlefonts
  upstream, pinned to the e337a5 commit ("New binaries")
- supports Latin, Cyrillic, Hebrew, and Arabic scripts

Sponsored by:   SkunkWerks, GmbH
DeltaFile
+25-0x11-fonts/rubik/Makefile
+6-0x11-fonts/rubik/pkg-descr
+3-0x11-fonts/rubik/distinfo
+2-0x11-fonts/rubik/pkg-plist
+1-0x11-fonts/Makefile
+37-05 files

FreeBSD/ports b07e9db — net-mgmt/uptime-kuma Makefile distinfo

net-mgmt/uptime-kuma: update to 2.5.9

Reported by:    portstatus
Security:       CVE-2026-119552
Sponsored by:   SkunkWerks, GmbH
DeltaFile
+7-7net-mgmt/uptime-kuma/distinfo
+2-3net-mgmt/uptime-kuma/Makefile
+9-102 files

FreeBSD/ports 5022d6c — ports-mgmt/git-proxy/files pkg-message.in

ports-mgmt/git-proxy: Improve pkg-message
DeltaFile
+1-1ports-mgmt/git-proxy/files/pkg-message.in
+1-11 files

LLVM/project 921b800 — bolt/lib/Passes VeneerElimination.cpp, bolt/test/AArch64 veneer-erratum-843419-cfg.s

[BOLT] Connect inlined e843419 veneer block to its return target (#238108)

When an lld Cortex-A53 erratum 843419 veneer is inlined, the branch
being replaced is a tail call, so its block has no successors in the
CFG. The block then ends in the veneer's load/store with no edge to
the veneer's branch-back target. Block reordering and splitting are
free to separate the two, and fixBranches adds no branch, because a
block with no successors has no fall-through to fix up: execution
runs into whatever was laid out next.

Record the edge when inlining, and only inline over a branch that is
the block's unconditional terminator, which is what lld writes in
place of the patched load/store.
DeltaFile
+65-0bolt/test/AArch64/veneer-erratum-843419-cfg.s
+27-4bolt/lib/Passes/VeneerElimination.cpp
+92-42 files

LLVM/project d0e7695 — clang/lib/DependencyScanning DependencyScanningWorker.cpp, clang/unittests/Tooling DependencyScannerTest.cpp

[clang][DepScan] Support subdirectory seach in getModuleMapsForModules (#238860)

Respect resolving modulemaps with
`-fmodulemap-allow-subdirectory-search` in `getModuleMapsForModules` to
match the normal scan's lookup. Note this option is default disabled.
DeltaFile
+31-0clang/unittests/Tooling/DependencyScannerTest.cpp
+2-1clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+33-12 files

LLVM/project 3042140 — bolt/include/bolt/Core BinaryContext.h, bolt/lib/Core BinaryContext.cpp

[BOLT] Handle relative vtable slots covered by WPD aliases (#238065)

A PC-relative relocation in read-only data will be treated as a relative
vtable slot and resolved against its function symbol if and only if the
innermost data symbol containing it is a vtable. Otherwise BOLT will
treat it as a reference to S+A.

With ThinLTO split LTO units, WPD could export a hidden alias symbol
`__typeid_<id>_<offset>_unique_member` at a vtable's address point. It
inherits the vtable's size, so it extends past the vtable, is not nested
under it, and is the innermost symbol for the slots. A slot's addend is
its offset from the address point, so S+A can land inside the target
function, which is then incorrectly interpreted as having an unclaimed
internal reference and marked as non-simple.

The fix is to keep an address-sorted index of vtables, filled when
symbols are registered, and look up the vtable containing a slot
directly. Vtables do not overlap, so only the last one starting at or
before the slot can contain it. This would also handle any new kind of

    [2 lines not shown]
DeltaFile
+75-0bolt/test/AArch64/relative-vtable-typeid-alias.s
+14-0bolt/lib/Core/BinaryContext.cpp
+9-0bolt/include/bolt/Core/BinaryContext.h
+1-2bolt/lib/Rewrite/RewriteInstance.cpp
+99-24 files

LLVM/project 4836728 — llvm/lib/CodeGen/GlobalISel IRTranslator.cpp, llvm/lib/CodeGen/SelectionDAG FunctionLoweringInfo.cpp

[CodeGen] Overwrite a 0 sized alloca to have same number of bytes as it's Frame Object (#232755)

Fix: instruction selection rounds a zero-sized `alloca`'s frame object
up to one byte without updating the `alloca`, leading to bad alias
information and wrong access conclusions in BasicAA.

---

#### Context

I ran into a bug where StackColoring (on a mix of C and Rust codebase)
would collapse 1 byte LLVM IR alloca into other 0 byte LLVM IR allocas
but their FrameObject would have a min-size of 1 byte. However, when
BasicAA runs it reads the LLVM IR `alloca` to get the size, and not the
Frame Object. The LLVM IR alloca would still show 0 bytes, and this can
break BasicAA's conclusions about whether two accesses can touch the
same memory and results in bad program behaviour (e.g. wrong values,
hangs, crashes, deadlocks, etc).


    [29 lines not shown]
DeltaFile
+68-0llvm/test/CodeGen/RISCV/isel-zero-size-alloca.ll
+59-0llvm/test/CodeGen/RISCV/zero-size-alloca-misched.ll
+7-7llvm/test/CodeGen/AMDGPU/issue130120-eliminate-frame-index.ll
+10-2llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
+9-1llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+153-105 files

LLVM/project ed7735b — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AMDGPU bitcast-int-fp.ll

[AMDGPU] Move the bitcast cost comments, document the i1 mask test

Put the comment about the scalarized parts of a vector bitcast above
the size check, and the comment about the shared registers inside it.
Say in the test which case @i1_mask covers.

Assisted-by: Claude Opus
DeltaFile
+4-2llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+3-0llvm/test/Analysis/CostModel/AMDGPU/bitcast-int-fp.ll
+7-22 files

LLVM/project f227f40 — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AMDGPU bitcast-int-fp.ll

[AMDGPU] Treat a bitcast between legal types as free

The generic cost model treats a bitcast as free only when both types
are integer types or both are not. AMDGPU keeps integer and
floating-point values in the same registers, so a bitcast between two
legal types is a no-op. A scalar bitcast from i32 to float cost 1, but
the vector bitcast from <2 x i32> to <2 x float> cost 0. The SLP
vectorizer counted this difference as a saving.

A bitcast that involves a type the target legalizes, such as a vector
of i8, keeps its cost, because the lanes may need repacking.

Assisted-by: Claude Opus
DeltaFile
+35-35llvm/test/Analysis/CostModel/AMDGPU/bitcast-int-fp.ll
+4-3llvm/test/Transforms/SLPVectorizer/AMDGPU/bitcast-int-fp.ll
+6-0llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+45-383 files

LLVM/project b156213 — llvm/test/Analysis/CostModel/AMDGPU bitcast-int-fp.ll

[AMDGPU][NFC] Add bitcast cost tests for legalized types and pointers

Add bitcasts that involve types the target legalizes, such as vectors
of i8, i24 and <2 x i24>, and bitcasts of pointers. Add a gfx7 RUN
line, where i16 and <2 x i16> are not legal.

Assisted-by: Claude Opus
DeltaFile
+134-2llvm/test/Analysis/CostModel/AMDGPU/bitcast-int-fp.ll
+134-21 files

LLVM/project cb61a87 — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AMDGPU bitcast-int-fp.ll

[AMDGPU] Treat a bitcast between scalars legalized to the same size as free
DeltaFile
+15-7llvm/test/Analysis/CostModel/AMDGPU/bitcast-int-fp.ll
+11-8llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+26-152 files

LLVM/project 06ef175 — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AMDGPU bitcast-int-fp.ll

[AMDGPU] Require equal sizes for a free bitcast, add i1 mask and gfx6 tests
DeltaFile
+79-49llvm/test/Analysis/CostModel/AMDGPU/bitcast-int-fp.ll
+5-3llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+84-522 files

LLVM/project f2d6195 — llvm/test/Analysis/CostModel/AMDGPU bitcast-int-fp.ll, llvm/test/Transforms/SLPVectorizer/AMDGPU bitcast-int-fp.ll

[AMDGPU][NFC] Add tests for bitcasts between integer and FP types

Add cost model tests for bitcasts between integer and floating-point
types of the same size, as scalars and as vectors. Add an SLP test that
stores a pair of values bitcast from i32 to float.

Assisted-by: Claude Opus
DeltaFile
+106-0llvm/test/Analysis/CostModel/AMDGPU/bitcast-int-fp.ll
+72-0llvm/test/Transforms/SLPVectorizer/AMDGPU/bitcast-int-fp.ll
+178-02 files

LLVM/project d048633 — llvm/include/llvm/MC MCPseudoProbe.h, llvm/unittests/MC CMakeLists.txt MCPseudoProbeTest.cpp

[PseudoProbe] Avoid OOB in pseudo probe search (#239082)

There's an OOB access if `GUIDProbeFunctionMap` tries to find an invalid
GUID that over the biggest GUID. `lower_bound` returns the end of
vector, which makes the dereference invalid.

Assisted by: Opus 5.5
DeltaFile
+53-0llvm/unittests/MC/MCPseudoProbeTest.cpp
+1-1llvm/include/llvm/MC/MCPseudoProbe.h
+1-0llvm/unittests/MC/CMakeLists.txt
+55-13 files

LLVM/project 438673e — libcxx/test/libcxx/depr/depr.default.allocator/allocator.members max_size.cxx20.verify.cpp address.cxx20.verify.cpp

[libc++] Rewrite some std::allocator verify tests (#238802)

They were written in a way that makes it look like they are executed,
when in reality they aren't.

The underlying motivation for rewriting is that some of the verify
checks were written inside `assert(...)`, which made them fail if the
`assert` macro expands to nothing or expands to something that evaluates
the expression twice (both of which are terrible implementations of
assert).

Assisted by Claude
DeltaFile
+0-77libcxx/test/libcxx/depr/depr.default.allocator/allocator.members/construct.cxx20.verify.cpp
+54-0libcxx/test/libcxx/depr/depr.default.allocator/allocator.members/construct_destroy.cxx20.verify.cpp
+6-15libcxx/test/libcxx/depr/depr.default.allocator/allocator.members/address.cxx20.verify.cpp
+2-13libcxx/test/libcxx/depr/depr.default.allocator/allocator.members/max_size.cxx20.verify.cpp
+62-1054 files

LLVM/project e23aefa — llvm/test/Transforms/StructurizeCFG callbr.ll

add forgotten CHECK lines for new test
DeltaFile
+15-1llvm/test/Transforms/StructurizeCFG/callbr.ll
+15-11 files