[llvm-commits] CVS: llvm/lib/VMCore/Function.cpp IntrinsicLowering.cpp Verifier.cpp
Chris Lattner
lattner at cs.uiuc.edu
Thu Jun 10 21:35:08 PDT 2004
Changes in directory llvm/lib/VMCore:
Function.cpp updated: 1.70 -> 1.71
IntrinsicLowering.cpp updated: 1.14 -> 1.15
Verifier.cpp updated: 1.107 -> 1.108
---
Log message:
I misled Alkis: LLVM should have isnan, not isunordered.
isunordered(X, Y) === isnan(X) | isnan(Y)
Remove isunordered, add isnan.
---
Diffs of the changes: (+14 -6)
Index: llvm/lib/VMCore/Function.cpp
diff -u llvm/lib/VMCore/Function.cpp:1.70 llvm/lib/VMCore/Function.cpp:1.71
--- llvm/lib/VMCore/Function.cpp:1.70 Thu Jun 10 20:08:18 2004
+++ llvm/lib/VMCore/Function.cpp Thu Jun 10 21:29:43 2004
@@ -223,7 +223,7 @@
if (getName() == "llvm.gcroot") return Intrinsic::gcroot;
break;
case 'i':
- if (getName() == "llvm.isunordered") return Intrinsic::isunordered;
+ if (getName() == "llvm.isnan") return Intrinsic::isnan;
break;
case 'l':
if (getName() == "llvm.longjmp") return Intrinsic::longjmp;
Index: llvm/lib/VMCore/IntrinsicLowering.cpp
diff -u llvm/lib/VMCore/IntrinsicLowering.cpp:1.14 llvm/lib/VMCore/IntrinsicLowering.cpp:1.15
--- llvm/lib/VMCore/IntrinsicLowering.cpp:1.14 Thu Jun 10 20:08:18 2004
+++ llvm/lib/VMCore/IntrinsicLowering.cpp Thu Jun 10 21:29:43 2004
@@ -191,10 +191,12 @@
(*(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);
+ case Intrinsic::isnan: {
+ // FIXME: This should force the argument to be a double. There may be
+ // multiple isnans for different FP arguments.
+ static Function *isnanFCache = 0;
+ ReplaceCallWith("isnan", CI, CI->op_begin()+1, CI->op_end(),
+ (*(CI->op_begin()+1))->getType(), isnanFCache);
break;
}
}
Index: llvm/lib/VMCore/Verifier.cpp
diff -u llvm/lib/VMCore/Verifier.cpp:1.107 llvm/lib/VMCore/Verifier.cpp:1.108
--- llvm/lib/VMCore/Verifier.cpp:1.107 Thu Jun 10 20:08:18 2004
+++ llvm/lib/VMCore/Verifier.cpp Thu Jun 10 21:29:43 2004
@@ -688,7 +688,13 @@
break;
}
- case Intrinsic::isunordered: NumArgs = 2; break;
+ case Intrinsic::isnan:
+ Assert1(FT->getNumParams() == 1 && FT->getParamType(0)->isFloatingPoint(),
+ "Illegal prototype for llvm.isnan", IF);
+ Assert1(FT->getReturnType() == Type::BoolTy,
+ "Illegal prototype for llvm.isnan", IF);
+ NumArgs = 1;
+ break;
case Intrinsic::setjmp: NumArgs = 1; break;
case Intrinsic::longjmp: NumArgs = 2; break;
More information about the llvm-commits
mailing list