[tsan] Calibrate jmp_buf pointer mangling (#216558)
glibc 2.44 moved the pointer guard out of the TCB and added the
x86-style rotation on other mangling targets. TSan hardcodes the old
guard locations and transformations, so longjmp interception can no
longer recover the saved stack pointer.
Derive the identity, XOR, or XOR-and-rotate scheme from two _setjmp
probes at different stack depths. This supports old and new glibc and
preserves bionic lazy initialization without depending on private guard
storage.
Developed with Fable/Sol. Tested locally on 64-bit Arch Linux, which
already ships glibc 2.44. Without this change, eight existing TSan tests
fail with `ThreadSanitizer: can't find longjmp buf`; with it, the full
`check-tsan` suite passes.
Fixes #216004.
[Matrix] Create the copy alloca once in getNonAliasingPointer (NFC). (#237455)
Both the different address space path and the runtime alias check path
create the same alloca in the entry block. Create it once up front.
[KnownFPClass][NFC] Apply denormal modes inside KnownFPClass functions (#237084)
Converts remaining `KnownFPClass` functions over to the
`applyInputDenormalMode` and `applyOutputDenormalMode` helpers. This
also switches `isKnownNeverLogicalZero(Mode)` to `isKnownNever(fcZero)`.
`KnownFPClass::canonicalize` will be handled in a separate PR.
[KnownFPClass] Rule out non-zero finite results for fmul and fdiv (#231052)
Follow up to https://github.com/llvm/llvm-project/pull/229638
A normal or subnormal result of `fmul`/`fdiv` requires both operands to
be non-zero finite values. In other words, we don't care if either side
could be zero, inf, or NaN when ruling out normal/subnormal values.
dns/hesiod: Mark DEPRECATED
This version has multiple vulnerabilities (CVE-2016-10151, CVE-2016-10152)
PR: 300135
Approved by: Chris Hutchinson <portmaster at BSDforge.com> (former maintainer)
Approved by: osa, fluffy (mentors, implicit)
MFH: 2026Q4
(cherry picked from commit 9367f6ba7be9aa5f85602512b47ada8277802ae7)
dns/hesiod: Mark DEPRECATED
This version has multiple vulnerabilities (CVE-2016-10151, CVE-2016-10152)
PR: 300135
Approved by: Chris Hutchinson <portmaster at BSDforge.com> (former maintainer)
Approved by: osa, fluffy (mentors, implicit)
MFH: 2026Q4
Revert "[LV] Model memory runtime checks for inner loops of loop nests in VPlan." (#237453)
Reverts llvm/llvm-project#232794
Breaks bots, see llvm/llvm-project#232794.
[MIR] Round-trip the "func" kind of inline asm operand flags
An x86 inline asm call or jmp whose target is a function, given as a "p"
operand or as a "*m" operand that ISel turns into an address, gets a flag
of kind Func. Like a Mem flag, it carries a memory constraint. But
getKindName() returned "mem" for it, and the MIR printer printed the
constraint only for a Mem flag. So this:
call void asm sideeffect "call ${0:P}", "p,~{dirflag},~{fpsr},~{flags}"(ptr @g)
was printed as:
INLINEASM &"call ${0:P}", sideeffect attdialect, mem ops:5, target-flags(x86-plt) @g, 1, $noreg, 0, $noreg, ...
which parses back as a Mem flag with no constraint. Printing that again
hits llvm_unreachable, and the asm printer asserts in PrintMemReference()
instead of emitting "callq g at PLT". MachineInstr::print() also printed the
constraint as a register class (e.g. "mem:GR8_NOREX").
[4 lines not shown]
[MIR] Move the "func" kind round trip to its own PR
Round-tripping the "func" kind of inline asm operand flags is separate
from serializing the operand count, so it moves to its own PR, stacked
on this one, with more tests.
Assisted-by: Claude Opus 5.5
[LV] Invalidate interleave-groups with gaps if for early-exit loops. (#237409)
If the loop exits from a block other than the latch, the scalar
iteration reserved for the exit may leave the loop before reaching the
grouped accesses.
Invalidate interleave groups in the case, to avoid mis-compile.
Fixes https://github.com/llvm/llvm-project/issues/237192.
qlnx: Report SR-IOV VF status
Retain the PF-known MAC and allocated transmit and receive queue counts
for each VF and expose them through the PF ifnet. Sum queues across all
hardware functions rather than reporting only the first one.
Publish and snapshot the VF cache under the existing hardware lock.
Unpublish it before hardware teardown, and invalidate queue-allocation
knowledge when error recovery releases the underlying VF resources.
Initialize the cache, release it on failed initialization, and reject an
out-of-range VF index instead of continuing into the array.
Tested by: zlei
Sponsored by: BBOX.io
Differential Revision: https://reviews.freebsd.org/D58742
[Clang][Offload] Request canonical target IDs in --should-extract (#232148)
The linker wrapper extracts device code from a static library only when
a `--should-extract` value matches the device image's arch label
exactly. The label is the canonical target ID, with features sorted, but
`--should-extract` used the raw `--offload-arch` value. So
`--offload-arch=gfx908:xnack+:sramecc-` labeled the device image
`gfx908:sramecc-:xnack+` but requested `gfx908:xnack+:sramecc-`. Add a
`getCanonicalTargetID` helper that takes a raw target ID, and use it for
both the label and `--should-extract`.