Skip to content

[SYCL][ABI-break] Remove old spec constants extension and implementation #9874

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

Conversation

AlexeySachkov
Copy link
Contributor

sycl_ext_oneapi_spec_constants extension was deprecated a year ago in b185269 and since it is dependent on program class, which was removed from SYCL 2020 and was removed from our implementation about 1.5 years ago in e7cc7b0, there is no reason anymore to keep related implementation bits.

This is technically an ABI break, because our compiler loses ability to process device code compiled by older versions of the compiler.

@AlexeySachkov AlexeySachkov requested review from a team as code owners June 14, 2023 13:27
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Note for @intel/dpcpp-tools-reviewers: I'm not sure if we have moved all spec constant tests to SYCL 2020 format.
This is not a problem I'm introducing in this PR, because those DeprecatedFeatures tests have been testing things, which can only be produced by our compiler from 2021, i.e. those tests arevery much synthetic as of today. However, with this commit we won't even have them in the repo and perhaps it makes sense to have an issue submitted to make sure that LIT tests coverage for SpecConstants pass is good

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm OK with it

Copy link
Contributor

@premanandrao premanandrao left a comment

Choose a reason for hiding this comment

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

FE changes LGTM.

@gmlueck
Copy link
Contributor

gmlueck commented Jun 14, 2023

Shall we also remove "sycl/doc/design/SpecializationConstants.md"? Note that the design for SYCL 2020 specialization constants is described in "sycl/doc/design/SYCL2020-SpecializationConstants.md".

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm OK with it

@MrSidims MrSidims requested a review from a team June 14, 2023 14:03
@AlexeySachkov AlexeySachkov requested a review from a team as a code owner June 14, 2023 14:19
@AlexeySachkov
Copy link
Contributor Author

Shall we also remove "sycl/doc/design/SpecializationConstants.md"? Note that the design for SYCL 2020 specialization constants is described in "sycl/doc/design/SYCL2020-SpecializationConstants.md".

Good point, removed the old design doc in d3dbc09

@AlexeySachkov AlexeySachkov temporarily deployed to aws June 14, 2023 15:09 — with GitHub Actions Inactive
@AlexeySachkov AlexeySachkov temporarily deployed to aws June 15, 2023 14:40 — with GitHub Actions Inactive
@AlexeySachkov AlexeySachkov temporarily deployed to aws June 15, 2023 16:21 — with GitHub Actions Inactive
@AlexeySachkov AlexeySachkov temporarily deployed to aws June 15, 2023 17:35 — with GitHub Actions Inactive
@AlexeySachkov AlexeySachkov temporarily deployed to aws June 21, 2023 13:44 — with GitHub Actions Inactive
@AlexeySachkov AlexeySachkov force-pushed the private/asachkov/cleanup-old-spec-constants-support branch from 7b6742d to 2e95f53 Compare June 21, 2023 14:05
@AlexeySachkov
Copy link
Contributor Author

Apology for the force-push. I made incorrect merge with intel branch instead of sycl branch and used force-push to rewrite that last merge. No other commits were updated, no new changes were introduced

@AlexeySachkov AlexeySachkov temporarily deployed to aws June 21, 2023 14:47 — with GitHub Actions Inactive
@AlexeySachkov AlexeySachkov temporarily deployed to aws June 21, 2023 16:04 — with GitHub Actions Inactive
@AlexeySachkov AlexeySachkov temporarily deployed to aws June 22, 2023 10:46 — with GitHub Actions Inactive
@AlexeySachkov AlexeySachkov temporarily deployed to aws June 22, 2023 11:39 — with GitHub Actions Inactive
@AlexeySachkov
Copy link
Contributor Author

@intel/dpcpp-tools-reviewers, could you please take a look?

Copy link
Contributor

@maksimsab maksimsab left a comment

Choose a reason for hiding this comment

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

Tools part LGTM

@AlexeySachkov AlexeySachkov merged commit e50ae05 into intel:sycl Jun 23, 2023
AlexeySachkov added a commit to AlexeySachkov/llvm that referenced this pull request Jul 5, 2023
This patch fixes a regression accidentally introduced in intel#9874
(presumably because we didn't have the right test).

SYCL-CTS produces an LLVM IR pattern, where spec constant initializer
contains less elements than there are in a spec constant type, because
some of those elements are implicitly-created paddings. The patch
updates the pass to handle this situation.

Resolves intel#10129
AlexeySachkov added a commit that referenced this pull request Jul 14, 2023
… pass (#10211)

This patch fixes a regression accidentally introduced in #9874
(presumably because we didn't have the right test).

SYCL-CTS produces an LLVM IR pattern, where spec constant initializer
contains less elements than there are in a spec constant type, because
some of those elements are implicitly-created paddings. The patch
updates the pass to handle this situation.

Note: this PR only covers a case when padding is inserted at the end of
a struct.

Resolves #10129
@AlexeySachkov AlexeySachkov deleted the private/asachkov/cleanup-old-spec-constants-support branch May 22, 2024 09:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants