mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-21 18:29:46 +00:00
eliminate the duplicate detection loop, moving it into the loop that populates the Opts vector in the first place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82367 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
081bcb0d41
commit
d0062c6e7c
@ -1033,6 +1033,8 @@ public:
|
||||
|
||||
// Copy Options into a vector so we can sort them as we like.
|
||||
std::vector<Option*> Opts;
|
||||
SmallPtrSet<Option*, 128> OptionSet; // Duplicate option detection.
|
||||
|
||||
for (StringMap<Option*>::iterator I = OptMap.begin(), E = OptMap.end();
|
||||
I != E; ++I) {
|
||||
// Ignore really-hidden options.
|
||||
@ -1043,20 +1045,11 @@ public:
|
||||
if (I->second->getOptionHiddenFlag() == Hidden && !ShowHidden)
|
||||
continue;
|
||||
|
||||
Opts.push_back(I->second);
|
||||
}
|
||||
// If we've already seen this option, don't add it to the list again.
|
||||
if (OptionSet.insert(I->second))
|
||||
continue;
|
||||
|
||||
// Eliminate duplicate entries in table (from enum flags options, f.e.).
|
||||
{ // Give OptionSet a scope
|
||||
SmallPtrSet<Option*, 32> OptionSet;
|
||||
for (unsigned i = 0; i != Opts.size(); ++i) {
|
||||
if (OptionSet.insert(Opts[i])) // Add new entry to set
|
||||
continue;
|
||||
// Erase duplicate.
|
||||
Opts[i] = Opts.back();
|
||||
Opts.pop_back();
|
||||
--i;
|
||||
}
|
||||
Opts.push_back(I->second);
|
||||
}
|
||||
|
||||
if (ProgramOverview)
|
||||
|
Loading…
Reference in New Issue
Block a user