LLVM/project 2e88688llvm/lib/Target/RISCV RISCVInstrInfoVPseudos.td

[RISCV] Use bits<1> for AltFmt in RISCVVPseudo. (#182581)

This makes the searchable table emitter use uint8_t instead of bool in
the KeyType struct. This is needed to allow us to use a bitfield in the
PseudoInfo struct and avoid a compare between a bool and uint16_t. We
already use this same bits<1> trick in other searchable tables.

Fixes #182485
DeltaFile
+1-1llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
+1-11 files

FreeNAS/freenas 44fcaf5src/middlewared/middlewared/etc_files initiators.allow.mako initiators.deny.mako, src/middlewared/middlewared/etc_files/local/nut ups_perms.py upsd.conf.mako

NAS-139918 / 26.0.0-BETA.1 / Use render contexts in various etc groups (#18264)

This commit shifts several EtcGroups that contain more than one EtcEntry
to using a render context in cases where the entries are making
duplicate middleware calls.
DeltaFile
+49-26src/middlewared/middlewared/plugins/etc.py
+3-4src/middlewared/middlewared/etc_files/local/nut/ups_perms.py
+2-2src/middlewared/middlewared/etc_files/initiators.allow.mako
+2-2src/middlewared/middlewared/etc_files/initiators.deny.mako
+1-1src/middlewared/middlewared/etc_files/local/nut/upsd.conf.mako
+1-1src/middlewared/middlewared/etc_files/local/nut/upsd.users.mako
+58-369 files not shown
+67-4515 files

LLVM/project e508dd3clang/lib/AST ExprConstant.cpp, clang/lib/Sema SemaExprCXX.cpp

Use setExprNeedsCleanups in BuildCXXNew and avoid breaking c++98

This approach is much cleaner, but broke checkICE reporting in c++98.
Stepping through a debugger shows that this happend because the
static_assert test didn not recognize ExprWithCleanups as transparent to
constant evaluation. To addresse this, we update CheckICE to recurse
into the sub-expression, and keep the old behavior.
DeltaFile
+1-15clang/lib/Sema/SemaExprCXX.cpp
+4-1clang/lib/AST/ExprConstant.cpp
+5-162 files

LLVM/project 07880f9clang/lib/CodeGen CGCall.cpp, clang/lib/Sema SemaExprCXX.cpp

[clang] Use uniform lifetime bounds under exceptions

To do this we have to slightly modify how some expressions are handled
in Sema. Principally, we need to ensure that calls to new for
non-trivial types still have their destructors run. Generally this isn't
an issue, since these just get sunk into the surrounding scope. With
more lifetime annotations being produced for the expressions, we found
that some calls to `new` in an unreachable switch arm would not be
wrapped in ExprWithCleanups. As a result, they remain on the EhStack
when processing the default label, and since the dead arm doesn't
dominate the default label, we can end up with a case where the def-use
chain is broken (e.g. the def doesn't dominate all uses). Technically
this path would be impossible to reach due to the active bit, but it
still failed to satisfy a dominance relationship.

With that in place, we can remove the constraint on only using tighter
lifetimes when exceptions are disabled.
DeltaFile
+36-0clang/test/CodeGenCXX/aggregate-lifetime-invoke.cpp
+15-1clang/lib/Sema/SemaExprCXX.cpp
+2-4clang/lib/CodeGen/CGCall.cpp
+53-53 files

LLVM/project 8090271clang/test/CodeGen lifetime-bug-2.cpp

Save test for conflicting cleanups
DeltaFile
+36-0clang/test/CodeGen/lifetime-bug-2.cpp
+36-01 files

LLVM/project ecc5e7aclang/lib/AST ExprConstant.cpp

Use more restrictive condition for adding ExprWithCleanups
DeltaFile
+1-4clang/lib/AST/ExprConstant.cpp
+1-41 files

LLVM/project b1a7805clang/lib/CodeGen CGCall.cpp CGCall.h, clang/test/CodeGen stack-usage-lifetimes.c lifetime-invoke-c.c

[clang] Use tighter lifetime bounds for C temporary arguments

In C, consecutive statements in the same scope are under
CompoundStmt/CallExpr, while in C++ they typically fall under
CompoundStmt/ExprWithCleanup. This leads to different behavior with
respect to where pushFullExprCleanUp inserts the lifetime end markers
(e.g., at the end of scope).

For these cases, we can track and insert the lifetime end markers right
after the call completes. Allowing the stack space to be reused
immediately. This partially addresses #109204 and #43598 for improving
stack usage.
DeltaFile
+89-0clang/test/CodeGen/stack-usage-lifetimes.c
+29-19clang/test/CodeGen/lifetime-invoke-c.c
+20-6clang/lib/CodeGen/CGCall.cpp
+12-12clang/test/CodeGenCXX/aggregate-lifetime-invoke.cpp
+15-5clang/test/CodeGen/lifetime-bug.cpp
+19-0clang/lib/CodeGen/CGCall.h
+184-422 files not shown
+186-448 files

LLVM/project 3c8079cclang/lib/CodeGen CGCleanup.cpp

Remove unneeded conditions from CGCleanup.cpp
DeltaFile
+3-4clang/lib/CodeGen/CGCleanup.cpp
+3-41 files

LLVM/project 4ce4987llvm/lib/Transforms/Vectorize VPlanTransforms.cpp, llvm/test/Transforms/LoopVectorize iv-select-cmp.ll iv-select-cmp-decreasing.ll

[VPlan] Optimize FindLast of FindIV w/o sentinel. (#172569)

For FindLast reduction selecting an IV, we can avoid the horizontal
AnyOf in the vector loop, by introducing an independent  boolean
reduction to track if the condition was ever true in the loop. If it was
never true in the loop, we select the start value, otherwise the select
the min/max of the FindIV reduction, as required by the predicate.

The main advantage of this approach is that we have 2 independent
reductions, that do not require a horizontal AnyOf reduction in the
loop.

Currently this requires a non-wrapping IV, but this can be relaxed in
the future by selecting a canonical IV, which is then transformed to the
specific derived IV for the reduction after the loop.

Depends on https://github.com/llvm/llvm-project/pull/177870.

PR: https://github.com/llvm/llvm-project/pull/172569
DeltaFile
+279-78llvm/test/Transforms/LoopVectorize/iv-select-cmp.ll
+156-42llvm/test/Transforms/LoopVectorize/iv-select-cmp-decreasing.ll
+123-33llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll
+57-14llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+10-12llvm/test/Transforms/LoopVectorize/iv-select-cmp-no-wrap.ll
+10-9llvm/test/Transforms/LoopVectorize/epilog-iv-select-cmp.ll
+635-1881 files not shown
+638-1907 files

NetBSD/pkgsrc BZx0Gd2lang/gcc12-libs Makefile

   gcc12-libs: Bump PKGREVISION
VersionDeltaFile
1.11+2-2lang/gcc12-libs/Makefile
+2-21 files

NetBSD/pkgsrc Mv3YUmvdoc CHANGES-2026

   doc: Updated lang/gcc12 to 12.5.0nb1
VersionDeltaFile
1.1284+2-1doc/CHANGES-2026
+2-11 files

NetBSD/pkgsrc 9CZvdvolang/gcc12 distinfo Makefile.common

   gcc12: Fix build on macOS 26.2

   Improve maya@'s patch to fix build on this system.
   Bump PKGREVISION.
VersionDeltaFile
1.15+4-4lang/gcc12/distinfo
1.15+4-3lang/gcc12/Makefile.common
1.13+2-2lang/gcc12/Makefile
+10-93 files

OpenZFS/src d11c661cmd/zdb zdb.c

zdb: handle key load/derive failures a bit more gracefully

There's no real need to outright crash if key loading fails; we can
just unwind nicely.

Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18230
DeltaFile
+23-9cmd/zdb/zdb.c
+23-91 files

OpenZFS/src 9f874adcmd/zdb zdb.c

zdb: don't try to load key for unencrypted dataset

Previously using -K/--key on an unencrypted dataset would trip a VERIFY,
because the dataset has nowhere to load the key into.

Now, just ignore it. This makes zdb much easier to drive when there's a
mix of encrypt and non-encrypted datasets, as the key can provided for
all of them (at least, assuming the same encryption root, which is a
common enough case).

Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18230
DeltaFile
+18-7cmd/zdb/zdb.c
+18-71 files

LLVM/project 946a068clang/test/Driver clang_f_opts.c

Specify linker and triple for LTO checks
DeltaFile
+4-4clang/test/Driver/clang_f_opts.c
+4-41 files

OpenZFS/src b021cb6tests/zfs-tests/include libtest.shlib

ZTS: make get_same_blocks() fail harder if zdb fails

Because it's called in $(...), it will swallow all errors, so we have to
work harder to recognise falure and echo a string that can't ever match
what the test is expecting.

Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18230
DeltaFile
+37-9tests/zfs-tests/include/libtest.shlib
+37-91 files

LLVM/project 09a3d83clang/lib/CodeGen CGExpr.cpp, clang/test/CodeGen builtin-counted-by-ref.c attr-counted-by-pr88931.c

[Clang][CodeGen] Fix __builtin_counted_by_ref for nested struct FAMs (#182575) (#182590)

GetCountedByFieldExprGEP() used getOuterLexicalRecordContext() to find
the RecordDecl containing the counted_by count field. This walks up
through all lexically enclosing records to find the outermost one, which
is wrong when a struct with a counted_by FAM is defined nested inside
another named struct.

For example, when struct inner (containing the FAM) is defined inside
struct outer, getOuterLexicalRecordContext() resolves to struct outer
instead of struct inner. The StructAccessBase visitor then fails to
match the base expression type (struct inner *) against the expected
record (struct outer), returning nullptr. This nullptr propagates back
as the GEP result, and the subsequent dereference in
*__builtin_counted_by_ref() triggers an assertion failure in
Address::getBasePointer().

Replace getOuterLexicalRecordContext() with a walk that only traverses
anonymous structs and unions, which are transparent in C and must be

    [13 lines not shown]
DeltaFile
+27-0clang/test/CodeGen/builtin-counted-by-ref.c
+12-1clang/lib/CodeGen/CGExpr.cpp
+6-1clang/test/CodeGen/attr-counted-by-pr88931.c
+45-23 files

FreeBSD/ports f1bf1e0math/R-cran-date distinfo Makefile

math/R-cran-date: Update to 1.2-43

Changelog: https://cran.r-project.org/web/packages/date/ChangeLog
DeltaFile
+3-3math/R-cran-date/distinfo
+1-2math/R-cran-date/Makefile
+4-52 files

LLVM/project 8ed04d9llvm/lib/Transforms/Vectorize LoopVectorize.cpp VPlan.h, llvm/test/Transforms/LoopVectorize vplan-based-stride-mv.ll

[VPlan] Start implementing VPlan-based stride multiversioning

This commit only implements the run-time guard without actually
optimizing the vector loop. That would come in a separate PR to ease
review.
DeltaFile
+227-59llvm/test/Transforms/LoopVectorize/vplan-based-stride-mv.ll
+137-65llvm/test/Transforms/LoopVectorize/VPlan/vplan-based-stride-mv.ll
+110-0llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+43-0llvm/lib/Transforms/Vectorize/VPlan.h
+14-3llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+7-0llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+538-1274 files not shown
+556-12910 files

LLVM/project a22cf92mlir/lib/Dialect/XeGPU/IR XeGPUDialect.cpp

[MLIR] Apply clang-tidy fixes for llvm-qualified-auto in XeGPUDialect.cpp (NFC)
DeltaFile
+3-3mlir/lib/Dialect/XeGPU/IR/XeGPUDialect.cpp
+3-31 files

FreeNAS/freenas 5e44b6bsrc/middlewared/middlewared/plugins etc.py

Flake8
DeltaFile
+4-2src/middlewared/middlewared/plugins/etc.py
+4-21 files

LLVM/project 603e5c8flang/include/flang/Optimizer/Dialect FIRAttr.td, flang/lib/Lower CallInterface.cpp

[flang][debug] Supply missing subprogram attributes (#181425)

Add DW_AT_elemental, DW_AT_pure, and DW_AT_recursive attributes to
subprograms and functions when they are specified in the source.
DeltaFile
+17-0flang/test/Transforms/debug-fn-attr.fir
+14-0flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
+7-5flang/include/flang/Optimizer/Dialect/FIRAttr.td
+7-2flang/lib/Lower/CallInterface.cpp
+8-0flang/test/Lower/HLFIR/recursive-user-procedure.f90
+2-2flang/test/Lower/OpenMP/declare-target-func-and-subr.f90
+55-93 files not shown
+60-149 files

FreeBSD/src e188655sys/netinet tcp_subr.c

tcp: improve validation of received TCP over UDP packets

Reviewed by:            glebius, pouria
MFC after:              3 days
Sponsored by:           Netflix, Inc.
Differential Revision:  https://reviews.freebsd.org/D55410
DeltaFile
+17-5sys/netinet/tcp_subr.c
+17-51 files

LLVM/project 4196411mlir/lib/Dialect/ArmSME/IR Utils.cpp

[MLIR] Apply clang-tidy fixes for readability-simplify-boolean-expr in Utils.cpp (NFC)
DeltaFile
+1-4mlir/lib/Dialect/ArmSME/IR/Utils.cpp
+1-41 files

FreeNAS/freenas b66ae41src/middlewared/middlewared/etc_files initiators.deny.mako initiators.allow.mako, src/middlewared/middlewared/etc_files/local/nut ups_perms.py upsd.users.mako

Use render contexts in various etc groups

This commit shifts several EtcGroups that contain more than
one EtcEntry to using a render context in cases where the
entries are making duplicate middleware calls.
DeltaFile
+47-26src/middlewared/middlewared/plugins/etc.py
+3-4src/middlewared/middlewared/etc_files/local/nut/ups_perms.py
+2-2src/middlewared/middlewared/etc_files/initiators.deny.mako
+2-2src/middlewared/middlewared/etc_files/initiators.allow.mako
+1-1src/middlewared/middlewared/etc_files/local/nut/upsd.users.mako
+1-1src/middlewared/middlewared/etc_files/local/nut/upssched.conf.mako
+56-369 files not shown
+65-4515 files

NetBSD/src kvBkKSdsbin/ccdconfig ccdconfig.c ccdconfig.8

   bin/59861 fix ccdconfig -g (and much more)

   This change is (roughly) based upon the patch provided in the PR by
   ssszcmawo at gmail, but with many changes, and additions.

   First, make ccdconfig -g not include the ccd size in its output.

   It is supposed to produce the format defined for the config file,
   so a ccd can be manually configured, and then the entry for it
   added to /etc/ccd.conf later so it will be configured again at
   each reboot.   The size is computed based upon the devices,
   it is not an input parameter, and hence does not belong in the output.

   Nevertheless, being able to observe the size is useful for understanding
   the ccd, so add a new -p option which does include the size in its output.

   While here, add an option (-h) allow the size to be output in the form
   generated by humanize_number(3) for better human comprehension.


    [41 lines not shown]
VersionDeltaFile
1.60+293-66sbin/ccdconfig/ccdconfig.c
1.28+165-17sbin/ccdconfig/ccdconfig.8
1.6+3-4sbin/ccdconfig/ccd.conf.5
+461-873 files

LLVM/project 9bd13fcllvm/test/Transforms/LoopVectorize vplan-based-stride-mv.ll, llvm/test/Transforms/LoopVectorize/VPlan vplan-based-stride-mv.ll

[NFC][VPlan] Add initial tests for future VPlan-based stride MV

I tried to include both the features that current
LoopAccessAnalysis-based transformation supports (e.g., trunc/sext of
stride) but also cases where the current implementation behaves poorly,
e.g., https://godbolt.org/z/h31c3zKxK; as well as some other potentially
interesting scenarios I could imagine.
DeltaFile
+2,282-0llvm/test/Transforms/LoopVectorize/VPlan/vplan-based-stride-mv.ll
+2,027-0llvm/test/Transforms/LoopVectorize/vplan-based-stride-mv.ll
+4,309-02 files

LLVM/project 633449fllvm/lib/Transforms/Vectorize LoopVectorize.cpp, llvm/test/Transforms/LoopVectorize/VPlan vplan-print-after-all.ll

[NFC][VPlan] Split `makeMemOpWideningDecisions` into subpasses

The idea is to have handling of strided memory operations (either from
https://github.com/llvm/llvm-project/pull/147297 or for VPlan-based
multiversioning for unit-strided accesses) done after some mandatory
processing has been performed (e.g., some types **must** be scalarized)
but before legacy CM's decision to widen (gather/scatter) or scalarize
has been committed.

And in longer term, we can uplift all other memory widening decision to
be done here directly at VPlan level. I expect this structure would also
be beneficial for that.
DeltaFile
+83-38llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+3-0llvm/test/Transforms/LoopVectorize/VPlan/vplan-print-after-all.ll
+86-382 files

LLVM/project a2a4beallvm/lib/Transforms/Vectorize LoopVectorize.cpp VPRecipeBuilder.h, llvm/test/Transforms/LoopVectorize/AArch64 predication_costs.ll

[NFCI][VPlan] Split initial mem-widening into a separate transformation

Preparation change before implementing stride-multiversioning as a
VPlan-based transformation. Might help
https://github.com/llvm/llvm-project/pull/147297/ as well.
DeltaFile
+92-31llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+14-12llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
+3-2llvm/test/Transforms/LoopVectorize/AArch64/predication_costs.ll
+4-0llvm/lib/Transforms/Vectorize/VPlanTransforms.h
+1-0llvm/test/Transforms/LoopVectorize/VPlan/vplan-print-after-all.ll
+114-455 files

LLVM/project fd4dec9mlir/lib/Dialect/Complex/IR ComplexOps.cpp, mlir/test/Dialect/Complex canonicalize.mlir

 [MLIR][Complex] Check for FastMathFlag in DivOp folder (#176249)

- Fold DivOp with LHS that has NaN as real or imag to Complex of NaNs
- Fold `div(a, Complex<1, 0>) -> a` if fast math flag with nnan is set
DeltaFile
+44-2mlir/test/Dialect/Complex/canonicalize.mlir
+24-21mlir/lib/Dialect/Complex/IR/ComplexOps.cpp
+68-232 files