summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2016-07-21 13:37:55 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2016-07-21 13:37:55 +0000
commita9e477b286eba7a069e2e2a41cdd2dc6dc96893a (patch)
treed2ce7eb2c7e5a12b979f0260c5e0962956329b09
parent857754a1cb73b3b71aef847ba8d7e983d4d77e2e (diff)
downloadbcm5719-llvm-a9e477b286eba7a069e2e2a41cdd2dc6dc96893a.tar.gz
bcm5719-llvm-a9e477b286eba7a069e2e2a41cdd2dc6dc96893a.zip
[DemandedBits] Reduce number of duplicated DenseMap lookups.
No functionality change intended. llvm-svn: 276278
-rw-r--r--llvm/lib/Analysis/DemandedBits.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/llvm/lib/Analysis/DemandedBits.cpp b/llvm/lib/Analysis/DemandedBits.cpp
index a3f8b7fda08..ee9f2c7ddb5 100644
--- a/llvm/lib/Analysis/DemandedBits.cpp
+++ b/llvm/lib/Analysis/DemandedBits.cpp
@@ -280,10 +280,8 @@ void DemandedBits::performAnalysis() {
// add their operands to the work list (for integer values operands, mark
// all bits as live).
if (IntegerType *IT = dyn_cast<IntegerType>(I.getType())) {
- if (!AliveBits.count(&I)) {
- AliveBits[&I] = APInt(IT->getBitWidth(), 0);
+ if (AliveBits.try_emplace(&I, IT->getBitWidth(), 0).second)
Worklist.push_back(&I);
- }
continue;
}
@@ -363,8 +361,9 @@ APInt DemandedBits::getDemandedBits(Instruction *I) {
performAnalysis();
const DataLayout &DL = I->getParent()->getModule()->getDataLayout();
- if (AliveBits.count(I))
- return AliveBits[I];
+ auto Found = AliveBits.find(I);
+ if (Found != AliveBits.end())
+ return Found->second;
return APInt::getAllOnesValue(DL.getTypeSizeInBits(I->getType()));
}
OpenPOWER on IntegriCloud