[Lanai] Make DelaySlotFiller handle implicit call operands
This allowed incorrectly moving an instruction defining a register
implicitly used by the call into the delay slot when the call dependend
on that register. We fix this by only skipping regmask operands.
Co-Authored-By: Jacques Pienaar <jpienaar at google.com>
Reviewers: jpienaar
Pull Request: https://github.com/llvm/llvm-project/pull/206192
[SLP] Drop nsw when add/sub interchange negates INT_MIN
BinOpSameOpcodeHelper unifies add and sub by negating a constant operand.
Negating INT_MIN overflows and yields INT_MIN, but add nsw X, INT_MIN and
sub nsw X, INT_MIN have opposite validity domains, so nsw is invalid on the
converted lane and must be dropped.
Fixes #206474.
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/206558
[Lanai] Fix delay slot filler for ret instructions
Ret instructions have two delay slots, but only one was being bundled.
This had the potential to leave instructions after the terminator.
Co-Authored-By: Jacques Pienaar <jpienaar at google.com>
Reviewers: jpienaar
Pull Request: https://github.com/llvm/llvm-project/pull/206191
[NVPTX] Fold symbol addresses into memory operands (reland) (#205983)
Re-lands https://github.com/llvm/llvm-project/pull/202379, which was
reverted in https://github.com/llvm/llvm-project/pull/205852. The test
failures were introduced because the original PR was stale after
#204192, so I've updated the test in here.
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>
[BOLT] Fix register-fragments-bolt-symbol test on FreeBSD
std::uniform_int_distribution and std::shuffle are
implementation-defined, so binary built with libc++ and libstdc++ can
produce different fragment layouts when using SplitStrategy. In this
case, the FreeBSD build emits only one fragment instead of three.
The output geenrate by --bolt-seed should be deterministic for the same
binary regardless of the standard library implementation. Implement a
portable shuffle and uniform distribution to guarantee identical results
for a given seed.
After this change, we generate 1 fragment, which decrease the strength
of the testcase. As a result, we change the seed to different value to
allow it generate different number of fragments.
Also, replace in-place file modifcation with a write-and-replace
approach for better portability in sed.
Fix -Wunused-template in assorted LLVM library helpers (NFC) (#202988)
Function templates across a few low-level LLVM libraries trip
`-Wunused-template`. Two kinds of fix here:
- Header templates with internal linkage. `CheckedArithmetic.h`: move
`checkedOp` out of the anonymous namespace into `llvm::detail` and
update its callers. `BitcodeConvenience.h`: drop `static` on `emitOps`.
`MCDCTypes.h`: drop `static` on `getParams`. Templates are implicitly
inline, so this is a linkage-only change.
- Dead code with no callers, removed: `makeNode` in
`ItaniumManglingCanonicalizer.cpp` (a base-class helper shadowed by the
derived class), `addDirectiveHandler` in `GOFFAsmParser.cpp`, and
`getWithDefault` in `ResourceFileWriter.cpp`.
NFC.
Part of #202945.
ZTS: Pass dec instead of hex to mknod
On Ubuntu 26.04 the default mknod command returns an error when
provided the major and minor numbers in hex. Switch to passing
decimal values.
Reviewed-by: Tino Reichardt <milky-zfs at mcmilk.de>
Reviewed-by: George Melikov <mail at gmelikov.ru>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #18547
ZTS: statx_dioalign.ksh update to stride_dd
The uutils 0.8.0 version of dd appears to diverge from GNU behavior
and does not fail when an unaligned write O_DIRECT write is issued.
Update the test case to use stride_dd which is provided by the ZTS
so the expected syscall behavior can be verified.
Reviewed-by: Tino Reichardt <milky-zfs at mcmilk.de>
Reviewed-by: George Melikov <mail at gmelikov.ru>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #18547
NAS-140857 / 26.0.0-RC.1 / Handle TNC license delivery and token states in heartbeat (by sonicaj) (#19222)
This commit adds changes to read the TNC heartbeat response body so we
can report the system fingerprint and installed license id, install a
license PEM that TNC delivers, and drive token rotation and the terminal
token states off the body fields instead of the old X-New-Token header.
A delivered license is deduped against the one already installed so we
don't reinstall it every beat, and a 205 that carries no license or
token is logged as a TNC fault rather than silently skipped.
Original PR: https://github.com/truenas/middleware/pull/19153
Co-authored-by: Waqar Ahmed <waqarahmedjoyia at live.com>
[sanitizer_common] [Darwin] Update version mapping for macOS 27-aligned releases (#204608)
This updates `MapToMacos` et. al. to produce correct results for macOS
26 and macOS 27-aligned releases.
rdar://177997021
rdar://169356606