Replace some instances of UniqueVector with SetVector, which is slightly cheaper.

No functionality change.

llvm-svn: 167116
This commit is contained in:
Benjamin Kramer 2012-10-31 13:45:49 +00:00
parent 9e74dd97b8
commit 1559127f6f
3 changed files with 8 additions and 8 deletions

View File

@ -850,9 +850,9 @@ void DwarfDebug::endModule() {
Asm->OutStreamer.EmitLabel(Asm->GetTempSymbol("data_end")); Asm->OutStreamer.EmitLabel(Asm->GetTempSymbol("data_end"));
// End text sections. // End text sections.
for (unsigned i = 1, N = SectionMap.size(); i <= N; ++i) { for (unsigned I = 0, E = SectionMap.size(); I != E; ++I) {
Asm->OutStreamer.SwitchSection(SectionMap[i]); Asm->OutStreamer.SwitchSection(SectionMap[I]);
Asm->OutStreamer.EmitLabel(Asm->GetTempSymbol("section_end", i)); Asm->OutStreamer.EmitLabel(Asm->GetTempSymbol("section_end", I+1));
} }
// Compute DIE offsets and sizes. // Compute DIE offsets and sizes.

View File

@ -21,9 +21,9 @@
#include "llvm/MC/MachineLocation.h" #include "llvm/MC/MachineLocation.h"
#include "llvm/ADT/DenseMap.h" #include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/FoldingSet.h" #include "llvm/ADT/FoldingSet.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/StringMap.h" #include "llvm/ADT/StringMap.h"
#include "llvm/ADT/UniqueVector.h"
#include "llvm/Support/Allocator.h" #include "llvm/Support/Allocator.h"
#include "llvm/Support/DebugLoc.h" #include "llvm/Support/DebugLoc.h"
@ -231,7 +231,7 @@ class DwarfDebug {
/// SectionMap - Provides a unique id per text section. /// SectionMap - Provides a unique id per text section.
/// ///
UniqueVector<const MCSection*> SectionMap; SetVector<const MCSection*> SectionMap;
/// CurrentFnArguments - List of Arguments (DbgValues) for current function. /// CurrentFnArguments - List of Arguments (DbgValues) for current function.
SmallVector<DbgVariable *, 8> CurrentFnArguments; SmallVector<DbgVariable *, 8> CurrentFnArguments;

View File

@ -28,9 +28,9 @@
#include "llvm/Analysis/CallGraph.h" #include "llvm/Analysis/CallGraph.h"
#include "llvm/Analysis/CaptureTracking.h" #include "llvm/Analysis/CaptureTracking.h"
#include "llvm/ADT/SCCIterator.h" #include "llvm/ADT/SCCIterator.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallSet.h" #include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/Statistic.h" #include "llvm/ADT/Statistic.h"
#include "llvm/ADT/UniqueVector.h"
#include "llvm/Support/InstIterator.h" #include "llvm/Support/InstIterator.h"
using namespace llvm; using namespace llvm;
@ -486,13 +486,13 @@ bool FunctionAttrs::AddNoCaptureAttrs(const CallGraphSCC &SCC) {
/// or a pointer that doesn't alias any other pointer visible to the caller. /// or a pointer that doesn't alias any other pointer visible to the caller.
bool FunctionAttrs::IsFunctionMallocLike(Function *F, bool FunctionAttrs::IsFunctionMallocLike(Function *F,
SmallPtrSet<Function*, 8> &SCCNodes) const { SmallPtrSet<Function*, 8> &SCCNodes) const {
UniqueVector<Value *> FlowsToReturn; SmallSetVector<Value *, 8> FlowsToReturn;
for (Function::iterator I = F->begin(), E = F->end(); I != E; ++I) for (Function::iterator I = F->begin(), E = F->end(); I != E; ++I)
if (ReturnInst *Ret = dyn_cast<ReturnInst>(I->getTerminator())) if (ReturnInst *Ret = dyn_cast<ReturnInst>(I->getTerminator()))
FlowsToReturn.insert(Ret->getReturnValue()); FlowsToReturn.insert(Ret->getReturnValue());
for (unsigned i = 0; i != FlowsToReturn.size(); ++i) { for (unsigned i = 0; i != FlowsToReturn.size(); ++i) {
Value *RetVal = FlowsToReturn[i+1]; // UniqueVector[0] is reserved. Value *RetVal = FlowsToReturn[i];
if (Constant *C = dyn_cast<Constant>(RetVal)) { if (Constant *C = dyn_cast<Constant>(RetVal)) {
if (!C->isNullValue() && !isa<UndefValue>(C)) if (!C->isNullValue() && !isa<UndefValue>(C))