[clang][OpenMP] Don't drop debug location when handing off to OMPIRBuilder. (#219548)
All the clang callsites that hand a `LocationDescription` to the
`OpenMPIRBuilder` pass `CGF.Builder`. That selects
`LocationDescription(const IRBuilderBase &)`, which carries both the
insertion point and the current debug location.
The 2 call sites fixed in this PR used `CGF.Builder.saveIP()` which
passes only an insertion point, selecting `LocationDescription(const
InsertPointTy &)`, which leaves `DL` empty. As a result, the IR the
builder emitted on clang's behalf came out without `!dbg`.
Fixed by passing `CGF.Builder`, as the other callsites do.
---------
Co-authored-by: Cursor <cursoragent at cursor.com>
[BOLT] Gadget scanner: prevent false positives due to jump tables
As part of PAuth hardening, AArch64 LLVM backend can use a special
BR_JumpTable pseudo (enabled by -faarch64-jump-table-hardening
Clang option) which is expanded in the AsmPrinter into a contiguous
sequence without unsafe instructions in the middle.
This commit adds another target-specific callback to MCPlusBuilder
to make it possible to inhibit false positives for known-safe jump
table dispatch sequences. Without special handling, the branch
instruction is likely to be reported as a non-protected call (as its
destination is not produced by an auth instruction, PC-relative address
materialization, etc.) and possibly as a tail call being performed with
unsafe link register (as the detection whether the branch instruction
is a tail call is an heuristic).
For now, only the specific instruction sequence used by the AArch64
LLVM backend is matched.
[mlir][SCF] Split the dialect declaration (NFC)
Introduce a self-contained dialect declaration and use it in nine configured
consumers that do not need the generated operation umbrella.
Across three controlled -j16 rebuilds of the affected TUs, median instructions
fell from 162.029B to 150.032B (-7.404%) and median wall time fell from 8.82s
to 8.73s (-1.020%).
Assisted-by: Codex
[KnownFPClass] Move `fadd`/`fsub` tests to `nofpclass-fadd-fsub.ll` (#221872)
- Moved the lit tests for `fadd`/`fsub` to their own dedicated file.
- Updated the lit tests for `fadd`/`fsub` from version 2 to version 6.
- `fadd_p0_ftz_daz #3` was actually testing `positivezero|positivezero`,
so I fixed the name of the test to be `fadd_p0_ftpz_dapz #3`. Then added
a separate `fadd_p0_ftz_daz #0` test.
- `nofpclass-fadd-fsub.ll` uses attributes 1-9 except for 6, so I added
`fadd_p0_dynamic_dynamic #6` so I wouldn't have to change the attributes
for other tests (i.e. changing `test #7 --> test #6`, `test #8 --> test
#7`, etc)
The only tests for `fadd` that remain in `nofpclass.ll` are not related
to testing `KnownFPClass::fadd`.
I have split the PR into 3 commits to make it easier to review (4
commits due to the `undef` false positive).
After this PR lands I plan to open this PR
https://github.com/llvm/llvm-project/pull/221876
[BOLT] Gadget scanner: prevent false positives due to jump tables
As part of PAuth hardening, AArch64 LLVM backend can use a special
BR_JumpTable pseudo (enabled by -faarch64-jump-table-hardening
Clang option) which is expanded in the AsmPrinter into a contiguous
sequence without unsafe instructions in the middle.
This commit adds another target-specific callback to MCPlusBuilder
to make it possible to inhibit false positives for known-safe jump
table dispatch sequences. Without special handling, the branch
instruction is likely to be reported as a non-protected call (as its
destination is not produced by an auth instruction, PC-relative address
materialization, etc.) and possibly as a tail call being performed with
unsafe link register (as the detection whether the branch instruction
is a tail call is an heuristic).
For now, only the specific instruction sequence used by the AArch64
LLVM backend is matched.
[MISched] Dump SU node number on `tracePick` (#222631)
Print picked SU node number inline in `tracePick` for convenience.
Otherwise its may be a bit more confusing, for example if we have 2 best
candidates with a similar reason under a single direction.
Printing node number directly as it cannot be an ExitSU (and EntrySU is
effectively unused in-tree).
py-wrapt: updated to 2.4.1
2.4.1
Bugs Fixed
The C extension implementation of PartialCallableObjectProxy did not expose the bound positional and keyword arguments supplied when the proxy was created, whereas the pure Python implementation makes them available as the _self_args and _self_kwargs attributes. The C extension implementation now provides read only _self_args and _self_kwargs attributes so that both implementations behave the same.
inspect.signature() applied to a PartialCallableObjectProxy reported the full signature of the wrapped callable, including the parameters that the bound positional and keyword arguments already supply, whereas for functools.partial those parameters are removed. The proxy did not define __signature__, so inspect followed __wrapped__ back to the callable and reported its signature unchanged. The proxy now provides __signature__ on instances, in both the pure Python and C extension implementations, giving the same result as for an equivalent functools.partial, including a ValueError when more positional arguments are bound than the callable accepts.
This also affected wrapper functions used with FunctionWrapper and @wrapt.decorator. When a wrapped method is called via its class with the instance passed explicitly, the wrapper function receives a PartialCallableObjectProxy with the instance bound, and args without the instance. A wrapper which bound args and kwargs against inspect.signature(wrapped) would fail for such calls with a TypeError about a missing argument, while working for calls made via the instance. The reported signature now omits the bound instance so the binding succeeds.
The signature of a partial whose wrapped callable is itself an already bound method is still reported incorrectly, for reasons outside of the control of wrapt. See the “Known Issues” documentation for details.
The C extension intercepts the __module__ and __doc__ attributes by name in its attribute get and set slots so that they are forwarded to the wrapped object. The name was compared by identity against an interned string, which relied on the attribute name having been interned. Names originating from Python source code always are, but a name constructed at runtime, for example by string concatenation or by decoding, is not, and for such a name the interception was skipped. Getting the attribute then returned the value captured when the proxy was created rather than the current value on the wrapped object, and setting it stored the value on the proxy rather than the wrapped object. The comparison now falls back to comparing by value when the identity check fails, guarded by a length check so that the cost for non matching names is unchanged.
py-hypothesis: updated to 6.168.0
6.168.0 - 2026-09-08
datetimes() now generates “tricky” datetimes more often: values on or near daylight-saving and other utc-offset transitions of the drawn timezone - including imaginary wall times, and ambiguous ones with each value of fold - as well as times adjacent to leap seconds and to well-known datetimes like the millennium and the end of the signed 32-bit Unix epoch.
This release also fixes some rare internal errors, where an error raised partway through updating an internal cache - for example by a deeply recursive strategy raising RecursionError - could leave that cache corrupted.
[LV] Add cost printing test with forced instruction costs (NFC). (#222895)
Add a test printing the cost of all recipes in the vector loop region
with -force-target-instruction-cost. Currently the flag is ignored for
VPDerivedIVRecipe and VPScalarIVStepsRecipe.
www/webkit-gtk41: Revise comment about finding sqlite3
This is a comment-only change.
Somehow, cmake finds libraries in the buildlink path instead of the
real path. For most of them, the -L/rpath stuff ends up correct in
the built library. For sqlite3, for me on NetBSD 10 amd64 building
normally (not bulk), the buildlink path ends up in the final library.
Explain the problem better.
Reject undetermined disks from all-SED pools
This commit fixes an issue where the disk SED capability column is tri-state but every consumer compared it with `is False`, so a disk that had never been probed passed the "must be SED" check and could join an all-SED pool unnoticed. The comparisons now reject anything that is not definitively SED. It also excludes `sed` from the disk update model, since it is a hardware fact we probe rather than something a caller has any business writing.
Enforce the SED entitlement on pool and password paths
This commit adds changes to actually enforce the SED rule, which until now was checked almost nowhere — creating a pool with the all_sed flag had no entitlement check at all. Pool create, update, attach and replace now go through a shared validate_sed_license, and setting a global or per-disk SED password is gated too, though clearing one always works so a system that lost the entitlement can still drop a secret it is no longer allowed to use.
Unlock is deliberately left ungated. A license daemon that errors with anything other than "no license" reads as unlicensed, so gating unlock would turn a daemon hiccup into a failed pool import at boot and a failed unlock on an HA master transition. The drives are already provisioned by that point, so unlocking them grants nothing new. What this enforces is no new SED usage, rather than no SED usage at all.
Require a SED feature key on TrueNAS hardware
This commit adds changes to narrow the SED entitlement so it only resolves on TrueNAS hardware carrying a license with the SED feature key, and to inject that key into legacy licenses so the existing installed base keeps working. Both halves have to land together: narrowing the vector on its own would deny every legacy licensee whose bitmask never carried the SED bit, and their pools would stop unlocking on upgrade. The injection is unconditional because the hardware conjunct lives in the vector, not in the license parser, which stays a pure function of the blob it is handed. This supersedes the earlier decision that allowed the keyless grants.
Share the SED entitlement check between its callers
This commit makes some changes where the SED entitlement check was written out by hand in a few places instead of going through one helper. `validate_sed_license` moves out of the pool utilities, since nothing about it is pool specific, and takes the key to report under as a single string so a settings field validator can pass a bare field name while the pool paths keep passing a full schema path.
The global SED password is now checked by a field validator like everything else in advanced settings, rather than inline ahead of them, so a denial no longer pre-empts the other errors in the same payload. That needed the password merged into the dicts the settings helper diffs, because it is not a field on the entry, and it lets the helper go back to its original signature.
Report SED gate denials consistently and exclude sed in v26
This commit fixes a few problems found while reviewing the SED gates. `sed` is now excluded from the disk update model in v26 as well as v27, because stable/26 serves v26 as its current version and the two have to agree; a `from_previous` hook would not have helped, since the adapter validates a payload against the client's own model before it adapts anything.
The license denial in pool attach now raises before the disk lookup that can throw and discard it, and the global SED password denial accumulates into the same batch as the other advanced settings validators rather than pre-empting them, which needed an optional accumulator on the settings helper. The KMIP tests mock the SED entitlement because they set a global SED password to reach the escrow path.
Update src/middlewared/middlewared/common/event_source/manager.py
Co-authored-by: Caleb St. John <30729806+yocalebo at users.noreply.github.com>
(cherry picked from commit 87f259dd08de25f8d66966b9299709c4ca13fc18)
[libsycl] USM Aligned allocation functions (#213468)
Adds the `aligned_*` versions of the USM functions, specifically for the
`device` `host` `shared` and free standing `aligned_alloc`.
Most of the overloads delegate between each other, but they slowly end
up being mapped to `aligned` version of API.
Adds more LIT tests in `alloc_functions.cpp` to cover the aligned
version.
Adds unittests for USM in `usm/alloc.cpp`
Assisted by AI for documentation, validation of logic in overloads and
alignment specifications from latest SYCL-Docs and unit tests
net/redpanda-connect: Build with Go 1.26 on quarterly
The 2026Q3 branch still defaults to Go 1.25, while upstream's go.mod
requires go >= 1.26.6, so the build fails with GOTOOLCHAIN=local.
This is a direct commit to the branch: main already defaults to Go 1.26
and builds the port with plain USES=go:modules.