microsoft / microsoft/DirectXShaderCompiler
[6.10] [LinAlg] Dxil Ops should have read/write restrictions
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 3.7k
- Forks
- 900
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 44
Description
Description
The DXIL ops defined in hctdb.py for Linear Algebra have no read/write restrictions applied to them. This limits the compiler's ability to perform some basic optimizations including deduplication of resource handle creation/annotation.
Steps to Reproduce
https://godbolt.org/z/a7bGebqE6
This demonstrates a Thread scope matrix being loaded twice and little more. In each case, the resource handle being loaded from is created and annotated twice.
There are various other cases where optimization opportunities like this could be lost
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by inspecting the Linear Algebra DXIL operation definitions in hctdb.py and reproduce the behavior using the linked Godbolt example. Determine the appropriate read/write restrictions for those operations, then verify that resource handle creation and annotation are no longer duplicated and that the optimization behavior is preserved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100