Skip to content

LLVM and SPIRV-LLVM-Translator pulldown (WW31 2025) #19622

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1,737 commits into from
Aug 5, 2025
Merged

Conversation

iclsrc
Copy link
Collaborator

@iclsrc iclsrc commented Jul 29, 2025

DanBlackwell and others added 30 commits July 3, 2025 10:25
…simulator tests (#146721)

* Fix splitting of arguments such as `LSAN_OPTIONS=suppressions=lsan.supp`
* Prevent environment variables set in parent process being overwritten
* Replace hard-coded `env` with `%env` to allow overriding depending on target
* Replace deprecated `pipes` usage with `shlex`
* Run formatter over `iossim_env.py`
…ements (#146857)

Fixes 2 bugs reported in #146063

- The body of a lambda appearing in a discarded statement was sometimes
considered discarded itself
- A lambda conversion operator that was not odr-used was sometimes not
defined even if it was needed

Fixes #146063

---------

Co-authored-by: Timm Baeder <[email protected]>
This adds SBBreakpoint::SetIsHardware, allowing clients to mark an
existing breakpoint as a hardware breakpoint purely through the API.
This is safe to do after creation, as the hardware/software distinction
doesn't affect how breakpoint locations are selected.

In some cases (e.g. when writing a trap instruction would alter program
behavior), it's important to use hardware breakpoints. Ideally, we’d
extend the various `Create` methods to support this, but given their
number, this patch limits the scope to the post-creation API. As a
workaround, users can also rely on target.require-hardware-breakpoint or
use the `breakpoint set` command.

rdar://153528045
…count Target divergency. (#144947)"

This reverts commit 8ac7210.

This breaks the building the AArch64 backend, e.g. see
llvm/llvm-project#144947

Revert to unbreak the build.

Also reverts follow-up commits 1e76f01.
Reducing manual update work required for an upcoming change.
Adds additional test coverage for early-exit loops with deref
assumptions, as suggested in
llvm/llvm-project#128436.
We don't need to cast std::string to std::string.
…g zicond extension (#143768)

The following lowerings now occur:
(select cond, u, rotr(u, rot.amt)) -> (rotr u, (czero_nez rot.amt,
cond))
(select cond, rotr(u, rot.amt), u) -> (rotr u, (czero_eqz rot.amt,
cond))
(select cond, u, rotl(u, rot.amt)) -> (rotl u, (czero_nez rot.amt,
cond))
(select cond, rotl(u, rot.amt), u) -> (rotl u, (czero_eqz rot.amt,
cond))
Add test coverage for narrowing interleave groups with constants and
uniform loads.
`TokenSequence::pop_back()` had a check assumed that tokens are never
empty. Loosen this check since isn't true.

towards #146362
The preprocessor used bitwise and to implement logical, this is a bug.

towards #146362
If all operands to an interleave group are already trivially narrow,
narrow the interleave group itself as well.
The AArch64 one still has some manual check lines, so it's only "mostly"
auto generated
As per #142559, this marks frint as legal for Neon and upgrades the existing
arm.neon.vrintx intrinsics.
…#146953)

We were using the extension name as a prefix rather than TH_.
This is similar to -msve-vector-bits, but for streaming mode: it
constrains the legal values of "vscale", allowing optimizations based on
that constraint.

This also fixes conversions between SVE vectors and fixed-width vectors
in streaming functions with -msve-vector-bits and
-msve-streaming-vector-bits.

This rejects any use of arm_sve_vector_bits types in streaming
functions; if it becomes relevant, we could add
arm_sve_streaming_vector_bits types in the future.

This doesn't touch the __ARM_FEATURE_SVE_BITS define.
The DWARF expression evaluator is essentially a large state machine
implemented as a switch statement. For anything but trivial operations,
having the evaluation logic implemented inline is difficult to follow,
especially when there are nested switches. This commit moves evaluation
of `DW_OP_deref` out-of-line, similar to `Evaluate_DW_OP_entry_value`.
LLDB has the concept of an "SDK root", which expresses where the
system libraries and so which are necessary for debugging can be
found. On POSIX platforms, the SDK root is just the root of the
file system, or /.

We need to implement the appropriate method on HostInfoPosix to
prevent the use of the default implementation for which just returns
an error.

This change is needed to support the Swift REPL but may be useful
for other use cases as well.
…… (#146430)

…ion line

An obsolete flag ("insertASpace_") is being used to signal some cases in
the prescanner's implementation of continuation lines when a token
should be broken when it straddles a line break. It turns out that it's
sufficient to simply note these cases without ever actually inserting a
space, so don't do that (fixing the motivating bug). This leaves some
variables with obsolete names, so change them as well.

This patch handles the third of the three bugs reported in
llvm/llvm-project#146362 .
When using -fhermetic-module-files it's possible for a derived type to
have multiple distinct definition sites that are being compared for
being the same type, as in argument association. Accept them as being
the same type so long as they have the same names, the same module
names, and identical definitions.
… enums (#145986)

This pr removes the redundancy of having the same enums defined in both
the front-end and back-end of handling root signatures. Since there are
many more uses of the enum in the front-end of the code, we will adhere
to the naming conventions used in the front-end, to minimize the diff.

The macros in `DXContainerConstants.def` are also touched-up to be
consistent and to have each macro name follow its respective definition
in d3d12.h and searchable by name
[here](https://learn.microsoft.com/en-us/windows/win32/api/d3d12/).

Additionally, the many `getEnumNames` are moved to `DXContainer` from
`HLSLRootSignatureUtils` as they we will want them to be exposed
publicly anyways.

Changes for each enum follow the pattern of a commit that will make the
enum definition in `DXContainer` adhere to above listed naming
conventions, followed by a commit to actually use that enum in the
front-end.

Resolves llvm/llvm-project#145815
…46951)

Changed the type of the `func_name` attribute from SymbolNameAttr to
SymbolRefAttr. SymbolNameAttr is typically used when defining a symbol
(e.g., `sym_name`), while SymbolRefAttr is appropriate for referencing
existing operations. This change ensures that MLIR can correctly track
the link to the referenced `func.func` operation.
After the refactor of the offloading behaviors, the ability to update
the device settings for spir64_gen regressed for command lines using
-Xsycl-target-backend.  Fix this behavior and add some additional
testing.
@jsji jsji temporarily deployed to WindowsCILock August 4, 2025 21:56 — with GitHub Actions Inactive
@jsji jsji temporarily deployed to WindowsCILock August 4, 2025 21:56 — with GitHub Actions Inactive
@jsji
Copy link
Contributor

jsji commented Aug 4, 2025

This is ready for review, other than cherry-picks, the following changes needs review.

@jsji jsji temporarily deployed to WindowsCILock August 4, 2025 22:23 — with GitHub Actions Inactive
@jsji jsji temporarily deployed to WindowsCILock August 4, 2025 22:42 — with GitHub Actions Inactive
@jsji jsji temporarily deployed to WindowsCILock August 4, 2025 22:42 — with GitHub Actions Inactive
@jsji jsji temporarily deployed to WindowsCILock August 5, 2025 00:41 — with GitHub Actions Inactive
@jsji jsji temporarily deployed to WindowsCILock August 5, 2025 00:41 — with GitHub Actions Inactive
@jsji jsji temporarily deployed to WindowsCILock August 5, 2025 01:12 — with GitHub Actions Inactive
@jsji jsji temporarily deployed to WindowsCILock August 5, 2025 01:31 — with GitHub Actions Inactive
@jsji jsji temporarily deployed to WindowsCILock August 5, 2025 01:31 — with GitHub Actions Inactive
@wenju-he
Copy link
Contributor

wenju-he commented Aug 5, 2025

LGTM

@frasercrmck
Copy link
Contributor

While reviewing libclc, I'm seeing patch files and big-log-* files in the diff. Should those be removed?

@jsji jsji temporarily deployed to WindowsCILock August 5, 2025 13:39 — with GitHub Actions Inactive
@jsji jsji temporarily deployed to WindowsCILock August 5, 2025 13:39 — with GitHub Actions Inactive
@jsji
Copy link
Contributor

jsji commented Aug 5, 2025

While reviewing libclc, I'm seeing patch files and big-log-* files in the diff. Should those be removed?

Good catch. Those we added accidentally by script, removed them.

// RUN: FileCheck %s --check-prefix=BAD_AMD_INPUT
// RUN: not %clang_cl -c -fsycl -fsycl-targets=amd_gpu_bad -### %s 2>&1 | \
// RUN: not %clang_cl -c -fsycl -fsycl-targets=amd_gpu_bad --rocm-device-lib-path=/Inputs/rocm/amdgcn/bitcode -### %s 2>&1 | \
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not use -nogpulib for both? The test is just for verifying a bad argument to -fsycl-targets.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for some reason, cl mode driver does not respect -nogpulib.

@jsji jsji temporarily deployed to WindowsCILock August 5, 2025 14:06 — with GitHub Actions Inactive
@jsji jsji temporarily deployed to WindowsCILock August 5, 2025 14:35 — with GitHub Actions Inactive
@jsji jsji temporarily deployed to WindowsCILock August 5, 2025 14:35 — with GitHub Actions Inactive
@jsji
Copy link
Contributor

jsji commented Aug 5, 2025

@intel/llvm-gatekeepers This is ready for merge, can someone help issue a "/merge"? Thanks.

@sarnex
Copy link
Contributor

sarnex commented Aug 5, 2025

/merge

@sarnex sarnex merged commit 8850b4e into sycl Aug 5, 2025
56 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
disable-lint Skip linter check step and proceed with build jobs
Projects
None yet
Development

Successfully merging this pull request may close these issues.