KhronosGroup / KhronosGroup/SPIRV-LLVM-Translator

What is the way to deprecate preview extensions?

Open
#3,026 8 comments 0 reactions 0 assignees View on GitHub
Dominant language
LLVM
Stars
625
Forks
279
Avg merge
3d 5h
Merged PRs (30d)
34

Description

I'd like to discuss, what should be the way to deprecate extensions previously added to the translator as preview extension. A good example would be SPV_INTEL_token_type, which specification has never left https://github.com/intel/llvm/pull/3788 . We (Intel SYCL compiler team) are quite sure, that we won't have problems with the deprecation, but we can't say for sure if there are no pre-generated SPIR-V modules 'in the wild' which would use the extension (some time ago I've noted, that there are several projects, that use llvm-spirv with --spirv-ext=+all , for example https://github.com/llvm/llvm-project/blob/main/clang/lib/Driver/ToolChains/HIPAMD.cpp#L178 ).

Right now I've created https://github.com/KhronosGroup/SPIRV-LLVM-Translator/pull/3025 that would still support the extension during reverse translation (just in case), but will start emit an error in case if LLVM token type present in LLVM IR module during forward translation. Should the later be changed to a deprecation warning (note, right now the translator never emits warnings)?

Contributor guide

Open the contributing guide

Research direction

Read the issue discussion and PR 3025 first, then trace the translator's forward and reverse handling of SPV_INTEL_token_type. The work is complete when the project has an agreed deprecation policy and the translator behavior and any needed validation reflect that decision.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.