cpu: cpu_get_pcpuid(): Fix typo in herald comment
Fixes: c3c8f4d9e662 ("cpu: New cpu_get_pcpuid(), retrieves internal CPU ID")
Sponsored by: The FreeBSD Foundation
[clang][AST] Inline StmtVisitor fallback methods (#203125)
Mark the trivial `StmtVisitorBase` fallback methods `always_inline` so
each `VisitFoo`-to-`VisitParent` delegation is folded into its caller
instead of retained as an out-of-line template thunk.
In matched Release assertions-off Darwin arm64 builds, stripped clang
decreased by 266,656 bytes, stripped clangd decreased by 232,912 bytes,
and the stripped upstream `llvm-driver` multicall decreased by 266,336
bytes.
Work towards #202616
AI tool disclosure: Co-authored with OpenAI Codex.
Co-authored-by: OpenAI Codex <noreply at openai.com>
[clang][Frontend] Batch LangOptions context hashing (#203162)
`CompilerInvocation::computeContextHash` currently expands 269
non-benign `LangOptions` into individual `HashBuilder::add` calls. This
collects the values in an `unsigned` array and passes the array to
`HashBuilder::addRangeElements`, which preserves the ordered
native-endian bytes without adding an element count.
In a Release arm64 build, clangd decreases by 16,528 bytes unstripped
and 16,544 bytes stripped.
Work towards #202616
AI tool disclosure: Co-authored with OpenAI Codex.
clang: Remove useFP16ConversionIntrinsics target option
Follow up to #174494. Remove the remnants of the control to
use llvm.convert.to.fp16/llvm.convert.from.fp16. Prefer
directly using the IR half type, unless the value is used
in an ABI context where it needs to remain as i16.
I did the first 80% of this a long time ago, and AI finished
the last bit and handled the recent rebases and test updates.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
Reapply "runtimes: Pass CMAKE_SYSTEM_NAME based on target triple" (#205133)
This reverts commit 08c728e8528c9584bc1fe0f46bbdd657e368be91.
Reapply after runtimes build fixes on platforms without shared libraries.
Enable IPv6 forwarding for the container bridge
## Problem
On a clean install, LXC containers on the default `truenasbr0` bridge get an IPv6 address and default route via the host's RAs but cannot route IPv6 out. The bridge sets up full IPv6 masquerade and forward nft rules, yet only the IPv4 forwarding sysctl was enabled, so the kernel never forwards IPv6. Docker enables IPv6 forwarding as a side effect, so only LXC-only (Docker-disabled) setups hit this.
## Solution
Enable `net.ipv6.conf.all.forwarding` when the bridge has an IPv6 network. Before doing so, bump `accept_ra` from 1 to 2 on interfaces that still have it, mirroring incus, so the host keeps honouring router advertisements while forwarding is on and doesn't lose a SLAAC-derived address on its own uplink. The IPv4 write is likewise gated on having an IPv4 network.
[Hexagon] Add XQFloat post-RA compliance checker (#207082)
Introduce XqfPostRADiagnosis to verify qf use-def correctness after
register allocation. Acts as a diagnostic/debugger for XQFloat
implementation. Off by default, enabled with -enable-postra-xqf-check.
Co-authored-by: Santanu Das <quic_santdas at quicinc.com>
[openmp][arm64ec] Fix arm64x when PER_TARGET_RUNTIME_DIR=On
This patch fixes an issue where the combination of LIBOMP_ENABLE_ARM64X and
LLVM_PER_TARGET_RUNTIME_DIR=On led to only the arm64 library being
installed. With this fix, the arm64ec and arm64 .lib files are both
installed, and the arm64x dll is the one installed to the binary dir.
NAS-141578 / 26.0.0-RC.1 / Fix inflated CPU temperature aggregate on consecutive-SMT CPUs (#19258)
## Problem
The dashboard CPU Temp aggregate over-reported by roughly 1.5x, and the
error scaled with load, on CPUs whose kernel enumerates SMT siblings
consecutively (modern Intel client parts and AMD APUs). The legacy
`get_cpu_temperatures` mirror loop copied each physical-core temperature
onto its SMT sibling and added it to the running total twice, then
divided by `len(data)`; under consecutive enumeration `ht_map` only held
the even primaries, so the even physical cores were double-counted while
the upper logical CPUs were never populated. The whole `ht_map` scheme
assumed interleaved enumeration (cpu0 paired with cpuN/2), which is no
longer how modern firmware lays things out.
## Solution
Reworked the pipeline to attribute temperatures at the physical-core
level from kernel topology and take the aggregate as the mean over
physical cores, so SMT enumeration order and asymmetric SMT no longer
bias it. `cpu_info` now reads `core_id`, `physical_package_id` and
[13 lines not shown]
[SystemZ][z/OS] Show instruction encoding in HLASM output
This change adds the support to show instruction encoding as a comment
when emitting HLASM text. With this, the last 2 LIT tests migrate to
HLASM syntax.
[SystemZ][z/OS] Remove temporary gnu as output on z/OS
On z/OS, there is only HLASM as system assembler available. Since
all LIT tests are migrated, the temporary option ca now be removed.
NAS-141468 / 27.0.0-BETA.1 / Enable IPv6 forwarding for the container bridge (#19257)
## Problem
On a clean install, LXC containers on the default `truenasbr0` bridge
get an IPv6 address and default route via the host's RAs but cannot
route IPv6 out. The bridge sets up full IPv6 masquerade and forward nft
rules, yet only the IPv4 forwarding sysctl was enabled, so the kernel
never forwards IPv6. Docker enables IPv6 forwarding as a side effect, so
only LXC-only (Docker-disabled) setups hit this.
## Solution
Enable `net.ipv6.conf.all.forwarding` when the bridge has an IPv6
network. Before doing so, bump `accept_ra` from 1 to 2 on interfaces
that still have it, mirroring incus, so the host keeps honouring router
advertisements while forwarding is on and doesn't lose a SLAAC-derived
address on its own uplink. The IPv4 write is likewise gated on having an
IPv4 network.
[flang][HLFIR] Relax InlineElementals to support more than two users (#186916)
This pr optimizes the lowering of MINLOC and MAXLOC when the MASK
argument is a simple equality comparison (e.g., MASK = A == X).
This patch introduces isEqualityMask to identify these patterns and
inline the comparison directly into the reduction loop.
This allows the SimplifyHLFIRIntrinsicscation pass to extract the
invariant
search target and bypasses the creation of a temporary logical mask
array
by inlining the equality comparison directly into the reduction loop.
optimization removes the 'hlfir.apply' to the mask's hlfir.elemental,
which
gets eliminated in bufferize-hlfir pass.
Simplifies the reduction state by removing the min/max value tracker,
as the target value is already known.
Implements a 'first-hit' locking mechanism.
[3 lines not shown]