aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
diff options
context:
space:
mode:
authorLucie Choi <ychoi0407@gmail.com>2025-10-11 12:13:50 -0700
committerGitHub <noreply@github.com>2025-10-11 15:13:50 -0400
commit56c604961eba3e4a7168b2cbe2ee2b7ceca0c502 (patch)
tree14138918259d134ebf13e04c32298f1a95e814d9 /llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
parentc37c82de1acbec165d39d725fe1c7e1d96710219 (diff)
downloadllvm-56c604961eba3e4a7168b2cbe2ee2b7ceca0c502.zip
llvm-56c604961eba3e4a7168b2cbe2ee2b7ceca0c502.tar.gz
llvm-56c604961eba3e4a7168b2cbe2ee2b7ceca0c502.tar.bz2
[SPIR-V] Support `nonuniformindex` intrsinsic in SPIRV CodeGen. (#162540)
Support `@llvm.spv.resource.nonuniformindex` in SPIRV Codegen. - Add `NonUniformEXT` decoration to the registers marked as `nonuniformindex`, and recursively decorate its child registers (e.g. Copy, AccessChain, Load) that access such index. - `OpCapability ShaderNonUniformEXT` is already added in the code. - [SPV_EXT_descriptor_indexing](https://github.khronos.org/SPIRV-Registry/extensions/EXT/SPV_EXT_descriptor_indexing.html) is skipped because it's added to SPIRV Core in 1.5. ## Unit test - The unit test checks that the register being used in the final Store/Load/Write instruction is decorated, as required by the spec. - The implementation follows [DXC](https://godbolt.org/z/zhqGThcaf) in that it recursively decorates all the child elements until the end. ```hlsl RWStructuredBuffer<uint4> StructuredOut[64]; RWBuffer<uint> UnStructuredOut[64]; [numthreads(64,1,1)] void main(uint3 GTID: SV_GroupThreadID) { StructuredOut[(NonUniformResourceIndex(GTID.x + 1))][98][0] = 99; UnStructuredOut[(NonUniformResourceIndex(GTID.x))][96] = 95; } ``` Resolves https://github.com/llvm/llvm-project/issues/160231, https://github.com/llvm/llvm-project/issues/161852. Verified [offload-test-suite](https://github.com/llvm/offload-test-suite/blob/cfc37840c8ad0d9c08ee900ecbc0b02cc56478ae/test/Feature/ResourceArrays/unbounded-array-nuri.test) started passing for clang.
Diffstat (limited to 'llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp')
0 files changed, 0 insertions, 0 deletions