-
Notifications
You must be signed in to change notification settings - Fork 14.9k
Closed
Closed
Copy link
Labels
backend:DirectXcrashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]
Description
Crash/assert hit in DXILForwardHandleAccesses
pass on local resource array that was copied from a global multi-dimensional global array and passed into a local function.
https://godbolt.org/z/so9h6eeaP
HLSL:
RWStructuredBuffer<float> In[4][2] : register(u0);
RWStructuredBuffer<float> Out : register(u0, space1);
float foo(RWStructuredBuffer<float> A[2], uint Index) {
return A[0][Index] + A[1][Index];
}
[numthreads(4,1,1)]
void main(uint GI : SV_GroupIndex) {
for (int i = 0; i < 4; i++) {
Out[i] = foo(In[i], i);
}
}
Call stack:
Assertion failed: detail::isPresent(Val) && "dyn_cast on a non-existent value", file C:\llvm-project\llvm\include\llvm/Support/Casting.h, line 662
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: c:\\llvm-project\\build\\x64-debug\\bin\\clang-dxc.exe -T cs_6_0 C:\\llvm-project\\build\\x64-Debug\\tools\\OffloadTest\\test\\clang-d3d12\\Feature\\ResourceArrays\\Output\\multi-dim-array-subset.test.tmp/source.hlsl
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'C:\llvm-project\build\x64-Debug\tools\OffloadTest\test\clang-d3d12\Feature\ResourceArrays\Output\multi-dim-array-subset.test.tmp/source.hlsl'.
4. Running pass 'DXIL Forward Handle Accesses' on function '@main'
Exception Code: 0xC000001D
#0 0x00007ff7df3cd16c HandleAbort C:\llvm-project\llvm\lib\Support\Windows\Signals.inc:372:0
#1 0x00007ff8825d9e77 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x99e77)
#2 0x00007ff8825dbab9 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x9bab9)
#3 0x00007ff8825e1715 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0xa1715)
#4 0x00007ff8825e1387 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0xa1387)
#5 0x00007ff8825df351 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x9f351)
#6 0x00007ff8825e1c7f (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0xa1c7f)
#7 0x00007ff7dedde550 llvm::dyn_cast<class llvm::GlobalVariable, class llvm::Value>(class llvm::Value *) C:\llvm-project\llvm\include\llvm\Support\Casting.h:663:0
#8 0x00007ff7e00200d9 forwardHandleAccesses C:\llvm-project\llvm\lib\Target\DirectX\DXILForwardHandleAccesses.cpp:147:0
#9 0x00007ff7e0020ef4 `anonymous namespace'::DXILForwardHandleAccessesLegacy::runOnFunction C:\llvm-project\llvm\lib\Target\DirectX\DXILForwardHandleAccesses.cpp:194:0
#10 0x00007ff7defaa313 llvm::FPPassManager::runOnFunction(class llvm::Function &) C:\llvm-project\llvm\lib\IR\LegacyPassManager.cpp:1398:0
#11 0x00007ff7defaee4d llvm::FPPassManager::runOnModule(class llvm::Module &) C:\llvm-project\llvm\lib\IR\LegacyPassManager.cpp:1444:0
#12 0x00007ff7defaac34 `anonymous namespace'::MPPassManager::runOnModule C:\llvm-project\llvm\lib\IR\LegacyPassManager.cpp:1513:0
#13 0x00007ff7defaa755 llvm::legacy::PassManagerImpl::run(class llvm::Module &) C:\llvm-project\llvm\lib\IR\LegacyPassManager.cpp:531:0
#14 0x00007ff7defaf111 llvm::legacy::PassManager::run(class llvm::Module &) C:\llvm-project\llvm\lib\IR\LegacyPassManager.cpp:1640:0
...
}```
Metadata
Metadata
Assignees
Labels
backend:DirectXcrashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]
Type
Projects
Status
Closed