KhronosGroup / KhronosGroup/SPIRV-LLVM-Translator

Translation of OpSpecConstantOp to constant-folded IR to be implemented for integer ops

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

Description

Translation of OpSpecConstantOp to LLVM IR is not yet implemented.

There is currently no way to represent OpSpecConstantOp results in LLVM IR metadata. Therefore, OpSpecConstantOp results must be constant-folded as part of the translation to LLVM IR.

This issue is for implemented constant folding for the integer ops, which are required for both Kernel and Shader SPIR-V. (Note: only Shader SPIR-V is currently supported in this translator.)

The constant-folded translation of OpSpecConstantOp results should be usable in all places that an OpSpecConstantOp result may be used, including in array sizes.

Contributor guide

Open the contributing guide

Research direction

Start by locating the translator's handling of OpSpecConstantOp and the existing constant-folding paths for integer operations. Determine how folded results are represented and used, including in array sizes; done means integer OpSpecConstantOp results translate successfully wherever such results may be used.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.