diff options
author | Ramkumar Ramachandra <artagnon@gmail.com> | 2015-01-22 20:14:38 +0000 |
---|---|---|
committer | Ramkumar Ramachandra <artagnon@gmail.com> | 2015-01-22 20:14:38 +0000 |
commit | 75a4f35b2640b604f59c6df3b7dbe043c195cacd (patch) | |
tree | 2c5353db66f3baa6f006cb71f08abcd76df0a16d /llvm/lib/IR/Verifier.cpp | |
parent | 49b71c609c0f8c008ac8d7ea9d9cce69858047b5 (diff) | |
download | bcm5719-llvm-75a4f35b2640b604f59c6df3b7dbe043c195cacd.tar.gz bcm5719-llvm-75a4f35b2640b604f59c6df3b7dbe043c195cacd.zip |
Intrinsics: introduce llvm_any_ty aka ValueType Any
Specifically, gc.result benefits from this greatly. Instead of:
gc.result.int.*
gc.result.float.*
gc.result.ptr.*
...
We now have a gc.result.* that can specialize to literally any type.
Differential Revision: http://reviews.llvm.org/D7020
llvm-svn: 226857
Diffstat (limited to 'llvm/lib/IR/Verifier.cpp')
-rw-r--r-- | llvm/lib/IR/Verifier.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp index 8a523c28016..25dc41b4f53 100644 --- a/llvm/lib/IR/Verifier.cpp +++ b/llvm/lib/IR/Verifier.cpp @@ -2391,6 +2391,7 @@ bool Verifier::VerifyIntrinsicType(Type *Ty, ArgTys.push_back(Ty); switch (D.getArgumentKind()) { + case IITDescriptor::AK_Any: return false; // Success case IITDescriptor::AK_AnyInteger: return !Ty->isIntOrIntVectorTy(); case IITDescriptor::AK_AnyFloat: return !Ty->isFPOrFPVectorTy(); case IITDescriptor::AK_AnyVector: return !isa<VectorType>(Ty); @@ -2721,7 +2722,8 @@ void Verifier::visitIntrinsicFunctionCall(Intrinsic::ID ID, CallInst &CI) { } case Intrinsic::experimental_gc_result_int: case Intrinsic::experimental_gc_result_float: - case Intrinsic::experimental_gc_result_ptr: { + case Intrinsic::experimental_gc_result_ptr: + case Intrinsic::experimental_gc_result: { // Are we tied to a statepoint properly? CallSite StatepointCS(CI.getArgOperand(0)); const Function *StatepointFn = |