[llvm][Support] Avoid silent truncation of socket paths (#190869)
When the name is too long to fit in sockaddr_un::sun_path's 104
character buffer, we now surface the error condition, rather than
silently truncating and failing the test with an "address in use Bind
error". We also shorten the name a bit to give more headroom on CI
systems that define an explicit TMP_DIR that acts as a prefix to the
path created by these tests.
[CUDA] refactor in-header implementation of __ld*/__st* with different cache modes. (#190021)
* Generalized creation of the variant sets.
* Added implementations for the missing operation modes. Now we match
what's available in CUDA headers.
* Cleaned up discrepancies in `__asm__ __volatile__` use (needed for
some ops that warm up the cache, but should not be discarded if the load
result is unused)
Manually verified that clang's versions of these functions generate
exactly the same instructions nvcc generates from CUDA headers.
[AMDGPU][NFC] Move InstCounterType and Waitcnt to AMDGPUWaitcntUtils.h (#187823)
This patch moves InstCounterType and Waitcnt from Utils/AMDGPUBaseInfo.h
to a more appropriate location, one directory up, in
AMDGPUWaitcntUtils.h. We also need to move a few encoding and decoding
functions that work on Waitcnt. Some of these called static functions
defined in AMDGPUBaseInfo.cpp, like `unpackBits()`, so this patch
introduced new functions in AMDGPUBaseInfo: `decodeLoadcnt()`,
`decodeStorecnt()` and `decodeDscnt()` that do the necessary bit
operations but don't operate on the Waitcnt class directly.
DAGCombine: Prefer to keep cond_loop argument as a setcc.
As with brcond, combines for cond_loop want to see setcc as the direct
argument, so prefer to keep it in that form.
Reviewers: arsenm, fmayer, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/190889
[clang] deduplicate target-features for modules (#187614)
Previously, double passing a target feature would make the module
incompatible with a compilation unit that only passes it once.
The motivating problem is, when we pass -target-features +tagged-globals
as well as -fsanitize=hwaddress, which adds a second copy, the module
is incompatible with one built with only one `-target-features
+tagged-globals`.
[NFC][SLP][AMDGPU] Pre-commit test for vectorization of non-trivially-vectorizable intrinsic operands (#191009)
This patch adds pre-commit test for vectorization of
non-trivially-vectorizable intrinsic operands for PR
https://github.com/llvm/llvm-project/pull/189784
[Hexagon] Add missing MIRParser link dependency (#191010)
cd66d79be19b added parseMachineFunctionInfo to HexagonTargetMachine
which calls parseNamedRegisterReference from LLVMMIRParser, but did not
add the library dependency. This causes link failures for executables
like dsymutil and llvm-split when building with BUILD_SHARED_LIBS=OFF.
Add MIRParser to LINK_COMPONENTS.
[ARM] Custom Lowering for SADDO_CARRY and SSUBO_CARRY (#154419)
To do this, I did refactoring to mirror what goes on with AArch64,
including having the carryFlagToValue do the inversion.
While the patterns are not the best, with pattern matching, I hope to at
make it as good as AArch64 on Thumb2 where we have CSEL.
draid: add failure domains support
Currently, the only way to tolerate the failure of the whole
enclosure is to configure several draid vdevs in the pool, each
vdev having disks from different enclosures. But this essentially
degrades draid to raidz and defeats the purpose of having fast
sequential resilvering on wide pools with draid.
This patch allows to configure several children groups in the
same row in one draid vdev. In each such group, let's call it
failure group, the user can configure disks belonging to different
enclosures - failure domains. For example, in case of 10 such
enclosures with 10 disks each, the user can put 1st disk from each
enclosure into 1st group, 2nd disk from each enclosure into 2nd
group, and so on. If one enclosure fails, only one disk from each
group would fail, which won't affect draid operation, and each
group would have enough redundancy to recover the stored data. Of
course, in case of draid2 - two enclosures can fail at a time, in
case of draid3 - three enclosures (provided there are no other
[52 lines not shown]
Do not generate directory services config when disabled
If administrator for some reason temporarily disables directory
services we should not add configuration to the smb.conf otherwise
they may encounter errors on starting / stopping dependent services.
Although this has potential to break the SMB service when the
directory service is disabled, the practical impact of the bug is
actually fairly small. In practice administrators do not choose to
temporarily disable AD (for example) in favor of local accounts.
[SelectionDAGBuilder] Pass SDNodeFlags to getSetCC instead of using FlagInserter. (#190878)
getSetCC hasn't always had a SDNodeFlags argument. When it was added, it
stopped looking at FlagInserter.
Also remove unnecessary FlagInserter from visitFCmp.
[VPlan][PseudoProbe] Fix `pseudoprobe` duplication when `VF=1` (#185238)
Fix assertion in `loop-vectorize` on loops that contains
`llvm.pseudoprobe` at VF=1, UF=2. Minimal Reproducer:
https://godbolt.org/z/nrcMWWqMx
Originally in https://reviews.llvm.org/D144066, Pseudoprobes were marked
non-uniform in `isUniformAfterVectorization` even for VF=1 that allows
the `REPLICATE call @llvm.pseudoprobe` to survive until the plan is
executed when VF=1, UF=2, causing the crash.
Instead, `isUniformAfterVectorization` as true even for pseudoprobe when
`VF.isScalar()`.
NAS-140607 / 26.0.0-BETA.2 / fix capturing systemd service failure log msgs (by yocalebo) (#18688)
## Propagate systemd failure detection and collect sub-unit failure logs
Follow-up to #18680, which added `check_configuration()` to UPS to
prevent silent start failures. That PR noted a broader design issue:
`_verify_service_running()` in the D-Bus layer detects crash-looping and
failed services but only logs warnings, discarding the result. This PR
addresses that.
### Problem
Three issues existed after #18680:
1. **`_verify_service_running()` results were invisible to API callers**
— It checked `SubState` for crash-looping (`auto-restart`) and
`ActiveState` for failed services after every Start/Restart/Reload, but
only wrote to `logger.warning()` and returned. The detection was real,
but API callers had no way to see it — the failure information was
[101 lines not shown]
NAS-140607 / 27.0.0-BETA.1 / fix capturing systemd service failure log msgs (#18686)
## Propagate systemd failure detection and collect sub-unit failure logs
Follow-up to #18680, which added `check_configuration()` to UPS to
prevent silent start failures. That PR noted a broader design issue:
`_verify_service_running()` in the D-Bus layer detects crash-looping and
failed services but only logs warnings, discarding the result. This PR
addresses that.
### Problem
Three issues existed after #18680:
1. **`_verify_service_running()` results were invisible to API callers**
— It checked `SubState` for crash-looping (`auto-restart`) and
`ActiveState` for failed services after every Start/Restart/Reload, but
only wrote to `logger.warning()` and returned. The detection was real,
but API callers had no way to see it — the failure information was
[95 lines not shown]
[HLSL] Diagnose dynamic indexing of struct arrays for resource access (#187132)
Dynamic indexing of structs arrays for resource access is not supported. This change implements the diagnostic for this.
Fixes #187131
Import OpenSSL-3.5.6 (previous was 3.5.5)
### Changes between 3.5.5 and 3.5.6 [7 Apr 2026]
* Fixed incorrect failure handling in RSA KEM RSASVE encapsulation.
Severity: Moderate
Issue summary: Applications using RSASVE key encapsulation to establish
a secret encryption key can send contents of an uninitialized memory buffer
to a malicious peer.
Impact summary: The uninitialized buffer might contain sensitive data
from the previous execution of the application process which leads
to sensitive data leakage to an attacker.
Reported by: Simo Sorce (Red Hat).
([CVE-2026-31790])
[126 lines not shown]
[clang-tidy] detect redundant uses of LLVM's cast, dyn_cast (#189274)
Warns when casting to the same pointee type, or when the target pointee
type is a super type of the argument's pointee type. Supported
functions:
- cast
- cast_if_present
- cast_or_null
- dyn_cast
- dyn_cast_if_present
- dyn_cast_or_null
---------
Co-authored-by: Victor Chernyakin <chernyakin.victor.j at outlook.com>
[SelectionDAG] Recurse through mask expression trees in WidenVSELECTMask (#188085)
WidenVSELECTMask currently handles only two mask shapes: a bare SETCC
or a single AND/OR/XOR of exactly two SETCCs. Anything deeper bails out
to the generic condition widening path, which often introduces
unnecessary narrow/widen roundtrips (xtn+sshll on AArch64,
packssdw+vpmovsxwd on X86).
Replace the hand-coded cases with a recursive widenMaskTree that walks
through SETCC, AND/OR/XOR, FREEZE, VECTOR_SHUFFLE, SELECT/VSELECT, and
all-ones/all-zeros BUILD_VECTORs.
[VPlan] Lower CanIVIncrementForPart in convertToConcreteRecipes. (#190844)
Move the lowering of CanonicalIVIncrementForPart from generate() to
convertToConcreteRecipes, converting it to an Add VPInstruction at the
VPlan level. This enables VPlan-level simplifications (e.g., folding add
0, x) and prepares for adding a 3-operand form.
PR: https://github.com/llvm/llvm-project/pull/190844