[Scenario] Structured GEP
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
We've added [structured.gep] and [structured.alloca] to LLVM to represent "logical" accesses (ie, accesses into structured that aren't aware of the final in-memory layout). This scenario tracks making sure that these constructs are fully supported through the optimization pipeline and that we're emitting them appropriately from HLSL code.
A lot of the remaining work here simply consists of making the [logical SROA pass] more robust, but we also need to make sure we're updating any other passes that need to be aware of structured gep and alloca (such as mem2reg), and we'll want to see this through to changing the default/removing the driver flag to enable structured gep emission.
[structured.gep]: https://discourse.llvm.org/t/rfc-adding-instructions-to-to-carry-gep-type-traversal-information/88141
[structured.alloca]: https://discourse.llvm.org/t/rfc-adding-logical-structured-alloca/90027
[logical SROA pass]: https://github.com/llvm/llvm-project/pull/192058
Contributor guide
Assessment
This issue has not been assessed yet.