diff options
author | Chris Lattner <sabre@nondot.org> | 2007-04-07 01:03:46 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-04-07 01:03:46 +0000 |
commit | ef4fd3572627f59b8787107632605835993f9a1c (patch) | |
tree | 2f5cacd00c651476ba922daf033ff1244bc656ed /lib/Transforms/IPO/SimplifyLibCalls.cpp | |
parent | 71bf3e2ef936979e8282d84edd5068a8f30f3789 (diff) | |
download | llvm-ef4fd3572627f59b8787107632605835993f9a1c.tar.gz llvm-ef4fd3572627f59b8787107632605835993f9a1c.tar.bz2 llvm-ef4fd3572627f59b8787107632605835993f9a1c.tar.xz |
trunc to bool no longer compares against zero
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35712 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/IPO/SimplifyLibCalls.cpp')
-rw-r--r-- | lib/Transforms/IPO/SimplifyLibCalls.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/lib/Transforms/IPO/SimplifyLibCalls.cpp b/lib/Transforms/IPO/SimplifyLibCalls.cpp index f1552eeb8c..96b5f3d77b 100644 --- a/lib/Transforms/IPO/SimplifyLibCalls.cpp +++ b/lib/Transforms/IPO/SimplifyLibCalls.cpp @@ -847,16 +847,11 @@ struct VISIBILITY_HIDDEN StrLenOptimization : public LibCallOptimization { static bool IsOnlyUsedInEqualsZeroComparison(Instruction *I) { for (Value::use_iterator UI = I->use_begin(), E = I->use_end(); UI != E; ++UI) { - Instruction *User = cast<Instruction>(*UI); - if (ICmpInst *IC = dyn_cast<ICmpInst>(User)) { - if ((IC->getPredicate() == ICmpInst::ICMP_NE || - IC->getPredicate() == ICmpInst::ICMP_EQ) && - isa<Constant>(IC->getOperand(1)) && - cast<Constant>(IC->getOperand(1))->isNullValue()) - continue; - } else if (CastInst *CI = dyn_cast<CastInst>(User)) - if (CI->getType() == Type::Int1Ty) - continue; + if (ICmpInst *IC = dyn_cast<ICmpInst>(*UI)) + if (IC->isEquality()) + if (Constant *C = dyn_cast<Constant>(IC->getOperand(1))) + if (C->isNullValue()) + continue; // Unknown instruction. return false; } |