diff options
author | Alkis Evlogimenos <alkis@evlogimenos.com> | 2004-06-11 01:08:18 +0000 |
---|---|---|
committer | Alkis Evlogimenos <alkis@evlogimenos.com> | 2004-06-11 01:08:18 +0000 |
commit | f616f22e816ce7f7ba3414cf3d91c9410aa03223 (patch) | |
tree | 3f801f329f772ce3032bd3eae578f58fcaa4ce3c /lib | |
parent | fd39b30a7a141c0c737a56240a428d53acf965a0 (diff) | |
download | external_llvm-f616f22e816ce7f7ba3414cf3d91c9410aa03223.zip external_llvm-f616f22e816ce7f7ba3414cf3d91c9410aa03223.tar.gz external_llvm-f616f22e816ce7f7ba3414cf3d91c9410aa03223.tar.bz2 |
Add the isunordered intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14127 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CodeGen/IntrinsicLowering.cpp | 6 | ||||
-rw-r--r-- | lib/VMCore/Function.cpp | 3 | ||||
-rw-r--r-- | lib/VMCore/IntrinsicLowering.cpp | 6 | ||||
-rw-r--r-- | lib/VMCore/Verifier.cpp | 2 |
4 files changed, 17 insertions, 0 deletions
diff --git a/lib/CodeGen/IntrinsicLowering.cpp b/lib/CodeGen/IntrinsicLowering.cpp index 1dd819c..38ba73d 100644 --- a/lib/CodeGen/IntrinsicLowering.cpp +++ b/lib/CodeGen/IntrinsicLowering.cpp @@ -191,6 +191,12 @@ void DefaultIntrinsicLowering::LowerIntrinsicCall(CallInst *CI) { (*(CI->op_begin()+1))->getType(), MemsetFCache); break; } + case Intrinsic::isunordered: { + static Function *IsunorderedFCache = 0; + ReplaceCallWith("isunordered", CI, CI->op_begin()+1, CI->op_end(), + (*(CI->op_begin()+1))->getType(), IsunorderedFCache); + break; + } } assert(CI->use_empty() && diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp index 01339e1..82f3645 100644 --- a/lib/VMCore/Function.cpp +++ b/lib/VMCore/Function.cpp @@ -222,6 +222,9 @@ unsigned Function::getIntrinsicID() const { if (getName() == "llvm.gcread") return Intrinsic::gcread; if (getName() == "llvm.gcroot") return Intrinsic::gcroot; break; + case 'i': + if (getName() == "llvm.isunordered") return Intrinsic::isunordered; + break; case 'l': if (getName() == "llvm.longjmp") return Intrinsic::longjmp; break; diff --git a/lib/VMCore/IntrinsicLowering.cpp b/lib/VMCore/IntrinsicLowering.cpp index 1dd819c..38ba73d 100644 --- a/lib/VMCore/IntrinsicLowering.cpp +++ b/lib/VMCore/IntrinsicLowering.cpp @@ -191,6 +191,12 @@ void DefaultIntrinsicLowering::LowerIntrinsicCall(CallInst *CI) { (*(CI->op_begin()+1))->getType(), MemsetFCache); break; } + case Intrinsic::isunordered: { + static Function *IsunorderedFCache = 0; + ReplaceCallWith("isunordered", CI, CI->op_begin()+1, CI->op_end(), + (*(CI->op_begin()+1))->getType(), IsunorderedFCache); + break; + } } assert(CI->use_empty() && diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp index ef76dff..156b2cc 100644 --- a/lib/VMCore/Verifier.cpp +++ b/lib/VMCore/Verifier.cpp @@ -688,6 +688,8 @@ void Verifier::visitIntrinsicFunctionCall(Intrinsic::ID ID, CallInst &CI) { break; } + case Intrinsic::isunordered: NumArgs = 2; break; + case Intrinsic::setjmp: NumArgs = 1; break; case Intrinsic::longjmp: NumArgs = 2; break; case Intrinsic::sigsetjmp: NumArgs = 2; break; |