KhronosGroup / KhronosGroup/SPIRV-Registry
SPV_EXT_physical_storage_buffer aliasing decorations
- Dominant language
- HTML
- Stars
- 149
- Forks
- 99
- Avg merge
- 4d 21h
- Merged PRs (30d)
- 2
Description
Why are the aliasing/restrict decorations supposed to go on OpVariable, and how does that work? You can eliminate all your local OpVariables through mem2reg. My pointers are loaded from a PushConstant, and don't even have an OpVariable. What is their aliasing behavior?
It makes more sense to make aliasing a storage class: PhysicalStorageRestrict and PhysicalStorageAliased. This way it won't fall off under CFG transformations.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the SPV_EXT_physical_storage_buffer specification and the stated behavior of aliasing/restrict decorations on OpVariable, including pointers loaded from PushConstant and effects of mem2reg and CFG transformations. Done requires a settled specification decision on their aliasing behavior and whether PhysicalStorageRestrict and PhysicalStorageAliased storage classes are appropriate.
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
- Needs clarification
- Newbie friendliness
- 20/100