diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-11-18 06:52:18 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-11-18 06:52:18 +0000 |
commit | d33bb62823b37dab31f996cfbe7a5b8563d85e9b (patch) | |
tree | 3036d87615aa9f6e44d2ea43c24260a025f8c0f7 /utils | |
parent | aca81124422db568eb596f06fb0ae8e90118e71c (diff) |
Default SetVector to use a DenseSet.
We use to have an odd difference among MapVector and SetVector. The map
used a DenseMop, but the set used a SmallSet, which in turn uses a
std::set.
I have changed SetVector to use a DenseSet. If you were depending on the
old behaviour you can pass an explicit set type or use SmallSetVector.
The common cases for needing to do it are:
* Optimizing for small sets.
* Sets for types not supported by DenseSet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253439 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r-- | utils/TableGen/AsmMatcherEmitter.cpp | 6 | ||||
-rw-r--r-- | utils/TableGen/FixedLenDecoderEmitter.cpp | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/utils/TableGen/AsmMatcherEmitter.cpp b/utils/TableGen/AsmMatcherEmitter.cpp index f1b9ab39387..e55bbd37610 100644 --- a/utils/TableGen/AsmMatcherEmitter.cpp +++ b/utils/TableGen/AsmMatcherEmitter.cpp @@ -1722,7 +1722,7 @@ void MatchableInfo::buildAliasResultOperands() { } static unsigned getConverterOperandID(const std::string &Name, - SetVector<std::string> &Table, + SmallSetVector<std::string, 16> &Table, bool &IsNew) { IsNew = Table.insert(Name); @@ -1738,8 +1738,8 @@ static unsigned getConverterOperandID(const std::string &Name, static void emitConvertFuncs(CodeGenTarget &Target, StringRef ClassName, std::vector<std::unique_ptr<MatchableInfo>> &Infos, raw_ostream &OS) { - SetVector<std::string> OperandConversionKinds; - SetVector<std::string> InstructionConversionKinds; + SmallSetVector<std::string, 16> OperandConversionKinds; + SmallSetVector<std::string, 16> InstructionConversionKinds; std::vector<std::vector<uint8_t> > ConversionTable; size_t MaxRowLength = 2; // minimum is custom converter plus terminator. diff --git a/utils/TableGen/FixedLenDecoderEmitter.cpp b/utils/TableGen/FixedLenDecoderEmitter.cpp index df61511c8dd..8ca4a1bf540 100644 --- a/utils/TableGen/FixedLenDecoderEmitter.cpp +++ b/utils/TableGen/FixedLenDecoderEmitter.cpp @@ -65,8 +65,8 @@ typedef std::vector<uint8_t> DecoderTable; typedef uint32_t DecoderFixup; typedef std::vector<DecoderFixup> FixupList; typedef std::vector<FixupList> FixupScopeList; -typedef SetVector<std::string> PredicateSet; -typedef SetVector<std::string> DecoderSet; +typedef SmallSetVector<std::string, 16> PredicateSet; +typedef SmallSetVector<std::string, 16> DecoderSet; struct DecoderTableInfo { DecoderTable Table; FixupScopeList FixupStack; |