mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-23 22:23:00 +00:00
Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool>
This is to be consistent with StringSet and ultimately with the standard library's associative container insert function. This lead to updating SmallSet::insert to return pair<iterator, bool>, and then to update SmallPtrSet::insert to return pair<iterator, bool>, and then to update all the existing users of those functions... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222334 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -639,7 +639,7 @@ static bool AllUsesOfValueWillTrapIfNull(const Value *V,
|
||||
} else if (const PHINode *PN = dyn_cast<PHINode>(U)) {
|
||||
// If we've already seen this phi node, ignore it, it has already been
|
||||
// checked.
|
||||
if (PHIs.insert(PN) && !AllUsesOfValueWillTrapIfNull(PN, PHIs))
|
||||
if (PHIs.insert(PN).second && !AllUsesOfValueWillTrapIfNull(PN, PHIs))
|
||||
return false;
|
||||
} else if (isa<ICmpInst>(U) &&
|
||||
isa<ConstantPointerNull>(U->getOperand(1))) {
|
||||
@@ -982,7 +982,7 @@ static bool ValueIsOnlyUsedLocallyOrStoredToOneGlobal(const Instruction *V,
|
||||
if (const PHINode *PN = dyn_cast<PHINode>(Inst)) {
|
||||
// PHIs are ok if all uses are ok. Don't infinitely recurse through PHI
|
||||
// cycles.
|
||||
if (PHIs.insert(PN))
|
||||
if (PHIs.insert(PN).second)
|
||||
if (!ValueIsOnlyUsedLocallyOrStoredToOneGlobal(PN, GV, PHIs))
|
||||
return false;
|
||||
continue;
|
||||
@@ -1073,11 +1073,11 @@ static bool LoadUsesSimpleEnoughForHeapSRA(const Value *V,
|
||||
}
|
||||
|
||||
if (const PHINode *PN = dyn_cast<PHINode>(UI)) {
|
||||
if (!LoadUsingPHIsPerLoad.insert(PN))
|
||||
if (!LoadUsingPHIsPerLoad.insert(PN).second)
|
||||
// This means some phi nodes are dependent on each other.
|
||||
// Avoid infinite looping!
|
||||
return false;
|
||||
if (!LoadUsingPHIs.insert(PN))
|
||||
if (!LoadUsingPHIs.insert(PN).second)
|
||||
// If we have already analyzed this PHI, then it is safe.
|
||||
continue;
|
||||
|
||||
@@ -2045,7 +2045,8 @@ isSimpleEnoughValueToCommit(Constant *C,
|
||||
SmallPtrSetImpl<Constant*> &SimpleConstants,
|
||||
const DataLayout *DL) {
|
||||
// If we already checked this constant, we win.
|
||||
if (!SimpleConstants.insert(C)) return true;
|
||||
if (!SimpleConstants.insert(C).second)
|
||||
return true;
|
||||
// Check the constant.
|
||||
return isSimpleEnoughValueToCommitHelper(C, SimpleConstants, DL);
|
||||
}
|
||||
@@ -2670,7 +2671,7 @@ bool Evaluator::EvaluateFunction(Function *F, Constant *&RetVal,
|
||||
// Okay, we succeeded in evaluating this control flow. See if we have
|
||||
// executed the new block before. If so, we have a looping function,
|
||||
// which we cannot evaluate in reasonable time.
|
||||
if (!ExecutedBlocks.insert(NextBB))
|
||||
if (!ExecutedBlocks.insert(NextBB).second)
|
||||
return false; // looped!
|
||||
|
||||
// Okay, we have never been in this block before. Check to see if there
|
||||
@@ -2779,8 +2780,10 @@ public:
|
||||
}
|
||||
bool usedErase(GlobalValue *GV) { return Used.erase(GV); }
|
||||
bool compilerUsedErase(GlobalValue *GV) { return CompilerUsed.erase(GV); }
|
||||
bool usedInsert(GlobalValue *GV) { return Used.insert(GV); }
|
||||
bool compilerUsedInsert(GlobalValue *GV) { return CompilerUsed.insert(GV); }
|
||||
bool usedInsert(GlobalValue *GV) { return Used.insert(GV).second; }
|
||||
bool compilerUsedInsert(GlobalValue *GV) {
|
||||
return CompilerUsed.insert(GV).second;
|
||||
}
|
||||
|
||||
void syncVariablesAndSets() {
|
||||
if (UsedV)
|
||||
@@ -2973,7 +2976,7 @@ static bool cxxDtorIsEmpty(const Function &Fn,
|
||||
SmallPtrSet<const Function *, 8> NewCalledFunctions(CalledFunctions);
|
||||
|
||||
// Don't treat recursive functions as empty.
|
||||
if (!NewCalledFunctions.insert(CalledFn))
|
||||
if (!NewCalledFunctions.insert(CalledFn).second)
|
||||
return false;
|
||||
|
||||
if (!cxxDtorIsEmpty(*CalledFn, NewCalledFunctions))
|
||||
|
||||
Reference in New Issue
Block a user