KhronosGroup / KhronosGroup/SPIRV-Registry

SPV_EXT_physical_storage_buffer aliasing decorations

Open
#93 5 comments 0 reactions 0 assignees View on GitHub
question
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.