[lldb][Windows] Fix x86_64 default unwind plan (#210076)
`ABIWindows_x86_64::CreateDefaultUnwindPlan()` uses a "CFA = rbp + 16"
as a placeholder, however, `Windows-x86_64` does not use rbp as a frame
pointer. With this bogus rbp based CFA, the unwinder could not produce
the caller frame, so stepping out of such a function fails with "Could
not create return address breakpoint".
This patch uses the `Windows-x86_64` correct rule for the fallback: [the
return address is at the top of the
stack](https://learn.microsoft.com/en-us/cpp/build/x64-software-conventions?view=msvc-170),
so `CFA = rsp + 8` and `pc = [CFA - 8]`.
[GlobalISel] Add NumSignBits for G_UNMERGE_VALUES (#213607)
The code mostly comes from computeKnownBits, with some modifications to
extract the relavent bits.
[analyzer] Fix -analyzer-output=html assert on reversed and macro ranges (#214463)
HTMLDiagnostics::HighlightRange guarded against a reversed range by
comparing line numbers, so a same-line reversal - which is what the
piece for an implicit copy constructor carries - reached html::HighlightRange.
Its scan walks from begin to end, ran off the end of the buffer, and asserted:
https://godbolt.org/z/sTb5qfjjd
Invalid position to insert! (RewriteRope.h)
It also added the end token's length itself and then passed a token range to
html::HighlightRange, which measured the token again, this time from the
interior. For most tokens the two cancel, but where the tail re-lexes longer
the highlight reached past the end of the range, e.g. over a trailing ';'.
Use getExpansionRangeInFile(), which rejects reversed and cross-file ranges,
then convert once and tell html::HighlightRange the range is already char-granular.
A range ending inside a macro expansion now covers the whole macro use, so
[2 lines not shown]
[DAGCombiner][AArch64] Fix the multiplier when folding a partial reduction of a mask (#215187)
foldPartialReduceAdd synthesises the reduction's multiplier at the
operand's type. At i1 a splat of 1 is all ones, which sign extends to
-1, so the signed forms compute (-1) x (-1) = +1 per lane and sum to +n
where sum(sext(mask)) must be -n.
```llvm
%cmp = icmp eq <16 x i8> %a, %b
%sext = sext <16 x i1> %cmp to <16 x i32>
%r = call <4 x i32> @llvm.vector.partial.reduce.add(<4 x i32> %acc, <16 x i32> %sext)
```
-mattr=+neon sums to -n:
```
cmeq v1.16b, v1.16b, v2.16b
sshll v2.8h, v1.8b, #0
sshll2 v1.8h, v1.16b, #0
[18 lines not shown]
[lldb-dap][Windows] Retry call to CreateToolhelp32Snapshot (#215342)
`CreateToolhelp32Snapshot` reads a list of processes which is edited as
it's iterating it. This can cause it to fail with `ERROR_BAD_LENGTH`.
The documented fix is to retry until it succeeds:
> If the function fails with ERROR_BAD_LENGTH, retry the function until
it succeeds.
https://learn.microsoft.com/en-us/windows/win32/api/tlhelp32/nf-tlhelp32-createtoolhelp32snapshot
This should help fix flakyness with the `TestDAP_attach` test on
Windows.
[lldb] Print "version -v" keys in alphabetical order (#215305)
On https://github.com/llvm/llvm-project/pull/215074, they are building
lldb with LLVM_REVERSE_ITERATION enabled.
This caused lldb/test/Shell/Commands/command-version.test to fail
because the keys came out in a different order.
I could just fix the test by using CHECK-DAG instead, but I thought it
would be nice to print them in a fixed order instead.
Then you can compare between copies of lldb without having to sort them
first.
I've implemented that in the command as we don't seem to give any
ordering guarantee for StructuredData::Dictionary and likely don't want
to at this point.
Example output:
```
[15 lines not shown]
RuntimeLibcalls: Add sincos to the RISCV runtime libcall set (#215115)
Inspection of the glibc sources suggests this is generically
available, with the target variance being for long double support.
The set of library functions is a large historical mess I'm attempting
to untangle. The traditional system had a large set of defaulted calls,
but sincos was a case which was explicitly enabled, and I'm assuming
riscv just never got around to adding it. It will be easier to
reorganize the library functions if synthetic architectural glibc
variance is eliminated.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
IR: Add Module::getLongDoubleFormat helper (#214943)
Add a helper function to return the effective long double type
for a module, accounting for the "long-double-type" module flag,
and defaulting to the triple's default.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
[X86] Add test coverage for #215223 (#215502)
Most concerning is the different (poison) result on SSE2 targets, but
the failure for SimplifyDemandedBits to correctly do its thing for AVX+
is terrible as well.
ui: tabulator: Add _showMaximized() modal that can show a grid close to full screen (#10656)
* ui: tabulator: Add _showMaximized() modal that can show a grid close to full screen
* ui: tabulator: Add _showMaximized() modal, minor improvements
move html generation to javascript library, align model a bit differently and always stretch to page height to remove distractions while reading.
includes some smaller fixes for missing tooltips and "hanging" tooltips as well.
* Center the modal better
---------
Co-authored-by: Ad Schellevis <ad at opnsense.org>
DAG: Gracefully diagnose missing lrint/llrint/lround/llround libcall (#215032)
Avoid hitting the fatal error in makeLibCall by emitting a diagnostic
if the library call is unsupported.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
NAS-142104 / 27.0.0-BETA.1 / Reject and normalize non-colon NIC MAC addresses (by Qubad786) (#19493)
## Problem
The NIC `mac` field accepted dash-separated, no-separator and mixed
forms, but libvirt's `defineXML` only parses colon-separated MACs — so a
VM or container configured that way was accepted by the API and then
failed to start with an XML parse error. Existing installs can already
have such addresses stored.
## Solution
- **Colon-only validation.** The shared `MACAddress` type now matches
colon-separated hex only. It is anchored with `\Z` rather than `$`,
because Python's `$` also matches before a trailing newline and would
otherwise let through a value libvirt still cannot parse.
- **Lowercase normalization.** MAC addresses are case-insensitive, but
every comparison we make against one is a plain string compare, so an
uppercase spelling was a distinct value to the per-instance duplicate
check. The type now lowercases, and `device_uniqueness_check` case-folds
the NIC identity so rows written before this still compare correctly.
[13 lines not shown]
py-pylint-django: updated to 2.8.0
2.8.0
New checks
Added format-html-interpolation (W5150) and mark-safe-interpolation (W5151) checks which warn when the format string of format_html() / format_html_join() or the argument of mark_safe() is built with an f-string, str.format(), %-formatting or + concatenation. Such values bypass Django's HTML escaping; pass them as arguments instead.
[flang][AArch64] Pass large BIND(C) VALUE derived types indirectly
AAPCS64 "Parameter passing rules" B.4 states: "If the argument type is a
Composite Type that is larger than 16 bytes, then the argument is copied to
memory allocated by the caller and the argument is replaced by a pointer to
the copy." Flang instead marked such an argument byval, which lets the target
lower it as a by-value aggregate placed in the argument stack area, so it
consumed no register. A C function that follows the standard expects a pointer
in that register, so the arguments no longer lined up and the callee read the
wrong value.
Add an indirect attribute to the argument marshalling and use it on AArch64
for records that are too large to be passed in registers. Like byval it makes
the caller copy the value into a temporary and pass its address, but it does
not attach the byval attribute to the argument. Records of 16 bytes or less,
records passed on the stack because no register is left, and records returned
by value are unchanged.
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
[InstCombine] Preserve access groups in mergeStoreIntoSuccessor (#214509)
mergeStoreIntoSuccessor builds a fresh StoreInst and copies only
AAMDNodes, so !llvm.access.group is dropped even when both original
stores carry the same group.
llvm.loop.parallel_accesses is all-or-nothing: isAnnotatedParallel()
requires every memory operation in the loop to be a member, so one
untagged store de-parallelises the whole loop and LoopVectorize can
refuse a loop that is parallel by construction.
[CMake][CAS] Do not export CASPluginTest from the install tree (#215292)
`CASPluginTest` is a unit-test plugin, but it ends up in the installed
`LLVMExports.cmake` and in `LLVM_AVAILABLE_LIBS`.
Installs that don't ship `libCASPluginTest` then fail every
`find_package(LLVM)` with a `FATAL_ERROR`, so nothing out-of-tree can
configure against them.
`BUILDTREE_ONLY` limits the plugin to the build-tree export set. The CAS
unit tests load it by a path relative to the test executable, so they
keep working.
This is a follow-up to #213331.
Regression found in [Out-of-Tree CI
builds](https://github.com/KhronosGroup/SPIRV-LLVM-Translator/actions/runs/31229501194/job/93030341651)
of KhronosGroup/SPIRV-LLVM-Translator:
```
CMake Error at /usr/lib/llvm-24/lib/cmake/llvm/LLVMExports.cmake:1944 (message):
The imported target "CASPluginTest" references the file
[6 lines not shown]
AMDGPU/GlobalISel: RegBankLegalize rules for uniform i16 extending loads (#214267)
Extending loads, i8 to i16, are legal on targets with true16.
Note: there is potentially a missing rule for uniform P4 when target
usesTrue16 and hasSMRDSmall but MMO does not satisfy isUL. Wasn't able
to construct an LLVM-IR test for this case, leaving it unsupported.
py-guessit: updated to 4.4.0
4.4.0 (2026-07-31)
Bug Fixes
- **other**: Anchor the complete marker on a token boundary
Features
- **other**: Read the French INTEGRALE as a complete run
- **type**: Let a complete series outweigh the year
- **type**: Type a yearless complete run as an episode
ansible-core: updated to 2.21.3
v2.21.3
Bugfixes
- Add deprecation status to the tree and oneline callback DOCUMENTATION. (https://github.com/ansible/ansible/issues/87020)
- ansible-galaxy - Fix attempting to download the collection again if the response from the server is shorter than expected, instead of failing due to the mismatched artifact hash on the first attempt. (https://github.com/ansible/ansible/pull/86025)
- ansible-test - Fix target filtering to preserve user-specified versions that are not in the completion configuration.
- collection loader - Fix the collection loader logic to correctly return Python module when calling ``pkgutil.iter_modules`` with a package that is inside a collection path and contains compiled Python extension modules.
- powershell exec_wrapper - fix handling when multiple pwsh executables match by selecting the first result (https://github.com/ansible/ansible/issues/87228).
- rpm_key - ensure a trailing newline is present on PGP armor data before passing it to librpm for parsing, fixing failures on systems where ``pgpParsePkts`` requires it (https://github.com/ansible/ansible/issues/87303).
system: service widget based on community feedback; closes #10553
Tiles are still there but markup is more "native" to the dashboard.
Header is back. The columns have a bigger minimum size.
ACKed by a few people in the issue. Likely not the end result,
but progress.
[SDAG] Add basic type legalization for experimental.vector.match (#213344)
This adds a new `ISD::VECTOR_MATCH` opcode that corresponds to the
`experimental.vector.match` intrinsic and implements basic type
legalization.
Right now, this does not support many more cases than the existing
lowering. A follow up patch will handle supporting needle sizes <= the
maximum size without falling back to expansion on AArch64.
Assisted-by: Codex