summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR/Verifier.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2017-04-04 18:43:11 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2017-04-04 18:43:11 +0000
commit3333968771e5c58a8cdd7ab9ef3c2e1090c8c6b5 (patch)
tree1a3a65beba784f6f2ee9d3197bb992b33e7478cf /llvm/lib/IR/Verifier.cpp
parent7b5c098cfa79897e1eb157911b47b464da4a92f2 (diff)
downloadbcm5719-llvm-3333968771e5c58a8cdd7ab9ef3c2e1090c8c6b5.tar.gz
bcm5719-llvm-3333968771e5c58a8cdd7ab9ef3c2e1090c8c6b5.zip
Verifier: Check some amdgpu calling convention restrictions
llvm-svn: 299457
Diffstat (limited to 'llvm/lib/IR/Verifier.cpp')
-rw-r--r--llvm/lib/IR/Verifier.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp
index 4efb7a693b3..72e2ed3988b 100644
--- a/llvm/lib/IR/Verifier.cpp
+++ b/llvm/lib/IR/Verifier.cpp
@@ -2006,6 +2006,18 @@ void Verifier::visitFunction(const Function &F) {
default:
case CallingConv::C:
break;
+ case CallingConv::AMDGPU_KERNEL:
+ case CallingConv::SPIR_KERNEL:
+ Assert(F.getReturnType()->isVoidTy(),
+ "Calling convention requires void return type", &F);
+ LLVM_FALLTHROUGH;
+ case CallingConv::AMDGPU_VS:
+ case CallingConv::AMDGPU_GS:
+ case CallingConv::AMDGPU_PS:
+ case CallingConv::AMDGPU_CS:
+ Assert(!F.hasStructRetAttr(),
+ "Calling convention does not allow sret", &F);
+ LLVM_FALLTHROUGH;
case CallingConv::Fast:
case CallingConv::Cold:
case CallingConv::Intel_OCL_BI:
OpenPOWER on IntegriCloud