[AMDGPU] SIFoldOperands: constant-fold S_ADD/S_SUB with immediate operands (#198410)
Extend SIFoldOperands::tryConstantFoldOp to recognise three patterns
* ADD/SUB(imm, imm) -> S_MOV_B32 (LHS +/- RHS)
* ADD x, 0 -> COPY x (Also `0 + x`)
* SUB x, 0 -> COPY x (SUB is not commutable)
Assisted-by: Claude Opus 4.7
[X86] Fold splat AND on VGF2P8AFFINEQB source (#193364)
Given that each row within `vgf2p8affineqb`'s matrix controls which
source bits are selected, zeroing the same bit within all rows treats
that corresponding source bit like it is zero. This means a AND of the
input by any splatted 8-bit values can be folded with the matrix. This
is patch:
- Can eliminate a constant and/or reduces the instruction count from 2
to 1.
- Only occurs when the matrix is constant, ensuring that it can't
increase the dependency chain.
- Don't occur if the AND is multi use well the splat isn't constant,
preventing additional operations.
- Work with both constant 8-bit splats and scalars value that where
splatted to a vector.
- Includes test coverage for positive cases (by constants, variable
scalars, non zero immediates) and negative (multi use, larger splats,
variable matrices).
Fixes #191325
[libc] prefer *at syscalls in sys/stat wrappers (#197940)
- These changes flips the #ifdef order to prefer the *at syscalls over
normal ones.
- In modern architectures, *at system calls are preferred over normal
system calls cuz of safety issues.
- So by checking for ""*at"" system calls first, we ensure better
compatibility with modern systems.
- After then normal syscalls moved else or elif for support to older
ones.
- From merged pr(#195792) and issue(#195620)
---------
Signed-off-by: udaykiriti <udaykiriti624 at gmail.com>
Co-authored-by: Jeff Bailey <jbailey at raspberryginger.com>
[X86] Lower vector i8 ashr-by-1 using pavgb (#198487)
For vector i8 arithmetic shift right by 1, the current lowering produces
a 5-instruction sequence (psrlw + pand + xor + psubb plus a constant
load) with a 4-deep dependency chain.
This patch uses the identity
ashr(x, 1) == avgceilu(x, -1) ^ (~x & 0x80)
to lower to ISD::AVGCEILU + a short fixup, producing 4 instructions on
SSE/AVX/AVX2 and 3 on AVX-512BW (after vpternlogd fusion of the AND/XOR
pair), with two parallel dependency chains instead of one long one.
The freeze on R is required because the target reads it twice, matching
the pattern of the existing `shl R, 1 -> add R, R` case in
LowerShiftByScalarImmediate.
Alive2 proof: https://alive2.llvm.org/ce/z/LbXPhE
Fixes #198061
[flang][OpenMP] Skip declare simd lowering for interface bodies (#197010)
When DECLARE SIMD appears in the specification part of an interface
body, the PFT records the directive as an evaluation of the enclosing
program unit rather than of the interface body's subprogram. Its clause
operands (linear/aligned/uniform) reference dummy arguments local to the
interface body, which have no address in the enclosing scope, causing a
crash.
Detect the mismatch by comparing the program unit containing the
directive with the procedure currently being lowered, and skip op
emission when they differ.
This handles both explicit declare simd(proc-name) and implicit forms in
any enclosing context.
Fixes #192581
[Flang] [OpenMP] atomic compare (#184761)
Support for `omp atomic compare` in flang.
Multiple clauses like capture with compare are not supported
An issue for this was raised earlier at
[181116](https://github.com/llvm/llvm-project/issues/181116)
---------
Co-authored-by: Sunil Kuravinakop <kuravina at pe31.hpc.amslabs.hpecorp.net>
[LLVM] Add a function to reset the opt bisector (#197723)
For daemonized testing, we need to be able to reset the global opt
bisector between test runs. This PR just adds a small function to the
OptPassGate class to reset its state.
[lldb] Fix possible invalidated iterator. (#198482)
The begin or end interator may be invalidated when a idx_pos in erased
from the vector.
Unblocks sanitised CI.
Revert "[AArch64] Copy x4/x5 vararg payload into the x64 stack in Arm64EC exit thunks" (#198540)
Reverts llvm/llvm-project#190933
Reported issues with an EXPENSIVE_CHECKS_BUILD. Reverting so this can be
fixed without undue time pressure.
[Flang] Adding -ffree-line-length-<value> flag (#192941)
Added support for the `-ffree-line-length-<value>` flag in Flang, which
is equivalent to `-ffixed-line-length-<value>` but in free form.
This flag is supported by gfortran and can be used in some applications.
---------
Co-authored-by: Tarun Prabhu <tarunprabhu at gmail.com>
Co-authored-by: Andre Kuhlenschmidt <andre.kuhlenschmidt at gmail.com>
[Clang] [NFC] Use `unique_ptr<Lexer>` everywhere (#198393)
Replace every instance of `new Lexer` with `make_unique<Lexer>` and
adjust `Lexer::Create_PragmaLexer()` to return a `std::unique_ptr<Lexer>`
instead.
The Preprocessor was already storing a `unique_ptr<Lexer>`, so there’s
no need to change how that works.
Restrict on-disk perms of internal container/apps dataset roots
The internal dataset trees that back containers
(/mnt/.truenas_containers/), Docker apps (/mnt/.ix-apps/), and the
per-container idmapped bind-mount parent (/run/truenas_containers/root/)
are implementation-detail paths that aren't intended to be inspected
directly by host users. They currently mount with the default of
drwxr-xr-x root:root (or 0755 from os.makedirs for the /run parent),
which is looser than necessary.
This PR pins those three directories to 0700 root:root and re-applies
the mode at the relevant entry points so the property is idempotent
across reboots and manual chmod drift.
www/tt-rss: Run ttrssd as ttrssd user and move data to /var
- Create a ttrssd user and group to run ttrssd.
- Move log file to /var/log/tt-rss directorie.
- Move pid files to /var/run/tt-rss directorie.
- Move on disk data to /var/tt-rss/.
PR: 282245
Approved by: maintainer
Differential Revision: https://reviews.freebsd.org/D49128
[DAG] scalarizeExtractedBinOp - extract from non-constant one use buildvectors (#198013)
When attempting to scalarize a vector binop that has a single extract,
we currently only fold if either of the binop's operands is a constant
buildvector - but we can extract from non-constant buildvectors without
increasing instruction count as long as the vector binop was the only
use of the buildvector.
More yak shaving for #196493
[flang][acc] Handle Fortran do loops as acc loops in acc routine (#198420)
As was previously done for do loops in acc compute constructs in
https://github.com/llvm/llvm-project/issues/149614 , this PR does the
same for do loops in `acc routine`. The rules are follows:
- Do loops not marked with `acc loop` are considered `auto`
- Do concurrent loops are considered `independent`
- Any loops in an `acc routine seq` are considered `seq`
This ensures that the IV is correctly privatized and attached to acc
loop.
kitty: update to 0.47.0
- A new Drag and drop kitten to allow drag and drop of files from
your shell to any GUI program even across SSH
- A new option palette_generate to automatically generate the 256
color palette from the first 16 colors
- For builtin key mappings automatically fallback to matching the
US-PC layout key when the pressed key has no matches and is a
non-English character
- Allow drag and drop of windows to re-arrange them, move them to
another tab/OS Window or detach them into a new OS Window. See
toggle_window_title_bars to temporarily show window title bars to
drag them around
- Have scroll_line_up and scroll_line_down smooth scroll by default.
Can be restored to old behavior by re-mapping without the smooth
argument
- Draw a progress bar at the top of the window when a program
reports progress using the OSC 9;4 escape sequence, controlled by
progress_bar
[94 lines not shown]
lang/ruby40: update to 4.0.4
pkgsrc change:
* Fix rdoc problem on C locale, backported from rdoc-7.0.4.
(So, no need to patch a template file to character entity reference.)
Ruby 4.0.4 (2026-05-11)
* Bug #21955: Fiber#transfer: machine stack not released when fiber
terminates, causing FiberError: can't set a guard page
* Bug #21964: Fiber stack acquire can expand unnecessarily
* Bug #21971: Fix regexp performance regression for patterns starting with
s/k
* Bug #21961: Marshal.load freeze option fail to freeze linked strings
* Bug #21959: rb_internal_thread_event_hooks_rw_lock is not reinitialized
after fork causing deadlocks
* Bug #21954: NoMethodError instead of Gem::LoadError on gem activation
problem in Ruby 4.0.2
[16 lines not shown]
net: bandaid for plugging a fw_com leak in fwip_detach()
Adding a temporary workaround for plugging a fw_com upon if_fwip unloading.
Steps to reproduce(needs two hosts connected with firewire):
while true; do
ifconfig fwip0 10.0.0.5 up
fwcontrol -r
ping -c 10.0.0.3
kldunload if_fwip
done
There's a chance that the unloading of if_fwip.ko triggers following warning:
Warning: memory type fw_com leaked memory on destroy (1 allocations, 64 bytes leaked).
commit d79b6b8ec267e7eef6e07cf4245159705e24acd5 (origin/main, origin/HEAD)
(cherry picked from commit 25a5bb7318052322190a2880e0e7ef18e06d54bd)