[InstCombine] Canonicalize atomicrmw sub of a constant to add
Rewrite `atomicrmw sub ptr, C` as `atomicrmw add ptr, -C`. This
matches the canonical form InstCombine already uses for plain `sub`.
In wrapping arithmetic $old - C = old + (-C)$, so both the stored
value and the returned old value stay the same, including when C is
`INT_MIN`. Ordering, syncscope and metadata are kept.
```llvm
; before
%old = atomicrmw sub ptr %p, i32 1 syncscope("agent") monotonic
; after
%old = atomicrmw add ptr %p, i32 -1 syncscope("agent") monotonic
```
This benefits AMDGPU, for example: https://godbolt.org/z/39xsYro3o
[InstCombine] Add tests for atomicrmw sub of a constant. NFC (#232625)
atomicrmw sub C can be canonicalized to atomicrmw add -C because both
produce the same stored and returned values under wrapping arithmetic.
Cover syncscope, INT_MIN, and negative cases.
[LTO,lld] Initialize lto::Config::PTO with LibraryOptions
Commit 27e2fc2de79d (#233026) switched `llvm-lto2` and `lld` from
`cl::ParseCommandLineOptions` to `cl::parseCommandLineOptions(LibraryOptions, ...)`
and set `lto::Config::LibraryOptions`, but left `lto::Config::PTO`
default-constructed with a null `LibraryOptionsContext`. As a result,
`PipelineTuningOptions` read `PassesOptions::Global` instead of the parsed
`LibraryOptions`, causing flags like `-enable-loopinterchange=false` to be
ignored (`cross-project-tests :: dtlto/remote-options.test`).
Initialize `PTO` with `PipelineTuningOptions(LibraryOptions)` in `llvm-lto2`
and `lld` (`COFF`, `ELF`, `MachO`, `wasm`), matching `clang`s
`BackendUtil.cpp`.
Note: This root-cause analysis and patch were generated by an AI coding
assistant (LLM-aided).
[clang][OpenMP] Regenerate stale checks in two codegen tests (NFC) (#232041)
The generated checks in these two tests no longer match what
`update_cc_test_checks.py` produces, mostly attribute and metadata
numbers. They still pass because those positions match any number.
Regenerating them separately keeps the real changes in #220316
reviewable.
No functional change. Regenerated with `update_cc_test_checks.py`, and
the tests pass before and after.
The contents of this PR is created with help from Claude Code.
devel/R-cran-pkgdepends: Add compiles to USES:cran
This port compiles so add compiles to USES=cran and remove unneeded
NO_ARCH_IGNORE.
Let's bump it as a just in case.
Inspired by: baebf92d1acf ("devel/R-cran-pbapply, math/R-cran-metadat: Remove redundant NO_ARCH")
MFH: 2026Q4
(cherry picked from commit 2aa026cd5b0ad42d6cc14a428a1ac64f845d6e0d)
graphics/imv: Update to 5.0.1
- FreeImage backend was removed upstream; BMP and WebP support
now come from the new NSBMP and WEBP options (on by default)
- Add new options: FF (farbfeld), JXL (on by default), NSBMP, WEBP
- NSGIF is no longer broken
- Disable the QOI backend (not ported)
- Drop ICU linking patch, fixed upstream (now uses icu-uc)
- Rename the sample config in post-install instead of patching meson.build
Changelog: https://git.sr.ht/~exec64/imv/tree/master/item/CHANGELOG
PR: 299377
MFH: 2026Q4
(cherry picked from commit a5c9087871ed544894206a5347be43d491fe1fc3)
Handle errno properly when accepting a PPTP connection. Previously,
file descriptor exhaustion could cause the accept loop to spin
indefinitely.
From Acts1631
monit: Update to 6.0.0
pkgsrc changes:
- Enable for DragonflyBSD, according the changelog it was tested on
DragonflyBSD 6.4 (NOTE: I have not tested it in pkgsrc though!)
Changes:
- New: The every statement can now reliably be used with minute
precision. Like crontab, the every statement will run a service check
only once per minute, regardless of poll-cycle time. This means that
you can now use checks like this and be sure it runs only one time at
the intended time:
check program weekly_report with path /var/monit/weekly_report.sh
every "15 8 * * 1"
if status != 0 then alert
This will run the above weekly_report.sh one time every Monday at 08:15
(or as soon as possible after that time if the validation loop is
delayed). Cron matching is asynchronous to the validation loop,
ensuring checks run once even if validate takes longer than a minute to
[130 lines not shown]
Reject a PPTP control packet with an invalid length field.
Previously, an invalid packet could cause the input event loop to spin
indefinitely, effectively hanging the process until it was terminated.
From Acts1631