[SBVec] Implement topDown/botUp vectorizers in unison
This patch introduces the `top-down-vec` pass to the Sandbox Vectorizer,
adding the ability to traverse use-def chains top-down to discover and
collect vectorization opportunities. Furthermore, this patch unifies
the two vectorizers into a single implementation to minimize code
duplication.
NAS-141518 / 27.0.0-BETA.1 / Standardize and enforce public API method docstrings (#19182)
## Summary
Standardizes the docstrings of every public API method, migrates
per-parameter and per-return-value descriptions out of method docstrings
into the API model field definitions, and adds a unit test that enforces
both — including structural RST validity, cross-reference resolution,
and markup linting — so documentation quality is checked in CI rather
than by review. Public API method docstrings are now consistent
reStructuredText prose; field-level details live (only) in
`Field(description=...)` on the models, where they are already required.
## Enforcement
`pytest/unit/api/test_api_structure.py` collects every public API method
in a single pass over the source tree (handling
`@api_method`/`@filterable_api_method`, private decorators/services, and
the CRUD/Config methods that base classes provide implicitly) and runs
[72 lines not shown]
qat: driver updates to enhance qat infrastructure
- Updated QAT infrastructure FW version/AE mask/num_banks fields
to facilitate integration of future QAT products.
- Exposed service as sym;asym instead of cy for gen4
- Enhanced cpaGetInstances() for accurate instance retrieval
- Added 57-bit virtual address support to lac_lock_free_stack
- Minor bug fixes and improvements
Signed-off-by: Hareshx Sankar Raj <hareshx.sankar.raj at intel.com>
Reviewed by: markj
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D57746
[lldb-dap][test] Re-enable test_by_name_waitFor on Windows (#205570)
`test_by_name_waitFor` passes with `LLDB_USE_LLDB_SERVER=1`.
`test_by_partial_name_waitFor` hangs on exit. Skip if for now.
rdar://180515488
[SBVec] Implement topDown/botUp vectorizers in unison
This patch introduces the `top-down-vec` pass to the Sandbox Vectorizer,
adding the ability to traverse use-def chains top-down to discover and
collect vectorization opportunities. Furthermore, this patch unifies
the two vectorizers into a single implementation to minimize code
duplication.
libtorrent rtorrent: updated to 0.16.15
0.16.15
Cleanup of old unused/unneeded code and commands continues, and the deprecated commands should no longer be used.
[RISCV][XCV] Relax long `cv.beqimm`/`cv.bneimm` branches (#205096)
`cv.beqimm` and `cv.bneimm` encode their target as a 13-bit signed
PC-relative offset (+/-4094 bytes). Branches beyond that range were
silently truncated by MC fixup application, producing wrong code with no
diagnostic. Add `PseudoLongCV_BEQIMM`/`PseudoLongCV_BNEIMM` and the
MC-layer relaxation flow (inverted short branch + JAL trampoline),
mirroring the standard B-type and Qualcomm Xqcibi vendor branches.
**Tests:** `xcvbi-branch-relax.ll` (uses `-filetype=obj | llvm-objdump`,
since MC-layer relaxation is only observable on object emission, not on
textual asm).
Split out of #204879 at review request (one fix per PR).
Part of a CORE-V (XCV) series; see RFC:
https://discourse.llvm.org/t/rfc-core-v-xcv-support-for-cv32e40p-clang-builtins-xcvsimd-intrinsics-and-generic-auto-selection/91111
libass: updated to 0.17.5
libass (0.17.5)
* Fix limited OOB read and write in wrap_lines_measure (GHSA-pjjp-65r7-ppgm; CVE pending)
* Fix OOB bit clears for negative Matroska ReadOrder fields (GHSA-5gf7-wjfm-vmvm; CVE pending)
* Fix \fay with glyph clusters
* Fix small alpha changes not always splitting runs when combined with fade
* Fix compilation with MSVC-mode clang
* Fades are now applied to BorderStyle=4 boxes too
* Fonts using legacy arabic Windows charmaps are now supported
* ass_render_frame no longer returns fully transparent images
* Avoid MSVC’s subpar code generation for isnan to bring performance closer to other compilers
* Avoid SSE instructions if compiler baseline already includes AVX
[clang-doc] Try to make testing more uniform
Today clang-doc has tests for its various backends that use the same
input files, and mix the checks for each format. This leads to very
large test files that are quite hard to update or maintain. Thus far
we've assumed that this is better than updating several files, but as we
leverage mustache and JSON more and more to test feature completeness,
much of the output complexity is now limited to each backend and its
mustache templates. To make this simpler to maintain, we can lean into
common test Inputs keeping the annotate source separate from the test
checks, and split the checks out into their own directory hierarchy.
This patch is mostly mechanical rewriting of code. This was done with
the assistance of an LLM, but was checked by me, and verified with
instrumentation based coverage that we did not lose any line coverage.
[llvm-objdump] Add --substitute-path and --source-dir for --source (#201096)
When the code object was compiled on a different machine that does not
have the same directory structure, or the source code has been moved, we
are seeing a warning with the disassembler, stating that the files
embedded in the code object were not found on disk.
This patch introduces a command line options for llvm-objdump, which
provide alternate directory locations to locate the source files on
disk. These options are inspired by GDB commands _set directory_ and
_set substitute-path_.
--substitute-path — Takes two strings, _from_ and _to_, and do a simple
string replacement of from with to at the start of the directory part of
the source file name, then use that result instead of the original file
name to look up the sources. A rule applies only if _from_ ends at a
directory separator.
--source-dir — Add directories to the source search path. Directories
are searched in following order: original recorded path, source-dir +
relative recorded path or absolute path without root, source-dir +
basename.
[clang-doc] Test more language constructs
We're missing several different language constructs in our tests. This
patch simply adds the basic tests and captures the output without trying
to fix or adjust any behavior, and can be considered a sort of precommit
test for future fixes to the various documentation components.
Make divert-packet / divert(4) properly rdomain aware.
divert(4) only partially handled rtables / rdomains. While it was used
outbound, inbound packets did not check the rdomain. This is confusing
and incorrect.
Now inbound packets need to match the rdomain of the listening socket
so one needs to listen on the rdomain the packets come in.
If packets from multiple rdomains match the rule then userland
needs to listen on each rdomain. If not the packet will be dropped.
Report by Y Yang, et al from Tsinghua University
With and OK bluhm@ OK sashan@ mvs@
[Dexter] Add ability to rewrite scripts to fill-in unknown values (#202799)
This patch adds a feature to Dexter that allows scripts to be passed to
Dexter with missing expected values (`null` values in YAML), which
Dexter will attempt to "fill-in" with expected values that match the
debugger's actual output. The result is written to a file with the same
name as the original test file, in the directory given by
--results-directory if one is present; all content outside of the Dexter
script itself is preserved exactly as-is.
NB: Each test in this patch has a corresponding "expected" file, which
is almost identical (including the `RUN` lines), and exists to be
`diff`'d against the output of Dexter's script generation.
[Clang] Rebuild lambda captures in default member initializers
Fixes https://github.com/llvm/llvm-project/issues/196469
Since the CWG1815 implementation, `InitListChecker` rebuilds a default
member initializer at its point of use in aggregate initialization. The
rebuild uses the `EnsureImmediateInvocationInDefaultArgs` tree
transform, where `TransformCXXBindTemporaryExpr` strips
`CXXBindTemporaryExpr` nodes, relying on the subexpression's rebuild to
re-create the temporary binding: every `Rebuild*` path funnels through
`Sema::MaybeBindToTemporary`, which also re-registers the cleanup in
the current evaluation context.
However, the transform overrides `TransformLambdaExpr` to return the
closure unchanged because the lambda body is not a subexpression. That
skips the `MaybeBindToTemporary` call that `BuildLambdaExpr` ends with.
The rebuilt initializer then lacks both the `CXXBindTemporaryExpr`
around the closure and the `ExprWithCleanups` marker, so CodeGen never
emits the closure's destructor and init-captured members leak.
[11 lines not shown]
[mlir][vector] reject negative strides for `vector.load`/`vector.store` (#204611)
This PR follows up #204309 and #204309.
It simply rejects negative strides for vector.load/vector.store :D
AI Disclaimer: I used AI for the tests.
---------
Signed-off-by: Federico Bruzzone <federico.bruzzone.i at gmail.com>
Co-authored-by: Andrzej Warzyński <andrzej.warzynski at gmail.com>
[AArch64] Recombine SETCCCARRY for legalized unsigned compares (#204504)
Type legalization can turn wide unsigned compares into SETCCCARRY nodes
fed by USUBO carry results, hiding the original high/low compare shape
from the existing CCMP conjunction/disjunction lowering.
Add an AArch64 DAG combine for SETCCCARRY that recognizes these
legalized wide-compare patterns and rebuilds them as SETCC plus AND/OR,
exposing them to the existing CCMP lowering.
This is separated from https://github.com/llvm/llvm-project/pull/181822.
[Clang] Rebuild lambda captures in default member initializers
Fixes https://github.com/llvm/llvm-project/issues/196469
Since the CWG1815 implementation, `InitListChecker` rebuilds a default
member initializer at its point of use in aggregate initialization. The
rebuild uses the `EnsureImmediateInvocationInDefaultArgs` tree
transform, where `TransformCXXBindTemporaryExpr` strips
`CXXBindTemporaryExpr` nodes, relying on the subexpression's rebuild to
re-create the temporary binding: every `Rebuild*` path funnels through
`Sema::MaybeBindToTemporary`, which also re-registers the cleanup in
the current evaluation context.
However, the transform overrides `TransformLambdaExpr` to return the
closure unchanged because the lambda body is not a subexpression. That
skips the `MaybeBindToTemporary` call that `BuildLambdaExpr` ends with.
The rebuilt initializer then lacks both the `CXXBindTemporaryExpr`
around the closure and the `ExprWithCleanups` marker, so CodeGen never
emits the closure's destructor and init-captured members leak.
[11 lines not shown]
[LifetimeSafety] Cache lifetimebound macro lookup (#205250)
Cache lifetimebound macro spelling lookup used by fix-it suggestions.
Current cache strategy:
- During cache build, collect macro names that have ever been defined as
a lifetimebound attribute spelling.
- During lookup, only visit those cached macro names, find the active
definition at the fix-it location, and re-check that the active
definition still has lifetimebound spelling.
- If multiple matching macros are active at the fix-it location, use the
most recently defined one.
Performance:
| Case | Before 359bfe6 | 359bfe6| After Cached |
|-------------------------------------------------------------|----------------:|---------------:|-------------:|
[10 lines not shown]
PR 60354: fix a stupid mistake in the previous change:
move the test and new message about optional sets missing into the
correct place so it only shows the message when we really can not
find the set.
AMDGPU/GlobalISel: Implement G_GET/SET_ROUNDING (#205265)
Implement G_GET/SET_ROUNDING for the llvm.get.rounding and
llvm.set.rounding intrinsics.
The lowering is ported from the existing SelectionDAG handling, keeping
the structure close to the SDAG implementation.
Assisted by: Claude Opus 4.8