diff options
author | Juergen Ributzka <juergen@apple.com> | 2014-10-17 17:39:00 +0000 |
---|---|---|
committer | Juergen Ributzka <juergen@apple.com> | 2014-10-17 17:39:00 +0000 |
commit | ad2363f9ee845c682155858f4a9c114b47b640a3 (patch) | |
tree | cd0af46df1a416fb492e31609446eaabafe92190 /llvm/lib/IR/Verifier.cpp | |
parent | c48cb86f05ef43082f8ed4055219b2e6724e21ab (diff) | |
download | bcm5719-llvm-ad2363f9ee845c682155858f4a9c114b47b640a3.tar.gz bcm5719-llvm-ad2363f9ee845c682155858f4a9c114b47b640a3.zip |
[Stackmaps] Enable invoking the patchpoint intrinsic.
Patch by Kevin Modzelewski
Reviewers: atrick, ributzka
Reviewed By: ributzka
Subscribers: llvm-commits, reames
Differential Revision: http://reviews.llvm.org/D5634
llvm-svn: 220055
Diffstat (limited to 'llvm/lib/IR/Verifier.cpp')
-rw-r--r-- | llvm/lib/IR/Verifier.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp index 1a182db9277..5519cacbd10 100644 --- a/llvm/lib/IR/Verifier.cpp +++ b/llvm/lib/IR/Verifier.cpp @@ -2212,11 +2212,15 @@ void Verifier::visitInstruction(Instruction &I) { if (Function *F = dyn_cast<Function>(I.getOperand(i))) { // Check to make sure that the "address of" an intrinsic function is never // taken. - Assert1(!F->isIntrinsic() || i == (isa<CallInst>(I) ? e-1 : 0), + Assert1(!F->isIntrinsic() || i == (isa<CallInst>(I) ? e-1 : + isa<InvokeInst>(I) ? e-3 : 0), "Cannot take the address of an intrinsic!", &I); Assert1(!F->isIntrinsic() || isa<CallInst>(I) || - F->getIntrinsicID() == Intrinsic::donothing, - "Cannot invoke an intrinsinc other than donothing", &I); + F->getIntrinsicID() == Intrinsic::donothing || + F->getIntrinsicID() == Intrinsic::experimental_patchpoint_void || + F->getIntrinsicID() == Intrinsic::experimental_patchpoint_i64, + "Cannot invoke an intrinsinc other than" + " donothing or patchpoint", &I); Assert1(F->getParent() == M, "Referencing function in another module!", &I); } else if (BasicBlock *OpBB = dyn_cast<BasicBlock>(I.getOperand(i))) { |