[AArch64][llvm] Ensure svnot_u32_x() intrinsic is optimised to subr (#237251)
All-active SVE NOT intrinsics, such as `svnot_u32_x(svptrue_b32(), x)`
currently generate `ptrue` followed by predicated `not`. Optimise this
to subr `z0.b, z0.b, #255`, which subtracts each byte from 255 and
therefore flips every bit. This implements bitwise `not` for vectors
of 8, 16, 32, or 64-bit elements. Test all these four widths.
[AArch64][llvm] Add pre-commit tests for all-active SVE not intrinsics (#237250)
Cover all four integer widths with undefined and merging passthroughs,
plus a partially active predicate that must preserve inactive lanes.
[BPF] Mark global functions noipa (#237690)
The BPF verifier checks every argument of a call to a global function
against the BTF type of the function, whether the function uses the
argument or not. For a non-local function, DeadArgumentElimination
replaces an argument that the body does not use with poison at the
call sites, and since #235216 ("[BPF] Select undef and poison as zero")
the backend selects that poison as zero.
The Linux kernel BPF selftest progs/test_global_func8.c has
```
__noinline int foo(struct __sk_buff *skb)
{
return bpf_get_prandom_u32();
}
SEC("cgroup_skb/ingress")
__success
int global_func8(struct __sk_buff *skb)
[54 lines not shown]
[DebugInfo][Mem2Reg] Convert existing #dbg_value records with a deref in the single block case (#237347)
Each live #dbg_value record is cloned with its deref stripped at each
store, taking the value being stored. This creates a debug record at
each update point: each existing record for the variable is kept or
rewritten to use the stored value as its location, and each store to an
alloca that had an associated debug record also receives a debug record
for the update.
Fixes https://github.com/llvm/llvm-project/issues/229454
Assisted-by: Claude
Revert "Disable pre-link LTO vectorisation and loop unroll for at O2 and O3 optimisation levels (#195886)" (#238029)
There's test failure for the added NewPM Test which sometimes outputs
"FunctionAnalysisManager" and sometimes
"AnalysisManager<Function>" (they are aliases).
This reverts commit e3c929c8f1bca3e96dcb3c3b1886f25f8244bb5d.
[bazel] Update dependencies to account for rules_cc_autoconf updates (#236893)
We're able to drop the explicit `rules_cc_autoconf` pin as new `gmp` and
`mpfr` `*.bcr.*` versions pull in a new version and account for updates
in that module.
[bazel][lldb] Add unit tests for lldb's process and platform plugins (#237739)
Follow up to #236847. Adds the unit tests for lldb's process and
platform plugins: AdbClientTests, LLDBMinidumpTests, LLDBPlatformTests,
PlatformGdbRemoteTests, ProcessElfCoreTests, ProcessGdbRemoteTests,
ProcessLinuxTests, ProcessPOSIXTests, ProcessUtilityTests,
RegisterSupportTests and ScriptInterpreterNoneTests.
As before, names and dependencies follow CMake, plus the direct
dependencies layering_check requires, and //lldb:Interpreter and
//lldb:Breakpoint wherever a test needs what CMake gets through
lldbCore. LLDBMinidumpTests stages its Inputs/ like the other tests. As
in CMake, the elf-core, Linux and POSIX tests are Linux-only,
PlatformAppleSimulatorTest.cpp is macOS-only, and RegisterSupportTests
leaves out the FreeBSD and NetBSD register context tests that CMake only
adds on those systems.
ProcessLinuxTests includes the plugin's headers without the
Plugins/Process/Linux/ prefix, which CMake allows through
[6 lines not shown]
devel/py-curio: Fix import on Python 3.12 and 3.13
Python 3.12 made multiprocessing.connection's CHALLENGE, WELCOME and
FAILURE private and removed ssl.wrap_socket, and Python 3.13 removed
telnetlib, so importing curio fails. Backport upstream commit a5590bb
("Add support for Python 3.12"), which upstream never released, and
replace the telnetlib based monitor client with a small socket +
selectors loop.
While here, document the patches.
Obtained from: upstream
PR: 300285
Approved by: portmgr@ (unbreak; blanket)
[mlir][X86] Prepare contract interleave (#236750)
Follow-up to #232800, which folds transpose + shape_cast unpacking of a
VNNI-packed RHS. Some frontends instead unpack by splitting the source
into VNNI lanes, transposing each lane, and joining the lanes back.
triton-cpu does this with deinterleave/interleave, and cutile-cpu with
transpose + extract and insert_strided_slice. Neither form was matched,
so the contraction never reached AMX lowering.
This matches both forms. For i8, factor 4 can be expressed as two binary
levels or a single 4-way step. We only fold when every lane comes from
the same source in VNNI order.
Also simplifying checks and hardening integration tests.
Assisted by AI.