LLVM/project 18a91e0llvm/lib/Target/RISCV RISCVProcessors.td, llvm/test/CodeGen/RISCV memcpy.ll

[RISCV] Andes: model fast unaligned accesses for the 45-series (#221166)

The 45-series cores support unaligned scalar accesses. Add
FeatureUnalignedScalarMem to each 45-series processor (andes-n45,
andes-nx45, andes-a45, andes-ax45 and andes-ax45mpv), so that it is
selected by -mcpu rather than -mtune. Other processors declare it this
way too. The feature is somewhat architectural: -mtune is only supposed
to affect performance, but reaching it through tune features lets -mtune
introduce unaligned accesses that crash on a CPU which does not support
them.

Cover this in memcpy.ll using -mcpu=andes-a45/-mcpu=andes-ax45. The new
RUN lines pass -mtune=rocket so that the 45-series scheduling model does
not reorder the output, letting them reuse the existing check lines.

Co-authored-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+10-5llvm/lib/Target/RISCV/RISCVProcessors.td
+4-0llvm/test/CodeGen/RISCV/memcpy.ll
+14-52 files

FreeBSD/src d983dc5sys/dev/iavf iavf_drv_info.h

iavf: Probe the Hyper-V VF device ID

The shared code already recognizes IAVF_DEV_ID_VF_HV and handles it
through the regular iavf register and virtchnl paths, but the PCI probe
table omits it.  Add the missing entry so the driver attaches.

PR:             239849
MFC after:      1 week
DeltaFile
+2-0sys/dev/iavf/iavf_drv_info.h
+2-01 files

LLVM/project 210e20allvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPTypeUtils.h SLPTypeUtils.cpp

[SLP][modularisation][NFC] Move getNumberOfParts, isAllowedNonPowerOf2VF (#220827)

Move the following BoUpSLP-independent type/width helpers out of
SLPVectorizer.cpp into SLPVectorizer/SLPTypeUtils.{h,cpp}:

  getNumberOfParts
  isAllowedNonPowerOf2VF

Both read a file-local cl::opt (SLPReVec and VectorizeNonPowerOf2
respectively). The options stay static in SLPVectorizer.cpp; the moved
helpers take their values as explicit bool parameters. Behavior is
unchanged.

Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
DeltaFile
+31-57llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+25-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPTypeUtils.cpp
+15-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPTypeUtils.h
+71-573 files

FreeBSD/ports eac17e4net/haproxy Makefile distinfo

net/haproxy: update to version 3.4.4
DeltaFile
+3-3net/haproxy/distinfo
+1-1net/haproxy/Makefile
+4-42 files

FreeBSD/src a24eb09sys/conf files.amd64

apple_bce: require usb(4) for vhci functionality

The vhci portion of the driver relies on usb(4) for both constants and
functionality. Add an explicit dependency on usb(4) in `files.amd64` so
it builds properly 100% of the time in a static kernel config.

Reviewed by:    seuros
Differential Revision:  https://reviews.freebsd.org/D59469
DeltaFile
+1-1sys/conf/files.amd64
+1-11 files

FreeBSD/ports 33bc010devel Makefile, devel/R-cran-styler distinfo pkg-descr

devel/R-cran-styler: New port

Pretty-prints R code without changing the user's formatting intent.
DeltaFile
+39-0devel/R-cran-styler/Makefile
+4-0devel/R-cran-styler/pkg-descr
+3-0devel/R-cran-styler/distinfo
+1-0devel/Makefile
+47-04 files

FreeNAS/freenas 0df5555src/freenas/usr/local/bin truenas-hw-license.py, src/middlewared/middlewared/utils/license legacy.py

Write a legacy license record on unlicensed iX appliances

This commit adds changes to write a minimal legacy license record during upgrade on iX appliance hardware that carries no license at all, so those systems resolve entitlements as licensed hardware and future features have somewhere to be gated. Which features the record actually carries is deliberately minimal for now and a separate decision.

The record is stamped with a marker in customer_key so legacy normalization can tell it apart from a license an issuer signed, and it carries an empty HA serial so the parsed type stays ENTERPRISE_SINGLE and failover.licensed remains false.
DeltaFile
+115-0src/freenas/usr/local/bin/truenas-hw-license.py
+30-6src/middlewared/middlewared/utils/license/legacy.py
+145-62 files

FreeNAS/freenas eb3844csrc/freenas/usr/local/bin truenas-hw-license.py, src/middlewared/middlewared/plugins/truenas license.py

Record what the hardware entitlement script did on upgrade

This commit adds changes to leave a record under /data of every outcome from truenas-hw-license.py, since the installer discards the script's output and a failure to write the entitlement record was previously invisible. Middleware relays it into middlewared.log on first boot and then deletes it, and only says anything when the record carries an error.

Every outcome is recorded rather than just the failures because a chassis reading as unknown is indistinguishable in the script from dmidecode having failed, so which outcomes deserve attention is better decided in middleware.

Both writes now go through atomic_write instead of a hand-rolled open with fchmod and fchown, matching truenas-nvdimm.py which already uses it from the same chroot. That also closes a window where a failed write left behind a permanent zero-byte /data/license that no later upgrade would have retried.
DeltaFile
+50-20src/freenas/usr/local/bin/truenas-hw-license.py
+35-0src/middlewared/middlewared/plugins/truenas/license.py
+3-0src/middlewared/middlewared/utils/license/constants.py
+2-0src/middlewared/middlewared/utils/license/__init__.py
+90-204 files

FreeNAS/freenas c677fe3src/freenas/usr/local/bin truenas-hw-license.py, src/middlewared/middlewared/alert/source license_status.py

Distinguish system-generated license records from issued ones

This commit adds changes to record where a license record came from, since we now write one ourselves during upgrade on unlicensed appliance hardware and several consumers were treating it as though iX had issued it.

Entitlement resolution deliberately ignores the origin - a system-generated record is meant to resolve exactly as an issued one does. This only changes alerting, the unlicensed to licensed transition hook, and what we report outward to TrueNAS Connect and support.
DeltaFile
+11-11src/middlewared/middlewared/utils/license/legacy.py
+18-1src/middlewared/middlewared/utils/license/types.py
+6-3src/middlewared/middlewared/plugins/truenas_connect/register.py
+5-3src/middlewared/middlewared/pytest/unit/plugins/test_truenas_connect.py
+4-3src/freenas/usr/local/bin/truenas-hw-license.py
+4-1src/middlewared/middlewared/alert/source/license_status.py
+48-225 files not shown
+61-2811 files

FreeBSD/src d8c4785bin/cat cat.c cat.1, bin/cat/tests Makefile cat_extra_test.sh

cat: add -A, -E and -T flags

Support cat -A, -E and -T, which are commonly used by Linux shell
scripts.  -E prints a "$" at the end of each line, -T renders tabs
as ^I, and -A is equivalent to -vET.

MFC After:      1 week
Discussed with: jrtc27
Reviewed by:    jrtc27, ziaee
Differential Revision:  https://reviews.freebsd.org/D59250

(cherry picked from commit d2cfdf4c12a76db3612c83575403150811f5aa9a)
DeltaFile
+59-0bin/cat/tests/cat_extra_test.sh
+25-9bin/cat/cat.1
+17-8bin/cat/cat.c
+1-0bin/cat/tests/Makefile
+102-174 files

FreeBSD/src 37ec9a1libexec/nuageinit nuageinit

nuageinit: root should be allowed to log in when disable_root is false

PermitRootLogin is "no" by default and that stopped root from logging in
even though disable_root was set to false during initialization.

Reviewed by:    bapt
Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D59101

(cherry picked from commit a209aac86882d3062318dea4971b2f728463c7e2)
DeltaFile
+2-0libexec/nuageinit/nuageinit
+2-01 files

FreeBSD/src 540f9calibexec/nuageinit nuageinit, libexec/nuageinit/tests nuageinit.sh

nuageinit: fix ssh_pwauth string handling

Treat "no"/"unchanged" correctly instead of any non-nil value as yes.

(cherry picked from commit 8d4d5f2e8e56e7b24b50706acbdc0c8c750c6fed)
DeltaFile
+19-3libexec/nuageinit/nuageinit
+18-0libexec/nuageinit/tests/nuageinit.sh
+37-32 files

FreeBSD/src af0ca8clibexec/nuageinit nuage.lua nuageinit.7, libexec/nuageinit/tests nuageinit.sh

nuageinit: accept lock_passwd for users

Alias cloud-init lock_passwd key alongside locked.

(cherry picked from commit cd06bf52053d463f4a3f6c0b9cb5c9f1d578e439)
DeltaFile
+30-0libexec/nuageinit/tests/nuageinit.sh
+4-1libexec/nuageinit/nuageinit.7
+1-1libexec/nuageinit/nuage.lua
+35-23 files

FreeBSD/src a1fd5f9libexec/nuageinit nuageinit nuageinit.7, libexec/nuageinit/tests nuageinit.sh

nuageinit: support allow_public_ssh_keys

Skip importing datasource public keys when set to false.

(cherry picked from commit 8f378c83c6b8b052433834ca0b53677459dc0e85)
DeltaFile
+41-0libexec/nuageinit/tests/nuageinit.sh
+10-0libexec/nuageinit/nuageinit.7
+4-2libexec/nuageinit/nuageinit
+55-23 files

FreeBSD/src ece43a7libexec/nuageinit nuage.lua nuageinit.7, libexec/nuageinit/tests nuageinit.sh

nuageinit: adopt cloud-init disable_root semantics

disable_root now restricts root's authorized_keys instead of setting
PermitRootLogin.

Reported by:    np@

(cherry picked from commit 8ec108914247502dff049059dc60df17920731c8)
DeltaFile
+29-11libexec/nuageinit/nuageinit
+22-13libexec/nuageinit/nuageinit.7
+16-15libexec/nuageinit/tests/nuageinit.sh
+6-2libexec/nuageinit/nuage.lua
+73-414 files

FreeBSD/src 2e9a708usr.bin/grep util.c

grep(1): optimize -w/--word-regexp word boundary check

The -w option checks word boundaries before and after each potential
match by decoding the adjacent character.  This was done via the
heavyweight sscanf(3) with "%lc", which goes through the full scanf
parser and locale-aware mbrtowc(3) machinery even for simple ASCII.

Replace with a three-tier fast path:

1. ASCII bytes (< 0x80): simple isalnum(3) / '_' comparison
2. UTF-8 continuation bytes (0x80-0xBF): interior bytes of a multi-byte
   character are always word characters -> no further decoding needed
3. Multi-byte start bytes (>= 0xC0): decode with mbrtowc(3) directly
   instead of sscanf(3)/%lc, avoiding scanf parser overhead

Benchmark with ministat(1) (10 runs each):

Worst-case ASCII (100k lines of 100 'a' chars, -w 'a'):
    Difference at 95.0% confidence: -15.3% +/- 3.1%

    [16 lines not shown]
DeltaFile
+34-10usr.bin/grep/util.c
+34-101 files

FreeBSD/src 25e5a96usr.bin/m4 look.c extern.h

m4: import fixes from OpenBSD

- gnum4.c: fix m4_warnx() to use vwarnx() instead of warnx()
- eval.c: improve error messages for empty macro names
- extern.h: remove compute_prevep() declaration
- Update OpenBSD version strings

MFC After: 3 days

(cherry picked from commit 8966cc0d01a29c11168e4e9d7f1703aa31ad3be6)
DeltaFile
+3-3usr.bin/m4/eval.c
+2-2usr.bin/m4/gnum4.c
+1-2usr.bin/m4/extern.h
+1-1usr.bin/m4/look.c
+7-84 files

FreeBSD/src 0068125usr.bin/grep util.c

grep: periodic timer-based fflush instead of unconditional per-line flush

Replace the unconditional fflush(stdout) in grep_printline and
procmatches with a periodic timer that flushes at most once every
100ms.  This preserves interactive responsiveness (grep | tee,
grep | tail -f) while avoiding 1M+ write(2) syscalls when
processing large inputs.

The flush interval is tracked via clock_gettime(CLOCK_MONOTONIC)
and a static timespec.  --line-buffered continues to flush
immediately via setlinebuf(3), as before.

Benchmark on 1M lines (37MB output to file):
  unconditional fflush:  1.90s  (sys 1.22s)
  periodic 100ms timer:   0.49s  (sys 0.007s)

Reviewed by:            kevans
Differential Revision:  https://reviews.freebsd.org/D57528

(cherry picked from commit ffe47c424e0a45f5d8d20a5944477821bd946eef)
DeltaFile
+29-4usr.bin/grep/util.c
+29-41 files

LLVM/project 4edfeadllvm/lib/CodeGen InterleavedLoadCombinePass.cpp, llvm/test/CodeGen/AArch64 interleaved-load-combine-many-candidates.ll

[InterleavedLoadCombine] Index candidates to avoid quadratic matching (#213053)

Matching scanned every candidate against every other candidate, which
got very slow on functions with many interleaved loads. Index by address
offset and look up neighbors instead.

llc's Compile-time drops from 212s to ~2s on a Grace machine for the
test case in the issue.
[ Compile-time remains flat

](https://llvm-compile-time-tracker.com/?config=Overview&stat=instructions%3Au&remote=madhur13490)

Fixes #162299.

Assisted by Cursor.
DeltaFile
+130-97llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp
+83-0llvm/test/CodeGen/AArch64/interleaved-load-combine-many-candidates.ll
+213-972 files

FreeBSD/src bba4f80share/examples/jails jng jib

jib, jng: Add license banner
DeltaFile
+1-0share/examples/jails/jng
+1-0share/examples/jails/jib
+2-02 files

LLVM/project 98baf03libcxx/include/__optional comparison.h, libcxx/test/std/utilities/optional/optional.comp_with_t not_equal.pass.cpp less_than.pass.cpp

[libc++] Implement LWG4072: std::optional comparisons: constrain harder (#209968)

Resolves #118345.

Previously, the heterogeneous comparison operators (`==`, `!=`, `<`,
`<=`, `>`, `>=`) for arguments `T` and `U` don't check that `T` or `U`
are not a `std::optional` themselves. This allowed the operators to
cause ambiguous overload resolution instead of falling back to
`optional`'s own operators, which possibly caused hard error when there
should not be a matched overload.

This patch implements the resolution by adding
`!__is_std_optional_v<_Up>` (and the `_Tp` equivalent for the reversed)
to the constraints in all twelve involved operators.

As required by the LLVM Project's AI use policy:
- The fix and test processes were revised and verified with AI
assistance.
DeltaFile
+41-24libcxx/include/__optional/comparison.h
+23-0libcxx/test/std/utilities/optional/optional.comp_with_t/not_equal.pass.cpp
+23-0libcxx/test/std/utilities/optional/optional.comp_with_t/less_than.pass.cpp
+23-0libcxx/test/std/utilities/optional/optional.comp_with_t/less_equal.pass.cpp
+23-0libcxx/test/std/utilities/optional/optional.comp_with_t/greater_equal.pass.cpp
+23-0libcxx/test/std/utilities/optional/optional.comp_with_t/greater.pass.cpp
+156-242 files not shown
+180-258 files

FreeBSD/src cfe443econtrib/lutok Makefile.in aclocal.m4, contrib/lutok/admin config.sub ltmain.sh

contrib/lutok: remove autotools generated files

These files provide no value in the FreeBSD tree proper and change
frequently, depending on what machine I generate the release tarball on
(and what versions of autotools are on the host). Nuke the autogenerated
files to avoid bloating commit history/the tree.

MFC after:      3 days
Requested by:   Benjamin Jacobs <freebsd at dev.thsi.be>
DeltaFile
+0-23,387contrib/lutok/configure
+0-11,524contrib/lutok/admin/ltmain.sh
+0-8,488contrib/lutok/m4/libtool.m4
+0-1,802contrib/lutok/admin/config.sub
+0-1,733contrib/lutok/aclocal.m4
+0-1,574contrib/lutok/Makefile.in
+0-48,5089 files not shown
+0-52,77715 files

FreeBSD/src ca0e895contrib/lutok Makefile.in aclocal.m4, contrib/lutok/admin config.sub ltmain.sh

Revert "contrib/lutok: remove autotools and doxygen generated files"

I messed up the commit title. Redo it with a correct summary.

This reverts commit 3dbe1800848ca71f5cc083f1d5c5b4759b601fae.
DeltaFile
+23,387-0contrib/lutok/configure
+11,524-0contrib/lutok/admin/ltmain.sh
+8,488-0contrib/lutok/m4/libtool.m4
+1,802-0contrib/lutok/admin/config.sub
+1,733-0contrib/lutok/aclocal.m4
+1,574-0contrib/lutok/Makefile.in
+48,508-09 files not shown
+52,777-015 files

FreeBSD/src 3dbe180contrib/lutok Makefile.in aclocal.m4, contrib/lutok/admin config.sub ltmain.sh

contrib/lutok: remove autotools and doxygen generated files

These files provide no value in the FreeBSD tree proper and change
frequently, depending on what machine I generate the release tarball on
(and what versions of autotools are on the host). Nuke the autogenerated
files to avoid bloating commit history/the tree.

MFC after:      3 days
Requested by:   Benjamin Jacobs <freebsd at dev.thsi.be>
DeltaFile
+0-23,387contrib/lutok/configure
+0-11,524contrib/lutok/admin/ltmain.sh
+0-8,488contrib/lutok/m4/libtool.m4
+0-1,802contrib/lutok/admin/config.sub
+0-1,733contrib/lutok/aclocal.m4
+0-1,574contrib/lutok/Makefile.in
+0-48,5089 files not shown
+0-52,77715 files

LLVM/project 2fb1835lld/ELF SyntheticSections.cpp EhFrame.cpp, lld/test/ELF eh-frame-negative-pcrel-sdata4.s eh-frame-negative-pcrel-sdata2.s

Revert "[ELF] Omit zero-range FDEs from .eh_frame_hdr" (#221624)

Reverts llvm/llvm-project#220492

This causes the RISC-V buildbots to fail in the exception handling
tests, see https://lab.llvm.org/buildbot/#/builders/210/builds/12623 for
the gauntlet build logs

Apologies this revert is coming in so late, there is a proposed fix at
https://github.com/llvm/llvm-project/pull/221342 but it looks like it
might require additional rounds of review so reverting to get the
buildbots back to green for now

cc @MaskRay @Prabhuk
DeltaFile
+0-64lld/test/ELF/eh-frame-fde-encoding.s
+0-37lld/test/ELF/eh-frame-hdr-zero-range.s
+7-6lld/test/ELF/eh-frame-negative-pcrel-sdata2.s
+0-10lld/ELF/EhFrame.cpp
+0-4lld/ELF/SyntheticSections.cpp
+2-2lld/test/ELF/eh-frame-negative-pcrel-sdata4.s
+9-1231 files not shown
+9-1257 files

FreeNAS/freenas 7a8d4aasrc/freenas/usr/local/bin truenas-hw-license.py, src/middlewared/middlewared/alert/source license_status.py

Distinguish system-generated license records from issued ones

This commit adds changes to record where a license record came from, since we now write one ourselves during upgrade on unlicensed appliance hardware and several consumers were treating it as though iX had issued it.

Entitlement resolution deliberately ignores the origin - a system-generated record is meant to resolve exactly as an issued one does. This only changes alerting, the unlicensed to licensed transition hook, and what we report outward to TrueNAS Connect and support.
DeltaFile
+11-11src/middlewared/middlewared/utils/license/legacy.py
+18-1src/middlewared/middlewared/utils/license/types.py
+6-3src/middlewared/middlewared/plugins/truenas_connect/register.py
+5-3src/middlewared/middlewared/pytest/unit/plugins/test_truenas_connect.py
+4-3src/freenas/usr/local/bin/truenas-hw-license.py
+4-1src/middlewared/middlewared/alert/source/license_status.py
+48-225 files not shown
+61-2811 files

FreeNAS/freenas 8e2bd8dsrc/freenas/usr/local/bin truenas-hw-license.py, src/middlewared/middlewared/utils/license legacy.py

Write a legacy license record on unlicensed iX appliances

This commit adds changes to write a minimal legacy license record during upgrade on iX appliance hardware that carries no license at all, so those systems resolve entitlements as licensed hardware and future features have somewhere to be gated. Which features the record actually carries is deliberately minimal for now and a separate decision.

The record is stamped with a marker in customer_key so legacy normalization can tell it apart from a license an issuer signed, and it carries an empty HA serial so the parsed type stays ENTERPRISE_SINGLE and failover.licensed remains false.
DeltaFile
+115-0src/freenas/usr/local/bin/truenas-hw-license.py
+30-6src/middlewared/middlewared/utils/license/legacy.py
+145-62 files

FreeNAS/freenas 44c6ecasrc/freenas/usr/local/bin truenas-hw-license.py, src/middlewared/middlewared/alert/source license_status.py

Distinguish system-generated license records from issued ones

This commit adds changes to record where a license record came from, since we now write one ourselves during upgrade on unlicensed appliance hardware and several consumers were treating it as though iX had issued it.

Entitlement resolution deliberately ignores the origin - a system-generated record is meant to resolve exactly as an issued one does. This only changes alerting, the unlicensed to licensed transition hook, and what we report outward to TrueNAS Connect and support.
DeltaFile
+11-11src/middlewared/middlewared/utils/license/legacy.py
+18-1src/middlewared/middlewared/utils/license/types.py
+6-3src/middlewared/middlewared/plugins/truenas_connect/register.py
+5-3src/middlewared/middlewared/pytest/unit/plugins/test_truenas_connect.py
+4-3src/freenas/usr/local/bin/truenas-hw-license.py
+4-1src/middlewared/middlewared/alert/source/license_status.py
+48-225 files not shown
+61-2811 files

FreeNAS/freenas fe7c47dsrc/freenas/usr/local/bin truenas-hw-license.py, src/middlewared/middlewared/utils/license legacy.py

Write a legacy license record on unlicensed iX appliances

This commit adds changes to write a minimal legacy license record during upgrade on iX appliance hardware that carries no license at all, so those systems resolve entitlements as licensed hardware and future features have somewhere to be gated. Which features the record actually carries is deliberately minimal for now and a separate decision.

The record is stamped with a marker in customer_key so legacy normalization can tell it apart from a license an issuer signed, and it carries an empty HA serial so the parsed type stays ENTERPRISE_SINGLE and failover.licensed remains false.
DeltaFile
+115-0src/freenas/usr/local/bin/truenas-hw-license.py
+30-6src/middlewared/middlewared/utils/license/legacy.py
+145-62 files

OpenBSD/src XHFRGF1lib/libc/gen getexecpath.c

   remove unused local variable; ok deraadt@
VersionDeltaFile
1.2+1-3lib/libc/gen/getexecpath.c
+1-31 files