[libc++] Added a benchmark for std::reduce with a trivial reduction operator (std::plus) (#236853)
This PR adds benchmarks for serial reductions with a trivial operator,
to specifically capture the cases where the compiler can do a good job
optimising the loop. This includes cases where the compiler can already
perform reordering without an explicit permission (e.g. with `int`s) and
where it requires an opt-int like `clang loop vectorize(enable)
interleave(enable)` (e.g. with `float`s, which libc++ currently doesn't
do).
Part of #234887.
devel/subversion{,-lts}: make apr_memcache opt-out explicit
configure otherwise silently autodetects a standalone apr_memcache installation
on the build host for fs_fs caching (server-side only FSFS repository caching);
this was never actually supported. Pass --without-apr_memcache explicitly
instead of leaving it to autodetection.
Co-Authored-By: Claude Sonnet 5 <noreply at anthropic.com>
[lldb] Test that unterminated DW_FORM_strp names are rejected (#237354)
c38a7054a1d8 bounded DataExtractor::PeekCStr and converted
DWARFFormValue::AsCString, but only tested the DataExtractor and Mach-O
paths. Add a DWARF test so AsCString can't regress to returning a
pointer into a .debug_str string with no terminator.
RuntimeLibcalls: Use explicit types for F80, F128 and PPCF128 libcalls (#235145)
LDbl only makes sense for encoding the long double libm functions. Other
functions have need of the specific type. Separately, LDbl brokenly
assumes
double instead of checking the module's long double format. Some
functions
are inappropriately using a specific type instead of LDbl. I'll fix both
of these issues separately.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[CodeGen] Use shared RegClassInfo in basic, greedy and fast allocators (#226523)
Make RegAllocBase use the MachineRegisterClassInfo analysis and publish
the
newly frozen set to it with updateReservedRegs. This reuses the set
computed by
freezeReservedRegs() instead of calling TRI->getReservedRegs() again, so
the
shared state becomes correct for everyone without an additional
reserved-set
computation.
No allocator should keep a private RegisterClassInfo after this.
A pass that changes the reserved set and is followed by an allocator no
longer
has to publish it by hand.
AI-assisted.
[SDAG] Improve bf16 converts with fast-math flags. (#231044)
This is a SDAG equivalent of #200741, where given NoNan flags we can
avoid creating for nan inputs.
[AArch64][MTE] Tag dynamic allocas in AArch64StackTagging
Instrument dynamic allocas in the memtag-stack pass, more or less
following the the way AddressSanitizer does: by instrumenting
stackrestore to un(poison/tag) allocas when free'd.
- Dynamic allocas are given 16-byte alignment and padded to 16-bytes.
- At lifetime.start (or at the alloca if no lifetimes), the dynamic
alloca is tagged.
- The most recently executed dynamic alloca is tracked in an extra
per-func static alloca. The address of this static alloca is used
as the bottom (highest address) of the dynamic alloca section of
the frame, while the value stored there is treated as the current
top (lowest address) of the frame.
- At llvm.stackrestores, memory is untagged from the restored sp
to the last executed dynamic alloca.
- At function returns, memory is untagged from the last executed
dynamic alloca to the bottom of the (dynamic alloca section of) the
frame.
[2 lines not shown]
[AMDGPU] Bundle counter layouts as features
Generation feature lists stay plain lists: the shared gfx11 and gfx12
counter layouts become features implying their fields, instead of
defvars spliced in with !listconcat.
Change-Id: Id1656a599f7d9b4fa43c82bb811ca311881dd603
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
[AArch64][MTE] Fix bit width in variable-size settag loop expansion
expandSetTagLoopVar peels a single STG granule when the size is an odd
multiple of 16 (bit 4 set). It built this test with TBZX, the bit-32..63
form (which checks bit 36), when it should have used the TBZW form, which
actually tests bit 4.
Assisted-By: Claude
NAS-144247 / 28.0.0-BETA.1 / Merge the stable/27 container default NIC migration (#20100)
## Problem
The stable/27 backport of #20059 adds its container default NIC
migration to the 27.0 chain as revision `36eb34176424`. Master does not
know that revision, so a system upgraded from a 27.0 build that already
ran it cannot find its current revision in master's history and fails to
migrate. Master's own `c9ebd3e3cfbc` would also run on that upgrade and
add a NIC to every container without one, including containers the user
deliberately left without a NIC on 27.
## Solution
Add the 27.0 migration to master with a 28.0 merge migration joining it
to the current head, and make `c9ebd3e3cfbc` a no-op so `36eb34176424`
is the only migration that adds the default NIC. Master installs that
already ran `c9ebd3e3cfbc` will run `36eb34176424` once, which only
touches containers that currently have no NIC.
NAS-144247 / 27.0.0 / Manage container NICs explicitly instead of adding one on the fly (by Qubad786) (#20097)
## Problem
A container without a NIC device row got an implicit bridge NIC with no
MAC added on the fly at every start, so libvirt generated a new MAC each
time and the container came up with a different DHCP address after every
restart. Containers migrated from incus are usually in this state
because their eth0 came from the incus profile. Beyond the MAC churn,
silently attaching a NIC the user never configured isn't always what
users want.
## Solution
Container networking is now managed explicitly through NIC devices.
- **No implicit NIC**: a container only has network through its NIC
devices, and one without any gets a private namespace with only
loopback. This relies on truenas/truenas_pylibvirt#97 emitting
`<privnet/>` for such containers, so that has to land first.
`default_network` is dropped from the v28 container entry since it no
[19 lines not shown]
www/mod_dav_svn: rename to www/mod_subversion
The port has always built and installed three Apache modules (mod_dav_svn,
mod_authz_svn, mod_dontdothat), not just DAV support, so a name promising
only one of the three was misleading. Add PKGNAMEPREFIX=${APACHE_PKGNAMEPREFIX},
matching other modules.
Co-Authored-By: Claude Sonnet 5 <noreply at anthropic.com>
[AMDGPU] Keep wait counter layout in the backend
Counter field layouts only matter for instruction encoding; no
frontend needs them. Drop the TargetParser copy, the GPU table column
and the emitter changes, and move CounterLayout and its encode/decode
helpers back into AMDGPUBaseInfo, replacing the IsaVersion parameter.
Unit tests now check per-GPU masks and encodings through
MCSubtargetInfo.
Change-Id: Iaa0d100af5e3f1885da9261fb97340709955488a
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
finance/odoo: Update to 20261023
- devel/py-setuptools and devel/py-wheel are added to BUILD_DEPENDS
- SHEBANG_LANG=python is dropped; USES=shebangfix already handles python
- odoo.conf.sample is installed with INSTALL_DATA instead of
INSTALL_SCRIPT, and is generated through SUB_FILES, so its commented
addons_path names the right site-packages (it said python3.11)
- odoo.conf.sample sets http_interface = 0.0.0.0, the 19.0 default, with
a note that 127.0.0.1 fits behind a local proxy and becomes the
default in Odoo 20.0; 19.0 warned at start that the option was
missing. Existing etc/odoo/odoo.conf files are not changed
- the rc script passes --without-demo=True instead of
--without-demo=all, which 19.0 no longer accepts as a boolean (it
logged "invalid boolean value: 'all', assume True"); the meaning, no
demo data, is the same
- portclippy and portfmt warnings are fixed
PR: 300224
Reported by: Patrick Crandol <patrick ___at__ crandol.com>
finance/py-ofxparse: Drop the unused py-nose dependency
- the port switches to USE_PYTHON=pep517 (the package metadata becomes
dist-info)
- concurrent is added to USE_PYTHON
- portlint warnings are fixed
PR: 300225
Reported by: Patrick Crandol <patrick _at__ crandol.com>
X86: Remove kill argument from addRegOffset (#237316)
This is now unused / always false. A few were true but had no tests.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
PeepholeOptimizer: Fix value tracking through SUBREG_TO_REG
The tracked source of a SUBREG_TO_REG was reported as the subregister
index of the inserted value, rather than the full inserted value. The
inserted value is never a register class supporting that index, so
this never found a usable source.
Some of the tests are regressions but I have a separate patch which
recovers those.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
Revert "[ValueTracking] Check noundef before applying square (fmul_self)" (#237161)
This reverts commit 05404cec67c67215394d2253002961a1d97a2f20.
It reintroduces the performance regression reported in #174763 where the
same check was previously reverted. Also as mentioned on #232178 the
policy is not to fix pre-existing multi-use undef issues without a
real-world miscompile.
net-mgmt/py-pdagent: Fix on Python 3.12+
- The vendored six 1.13.0 only implements the find_module() import
protocol, which Python 3.12 no longer uses, so every
pdagent.thirdparty.six.moves import failed and the agent and pd-*
tools could not start. Add find_spec(), create_module() and
exec_module() as in six 1.16.
- pdagent.config used SafeConfigParser, removed in Python 3.12; use
ConfigParser, its equivalent.
While here, fix portlint warnings and document the patches.
PR: 300277
[MachineLICM] Cache regmask clobbered register units per function
HoistRegionPostRA calls applyBitsNotInRegMaskToRegUnitsMask for every
regmask operand (i.e. every call) in a loop, and again for each enclosing
loop. Each call walks every physical register and its register units,
which is expensive on targets with many registers (about 700 on AArch64),
even though the result depends only on the mask, and calls almost always
use one of a few calling-convention masks.
Compute the clobbered register units once per mask and function and OR
the cached set into RUClobbers. The result is identical by construction.
[RISCV][P-ext] Improve codegen for funnel shifts (#235245)
This patch improves RV32 code generation for 64-bit funnel shifts. It
splits them into 32-bit slx/srx operations and uses merge instructions
to select the appropriate halves.
This removes branches and reduces the worst-case dynamic instruction
count.
[SystemZ][z/OS] Add missing ADA reference to DWARF sections (#237276)
Labels marked as DATA needs a reference to the ADA. However, this is
missing for the DWARF sections, which can lead to crashes in certain
scenarios. Fix is to set the ADA reference.
Assisted by: IBM Bob
fdcopy(): properly update fd_freefile when skipping non-copyable fd
fd_freefile is maintained to fulfill the POSIX guarantee that the lowest
possible file descriptor is allocated on open. If we skip copying an
fd, it is a possible candidate for the lowest index.
First, the file descriptor installed with a kqueue created
without KQUEUE_CPONFORK missed this handling [*].
Second, fd_freefile should be updated only when the current fd index is
below it. A skipped fd above fd_freefile could raise it past a free slot.
PR: 300234 [*]
Reported by: Andrea Venturoli <freebsd at netfence.it>
Reviewed by: markj
Fixes: 1265516c5c61 ("struct file: add DFLAG_FORK, indicate copying on fork")
Fixes: 809f3121be66 ("fd: assign fd_freefile early when copying")
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D61054
www/py-selenium-wire: Deprecate
The vendored mitmproxy imports blinker._saferef, which blinker 1.8
removed, so seleniumwire.webdriver no longer imports. Its certs.py
also uses pyOpenSSL crypto.X509Extension/X509Req, which pyOpenSSL 26.4
no longer has, so the TLS interception core would need porting to
cryptography. Upstream is archived; 5.1.0 (2022) is the last release.
PR: 299851
[gn][NFC] Remove obsolete macro definition (#219000)
The _LIBCPP_DISABLE_NEW_DELETE_DEFINITIONS macro is not honoured anymore
since afc5cca0d401, 3 years ago. This has been dead code since then.