[mlir][gpu] Add VectorToXeGPU and adjust VectorToSCF placement in XeVM pipeline (#210539)
Add convert-vector-to-xegpu (nested under gpu.module) to lower
kernel-side vector ops to XeGPU.
Move convert-vector-to-scf from the pre-GPU common pipeline into the
post-GPU pipeline, so host transfer ops (and any SCF the pass emits) are
lowered to loops before the vector-to-LLVM conversion.
---------
Co-authored-by: Claude Opus 4.8 <noreply at anthropic.com>
[flang][OpenMP] Switch TableGen generation to use llvm::EnumSet
Replace the remaining uses of the common::EnumSet-based OmpClauseSet to
llvm::omp::ClauseSet.
Specialize IterateOverMembers instead of ClauseSetToString
There was still a use of common::EnumSet::IterateOverMembers left
over after the prior changes. Get rid of it via the specialization,
and revert the specialization of ClauseSetToString, which was
originally implemented using IterateOverMembers.
[flang] Provide "clause set" type as parameter to DirectiveStructureChecker
This will remove the hardcoded dependence of DirectiveStructureChecker on
the common::EnumSet class. Both consumers of it will be able to use their
own type for the clause set.
The only complication was the ClauseSetToString member function, whose
implementation depended on the specifics of common::EnumSet, namely the
IterateOverMembers member function. It was moved out of the class, and
turned into a function template to make it possible to provide different
specializations for common::EnumSet and llvm::EnumSet.
[flang][OpenMP] Use llvm::omp::DirectiveSet instead of common::EnumSet
Replace uses of OmpDirectiveSet (defined in terms of common::EnumSet)
with the common llvm::omp::DirectiveSet (defined via llvm::EnumSet).
The llvm::omp::DirectiveSet class will also be used in openmp-parsers,
where OmpDirectiveSet was an instance of llvm::Bitset.
[flang][OpenMP] Use llvm::omp::ClauseSet instead of common::EnumSet
Replace uses of OmpClauseSet (defined in terms of common::EnumSet)
with the common llvm::omp::ClauseSet (defined via llvm::EnumSet).
[OpenMP] Implement EnumSet container
This is close to flang's common::EnumSet with the difference being that
it provides forward iterators.
The reason for having an implementation that is separate from
common::EnumSet is that this is intended to be shared for all consumers
of llvm/lib/Frontend/OpenMP. This class is also planned to be one of the
core containers for representing auto-generated OpenMP data in the future.
[SSAF] Fix Expected return type in TypeConstrainedPointers deserialization (gcc 7.5.0) (#211331)
GCC 7.5.0 fails to compile this code. Use explicit upcasts from
std::unique_ptr<Derived> to std::unique_ptr<Base> in deserializeSummary
and deserializeAnalysisResult. This resolves a compilation error where
llvm::Expected<std::unique_ptr<Base>> could not be constructed from
unique_ptr of derived summary/result types.
[AMDGPU][Docs] Remove docs for AMDGPU instruction syntax (#211421)
Docs for AMDGPU instruction syntax under llvm/docs/AMDGPU are being
moved out of LLVM.
They can be found at the [ROCm LLVM Compiler Infrastructure
website](https://rocm.docs.amd.com/projects/llvm-project/en/latest/index.html)
[libc] Silence sanitizer OOB reports in SIMD read/write helpers. (#211148)
Use `LIBC_NO_SANITIZE_OOB_ACCESS` for small SIMD helper functions
(load/store/gather/scatter/expand/compress). Even though the actual
functions which have logical OOB reads (such as
`clang_vector::string_length`) already have
`LIBC_NO_SANITIZE_OOB_ACCESS` attribute to ignore OOB reads, it's not
enough - as we see downstream reports from ASan builds of llvm-libc
(using tip-of-trunk Clang), both with `-O1` and `-O2`. We simply can't
rely on the SIMD helpers being inlined into the caller function, with
their memory reads/writes ignored.
Thus, apply the `no_sanitize` attribute to the helpers themselves. This
is clearly suboptimal, as we're effectively disabling sanitizer checks
for *all* the code using SIMD to read/write from memory, but it seems to
be the easiest reasonable fix. After all, code using SIMD (like code
using explicit intrinsics or inline assembly) should be written only in
special cases, with author knowing what they're doing.
Status/2026Q2: Fix the bullet points in ipv6 improvement report
Without this newline, the website will not correctly show the
bulletpoints.
Reviewed by: salvadore
Approved by: salvadore
Fixes: 487d18e72723 ("Status/2026Q2: Pouria reports")
[clang][Driver]Fix opencl -cl-fast-relaxed-math flag to have similar behaviour as ffast-math (#208709)
Previously when using `-cl-fast-relaxed-math` flag along with
`fhonor-nans` or `fhonor-infinities` the honor flags did not override
the relaxed math flag. This behaviour is something that is not seen in
case of ffast-math for general targets.
This patch makes adjustments to how the driver and cc1 handles the
relaxed math flag for opencl. The flag was in the path of `fast-math` so
when someone used the `-cl-fast-relaxed-math` flag they were ultimately
overriding everything with fast-math. This was the main reason why honor
flags were not overriding relaxed math (atleast that's what I have
understood from my time working on this).
I have added tests for this as well and modified CodeGen cc1 tests
according to the changes in the patch.
I have personally not tested this on any AMD targets myself yet. So I am
unsure about this breaking anything (hopefully it should rather fix).
closes #178514
NAS-141901 / 26.0.0-RC.1 / Add attachment-delegate regression tests for type-safe snapshot tasks (#19378)
Adds integration coverage for the attachment-delegate paths that break
when a delegate returns type-safe models instead of dicts — the
fragility behind the recent `pool.export` crash. `pool.snapshottask` is
the only delegate returning models
([NAS-139294](https://ixsystems.atlassian.net/browse/NAS-139294)), and
no existing test exercised it through these paths.
- `test_attachment_delegate_toggle` is parametrized over a replication
task (dict delegate) and a periodic snapshot task (model delegate). The
snapshot-task case covers the non-cascade `pool.export` disable /
`enable_on_import` bookkeeping and the re-import re-enable step.
- `test_attachment_name_for_snapshot_task` lists a snapshot task via
`pool.dataset.attachments_with_path`, exercising the `getattr`
(non-dict) branch of the base delegate's `get_attachment_name`.
Verified on a 26/INCREMENTAL VM: all three cases pass on current code,
and both regression guards fail with
`'PeriodicSnapshotTaskQueryResultItem' object is not subscriptable` when
their respective fix is reverted.
[libunwind][AArch64] Support .cfi_set_ra_state (#209950)
This new CFI directive directly assigns an RA signing state to the RA_SIGN_STATE DWARF pseudo-register for use when unwinding, to indicate whether the value of PC has been used as a diversifier for return address signing. The new directive subsumes and replaces .cfi_negate_ra_state_with_pc, which was found to be unsuitable for descibing some block layouts [1], particularly in hot-cold-split functions.
1: https://github.com/ARM-software/abi-aa/pull/346
[Clang] [Sema] Added a check for `NameInfo` not being empty after template instantiation (#210610)
Fixes #210234
As per my investigation (mostly following stack traces and dumping
variable values), a default empty `DeclarationNameInfo` was being
returned after template substitution [over
here](https://github.com/llvm/llvm-project/blob/c45b4e4d00bed488d6ece5608560561732ae5b9e/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp#L3270).
```cpp
// D-.>getNameInfo() has actual data here
DeclarationNameInfo NameInfo
= SemaRef.SubstDeclarationNameInfo(D->getNameInfo(), TemplateArgs);
// NameInfo has default values
```
This was being passed on directly to `CXXDestructorDecl::Create` leading
[3 lines not shown]
AMDGPU: Migrate assembler tests to subarch triples with error changes (#211592)
Since these cases dropped the -mcpu argument, the error messages changed
to use the canonical name.
[BoundsSafety] Introduce LateParsedAttrType AST placeholder type (#204125)
Split out from #179612 to make review easier. No functional change.
This introduces `LateParsedAttrType`, a new AST placeholder type used
during late parsing of type attributes. The actual late parsing
mechanism that uses this type is in #179612 and will be split into a
follow-up PR.