[WinEH] Fix crash when aligning parameters larger than ABI (#180905)
Fix #180648 caused by an unhandled `Argument` for parameters exceeding
ABI size limits. This patch explicitly emits an `alloca` for the `Argument` in
the entry block to ensure correct address resolution.
[Clang][layout] Update tests after #182792 (#186019)
\#182792 makes it so that these structs have an alignment of 1. This
needs to be fixed in a recently added test (landed after the most recent
premerge run of the test).
This test update is expected behavior.
[CodeGen][TTI] Reduce funnel shift cost for constant shift amounts (#184942)
The Sub instruction cost and the shift-by-zero handling costs (ICmp +
Select) are only needed when the shift amount is non-constant. Move them
inside the `!OpInfoZ.isConstant()` guard to avoid overestimating cost
for constant shift amounts.
The overestimated scalar cost caused SLP vectorizer to incorrectly
prefer vectorizing funnel shifts with constant shift amounts, since SLP
compares vector cost against scalar cost and a falsely high scalar cost
makes vectorization appear more profitable than it actually is.
Fixes #181308.
[RISCV] Update Andes45 vector permutation scheduling info (#185591)
This PR adds latency/throughput for all RVV permutation instructions to
the andes45 series scheduling model.
We use the default cycle for permutation instructions since we are
unable to model the Latency and ReleaseAtCycles accurately now.
NAS-140151 / 26.0.0-BETA.2 / protect some more against symlink races (by anodos325) (#18444)
This commit adds a few more usages of RESOLVE_NO_SYMLINKS and fixes a
TOCTOU concern in attrs utils.
Original PR: https://github.com/truenas/middleware/pull/18379
---------
Co-authored-by: Andrew Walker <andrew.walker at truenas.com>
Address review
* Use CallError to explicitly state that symlinks aren't
permitted in paths.
(cherry picked from commit 00371e5d9292f1c36d9479ee5f15107d56c45987)
protect some more against TOCTOU in fs plugins/utils
This commit adds a few more usages of RESOLVE_NO_SYMLINKS and
fixes a TOCTOU concern in attrs utils.
(cherry picked from commit d0730f443ff88d9f612fe692a1ce70036747ede7)
NAS-140151 / 27.0.0-BETA.1 / protect some more against symlink races (#18379)
This commit adds a few more usages of RESOLVE_NO_SYMLINKS and fixes a
TOCTOU concern in attrs utils.
packages: Don't create empty packages
If a package plist only contains directories, but no files, do not
create the package.
This fixes an issue where setting "package=foo" in mtree causes the
"foo" package to always be created, even if nothing else installs in
that package, because the mtree entry is always added to the plist.
This most often happens:
* With architecture-specific directories, because mtree can't install
a directory conditionally based on architecture, and
* With packages that are completely empty when a particular src.conf
knob is disabled, because mtree will still create the directories.
Although it's theoretically possible that we might want to create a
package that only contains directories, there are no such packages
[8 lines not shown]
Makefile.inc1: Remove svn support
We don't need this, and we don't use this. It's left over from the svn
days. We stopped supporting svn as a project entirely when 12.x went
EOL. And VCS_REVSION isn't in any current ucl file or anywhere else in
the tree.
Sponsored by: Netflix
Reviewed by : kevans, brd
Differential Revision: https://reviews.freebsd.org/D52912
(cherry picked from commit 28b858f5059c8b25fa08be494699997000fce58c)
Makefile.inc1: Add back missing if
The .if defined(_MKSHOWCONFIG) covered an unusually large area, so it
should have not been removed in the last commit. I must have tested in
the wrong tree before pushing...
[4 lines not shown]
[clang-tidy] Fix spurious errors from builtin macros in modernize-use-trailing-return-type (#184022)
## Summary
I hit the same issue as in #168360 when upgrading to LLVM 21 with
clang-tidy reporting cryptic:
`error: missing '(' after '__has_feature'`
Further investigation confirmed that the issue is localized to
`modernize-use-trailing-return-type` and only happens with C++20+ and llvm
21 system headers (where `__has_feature` started to be used by libc++).
Initial non-localized repro had this error firing 7k+ on LLVM 21, but
when I switched to HEAD the incidence dropped to just 5 'check()' calls
firing. The drop in incidence is likely to be related to
https://github.com/llvm/llvm-project/pull/151035 as there are no other
plausibly relevant changes.
However, as I was still hitting the issue with HEAD, this helped develop
[20 lines not shown]
Fix packed being ignored on ms_struct bitfields (#182792)
For ms_struct structs on Itanium layout targets, the packed attribute is
ignored on bit-fields (2014 commit
76e1818a2b1248579557de2927c135c322577c82), mismatching the GCC behavior.
Remove the `!IsMsStruct` guard to fix it.
NAS-139425 / 26.0.0-BETA.2 / Add support for different cache types to cache plugin (by anodos325) (#18443)
This commit adds ability to specify that cache entries
should be clustered. As a side-effect of common library
for clustered and local caches, the normal cache will
also persist across middleware restarts.
In basic benchmarking there wasn't that much perf difference
between implementations and so this reduces overall complexity
CLUSTERED:
* Persists across reboots
* Persists across middleware restarts
* Does not persist across upgrades
VOLATILE:
* Persists across middleware restarts
[4 lines not shown]
Add persistent option to cache plugin
This commit adds ability to specify that cache entries
should be clustered. As a side-effect of common library
for clustered and local caches, the normal cache will
also persist across middleware restarts.
In basic benchmarking there wasn't that much perf difference
between implementations and so this reduces overall complexity
CLUSTERED:
* Persists across reboots
* Persists across middleware restarts
* Does not persist across upgrades
VOLATILE:
* Persists across middleware restarts
(cherry picked from commit 189532e12d56bb6d383e7df11f6a25210f191d1e)