mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
AMDGPU/SI: Fix crash when inline assembly is used in a graphics shader
Summary: This is admittedly something that you could only run into by manually playing around with shader assembly because the SITypeWriter pass is skipped for compute. Reviewers: arsenm, tstellarAMD Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D15902 llvm-svn: 256980
This commit is contained in:
parent
6307d280cd
commit
befc78df0d
@ -98,6 +98,9 @@ void SITypeRewriter::visitCallInst(CallInst &I) {
|
||||
SmallVector <Type*, 8> Types;
|
||||
bool NeedToReplace = false;
|
||||
Function *F = I.getCalledFunction();
|
||||
if (!F)
|
||||
return;
|
||||
|
||||
std::string Name = F->getName();
|
||||
for (unsigned i = 0, e = I.getNumArgOperands(); i != e; ++i) {
|
||||
Value *Arg = I.getArgOperand(i);
|
||||
|
@ -10,3 +10,14 @@ entry:
|
||||
call void asm sideeffect "s_endpgm", ""()
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK: {{^}}inline_asm_shader:
|
||||
; CHECK: s_endpgm
|
||||
; CHECK: s_endpgm
|
||||
define void @inline_asm_shader() #0 {
|
||||
entry:
|
||||
call void asm sideeffect "s_endpgm", ""()
|
||||
ret void
|
||||
}
|
||||
|
||||
attributes #0 = { "ShaderType"="0" }
|
||||
|
Loading…
Reference in New Issue
Block a user