r207919 - Replace one-element SmallVectors inside DenseMaps with TinyPtrVector.
Benjamin Kramer
benny.kra at googlemail.com
Sat May 3 11:44:27 PDT 2014
Author: d0k
Date: Sat May 3 13:44:26 2014
New Revision: 207919
URL: http://llvm.org/viewvc/llvm-project?rev=207919&view=rev
Log:
Replace one-element SmallVectors inside DenseMaps with TinyPtrVector.
That's exactly what TinyPtrVector was designed for. No functionality change.
Modified:
cfe/trunk/include/clang/Sema/Sema.h
cfe/trunk/include/clang/Serialization/ASTReader.h
cfe/trunk/lib/AST/RecordLayoutBuilder.cpp
cfe/trunk/lib/Serialization/ASTReader.cpp
Modified: cfe/trunk/include/clang/Sema/Sema.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Sema.h?rev=207919&r1=207918&r2=207919&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/Sema.h (original)
+++ cfe/trunk/include/clang/Sema/Sema.h Sat May 3 13:44:26 2014
@@ -47,6 +47,7 @@
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
+#include "llvm/ADT/TinyPtrVector.h"
#include "llvm/MC/MCParser/MCAsmParser.h"
#include <deque>
#include <memory>
@@ -840,7 +841,7 @@ public:
/// \brief The number of SFINAE diagnostics that have been trapped.
unsigned NumSFINAEErrors;
- typedef llvm::DenseMap<ParmVarDecl *, SmallVector<ParmVarDecl *, 1> >
+ typedef llvm::DenseMap<ParmVarDecl *, llvm::TinyPtrVector<ParmVarDecl *>>
UnparsedDefaultArgInstantiationsMap;
/// \brief A mapping from parameters with unparsed default arguments to the
Modified: cfe/trunk/include/clang/Serialization/ASTReader.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Serialization/ASTReader.h?rev=207919&r1=207918&r2=207919&view=diff
==============================================================================
--- cfe/trunk/include/clang/Serialization/ASTReader.h (original)
+++ cfe/trunk/include/clang/Serialization/ASTReader.h Sat May 3 13:44:26 2014
@@ -34,12 +34,12 @@
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/APSInt.h"
-#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
+#include "llvm/ADT/TinyPtrVector.h"
#include "llvm/Bitcode/BitstreamReader.h"
#include "llvm/Support/DataTypes.h"
#include <deque>
@@ -965,7 +965,7 @@ private:
llvm::SmallVector<NamedDecl *, 16> PendingOdrMergeChecks;
/// \brief Record definitions in which we found an ODR violation.
- llvm::SmallDenseMap<CXXRecordDecl*, llvm::SmallVector<CXXRecordDecl*, 1>, 2>
+ llvm::SmallDenseMap<CXXRecordDecl *, llvm::TinyPtrVector<CXXRecordDecl *>, 2>
PendingOdrMergeFailures;
/// \brief DeclContexts in which we have diagnosed an ODR violation.
@@ -1826,7 +1826,7 @@ public:
void installImportedMacro(IdentifierInfo *II, ModuleMacroInfo *MMI,
Module *Owner);
- typedef llvm::SmallVector<DefMacroDirective*, 1> AmbiguousMacros;
+ typedef llvm::TinyPtrVector<DefMacroDirective *> AmbiguousMacros;
llvm::DenseMap<IdentifierInfo*, AmbiguousMacros> AmbiguousMacroDefs;
void
Modified: cfe/trunk/lib/AST/RecordLayoutBuilder.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/RecordLayoutBuilder.cpp?rev=207919&r1=207918&r2=207919&view=diff
==============================================================================
--- cfe/trunk/lib/AST/RecordLayoutBuilder.cpp (original)
+++ cfe/trunk/lib/AST/RecordLayoutBuilder.cpp Sat May 3 13:44:26 2014
@@ -65,7 +65,7 @@ class EmptySubobjectMap {
const CXXRecordDecl *Class;
/// EmptyClassOffsets - A map from offsets to empty record decls.
- typedef SmallVector<const CXXRecordDecl *, 1> ClassVectorTy;
+ typedef llvm::TinyPtrVector<const CXXRecordDecl *> ClassVectorTy;
typedef llvm::DenseMap<CharUnits, ClassVectorTy> EmptyClassOffsetsMapTy;
EmptyClassOffsetsMapTy EmptyClassOffsets;
Modified: cfe/trunk/lib/Serialization/ASTReader.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReader.cpp?rev=207919&r1=207918&r2=207919&view=diff
==============================================================================
--- cfe/trunk/lib/Serialization/ASTReader.cpp (original)
+++ cfe/trunk/lib/Serialization/ASTReader.cpp Sat May 3 13:44:26 2014
@@ -1915,7 +1915,7 @@ ASTReader::removeOverriddenMacros(Identi
AmbiguousMacroDefs.erase(II);
} else {
// There's no ambiguity yet. Maybe we're introducing one.
- llvm::SmallVector<DefMacroDirective*, 1> Ambig;
+ AmbiguousMacros Ambig;
if (PrevDef)
Ambig.push_back(PrevDef);
@@ -1923,7 +1923,7 @@ ASTReader::removeOverriddenMacros(Identi
if (!Ambig.empty()) {
AmbiguousMacros &Result = AmbiguousMacroDefs[II];
- Result.swap(Ambig);
+ std::swap(Result, Ambig);
return &Result;
}
}
@@ -1946,10 +1946,9 @@ void ASTReader::installImportedMacro(Ide
assert(ImportLoc.isValid() && "no import location for a visible macro?");
}
- llvm::SmallVectorImpl<DefMacroDirective*> *Prev =
+ AmbiguousMacros *Prev =
removeOverriddenMacros(II, MMI->getOverriddenSubmodules());
-
// Create a synthetic macro definition corresponding to the import (or null
// if this was an undefinition of the macro).
DefMacroDirective *MD = MMI->import(PP, ImportLoc);
More information about the cfe-commits
mailing list