diff --git a/llvm/lib/Analysis/AssumptionCache.cpp b/llvm/lib/Analysis/AssumptionCache.cpp index bb1ac616ee7fa9..70053fdf8d3037 100644 --- a/llvm/lib/Analysis/AssumptionCache.cpp +++ b/llvm/lib/Analysis/AssumptionCache.cpp @@ -167,9 +167,7 @@ void AssumptionCache::unregisterAssumption(CallInst *CI) { } void AssumptionCache::AffectedValueCallbackVH::deleted() { - auto AVI = AC->AffectedValues.find(getValPtr()); - if (AVI != AC->AffectedValues.end()) - AC->AffectedValues.erase(AVI); + AC->AffectedValues.erase(getValPtr()); // 'this' now dangles! } diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 6127c503404f73..b790434576cb0b 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -788,14 +788,9 @@ static void collectCallSiteParameters(const MachineInstr *CallMI, } // Do not emit CSInfo for undef forwarding registers. - for (auto &MO : CallMI->uses()) { - if (!MO.isReg() || !MO.isUndef()) - continue; - auto It = ForwardedRegWorklist.find(MO.getReg()); - if (It == ForwardedRegWorklist.end()) - continue; - ForwardedRegWorklist.erase(It); - } + for (auto &MO : CallMI->uses()) + if (MO.isReg() && MO.isUndef()) + ForwardedRegWorklist.erase(MO.getReg()); // We erase, from the ForwardedRegWorklist, those forwarding registers for // which we successfully describe a loaded value (by using diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp index d64a8f26519fd5..71dbe8d44ba7ff 100644 --- a/llvm/lib/CodeGen/CodeGenPrepare.cpp +++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp @@ -3160,9 +3160,7 @@ class PhiNodeSet { /// \returns whether the element is actually removed, i.e. was in the /// collection before the operation. bool erase(PHINode *Ptr) { - auto it = NodeMap.find(Ptr); - if (it != NodeMap.end()) { - NodeMap.erase(Ptr); + if (NodeMap.erase(Ptr)) { SkipRemovedElements(FirstValidElement); return true; } diff --git a/llvm/lib/Transforms/IPO/IROutliner.cpp b/llvm/lib/Transforms/IPO/IROutliner.cpp index 01605769bcfff1..e506d84b2c29cf 100644 --- a/llvm/lib/Transforms/IPO/IROutliner.cpp +++ b/llvm/lib/Transforms/IPO/IROutliner.cpp @@ -1027,9 +1027,7 @@ alignOutputBlockWithAggFunc(OutlinableGroup &OG, OutlinableRegion &Region, // If we have found one of the stored values for output, replace the value // with the corresponding one from the overall function. - if (GVN.hasValue() && - ValuesToFind.find(GVN.getValue()) != ValuesToFind.end()) { - ValuesToFind.erase(GVN.getValue()); + if (GVN.hasValue() && ValuesToFind.erase(GVN.getValue())) { V->replaceAllUsesWith(OverallFunctionInsts[Idx]); if (ValuesToFind.size() == 0) break; diff --git a/llvm/lib/Transforms/Scalar/GVN.cpp b/llvm/lib/Transforms/Scalar/GVN.cpp index 448ff498b110be..e9cf97398a8be9 100644 --- a/llvm/lib/Transforms/Scalar/GVN.cpp +++ b/llvm/lib/Transforms/Scalar/GVN.cpp @@ -1920,11 +1920,8 @@ uint32_t GVN::ValueTable::phiTranslateImpl(const BasicBlock *Pred, /// again. void GVN::ValueTable::eraseTranslateCacheEntry(uint32_t Num, const BasicBlock &CurrBlock) { - for (const BasicBlock *Pred : predecessors(&CurrBlock)) { - auto FindRes = PhiTranslateTable.find({Num, Pred}); - if (FindRes != PhiTranslateTable.end()) - PhiTranslateTable.erase(FindRes); - } + for (const BasicBlock *Pred : predecessors(&CurrBlock)) + PhiTranslateTable.erase({Num, Pred}); } // In order to find a leader for a given value number at a diff --git a/llvm/lib/Transforms/Scalar/GVNSink.cpp b/llvm/lib/Transforms/Scalar/GVNSink.cpp index 5a34ad18158b42..1cc10ca4dce063 100644 --- a/llvm/lib/Transforms/Scalar/GVNSink.cpp +++ b/llvm/lib/Transforms/Scalar/GVNSink.cpp @@ -692,10 +692,8 @@ Optional GVNSink::analyzeInstructionForSinking( ModelledPHI NewPHI(NewInsts, ActivePreds); // Does sinking this instruction render previous PHIs redundant? - if (NeededPHIs.find(NewPHI) != NeededPHIs.end()) { - NeededPHIs.erase(NewPHI); + if (NeededPHIs.erase(NewPHI)) RecomputePHIContents = true; - } if (RecomputePHIContents) { // The needed PHIs have changed, so recompute the set of all needed